При ежедневной работе в программе 1С:Розница 2.2 (а также в более новых версиях 2.3) пользователи часто сталкиваются с рутинной задачей: необходимо быстро заполнить документ поступления, оприходования или инвентаризации большим количеством товаров. Логичным решением кажется открыть форму подбора номенклатуры, выбрать нужную группу (папку) целиком и перенести её в документ. Однако при попытке сделать это стандартными средствами программа ничего не добавляет в документ, оставляя табличную часть пустой.
Давайте подробно разберем, почему возникает это ограничение, и рассмотрим четыре эффективных способа его обхода — от простых встроенных инструментов до автоматизированных решений для программистов.
В типовой конфигурации 1С:Розница механизм формы подбора разработан исключительно для работы с конечными элементами справочника Номенклатура. Когда мы открываем форму подбора, платформа ожидает, что пользователь будет выбирать конкретные товары, указывать их количество и цену. Кнопка «Перенести в документ» обрабатывает только ту таблицу («корзину»), в которую были предварительно добавлены единичные позиции.
Попытка выделить папку в левом дереве групп или выбрать несколько строк в иерархическом списке и нажать кнопку переноса не запускает рекурсивный поиск товаров внутри этих папок. Программа просто игнорирует группы, так как у них нет цен, остатков и характеристик, необходимых для заполнения строк документа. Тем не менее, эту задачу можно решить без изменения конфигурации.
Если вам нужно разово добавить большую группу товаров, и у вас нет возможности привлекать программиста для доработки системы, воспользуемся встроенным механизмом выгрузки списков и последующей загрузки табличных документов.
Давайте разберем этот процесс по шагам:
Номенклатура (раздел НСИ — Номенклатура).Штрихкод, Код или Артикул, а также Наименование. Нажмем кнопку «ОК»..xlsx).Поступление товаров или Оприходование товаров).Если одну и ту же группу товаров вам приходится регулярно добавлять в различные документы (например, сезонные комплекты, стандартные наборы расходных материалов для инвентаризации или определенный пул товаров при поступлении), мы рекомендуем настроить штатный механизм наборов.
Набор в 1С — это виртуальный шаблон, который сам по себе не хранится на складе, но при выборе в документе автоматически «распаковывается» на составляющие его товары. Настроить его можно следующим образом:
Номенклатура создадим новый элемент.Для полной автоматизации процесса без изменения типовой конфигурации отлично подходит механизм дополнительных отчетов и обработок, работающий на базе Библиотеки стандартных подсистем (БСП). Мы можем написать или скачать внешнюю обработку заполнения табличной части с расширением .epf.
После регистрации такой обработки в меню Администрирование — Печатные формы, отчеты и обработки, в документе над табличной частью «Товары» появится кнопка «Заполнить по группе».
Давайте посмотрим на пример программного кода, который используется в модуле объекта такой обработки для получения всех дочерних товаров выбранной группы:
Функция ПолучитьТаблицуТоваровГруппы(ВыбраннаяГруппа) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Номенклатура,
| Номенклатура.ЕдиницаИзмерения КАК Упаковка,
| 1 КАК Количество
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Родитель В ИЕРАРХИИ(&ВыбраннаяГруппа)
| И НЕ Номенклатура.ЭтоГруппа
| И НЕ Номенклатура.ПометкаУдаления";
Запрос.УстановитьПараметр("ВыбраннаяГруппа", ВыбраннаяГруппа);
Возврат Запрос.Выполнить().Выгрузить();
КонецФункции
Этот запрос находит абсолютно все элементы справочника, которые подчинены выбранной группе (включая любые вложенные подпапки), отсекает сами группы (папки) с помощью условия НЕ Номенклатура.ЭтоГруппа, а также игнорирует помеченные на удаление позиции. Полученная таблица значений затем легко переносится в документ-владелец через стандартное API БСП.
Наиболее удобным решением с точки зрения конечного пользователя является использование специального расширения конфигурации. Расширение не снимает программу с поддержки, что позволяет без проблем обновлять 1С:Розница в будущем.
При использовании расширения дорабатывается непосредственно стандартная форма подбора номенклатуры. В нее добавляется новая кнопка (например, «Добавить выделенные папки» или изменяется поведение стандартной кнопки при выделении нескольких элементов). Программист может перехватить событие выбора и применить следующий алгоритм:
ЭтоГруппа).В ИЕРАРХИИ) и поместить их в список подобранных товаров.Таким образом, несмотря на то, что штатно функция множественного добавления групп товаров в 1С:Розница 2.2 не реализована разработчиками из соображений контроля ввода цен и остатков, мы имеем сразу несколько удобных путей решения этой задачи. Для разовых операций отлично подойдет экспорт через Excel, для регулярных однотипных операций — наборы номенклатуры, а для постоянной активной работы — внешняя обработка или расширение конфигурации.