С выходом обновлений 1С:Управление торговлей версии 11.5 многие пользователи и разработчики столкнулись с существенным изменением в механизме формирования актов сверки взаиморасчетов. Традиционный формат, содержащий только колонки Дебет и Кредит, сменился новой формой, включающей дополнительные поля «Сумма документа» и «Валюта документа». В этой статье мы подробно разберем, почему это произошло, как система выбирает макет и что нужно сделать, чтобы вернуть привычный «устаревший» вид акта сверки.
Для начала проанализируем ситуацию с точки зрения методологии 1С. Переход на новый формат акта сверки — это не просто прихоть разработчиков, а приведение программы в соответствие с законодательством. Рассмотрим основные факторы:
Давайте заглянем «под капот» системы и проанализируем, как объект Документ.СверкаВзаиморасчетов определяет, какую форму выводить на экран. Если мы откроем модуль менеджера документа, то увидим, что выбор макета ПФ_MXL_УстаревшийАктСверкиВзаиморасчетов или нового варианта зависит от заполненности определенных табличных частей.
Проанализируем логику выбора:
ДанныеКонтрагента, система считает документ «старым» и использует устаревший макет.ГруппировкиРасчеты (что происходит во всех новых документах при онлайн-взаиморасчетах), система принудительно выбирает новый макет с расширенными колонками.Рассмотрим пример упрощенного кода, описывающего эту логику в модуле менеджера:
// Фрагмент логики определения макета
Если ДанныеДляПечати.ГруппировкиРасчеты.Количество() > 0 Тогда
ИмяМакета = "ПФ_MXL_АктСверкиВзаиморасчетов"; // Новый формат
ИначеЕсли ДанныеДляПечати.ДанныеКонтрагента.Количество() > 0 Тогда
ИмяМакета = "ПФ_MXL_УстаревшийАктСверкиВзаиморасчетов"; // Старый формат
КонецЕсли;
Как мы видим, в интерфейсе документа «с фин. инструментами» доступа к таблице ДанныеКонтрагента нет, так как она считается устаревшей и оставлена только для совместимости с данными, перенесенными из старых релизов (например, из УТ 11.4).
Самый корректный и быстрый способ вернуть старый формат — использовать расширение конфигурации. Это позволит нам не снимать базу с поддержки и точечно изменить алгоритм выбора макета. Разберем этот процесс по шагам.
Шаг 1. Создадим новое расширение и добавим в него документ СверкаВзаиморасчетов.
Шаг 2. Нам необходимо перехватить процедуру печати в модуле менеджера. Обычно это метод Печать или специализированная процедура формирования коллекции печатных форм.
Шаг 3. В расширении мы можем принудительно указать использование макета ПФ_MXL_УстаревшийАктСверкиВзаиморасчетов, даже если заполнены новые табличные части. Однако стоит помнить, что структура данных в новом макете и старом отличается. Нам придется программно заполнить структуру данных для старого макета, используя данные из ГруппировкиРасчеты.
Рассмотрим пример программной подмены имени макета:
&Вместо("СформироватьПечатнуюФормуАктаСверки")
Процедура Расш1_СформироватьПечатнуюФормуАктаСверки(ПараметрыПечати, ИмяМакета, КоллекцияПечатныхФорм)
// Принудительно меняем имя макета на устаревший
ИмяМакета = "ПФ_MXL_УстаревшийАктСверкиВзаиморасчетов";
// Вызываем оригинальную логику или свою обработку заполнения
ПродолжитьВызов(ПараметрыПечати, ИмяМакета, КоллекцияПечатныхФорм);
КонецПроцедуры
Если вы не хотите вмешиваться в логику работы документа через расширения, оптимальным вариантом будет использование уже готовых инструментов. Например, можно скачать специализированные внешние печатные формы акта сверки для УТ 11.5. Это безопасный способ, который часто используют бухгалтеры и системные администраторы.
Разберем алгоритм создания такой формы самостоятельно:
ПФ_MXL_УстаревшийАктСверкиВзаиморасчетов из конфигуратора.ГруппировкиРасчеты до формата Дебет/Кредит, проигнорировав колонки с валютой документа и суммами в валюте. Часто пользователям также требуется акт сверки взаиморасчетов с факсимиле, чтобы форма сразу выводилась с печатью и подписью.Рассмотрим вариант, который может помочь без привлечения программиста, хотя он и не удаляет колонки полностью, но делает форму более читаемой. В документе Сверка взаиморасчетов при нажатии на кнопку «Печать» открывается окно предварительной настройки. Для тех, кому важно быстро формировать документы с определенными критериями, полезно будет использовать решение для сверки взаиморасчетов с возможностью сохранения отборов.
Попробуем выполнить следующие действия:
Объектам расчетов и Расчетным документам.Важное примечание: Если ваша организация использует ЭДО, мы настоятельно рекомендуем использовать именно новый формат. Использование устаревшего макета может привести к расхождениям между бумажной версией и электронным пакетом данных, который уходит контрагенту и в налоговую службу.
Мы выяснили, что отсутствие «галочки» для включения старого акта сверки — это не ошибка, а осознанное архитектурное решение 1С. Для возврата к классическому виду Дт/Кт в 1С:УТ 11.5 наиболее эффективным способом является создание внешней печатной формы. Если же вам требуется более сложная отчетность, например, акт сверки по нескольким контрагентам в одном акте, лучше воспользоваться готовыми разработками. Это позволит сохранить базу на замке и удовлетворить требования консервативных контрагентов.