Как в 1С:Управление торговлей 11.5 распечатать акт сверки в старом формате без лишних колонок?

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

С выходом обновлений 1С:Управление торговлей версии 11.5 многие пользователи и разработчики столкнулись с существенным изменением в механизме формирования актов сверки взаиморасчетов. Традиционный формат, содержащий только колонки Дебет и Кредит, сменился новой формой, включающей дополнительные поля «Сумма документа» и «Валюта документа». В этой статье мы подробно разберем, почему это произошло, как система выбирает макет и что нужно сделать, чтобы вернуть привычный «устаревший» вид акта сверки.

Разберем причины изменений в архитектуре печатных форм

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

  1. Требования ФНС: Новый формат акта сверки (с детализацией по валютам и суммам документов) соответствует Приказу ФНС России от 13.05.2022 № ЕД-7-26/405@. Этот формат является обязательным для электронного документооборота (ЭДО). Для повышения эффективности работы в новых условиях можно добавить кнопку "Отправить по ЭДО" непосредственно в интерфейс документа.
  2. Онлайн-взаиморасчеты: В версиях УТ 11.5.11 и выше приоритетным стал режим «Онлайн-взаиморасчеты». В этом режиме данные хранятся в новых регистрах и табличных частях документа, что напрямую влияет на выбор алгоритма печати.
  3. Унификация данных: Разработчики стремятся к тому, чтобы печатная форма на бумаге полностью соответствовала данным, отправляемым через ЭДО, поэтому «старый» макет был программно скрыт из пользовательского интерфейса.

Выясним причину выбора макета в программном коде

Давайте заглянем «под капот» системы и проанализируем, как объект Документ.СверкаВзаиморасчетов определяет, какую форму выводить на экран. Если мы откроем модуль менеджера документа, то увидим, что выбор макета ПФ_MXL_УстаревшийАктСверкиВзаиморасчетов или нового варианта зависит от заполненности определенных табличных частей.

Проанализируем логику выбора:

Рассмотрим пример упрощенного кода, описывающего эту логику в модуле менеджера:


// Фрагмент логики определения макета
Если ДанныеДляПечати.ГруппировкиРасчеты.Количество() > 0 Тогда
    ИмяМакета = "ПФ_MXL_АктСверкиВзаиморасчетов"; // Новый формат
ИначеЕсли ДанныеДляПечати.ДанныеКонтрагента.Количество() > 0 Тогда
    ИмяМакета = "ПФ_MXL_УстаревшийАктСверкиВзаиморасчетов"; // Старый формат
КонецЕсли;

Как мы видим, в интерфейсе документа «с фин. инструментами» доступа к таблице ДанныеКонтрагента нет, так как она считается устаревшей и оставлена только для совместимости с данными, перенесенными из старых релизов (например, из УТ 11.4).

Решение №1: Создание расширения для подмены макета

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

Шаг 1. Создадим новое расширение и добавим в него документ СверкаВзаиморасчетов.

Шаг 2. Нам необходимо перехватить процедуру печати в модуле менеджера. Обычно это метод Печать или специализированная процедура формирования коллекции печатных форм.

Шаг 3. В расширении мы можем принудительно указать использование макета ПФ_MXL_УстаревшийАктСверкиВзаиморасчетов, даже если заполнены новые табличные части. Однако стоит помнить, что структура данных в новом макете и старом отличается. Нам придется программно заполнить структуру данных для старого макета, используя данные из ГруппировкиРасчеты.

Рассмотрим пример программной подмены имени макета:


&Вместо("СформироватьПечатнуюФормуАктаСверки")
Процедура Расш1_СформироватьПечатнуюФормуАктаСверки(ПараметрыПечати, ИмяМакета, КоллекцияПечатныхФорм)
    // Принудительно меняем имя макета на устаревший
    ИмяМакета = "ПФ_MXL_УстаревшийАктСверкиВзаиморасчетов";
    // Вызываем оригинальную логику или свою обработку заполнения
    ПродолжитьВызов(ПараметрыПечати, ИмяМакета, КоллекцияПечатныхФорм);
КонецПроцедуры

Решение №2: Использование внешней печатной формы

Если вы не хотите вмешиваться в логику работы документа через расширения, оптимальным вариантом будет использование уже готовых инструментов. Например, можно скачать специализированные внешние печатные формы акта сверки для УТ 11.5. Это безопасный способ, который часто используют бухгалтеры и системные администраторы.

Разберем алгоритм создания такой формы самостоятельно:

  1. Возьмите за основу типовой макет ПФ_MXL_УстаревшийАктСверкиВзаиморасчетов из конфигуратора.
  2. Создайте внешнюю обработку и добавьте этот макет в нее.
  3. В модуле объекта обработки напишите функцию заполнения данных. Основная сложность здесь заключается в том, что вам нужно будет программно «свернуть» данные из таблицы ГруппировкиРасчеты до формата Дебет/Кредит, проигнорировав колонки с валютой документа и суммами в валюте. Часто пользователям также требуется акт сверки взаиморасчетов с факсимиле, чтобы форма сразу выводилась с печатью и подписью.
  4. Подключите обработку через раздел Печатные формы, отчеты и обработки.

Решение №3: Настройка параметров печати (без программирования)

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

Попробуем выполнить следующие действия:

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

Резюме

Мы выяснили, что отсутствие «галочки» для включения старого акта сверки — это не ошибка, а осознанное архитектурное решение 1С. Для возврата к классическому виду Дт/Кт в 1С:УТ 11.5 наиболее эффективным способом является создание внешней печатной формы. Если же вам требуется более сложная отчетность, например, акт сверки по нескольким контрагентам в одном акте, лучше воспользоваться готовыми разработками. Это позволит сохранить базу на замке и удовлетворить требования консервативных контрагентов.

← На главную