Как реализовать «Номенклатуру контрагентов» для продаж в 1С:ERP и УТ 11?

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

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

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

Различие в подходах: Поставщики vs Покупатели

Проанализируем ситуацию: в старых конфигурациях регистр был универсальным. Однако в 1С:ERP разработчики разделили эти процессы. Номенклатура поставщиков — это мощный инструмент, интегрированный в процессы закупок, загрузки прайс-листов и оформления заказов. Для продаж же предполагается, что товар — это ваша собственность, и вы продаете его под своим официальным наименованием.

Тем не менее, на практике (особенно в пищевой промышленности и работе с ритейлом) покупатели требуют строгого соблюдения своих артикулов и названий в документах. Рассмотрим, какие пути решения существуют в современной экосистеме 1С.

Вариант 1: Использование механизмов ЭДО и EDI

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

  1. 1С:ЭДО: При первой отправке документа контрагенту через ЭДО система предлагает сопоставить вашу номенклатуру с номенклатурой покупателя. Эти данные сохраняются в служебном регистре СопоставлениеНоменклатурыЭДО. При последующих отправках система автоматически подставляет нужные идентификаторы покупателя в XML-файл.
  2. EDI-провайдеры: Для работы с торговыми сетями (X5, Тандер и др.) обычно используются внешние модули. В этих модулях реализованы собственные справочники соответствий кодов GLN и GTIN, а также внутренних артикулов сетей.

Вариант 2: Доработка печатных форм через Расширения

Если вам необходимо выводить специфические названия именно в бумажные печатные формы (ТОРГ-12, УПД), наиболее правильным путем будет использование Расширений конфигурации. Рассмотрим этот процесс по шагам.

Для начала нам необходимо создать механизм хранения данных. Поскольку типового регистра для покупателей нет, мы можем либо адаптировать Номенклатуру поставщиков (что архитектурно не совсем верно), либо создать свой регистр сведений.

Разберем пример создания простого регистра соответствий. Назовем его лм_НоменклатураКлиентов. В измерениях укажем Контрагент и Номенклатура, в ресурсах — НаименованиеУКлиента и АртикулУКлиента.

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

Пример программного кода для изменения запроса в расширении (процедура Печать или специализированные методы получения данных):


&ИзменениеИКонтроль("СформироватьЗапросДляПечатиУПД")
Процедура лм_СформироватьЗапросДляПечатиУПД(Запрос, ПараметрыПечати)
    // Вызываем оригинальную логику или модифицируем текст запроса
    Запрос.Текст = СтрЗаменить(Запрос.Текст, 
        "ВЫБРАТЬ", 
        "ВЫБРАТЬ ЕСТЬNULL(НоменклатураКлиентов.НаименованиеУКлиента, ТекстоваяСтрока.НоменклатураНаименование) КАК НаименованиеДляПечати,");
    
    Запрос.Текст = Запрос.Текст + " ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.лм_НоменклатураКлиентов КАК НоменклатураКлиентов 
        ПО ТекстоваяСтрока.Номенклатура = НоменклатураКлиентов.Номенклатура 
        И ТекстоваяСтрока.Ссылка.Партнер = НоменклатураКлиентов.Партнер";
КонецПроцедуры

Вариант 3: Использование характеристик или комплектации

Рассмотрим альтернативный, менее трудозатратный с точки зрения программирования, но более сложный для учета способ. Некоторые компании используют механизм Комплектация номенклатуры. Перед отгрузкой товар «Ваше Наименование» перекомплектовывается в товар «Наименование для Сети».

Плюсы:

Минусы:

Поэтому данный метод мы рекомендуем использовать только в исключительных случаях, когда товары действительно физически отличаются (например, разная упаковка или этикетка).

Вариант 4: Дополнительные реквизиты и сведения

Выясним, можно ли обойтись без создания новых регистров. В 1С существует универсальный механизм Дополнительные сведения. Вы можете создать доп. сведение для объекта Номенклатура, но проблема в том, что оно должно зависеть от Контрагента.

Для решения этой задачи можно создать справочник или набор сведений, где владельцем будет выступать пара «Номенклатура + Партнер». Однако для вывода в печатные формы вам все равно придется модифицировать макеты или запросы в менеджере документа, как описано в Варианте 2.

Резюме и рекомендации

Подведем итоги нашего анализа. Отсутствие регистра Номенклатура контрагентов в части продаж в современных конфигурациях — это осознанное решение методистов 1С, направленное на использование глобальных идентификаторов (GTIN) и систем ЭДО.

Если ваша задача — быстро внедрить решение для печати специфических названий в 1С:ERP 2.5, рекомендуем следующий алгоритм действий:

  1. Проверьте, нельзя ли использовать Глобальные идентификаторы номенклатуры (штрихкоды упаковок и GTIN), так как многие торговые сети переходят на этот стандарт.
  2. Если требуется именно текстовое наименование, создайте Расширение.
  3. В расширении добавьте регистр сведений для хранения соответствий.
  4. Используйте механизм ИзменениеИКонтроль для модификации запросов в менеджерах документов (ОбработкаПечати), чтобы подменять стандартное наименование на клиентское.

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

← На главную