Как обновить типовые правила обмена между 1С:Управление торговлей 11.4 и 1С:Бухгалтерией 3.0, если конфигурация УТ доработана и не подлежит обновлению?

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

При работе с программными продуктами 1С часто возникает необходимость в обмене данными между различными конфигурациями, например, между 1С:Управление торговлей (УТ) и 1С:Бухгалтерией предприятия (БП). В идеальном мире обе конфигурации регулярно обновляются до актуальных версий, что позволяет использовать типовые правила обмена, поставляемые фирмой "1С". Однако на практике мы часто сталкиваемся с ситуациями, когда конфигурация УТ сильно доработана, и ее обновление становится сложной или даже невозможной задачей. В таких условиях встает вопрос: как обеспечить актуальный обмен данными с обновляемой Бухгалтерией 3.0, не обновляя при этом доработанную УТ 11.4?

Рассмотрим эту непростую ситуацию, выясним причины возникновения сложностей и предложим эффективные пути решения.

Почему обновление правил обмена для УТ 11.4 сложнее, чем для УТ 10.3?

Прежде всего, давайте проанализируем, почему обновление правил обмена для УТ 11.4, когда сама конфигурация не обновлена, представляет гораздо большую проблему, чем для более старой УТ 10.3.

  1. Различия в механизмах обмена:

    Для 1С:Управление торговлей 10.3 правила обмена часто разрабатывались с использованием конфигурации Конвертация данных для выгрузки в XML-файлы. Этот формат, хотя и обладал определенной гибкостью, позволял разработчикам правил учитывать особенности более старых конфигураций, в которых могли отсутствовать современные функции, например, прослеживаемость товаров. Правила могли содержать логику, адаптированную под эти отсутствующие элементы, или просто игнорировать их.

    Современные конфигурации 1С, к которым относятся УТ 11.x и БП 3.0, преимущественно используют более строгий формат обмена — EnterpriseData (XDTO). Этот формат обеспечивает глубокую интеграцию и требует более строгого соответствия структур метаданных (объектов, реквизитов) между источником и приемником. Любое расхождение в структуре данных, будь то из-за различия версий конфигураций или из-за наших доработок, скорее всего, приведет к критическим ошибкам в процессе обмена.

  2. Влияние функционала прослеживаемости товаров:

    Один из ключевых факторов, усложняющих ситуацию, — это появление функционала прослеживаемости товаров. Он был внедрен в 1С:Бухгалтерии 8 (и в соответствующих версиях УТ) примерно с июля 2021 года в связи с изменениями в законодательстве.

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

Таким образом, просто взять и применить новые типовые правила от актуальной УТ к старой или доработанной УТ 11.4, как это иногда "прокатывало" с УТ 10.3, скорее всего, не удастся.

Варианты решения проблемы при невозможности обновления УТ 11.4

Поскольку прямое обновление правил невозможно, мы вынуждены искать обходные пути. Рассмотрим два основных варианта действий.

1. Перенос доработок в расширения и обновление конфигурации УТ

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

Давайте подробнее проанализируем этот подход:

  1. Преимущества расширений:

    Расширения позволяют изменять или дополнять функционал типовой конфигурации, не вмешиваясь в ее основной код. Это означает, что вы можете легко обновлять типовую конфигурацию, а ваши доработки, реализованные в расширениях, будут продолжать работать. Это значительно снижает стоимость поддержки и дает возможность пользоваться всеми новыми функциями и исправлениями ошибок, выпускаемыми "1С".

  2. Оценка возможности переноса:

    Не все доработки или сторонние модули могут быть легко перенесены в расширения. Для этого необходим тщательный анализ существующего кода. Доработки, которые глубоко модифицируют типовые объекты (изменяют структуру данных, переопределяют стандартные процедуры и функции), могут быть сложны для переноса в расширения. Однако многие коммерческие модули обмена с внешними системами (например, некоторые варианты обмена с Битрикс24) уже могут быть реализованы в виде расширений или иметь такую возможность, требующую лишь актуализации.

  3. Процесс переноса:

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

    • Выявление всех измененных объектов и процедур.
    • Рефакторинг кода для соответствия принципам работы расширений (использование событий, вызовов типовых функций, а не прямое изменение).
    • Тестирование работы конфигурации с перенесенными доработками.

Если этот путь возможен, мы настоятельно рекомендуем рассмотреть его как приоритетный. Он решает проблему не только с правилами обмена, но и с общей актуальностью и поддерживаемостью вашей УТ.

2. Разработка или доработка собственных правил обмена

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

Давайте разберем этот процесс по шагам.

Использование конфигурации "Конвертация данных 2.0/3.0"

Основным инструментом для разработки и корректировки правил обмена является специализированная конфигурация "Конвертация данных 2.0" или "Конвертация данных 3.0".

  1. Подготовка структур метаданных:

    Первым шагом нам необходимо получить актуальные структуры метаданных обеих наших конфигураций:

    • Доработанной УТ 11.4 (как источника данных).
    • Целевой БП 3.0 (как приемника данных), которая, предположительно, обновлена до актуальной версии.

    Для этого мы можем использовать обработку ВыгрузкаЗагрузкаДанныхXML или прямо в "Конвертации данных" подключиться к информационным базам или загрузить файлы описания структуры метаданных (.cf или .epf).

  2. Создание или корректировка правил обмена:

    На основе полученных структур мы будем создавать новые правила или корректировать существующие. Это включает в себя:

    1. Сопоставление объектов:

      Мы должны вручную сопоставить все объекты, которые участвуют в обмене: справочники, документы, регистры и т.д. Например, справочник Номенклатура в УТ сопоставляется со справочником Номенклатура в БП, документ РеализацияТоваровУслуг в УТ — с аналогичным документом в БП.

    2. Сопоставление реквизитов:

      Для каждого сопоставленного объекта мы должны сопоставить его реквизиты. Например, реквизит Склад в УТ сопоставляется с реквизитом Склад в БП. Здесь же мы будем сталкиваться с основными трудностями из-за наших доработок или различий версий:

      • Новые реквизиты в БП (например, прослеживаемость): Если в БП появились реквизиты, связанные с прослеживаемостью (РНПТ, КодВидаПрослеживаемогоТовара и т.д.), которых нет в УТ, нам потребуется определить логику их заполнения. Возможно, потребуется вычислять их на лету, брать из дополнительных регистров УТ, если таковые были добавлены, или оставлять пустыми, если это допустимо для БП.
      • Удаленные/измененные реквизиты в УТ: Если в доработанной УТ были изменены или добавлены новые реквизиты, которые должны участвовать в обмене, мы должны будем включить их в правила и сопоставить с соответствующими реквизитами в БП (или определить логику их преобразования).
      • Типы данных: Важно следить за соответствием типов данных. Например, если в УТ реквизит имеет тип Строка, а в БП — Число, потребуется выполнить преобразование.
    3. Написание алгоритмов для преобразования данных:

      Для сложной логики, которая не может быть реализована простым сопоставлением, мы будем использовать предопределенные процедуры и функции в "Конвертации данных" (например, ПередВыгрузкой, ПослеЗагрузки). В них мы можем написать код на встроенном языке 1С, который будет выполнять необходимые преобразования, заполнять отсутствующие данные, проверять условия и т.д.

      Пример кода (концептуальный):

      
      // В обработчике "ПередВыгрузкой" для объекта "Документ.РеализацияТоваровУслуг"
      // Если нам нужно заполнить реквизит РНПТ в БП, которого нет в УТ напрямую
      Если Объект.ВидНоменклатуры = Справочники.ВидыНоменклатуры.ПрослеживаемыйТовар Тогда
          // Предположим, что РНПТ хранится в дополнительном регистре сведений
          РНПТ = РегистрыСведений.ПрослеживаемыеТоварыУТ.ПолучитьРНПТ(Объект.Ссылка);
          Если ЗначениеЗаполнено(РНПТ) Тогда
              ВыгружаемыеДанные.РНПТ = РНПТ;
          Иначе
              // Обработка ситуации, если РНПТ не найден
              ЗаписатьСообщениеОбОшибке("Не найден РНПТ для товара: " + Объект.Номенклатура.Наименование);
          КонецЕсли;
      КонецЕсли;
      

      Этот код демонстрирует, как мы можем программно заполнять данные, которые отсутствуют в конфигурации-источнике, но требуются в конфигурации-приемнике.

  3. Механизмы поиска и сопоставления объектов:

    При обмене через "Универсальный обмен данными в формате XML" документы и справочники сопоставляются по определенным правилам. Мы должны учитывать это при создании правил:

    • Документы: Обычно сопоставляются по уникальному идентификатору (УИД). Если УИД не совпадает, документ может быть создан как новый.
    • Номенклатура: Сначала по УИД, затем по коду, при его отсутствии — по наименованию. Крайне важно, чтобы коды или наименования были уникальными, иначе возможны ошибки сопоставления.
    • Контрагенты: По УИД, затем по ИНН/КПП. При их отсутствии — по наименованию. Для точности рекомендуется использовать ИНН/КПП.
    • Организации: По ИНН и КПП.

    Мы должны убедиться, что логика сопоставления в наших правилах соответствует этим принципам и обеспечивает корректное обновление существующих объектов, а не создание дублей.

  4. Использование готовых специализированных правил:

    Существуют коммерческие правила обмена, разработанные сторонними специалистами для обмена между УТ 11.4 и БП 3.0 различных релизов. Эти правила часто поставляются с открытым кодом. Они могут стать отличной отправной точкой, позволяя нам не начинать с нуля. Однако, учитывая доработки в вашей УТ 11.4, они все равно потребуют внесения изменений для учета нестандартных объектов или реквизитов.

Общие рекомендации при работе с правилами обмена

Независимо от выбранного пути, существуют общие рекомендации, которые помогут нам избежать серьезных проблем:

  1. Резервное копирование:

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

  2. Тестирование:

    Все изменения в правилах обмена необходимо тщательно тестировать на копиях баз данных. Мы должны проверять не только успешность самого обмена, но и корректность загруженных данных, их проведение, формирование отчетов. Особое внимание следует уделять новым реквизитам, суммам, остаткам и документам, связанным с прослеживаемостью.

  3. Универсальный обмен данными в формате XML:

    Для загрузки и выгрузки данных с использованием внешних файлов правил обмена (с расширением .xml) в конфигурациях 1С используется стандартная обработка Универсальный обмен данными в формате XML. Мы будем использовать ее для тестирования и запуска обмена.

  4. Актуальность версий:

    Если нам все же удастся обновить УТ 11.4 (например, после переноса доработок в расширения), мы должны убедиться, что правила обмена предназначены именно для актуальных релизов УТ 11.4 и БП 3.0. Несоответствие версий правил и конфигураций также может привести к ошибкам.

Таким образом, когда обновление конфигурации УТ 11.4 невозможно из-за глубоких доработок, основным путем обеспечения корректной синхронизации с Бухгалтерией 3.0 является создание или серьезная доработка собственных правил обмена с использованием конфигурации "Конвертация данных". Этот процесс требует глубокого понимания структуры обеих конфигураций, включая функционал прослеживаемости, и навыков программирования на платформе 1С.

← На главную