Основные возможности:
-
Двухблочный макет: Программа автоматически разделяет долги на те, по которым уже наступила просрочка, и те, срок оплаты которых наступит в ближайшее время.
-
Умный поиск аналитики: Алгоритм ищет Партнера и Договор в шапке документа, а если они не заполнены (общая сверка) — извлекает их из табличных частей и данных контрагента.
-
Детализация до документа: Выводятся номера и даты ТН, заказов, количество дней просрочки и расчет пени (если поле ПроцентПени добавлено в систему).
-
Динамический текст письма: Текст обращения автоматически меняется в зависимости от структуры долга (только просрочка, только напоминание или смешанный долг).
Технические особенности (для специалистов):
Печатная форма оптимизирована для работы с регистром накопления РасчетыСКлиентамиПоСрокам.
-
Использует актуальные типы данных: Документ.СверкаВзаиморасчетов2_5_11.
-
Корректно обрабатывает структуру возврата МассивСтруктурДанныхДляПечати, ожидаемую БСП.
-
Реализована защищенная логика проверки типов (ЗначениеЗаполнено вместо .Пустая()), что исключает ошибки «Печатная форма недоступна» при обращении к пустым ссылкам.

Скриншот работы формы:
-
Таблица 1 (Просрочка): Вывод документов с положительным количеством дней просрочки.
-
Таблица 2 (Напоминание): Вывод текущих долгов с отрицательным или нулевым значением просрочки.
-
Итоги: Сводный расчет общей задолженности в теле письма.
Подключите обработку через меню НСИ и администрирование — Печатные формы, отчеты и обработки.
Особенности данной версии:
-
Переход на регистровый учет данных: В отличие от версии 2.5.17, где данные брались из табличных частей документа, новая версия использует прямые запросы к регистру накопления «Расчеты с клиентами по срокам». Это гарантирует 100% соответствие данных в письме типовой отчетности («Просроченная задолженность») и исключает ошибки, связанные с недозаполненными ТЧ документа сверки.
-
Интеллектуальное разделение задолженности: Реализована корректная логика разделения долгов на два визуальных блока. Теперь система не просто выводит список, а дифференцирует записи: документы с наступившим сроком оплаты попадают в таблицу «Просрочка», а будущие платежи — в таблицу «Напоминания» (на основании разности дат в регистре).
-
Синхронизация структуры данных с макетом (MXL): В структуру данных добавлены все ссылки на объекты (ЗаказСсылка, ТНСсылка, ДоговорСсылка), которые требуются современным макетам КА 2.5.22 для обеспечения интерактивности и расшифровки. Ранее отсутствие этих полей в структуре приводило к ошибке «Поле объекта не обнаружено» при заполнении областей макета.
-
Оптимизация под стандарты БСП 3.0+: Внедрена корректная обработка массива объектов печати с использованием явного сравнения типов (ТипЗнч(Документ) = Тип("...")). Это гарантирует стабильную работу внешней печатной формы через стандартное меню «Печать» и предотвращает конфликты при пакетном формировании писем.
-
Динамическое формирование текста обращения: Логика формирования текста письма («имеется просрочка», «имеется текущая задолженность» или «долгов нет») теперь учитывает совокупное состояние обеих таблиц, что делает уведомление более корректным и профессиональным с точки зрения деловой переписки.
-
Решение проблемы некорректного извлечения аналитики (Партнер, Договор), которая часто отсутствует в шапке документа «Сверка взаиморасчетов» в новых версиях архитектуры 2.5.
Переход с версии 2.5.17
2.5.17 на 2.5.22 потребовал не просто исправления ошибок, а полной смены архитектуры получения данных. Старый код опирался на данные внутри документа, в то время как новый перешел на использование регистров накопления как «первоисточника истины».
Ниже приведен детальный разбор ключевых отличий и исправлений:
1. Источник данных: Документ vs Регистр
-
В версии 2.5.17: Данные извлекались из табличной части ДетальныеЗаписиРасчеты самого документа.
-
Проблема: Если пользователь не заполнил детальные записи в сверке или архитектура документа изменилась (как в 2.5.11+), отчет выводил пустоту.
-
-
В версии 2.5.22 (Исправлено): Данные теперь берутся напрямую из регистра накопления РегистрНакопления.РасчетыСКлиентамиПоСрокам.Остатки.
-
Результат: Данные в письме теперь всегда на 100% совпадают с типовым отчетом «Просроченная задолженность», независимо от того, что написано в табличной части документа сверки.
-
2. Поиск аналитики (Партнер/Договор)
-
В версии 2.5.17: Использовалось прямое обращение к реквизитам шапки: СверкаВзаиморасчетов.Партнер.
-
Проблема: В новых версиях КА/ERP при создании «сводных» сверок поля Партнер и Договор в шапке часто остаются пустыми. Старый запрос из-за этого ничего не находил.
-
-
В версии 2.5.22 (Исправлено): Реализован «каскадный поиск»:
-
Сначала ищем в шапке.
-
Если пусто — ищем связь через Контрагент.Партнер.
-
Если и там пусто — извлекаем аналитику из первой строки табличных частей документа.
-
Результат: Печатная форма стала «всеядной» и работает даже с незаполненными до конца документами.
-
3. Расчет просрочки и «Напоминаний»
-
В версии 2.5.17: Расчет разности дат делался внутри пакета запроса: РАЗНОСТЬДАТ(..., Сверка.КонецПериода, ДЕНЬ).
-
Проблема: Была путаница с тем, что считать просрочкой, а что напоминанием. Код часто «терял» будущие платежи.
-
-
В версии 2.5.22 (Исправлено):
-
В запросе убраны жесткие фильтры. Теперь РАЗНОСТЬДАТ возвращает чистую математическую разницу.
-
Логика разделения перенесена в код: ДнейПросрочки > 0 — в первую таблицу, ДнейПросрочки <= 0 — во вторую.
-
Результат: Вторая таблица («Приближающиеся платежи») теперь выводится корректно.
-
4. Исправление логической ошибки вывода Итогов
-
В версии 2.5.17 (Критический баг): В старом коде вывод области ОбластьСтрокаТаблицыИтого находился внутри цикла Для Каждого Док ИЗ ДанныеОбщие.
-
Последствие: Это приводило к тому, что строка «Итого» могла выводиться после каждой строки документа или не выводиться вовсе, если счетчик работал некорректно. Расчет СуммаЗадолженности также зависел от того, зашел ли код в блок просрочки.
-
-
В версии 2.5.22 (Исправлено): Цикл только распределяет данные по буферным табличным документам. Расчет итоговых сумм и вывод секций «Итого» вынесены за пределы цикла.
-
Результат: Математически верный расчет общего долга (Просрочка + Будущие платежи) и корректная верстка макета.
-
5. Типобезопасность и стабильность БСП
-
В версии 2.5.17: Использовался метод .Пустая().
-
Проблема: Если ОтветственноеЛицо или Партнер были равны Неопределено, форма падала с ошибкой «Значение не является значением объектного типа». Также использовалась проверка типов через Найти(нрег(ТипЗнч(Документ)),"ссылка"), что является медленным и нестабильным методом.
-
-
В версии 2.5.22 (Исправлено):
-
Везде используется ЗначениеЗаполнено(), что безопасно для любых типов данных.
-
Проверка типов объектов печати сделана через прямое сравнение: ТипЗнч(Документ) = Тип("ДокументСсылка.СверкаВзаиморасчетов2_5_11").
-
Результат: Исчезла ошибка «Печатная форма недоступна».
-
6. Работа с макетом
-
В версии 2.5.17: Отсутствовали поля ЗаказСсылка, ТНСсылка, КонецПериода в структуре данных.
-
Проблема: Макет в КА 2.5.22 содержит расширенные параметры. При попытке заполнить Область.Параметры.ТНСсылка данными, которых нет в структуре, форма вылетала.
-
-
В версии 2.5.22 (Исправлено): Структура данных полностью синхронизирована с требованиями макета. Добавлены все недостающие ссылки для расшифровки документов.
Работоспособность протестирована на следующих конфигурациях:
-
1С:Комплексная автоматизация 2 (2.5.22.104)
-
Разработка актуальна для перехода на 2.5.22, где типовые механизмы извлечения данных из Сверок были существенно изменены.
Проверено на следующих конфигурациях и релизах:
- 1С:Комплексная автоматизация 2, релизы 2.5.22.134, 2.5.22.104
Вступайте в нашу телеграмм-группу Инфостарт
