Прочитать первые десять товаров из УТ 11, КА2 или УНФ

Учебные задачи

Конфигурационно-зависимый пример на проверенных XML метаданных. Запрос только читает справочник, не создаёт и не записывает товары.

Где и как запускать

Модуль управляемой формы внешней обработки в копии УТ 11 FAVORIT, КА2 Progress или УНФ. Код содержит обе процедуры и директивы; команда формы ПоказатьТовары.

Подготовка

  1. Используйте копию УТ 11 FAVORIT, КА2 Progress или УНФ. В их выгрузках проверен иерархический справочник Номенклатура: длина кода 11, наименования 100.

  2. Проверенные XML: C:\claude\UT_11\FAVORIT\XLM_UT_11\Catalogs\Номенклатура.xml; C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS\Catalogs\Номенклатура.xml; C:\claude\UNF\UNF_XML\Catalogs\Номенклатура.xml.

  3. Создайте внешнюю обработку с управляемой формой; добавьте указанную команду, кнопку и клиентский обработчик.

  4. Клиентскую процедуру и серверную функцию вставьте отдельно на уровне модуля формы. Доступ к справочнику должен быть разрешён правами пользователя.

  5. Команда формы должна называться ПоказатьТовары.

&НаКлиенте
Процедура ПоказатьТовары(Команда)
    Сообщить(ПолучитьТоварыНаСервере());
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьТоварыНаСервере()
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 10
    |    Товары.Код КАК Код,
    |    Товары.Наименование КАК Наименование
    |ИЗ Справочник.Номенклатура КАК Товары
    |ГДЕ НЕ Товары.ЭтоГруппа И НЕ Товары.ПометкаУдаления
    |УПОРЯДОЧИТЬ ПО Наименование, Код";
    Выборка = Запрос.Выполнить().Выбрать();
    Строки = Новый Массив;
    Пока Выборка.Следующий() Цикл
        Строки.Добавить(Выборка.Код + " — " + Выборка.Наименование);
    КонецЦикла;
    Если Строки.Количество() = 0 Тогда
        Возврат "Подходящих товаров нет";
    КонецЕсли;
    Возврат СтрСоединить(Строки, Символы.ПС);
КонецФункции

Разбор по шагам

  1. Клиентская команда вызывает серверную функцию, где доступен объект Запрос.

  2. Фильтруем группы и помеченные на удаление элементы; ограничиваем вывод десятью строками.

  3. Результат выборки собираем в строки с кодом и названием.

  4. На клиент возвращаем строку, а не серверную таблицу значений.

Как проверить результат

  1. Количество выведенных товаров не превышает 10; сравните коды с учебным справочником.

  2. Если в учебной базе нет подходящих товаров, выводится Подходящих товаров нет.

  3. У пользователя без прав чтения ожидается ошибка доступа: пример не обходит ограничения.

Ожидаемый результат

Сообщение со списком существующих товаров или сообщением об отсутствии. Названия зависят от данных учебной базы.

На что обратить внимание

  1. Это не отчёт об остатках: регистры накопления здесь не читаются.

  2. Совпадение имени справочника в другой конфигурации ещё не подтверждает совместимость: проверьте её метаданные.

  3. XML-проверка подтверждает структуру выгрузки, но выполнение запроса в 1С не проверялось.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.