Как вывести розничную цену в печатной форме документа Приобретение товаров и услуг в 1С:УТ 11?

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

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

Понимание архитектуры печатных форм в УТ 11

В отличие от устаревших версий платформы, где печатные формы жестко привязывались к макетам внутри документа, в 1С:УТ 11 используется современный механизм Библиотеки стандартных подсистем (БСП). Это означает, что данные для печати не просто «берутся» из документа, а собираются программным способом в модуле менеджера документа.

Процесс формирования печатной формы выглядит следующим образом:

  1. Вызов команды печати из интерфейса.
  2. Запуск процедуры печати в модуле менеджера.
  3. Инициализация коллекции печатных форм.
  4. Выполнение запроса к базе данных для получения необходимых параметров (номенклатура, количество, цена).
  5. Заполнение параметров табличного документа (макета) полученными данными.

Шаг 1: Анализ данных в модуле менеджера

Чтобы добавить розничную цену, нам необходимо вмешаться в процесс формирования запроса. Первым делом откроем Конфигуратор и найдем документ ПриобретениеТоваровУслуг. В дереве метаданных нас интересует Модуль менеджера. Именно там располагается процедура формирования печатной формы.

Используя возможности отладки 1С, мы можем проследить, какие данные передаются в макет. Поставим точку останова в месте заполнения параметров и посмотрим, какие переменные доступны в контексте исполнения. Обычно для получения цен используется обращение к регистру сведений Цены номенклатуры.

Шаг 2: Получение и вывод розничной цены

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

Способ А: Доработка запроса

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


ВЫБРАТЬ
    ТЧ.Номенклатура,
    ТЧ.Количество,
    Цены.Цена КАК РозничнаяЦена
ИЗ
    Документ.ПриобретениеТоваровУслуг.Товары КАК ТЧ
ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК Цены
    ПО ТЧ.Номенклатура = Цены.Номенклатура

После изменения запроса в процедуре обработки вывода, необходимо присвоить полученное значение параметру макета. Выглядит это примерно так:

ОбластьСтрока.Параметры.РозничнаяЦена = Выборка.РозничнаяЦена;

Шаг 3: Рекомендации по реализации

Чтобы не допустить ошибок при обновлении конфигурации и сохранить систему работоспособной, важно придерживаться следующих правил:

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

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

← На главную