Как в 1С:УНФ заменить код на артикул в печатной форме ТОРГ-12?

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

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

Почему простая правка макета не помогает?

Рассмотрим ситуацию, с которой столкнулся автор вопроса: в макете Счет на оплату замена имени параметра сработала, а в ТОРГ-12 — нет. Выясним причину этого различия. В системе 1С печатные формы могут формироваться по-разному:

  1. Гибкие формы (как Счет на оплату): Часто используют механизмы, которые динамически подтягивают данные. Если система видит в макете параметр с именем Артикул, она может автоматически найти соответствующий реквизит в справочнике Номенклатура.
  2. Жестко регламентированные формы (как ТОРГ-12): Эти формы формируются в программном модуле менеджера документа (например, РасходнаяНакладная). В коде программы четко прописано: «взять значение из поля Код и поместить его в параметр макета ТоварКод». Если вы просто переименуете параметр в самом макете на Артикул, программа не поймет, что туда нужно передавать другие данные, и поле останется пустым или будет содержать ошибку.

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

Способ №1: Глобальная настройка системы (рекомендуемый)

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

  1. Перейдем в раздел Настройки на панели разделов.
  2. Выберем пункт Еще больше возможностей.
  3. В открывшемся окне найдем подраздел Общее.
  4. Найдем параметр Дополнительная колонка в печатных формах.
  5. В выпадающем списке выберем значение Артикул.

Важный момент: После изменения этой настройки система автоматически начнет подставлять значение артикула в колонку, которая в макетах обычно зарезервирована под код. Это сработает для ТОРГ-12, УПД, Расходной накладной и других документов отгрузки. При этом заголовок колонки в печатной форме также может измениться на «Артикул» автоматически, если это предусмотрено логикой макета.

Способ №2: Использование пользовательских макетов (Office)

Если вам требуется радикально изменить внешний вид формы и глобальная настройка вас не устраивает, в 1С:УНФ есть возможность использовать шаблоны в формате Word или Excel. Посмотрим, как это работает:

Рассмотрим по шагам процесс создания такого макета:

  1. Зайдем в раздел Администрирование — Печатные формы, отчеты и обработки.
  2. Выберем пункт Макеты печатных форм.
  3. Найдем макет для нужного документа (например, ТОРГ-12 (в формате .docx или .xlsx)).
  4. В таких макетах используются специальные теги. Чтобы вывести артикул, мы можем использовать конструкцию вида: {Объект.Запасы.Номенклатура.Артикул}.

Этот метод хорош тем, что не требует навыков программирования на языке 1С. Вы просто работаете с привычным текстовым редактором, расставляя нужные поля в нужные ячейки.

Сценарий с артикулами контрагентов

Иногда задача стоит сложнее: покупателю (например, крупной торговой сети) требуется, чтобы в ТОРГ-12 стоял не ваш внутренний артикул, а его собственный код товара. В 1С:УНФ это также реализуемо через механизм «Номенклатура контрагентов».

Проанализируем ситуацию: в карточке контрагента или в справочнике Номенклатура поставщиков (название зависит от версии) можно задать сопоставление вашей позиции и кода клиента. Однако, стоит учитывать, что стандартная печатная форма ТОРГ-12 не умеет «из коробки» подтягивать эти данные без доработки. В этом случае нам придется прибегнуть к расширению конфигурации.

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


Процедура ПриПечатиТОРГ12(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм)
    // Получаем данные для печати
    ДанныеДляПечати = ПолучитьДанныеДляТОРГ12(МассивОбъектов);
    
    Для Каждого СтрокаТЧ Из ДанныеДляПечати.Запасы Цикл
        // Ищем артикул покупателя в регистре сведений
        АртикулПокупателя = РегистрыСведений.НоменклатураКонтрагентов.ПолучитьАртикул(СтрокаТЧ.Номенклатура, ДанныеДляПечати.Покупатель);
        
        Если ЗначениеЗаполнено(АртикулПокупателя) Тогда
            СтрокаТЧ.Код = АртикулПокупателя; // Подменяем стандартный код
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

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

Подведем итог нашему разбору. Если ваша цель — просто заменить код на артикул во всех документах:

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

← На главную