При работе в современных конфигурациях, таких как 1С:Управление торговлей 11.5, ERP или Комплексная автоматизация 2, специалисты часто сталкиваются с особенностями формирования печатных форм. Одной из таких особенностей является автоматическая свертка (группировка) строк с одинаковым товаром и ценой при печати УПД (Универсального передаточного документа). Кроме того, часто возникает потребность изменить привычный интерфейс подбора номенклатуры, сделав его более удобным для пользователя, например, расположив список выбранных товаров справа.
В этой статье мы подробно разберем, почему происходит свертка строк, как ее программно отключить через расширение и какие есть возможности по модификации формы подбора. Если вам требуется готовое решение, соответствующее будущим стандартам, рекомендуем обратить внимание на УПД для 1С:УТ 11.5 без сворачивания строк, адаптированный под требования 2026 года.
Прежде чем приступать к исправлению, разберем ситуацию с точки зрения логики системы. Свертка идентичных позиций в налоговых документах (к которым относится и УПД) заложена в 1С по умолчанию. Если в документе РеализацияТоваровУслуг присутствуют две строки с одинаковой номенклатурой, характеристикой, ценой и ставкой НДС, система при печати объединит их в одну, суммируя количество и общую стоимость. Это обусловлено требованиями законодательства к оформлению счетов-фактур, где идентичные товары должны отображаться одной позицией.
Однако в управленческом учете или при специфических требованиях заказчика (например, когда важно видеть разделение по сериям или комментариям) эту свертку необходимо убрать. Посмотрим, как это сделать программно.
Логика сбора данных для печати УПД в УТ 11.5 вынесена в общие модули или модули менеджера документов. Основная работа по подготовке таблицы товаров происходит в запросе. Для внесения изменений нам потребуется механизм расширений конфигурации.
Проанализируем шаги по поиску и изменению нужного кода:
РеализацияТоваровУслуг или общий модуль ПечатьСчетаФактуры (в зависимости от конкретной версии конфигурации).ПолучитьДанныеДляПечатнойФормыУПД или СформироватьЗапросДляПечатиУПД.СГРУППИРОВАТЬ ПО. Именно он объединяет строки.Чтобы "разбить" свертку, нам нужно добавить в условия группировки поле, которое сделает каждую строку уникальной. Самый надежный вариант — использовать поле НомерСтроки.
Рассмотрим пример того, как может выглядеть модификация запроса в расширении (используем аннотацию &Вместо):
&Вместо("СформироватьЗапросДляПечатиУПД")
Функция Изм_СформироватьЗапросДляПечатиУПД(ПараметрыПечати)
// Получаем оригинальный текст запроса или формируем свой
ТекстЗапроса = ПродолжитьВызов(ПараметрыПечати);
// Вносим правки в текст запроса:
// 1. Добавляем НомерСтроки в список выбора (SELECT)
// 2. Добавляем НомерСтроки в секцию СГРУППИРОВАТЬ ПО (GROUP BY)
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "СГРУППИРОВАТЬ ПО", "СГРУППИРОВАТЬ ПО ТЧТовары.НомерСтроки, ");
Возврат ТекстЗапроса;
КонецФункции
Важный момент: если вы добавляете НомерСтроки в группировку, убедитесь, что это поле также присутствует в списке полей выборки запроса. Это гарантирует, что 1С будет считать каждую строку документа уникальной и выведет их в печатную форму ровно в том виде и количестве, в котором они введены в табличную часть документа.
Перейдем ко второму вопросу, который часто обсуждается в контексте 1С:Розница и УТ 11 — настройка формы подбора. В старых версиях (например, УТ 10.3) подбор часто строился по принципу: иерархия слева, список товаров в центре, корзина выбранных товаров справа. Чтобы вернуть привычный интерфейс, можно использовать расширение, реализующее иерархию номенклатуры как в УТ 10.3 для УТ 11.5.
В УТ 11.5 используется универсальная форма подбора, где корзина чаще всего находится в нижней части окна. Если нам необходимо переместить список выбранных товаров (корзину) в правую часть экрана, мы можем воспользоваться встроенными средствами изменения формы или программной доработкой. Также для повышения информативности часто внедряют дополнительные колонки в подборах номенклатуры, такие как штрихкоды или типы цен.
Разберем алгоритм визуальной настройки:
Группа — Группировка колонок (или установите группировку Горизонтальная у родительской группы).Проанализируем техническую сторону подбора. Форма подбора в УТ 11 базируется на ДинамическомСписке. Для удобства пользователей часто требуется вывод остатков и цен в списке номенклатуры, что позволяет видеть актуальные данные без лишних кликов.
Для реализации логики "как в УТ 10.3" может потребоваться переписать обработчик СписокВыбор или СписокПриАктивизацииСтроки, чтобы данные в корзину добавлялись мгновенно или отображались в специфическом виде. Рассмотрим пример программного управления видимостью элементов в расширении:
&НаСервере
Процедура Изм_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Устанавливаем горизонтальное положение для корзины программно
Элементы.ГруппаСписокИКорзина.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Горизонтальная;
// Настраиваем ширину элементов для удобства отображения "справа"
Элементы.Список.Ширина = 60;
Элементы.Корзина.Ширина = 40;
КонецПроцедуры
Выясним, какой путь решения лучше выбрать. Если ваша задача — исключительно отключить свертку в УПД, создание собственного макета печатной формы или использование расширения для модификации запроса является наиболее безопасным методом. Помните, что прямое редактирование типовой конфигурации крайне нежелательно, так как это усложнит последующие обновления.
Если же вы хотите радикально изменить подбор, обратите внимание на возможность оптимизации рутинных действий, например, выбор номенклатуры минуя гиперссылку «Показать все» и автоматическое исправление раскладки клавиатуры при поиске. Это позволит не зависеть от обновлений типового механизма подбора, который в последних версиях УТ 11 становится все более сложным и перегруженным функционалом.
Таким образом, мы проанализировали причины группировки строк и нашли способ сохранения уникальности позиций при печати, а также рассмотрели варианты компоновки элементов формы подбора для удобства пользователей.