Как вывести несколько реквизитов (Артикул + Наименование) в одном поле при печати ценников в 1С:Розница 3.0?

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

Переход на новые редакции программных продуктов 1С часто сопровождается изменением привычных механизмов работы. Одной из таких ситуаций, с которой сталкиваются пользователи и специалисты при миграции с 1С:Розница 2.3 на 1С:Розница 3.0 (базирующуюся на коде 1С:УНФ), является настройка печатных форм, в частности — ценников и этикеток. В старых версиях механизм шаблонов казался более интуитивным, и при смене интерфейса возникает вопрос: как объединить несколько полей, например, «Артикул» и «Наименование», в одной ячейке макета?

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

Постановка задачи

В макете ценника необходимо вывести информацию о товаре в одной строке (или в одной ячейке), объединив несколько реквизитов. Чаще всего требуется конструкция вида: «Артикул Товара» + «Наименование Товара». Если в редакторе просто выбрать параметр, выводится только одно значение. Нам же нужно понять, как склеить эти строки.

Способ 1. Использование свойств ячейки (Штатный метод)

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

Давайте разберем по шагам, как настроить объединение полей непосредственно в макете:

  1. Откройте справочник Шаблоны этикеток и ценников в режиме редактирования нужного вам макета.
  2. Перейдите в режим полного редактирования макета (табличного документа).
  3. Выделите ячейку, в которую вы хотите вывести и артикул, и наименование.
  4. Обратите внимание на палитру свойств ячейки (обычно она находится справа). Найдите свойство Заполнение (или FillType, если интерфейс на английском).
  5. По умолчанию там часто установлено значение Параметр. В этом режиме ячейка ожидает имя одной переменной (например, Номенклатура), и система подставит туда значение целиком.
  6. Измените значение свойства Заполнение на Шаблон.
  7. Теперь в тексте самой ячейки можно писать комбинированный текст, используя квадратные скобки [] для обозначения переменных.

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

[Артикул] [Номенклатура.Наименование]

Или, если вы хотите добавить поясняющий текст:

Арт: [Артикул], Товар: [Номенклатура]

Важно: Все, что находится внутри квадратных скобок, система будет воспринимать как параметры и пытаться найти их значения в источнике данных. Все, что снаружи скобок — это просто текст, который выведется на печать без изменений.

Способ 2. Использование пользовательских полей (Настройки СКД)

Архитектура «Розницы 3.0» активно использует Систему Компоновки Данных (СКД) для формирования этикеток. Это дает нам мощный инструмент — Пользовательские поля. Этот метод полезен, если вы не хотите менять макет (или он недоступен для глубокого редактирования), но можете настроить набор данных.

Рассмотрим, как это сделать:

  1. В форме печати или настройки шаблона найдите возможность редактировать состав полей (часто это кнопка «Редактировать набор данных» или «Настройки компоновки»).
  2. Перейдите на вкладку Пользовательские поля.
  3. Добавьте новое поле типа Выражение.
  4. В формуле выражения пропишите логику объединения строк.

Пример формулы для пользовательского поля:

Строка(Номенклатура.Артикул) + " " + Строка(Номенклатура.Наименование)

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

Способ 3. Программная доработка (Вмешательство в код)

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

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

Логика кода

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

  1. Определить событие или процедуру, отвечающую за печать ценника.
  2. Получить данные текущей номенклатуры (Артикул и Наименование).
  3. Сформировать итоговую строку во временной переменной.
  4. Присвоить эту строку параметру области макета.

Пример кода, иллюстрирующий объединение строк (как предлагалось в обсуждении):


// Пример конкатенации строк
ТекстДляВывода = "";

// Проверяем, заполнен ли артикул, чтобы не выводить лишние пробелы
Если ЗначениеЗаполнено(Выборка.Артикул) Тогда
    ТекстДляВывода = СокрЛП(Выборка.Артикул) + " ";
КонецЕсли;

ТекстДляВывода = ТекстДляВывода + СокрЛП(Выборка.Наименование);

// Присваиваем значение параметру области
ОбластьМакета.Параметры.НаименованиеТовара = ТекстДляВывода;

Обратите внимание на функцию СокрЛП(). Она удаляет лишние пробелы слева и справа от строки, что крайне важно при склеивании данных, чтобы текст на ценнике выглядел аккуратно.

Особенности реализации в Рознице 3.0

Поскольку «Розница 3.0» построена на базе библиотек УНФ, механизмы печати там унифицированы. Скорее всего, вам придется искать процедуры в общих модулях, связанных с подсистемой «Печать» или «Торговое оборудование». Используйте расширение для переопределения метода заполнения данных печати.

Анализ проблем при переходе с версии 2.3

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

Основные отличия, которые нужно учитывать:

Резюме

Для решения задачи вывода нескольких реквизитов в одном поле ценника в 1С:Розница 3.0 не обязательно прибегать к программированию. Рассмотрим приоритетность решений:

  1. Лучший вариант: Использовать свойство ячейки Заполнение = Шаблон. Это быстро, штатно и не требует изменения кода.
  2. Альтернатива: Использовать пользовательские поля в настройках СКД, если нужно сложное вычисляемое выражение, доступное для выбора в разных макетах.
  3. Для разработчиков: Использовать расширение конфигурации для программного формирования строки вывода, если требуется сложная бизнес-логика.

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

← На главную