Как добавить код номенклатуры в отчет Прайс-лист в BAS Управление торговлей

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

При работе с типовыми отчетами в конфигурациях на базе BAS Управление торговлей 3.2 (или 1С:Управление торговлей 11) пользователи часто сталкиваются с ситуацией, когда стандартного набора полей недостаточно. Одной из самых востребованных задач является вывод кода номенклатуры в отчете «Прайс-лист». Казалось бы, задача тривиальная — добавить поле в Систему компоновки данных (СКД), однако на практике поле часто упорно не желает появляться в печатной форме. Рассмотрим подробнее, почему это происходит и как правильно настроить отчет, чтобы добиться желаемого результата.

Анализ проблемы: почему стандартное добавление поля не работает

Многие начинающие разработчики и администраторы системы пытаются решить задачу «в лоб»: заходят в схему компоновки данных, добавляют поле Код в набор данных и выбирают его на вкладке «Выбранные поля». Однако после формирования отчета колонка с кодом не появляется. Разберем причину этого поведения.

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

Решение №1: Настройка группировки в СКД (Метод «Отдельной колонки»)

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

  1. Откроем настройки отчета в конфигураторе (или через «Изменить вариант» в пользовательском режиме, если права позволяют).
  2. Перейдем на вкладку «Настройки», затем на вложенную вкладку «Структура».
  3. Найдем группировку, отвечающую за вывод номенклатуры (обычно это Номенклатура или Номенклатура, Характеристика).
  4. Нам необходимо зайти в настройки этой конкретной группировки (нижняя часть окна настроек).
  5. Переходим на вкладку «Выбранные поля» для этой группировки.
  6. Создадим новую Группу выбранных полей. Для этого нажмем правую кнопку мыши и выберем «Сгруппировать поля».
  7. В появившемся окне настройки группы укажем Тип группы: В отдельной колонке.
  8. Внутрь этой созданной группы перетащим наше поле Номенклатура.Код (или просто Код, если оно выведено в набор данных).
  9. Сохраним настройки и сформируем отчет.

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

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

Решение №2: Использование функциональных опций системы

Перед тем как вносить изменения в структуру СКД, всегда полезно проверить глобальные настройки программы. В BAS Управление торговлей реализован механизм, позволяющий управлять отображением кодов и артикулов централизованно. Выясним, как это работает.

Перейдем в раздел НСИ и администрирование -> Номенклатура -> Настройки создания. Здесь присутствует важная опция: «Дополнительная колонка при отображении номенклатуры». Мы можем выбрать один из двух вариантов:

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

Решение №3: Работа с иерархией и расположением реквизитов

Если вышеописанные методы не помогли, разберем более глубокую настройку свойств группировки. В СКД существует параметр «Расположение реквизитов».

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

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


// Пример логики условного оформления (метакод настройки)
Область: Поле "Код"
Условие: Номенклатура.ЭтоГруппа Равно "Да"
Оформление: Текст = ""

Это позволит скрыть ненужные коды для иерархических групп, оставив их только для конечных товаров.

Технические тонкости: кэш и расширения

Часто программист вносит изменения в конфигураторе, но пользователь их не видит. Разберем, почему так происходит. Система 1С активно кэширует настройки отчетов для каждого пользователя.

Проанализируем шаги по очистке, если изменения не вступают в силу:

  1. В пользовательском режиме в форме отчета нажмите «Еще» — «Установить стандартные настройки».
  2. Если это не помогло, необходимо зайти в Администрирование — Настройки пользователей и прав — Настройки пользователей — Очистка настроек. Там нужно найти отчет «Прайс-лист» для конкретного пользователя и удалить сохраненные варианты.

Также стоит помнить о правилах хорошего тона при разработке. Если вы работаете в BAS, любые изменения в типовые отчеты крайне рекомендуется вносить через расширения конфигурации. Это позволит безболезненно обновлять систему в будущем. При создании расширения для СКД убедитесь, что вы перенесли в него не только запрос, но и все настройки (SelectedFields, Groupings), иначе при обновлении основной конфигурации ваши правки могут быть перекрыты типовыми значениями.

Выводы

Мы рассмотрели несколько способов добавления кода номенклатуры в прайс-лист. Наиболее гибким и правильным с точки зрения СКД является использование группировки полей с размещением в отдельной колонке. Это решение позволяет обойти ограничения жестких макетов оформления и дает аккуратный, читаемый результат. Не забывайте проверять функциональные опции программы и вовремя очищать кэш настроек пользователей для корректного отображения внесенных изменений.

← На главную