Как выводить артикул в одних печатных формах и код в других в УТ 11?

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

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

Анализ стандартных механизмов

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

Почему не стоит переделывать типовой код

Многие начинающие разработчики пытаются решить задачу путем внесения изменений в основной код конфигурации. Это путь, который ведет к проблемам при обновлении программы. Когда вы меняете типовой макет или процедуру печати напрямую, при каждом выходе обновлений от фирмы 1С вам придется тратить часы на сравнение и объединение конфигураций (Сравнение и объединение файлов конфигурации). Поэтому мы рассмотрим более современный и безопасный подход — использование расширений.

Реализация задачи с помощью расширения

Использование Расширения конфигурации позволяет нам «перехватить» логику формирования печатной формы только для нужного нам документа — ЗаказПоставщику. Это позволяет сохранить типовую конфигурацию на поддержке.

Разберем этапы решения задачи:

  1. Создаем новое Расширение конфигурации в режиме Конфигуратора.
  2. Включаем в него документ ЗаказПоставщику.
  3. Находим Макет печатной формы или Команду печати, отвечающую за вывод номенклатуры.
  4. Переопределяем логику заполнения данных так, чтобы вместо Код система обращалась к реквизиту Артикул номенклатуры.

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

Пример логики, которую мы можем заложить в расширение:


// Пример логики заполнения области печатной формы в расширении
Для Каждого СтрокаТаблицы Из ДанныеОбъекта.Товары Цикл
    ОбластьСтроки.Параметры.КодИлиАртикул = СтрокаТаблицы.Номенклатура.Артикул;
КонецЦикла;

Преимущества использования расширений

Использование Расширения дает нам несколько важных преимуществ:

Альтернативные подходы

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

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

← На главную