Обновления конфигурации могут сломать даже корректные доработки СКД. Эксперт разбирает, как отслеживать изменения схем и поддерживать отчеты в рабочем состоянии. Еще больше информации о работе с СКД – на курсе!
Использование СКД для доработки отчетов удобно и практично, однако обновления конфигурации требуют дополнительного внимания к изменениям схем. Даже корректно реализованное расширение может перестать работать, если поставщик изменил схему отчета, а причины поломки неочевидны.
В этом материале эксперт Александр Свойкин разберет практический подход, который позволяет контролировать изменения схем СКД, быстро находить расхождения и адаптировать доработки без лишних затрат времени.
Рабочие и нерабочие способы доработки отчетов
Существует большое количество способов доработки отчетов на СКД. И важно учитывать, что, если вы дорабатываете отчеты в типовой конфигурации, они должны работать и после ее обновления.
Существует несколько рабочих подходов к доработке отчетов, написанных на СКД:
- Использование внешних отчетов.
- Использование программной модификации отчета СКД в расширении.
- Изменение Схемы через расширение.
Есть подходы, у которых большое количество минусов, от них стоит сразу отказываться:
- Редактирование Схемы в основной конфигурации, в том числе, программное.
- Изменение Схемы через пользовательский интерфейс.
В этой статье я хочу углубиться в то, как можно улучшить подходы доработки изменения Схемы через расширения и как эти подходы могут быть вам полезны.
Проблема обновлений: не работает расширение
Представим, что у нас появилась задача отредактировать отчет в ERP. Мы выбрали подход «Изменение Схемы через расширение». У нас возможны следующая ситуация: поставщик обновил конфигурацию и наш отчет и расширение перестали работать. После обновления непонятно, что было изменено в схеме и что нужно исправлять в нашем расширении.
Подготовка: сохранение оригинальной схемы
Для поиска расхождений можно использовать следующий подход. Перед добавлением отчета в расширение мы сохраняем макет, который мы будем модифицировать, как имя оригинального макета и номер версии конфигурации.

Этим мы добились того, что в случае различия схемы у нас будет оригинальный XML, который мы использовали за основу при доработке и который сможем проанализировать.
Сравнение и анализ изменений в схеме
В случае изменения отчета в основной конфигурации мы можем понять, что было изменено в схеме. Для этого мы выгружаем XML из основной конфигурации…

И из расширения.

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



Тут видно, что у поля «Склад» установили роль «Игнорировать значения NULL».

А здесь добавился параметр «Номенклатура».
Адаптация расширения под новую версию
Теперь необходимо адаптировать изменения к нашему отчету. Разница между новой Схемой поставщика и Схемой, которую мы начинали редактировать, изначально нам понятна, можно переносить изменения, в том числе с помощью ручного редактирования XML.

Контроль изменений схемы отчетов
Один из вариантов отследить отчеты, схема которых была изменена – считать MD5 хеш от Схемы и сравнивать его при запуске отчета. Делать мы это будем в событии «ПриКомпоновкеРезультата», так как оно выполняется всегда, в отличие от событий БСП.

В случае расхождения получаем ошибку.

Присоединяйтесь к курсу по работе с СКД
Курс углубленного изучения СКД стартовал вчера, но вы еще можете присоединиться. Это практический формат с разбором реальных кейсов и обратной связью от преподавателя.
До 2 апреля есть возможность включиться в обучение и пройти программу вместе с текущим потоком. Ждем вас на курсе!
