В процессе разработки сложных интеграций между современными конфигурациями 1С специалисты часто сталкиваются со сбоями при попытке использовать устаревшие инструменты. Типичный пример — работа в конфигурации «Конвертация данных» редакции 3.0 (в частности, на релизах вроде 3.0.5.3), когда при попытке выгрузить правила синхронизации из новой базы система выдает ошибки или вовсе не запускает процесс. Разберем по шагам, почему возникает эта проблема, как ее оперативно решить «здесь и сейчас» и к какому глобальному решению стоит прийти для долгосрочной стабильной работы.
Проанализируем ситуацию, описанную разработчиками. При попытке выполнить выгрузку правил синхронизации на современных релизах конфигураций, построенных на новых версиях Библиотеки Стандартных Подсистем (БСП) и платформы 1С 8.3, стандартные обработки КД 3.0 завершают работу с ошибкой. Основные причины этого кроются в следующем:
Если вам необходимо срочно выгрузить правила обмена для настройки синхронизации, а переходить на новые версии инструментария нет времени, можно воспользоваться точечным исправлением обработки выгрузки правил. Разработчики на партнерских форумах и специализированных ресурсах давно выявили критические участки кода и подготовили исправления.
Рассмотрим подробнее, в чем заключается суть доработки обработки. Чаще всего сбой происходит при вызове процедур инициализации параметров подключения и чтении структуры конфигурации. Для исправления обработку открывают в конфигураторе и вносят корректировки в модули, отвечающие за обход метаданных.
Посмотрим на пример логики обхода метаданных, которая в старых версиях могла вызывать ошибку при обращении к несуществующим или измененным свойствам:
// Пример корректировки обхода реквизитов метаданных для предотвращения падения обработки
Для Каждого Реквизит Из МетаданныеОбъекта.Реквизиты Цикл
// Добавляем проверку на доступность свойств в текущем контексте платформы
Попытка
ИмяРеквизита = Реквизит.Имя;
ТипРеквизита = Реквизит.Тип;
// Код обработки реквизита...
Исключение
ЗаписьЖурналаРегистрации("КД_Выгрузка", УровеньЖурналаРегистрации.Предупреждение, , ,
"Ошибка обработки реквизита: " + ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
Для исправления проблемы рекомендуется скачать адаптированную версию обработки выгрузки правил синхронизации. Такие обработки оптимизированы для запуска на актуальных версиях БСП и не вызывают аварийного завершения работы платформы. Найти их можно на партнерском форуме 1С или на профильных ИТ-порталах для разработчиков 1С.
Пытаться поддерживать работоспособность КД 3.0 в долгосрочной перспективе — тупиковый путь. Фирма «1С» совершила качественный скачок и выпустила редакцию «Конвертация данных 3.1». В этой версии архитектурный подход к интеграции был кардинально переработан.
Рассмотрим, какие принципиальные изменения произошли в КД 3.1 и как они решают проблемы разработчиков:
В процессе обсуждения на форуме поднимался важный вопрос: как организовать регистрацию изменений для обмена по универсальному формату, не снимая конфигурацию с поддержки («не ломая конфу»)? Проанализируем правильную последовательность действий при работе с современными типовыми конфигурациями:
Шаг 1. Использование типовых планов обмена. В современных конфигурациях 1С уже присутствует предопределенный план обмена, предназначенный для синхронизации через универсальный формат (EnterpriseData). Нет никакой необходимости создавать новые планы обмена вручную и изменять структуру метаданных основной конфигурации.
Шаг 2. Разработка правил регистрации объектов (ПРО). Создавать логику отбора регистрируемых данных следует в КД 3.1. Вы определяете, при каких условиях объекты (например, документы определенного вида или контрагенты по определенным папкам) должны попадать в обмен. Пример программного условия в правилах регистрации может выглядеть так:
// Пример условия регистрации документа в правилах регистрации объектов (ПРО)
Отказ = Истина;
Если Источник.Проведен Тогда
// Регистрируем только проведенные документы текущего года
Если Источник.Дата >= НачалоГода(ТекущаяДата()) Тогда
Отказ = Ложь;
КонецЕсли;
КонецЕсли;
Шаг 3. Использование расширений конфигурации. Если вам все же требуется кастомизировать логику планов обмена или добавить свои реквизиты, используйте механизм расширений. План обмена можно добавить в расширение и настроить состав отправляемых данных без изменения основной конфигурации, оставив ее на полной поддержке.
Шаг 4. Подгрузка правил через режим «1С:Предприятие». Готовые правила конвертации и правила регистрации не нужно внедрять в код конфигурации. В режиме «1С:Предприятие» в справочнике «Настройки синхронизации данных» предусмотрена стандартная возможность загрузки внешних правил из файлов. Вы просто загружаете подготовленные в КД файлы правил, и система начинает работать по вашим алгоритмам.
Если перед вами стоит задача реализовать сложный обмен между современными релизами конфигураций 1С, соглашаться на проект определенно стоит. Однако забудьте про использование устаревшей версии КД 3.0.5.3. Разверните актуальную версию «Конвертация данных 3.1». Это избавит вас от необходимости дорабатывать напильником старые выгрузки метаданных, позволит использовать все преимущества современных механизмов интеграции и обеспечит стабильную работу обмена данными без снятия конфигураций с поддержки.