Как реализовать групповую загрузку номенклатуры из сервиса 1С:Номенклатура в УТ 11?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В современных реалиях автоматизации торговых процессов использование облачных каталогов становится стандартом. Сервис 1С:Номенклатура предоставляет доступ к миллионам карточек товаров с уже заполненными описаниями, характеристиками и штрихкодами. Однако при работе в конфигурации 1С:Управление торговлей, редакция 11 (УТ 11) пользователи часто сталкиваются с проблемой: поштучная загрузка работает исправно, но механизм массового (пакетного) создания карточек неочевиден или кажется заблокированным.

В рамках данной статьи мы подробно разберем, как устроена логика загрузки данных, почему стандартный интерфейс может ограничивать групповые операции и как технически включить возможность пакетного создания номенклатуры.

Анализ штатных механизмов групповой загрузки

Прежде чем переходить к программным изменениям, рассмотрим, как разработчики фирмы 1С предполагали использование массовой загрузки в типовых решениях. В Управление торговлей 11 механизмы 1С:Номенклатуры тесно интегрированы с другими подсистемами. Проанализируем основные сценарии:

  1. Загрузка через входящие документы ЭДО. Это наиболее распространенный способ. При получении электронного УПД или ТОРГ-12 система сопоставляет номенклатуру поставщика с вашей базой. Если соответствий не найдено, открывается помощник сопоставления. Если ваша база подключена к сервису 1С:Номенклатура, система позволяет выделить все неопознанные позиции и нажать кнопку Создать по данным 1С:Номенклатура. В этом случае пакетная загрузка происходит в контексте конкретного документа.
  2. Использование функционала Корзины. В последних версиях Библиотеки Номенклатуры поиск в сервисе позволяет не сразу создавать карточку, а добавлять найденные позиции в промежуточный список — корзину. После того как список сформирован, можно запустить процесс пакетного создания для всех элементов корзины.
  3. Предварительное сопоставление категорий. Важно понимать, что автоматическое создание невозможно без настройки правил. Система должна знать, какой Вид номенклатуры и какая Группа доступа соответствуют категории в облачном сервисе. Для этого в настройках сервиса необходимо заполнить таблицу Сопоставление видов номенклатуры. Без этого шага любая попытка группового создания будет приводить к ошибкам или требовать ручного уточнения для каждой позиции.

Техническая причина ограничения групповой загрузки

Многие технические специалисты замечают, что в интерфейсе списка номенклатуры или в специализированных формах поиска кнопка групповой загрузки может отсутствовать или быть неактивной. Выясним причину этого поведения, заглянув в программный код конфигурации.

Разработчики типового решения намеренно ограничивают массовое создание из соображений «гигиены» справочника. Бесконтрольная загрузка тысяч позиций может привести к замусориванию базы дублями, если штрихкоды не уникальны или если пользователи ошибаются в выборе категорий. За управление этой доступностью отвечает специальный флаг в программном коде.

Проанализируем ситуацию: в общем модуле РаботаСНоменклатуройУТ (или аналогичных модулях Библиотеки Номенклатуры, адаптированных под УТ) присутствует инициализация параметров работы сервиса. Рассмотрим пример программной установки этого ограничения:


// В процедуре инициализации настроек сервиса
ПараметрыРаботы = Новый Структура;
ПараметрыРаботы.Вставить("ИспользоватьПакетноеСозданиеНоменклатуры", Ложь);

Именно значение Ложь блокирует появление команд массовой обработки в пользовательском интерфейсе. Это ограничение часто «зашито» жестко и не вынесено в пользовательские настройки (функциональные опции) в интерфейсе Администрирование.

Решение: Программная активация пакетной загрузки

Если специфика вашего бизнеса требует регулярной массовой загрузки (например, при запуске нового направления или открытии нового магазина с широким ассортиментом), вы можете изменить это поведение. Рассмотрим два способа реализации.

Способ 1. Создание собственной обработки загрузки

Вы можете написать внешнюю обработку, которая будет использовать программный интерфейс (API) Библиотеки Номенклатуры. Для этого при вызове методов создания необходимо принудительно устанавливать параметр пакетного режима. Посмотрим на логику, которую применил автор обсуждения на форуме:


// Пример логики в пользовательской обработке
НастройкиСервиса = РаботаСНоменклатурой.ПолучитьНастройкиСервиса();
// Изменяем параметр только на время работы нашей обработки
НастройкиСервиса.ИспользоватьПакетноеСозданиеНоменклатуры = Истина;

// Далее вызываем штатные методы пакетного создания из Библиотеки Номенклатуры
РаботаСНоменклатуройКлиент.СоздатьНоменклатуруПакетно(МассивОбъектовСервиса, НастройкиСервиса);

Способ 2. Использование расширения конфигурации

Чтобы пакетная загрузка стала доступна в стандартных формах поиска 1С:Номенклатуры, наиболее правильным методом будет использование механизма Расширений. Это позволит не снимать основную конфигурацию с поддержки и сохранить возможность обновления.

Рассмотрим по шагам, что нужно сделать в расширении:

  1. Создайте новое расширение в базе данных.
  2. Найдите общий модуль РаботаСНоменклатуройУТ (название может незначительно отличаться в зависимости от версии БН).
  3. Добавьте в расширение процедуру, которая отвечает за установку параметров работы. Обычно это метод ПриОпределенииНастроек или аналогичный.
  4. Используйте аннотацию &После или &Вместо, чтобы переопределить значение флага.

Пример кода в расширении:


&После("ПриОпределенииНастроек")
Процедура Расш1_ПриОпределенииНастроек(Настройки)
    // Устанавливаем флаг в Истина для включения интерфейсных возможностей
    Настройки.ИспользоватьПакетноеСозданиеНоменклатуры = Истина;
КонецПроцедуры

Важные рекомендации при массовой загрузке

После того как вы активируете возможность пакетной загрузки, помните о следующих важных моментах, которые помогут избежать ошибок в учете:

  1. Контроль дублей. Перед загрузкой большого пакета данных убедитесь, что в базе настроен автоматический поиск дублей по штрихкодам. Это предотвратит создание нескольких карточек на один и тот же товар.
  2. Заполнение обязательных реквизитов. В 1С:Номенклатуре могут отсутствовать данные, которые являются обязательными в вашей базе (например, Ставка НДС или специфические дополнительные реквизиты). Проанализируем настройки сопоставления: убедитесь, что для каждого Вида номенклатуры в 1С заданы значения по умолчанию для таких полей.
  3. Обновление данных. Помните, что сервис позволяет не только создавать, но и обновлять данные. В настройках 1С:Номенклатуры можно включить регламентное задание, которое будет автоматически обновлять описания и изображения товаров, если они изменились в облачном каталоге.

Подводя итог, можно сказать, что групповая загрузка в УТ 11 — это мощный инструмент, который по умолчанию скрыт от пользователя для обеспечения безопасности данных. Однако, используя штатные механизмы ЭДО или применив небольшое программное вмешательство через расширение, вы сможете существенно ускорить процесс наполнения справочника товарами.

← На главную