Как найти исходную версию модулей «ОбменССайтом» для анализа доработок

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

При работе с базами, которые длительное время находились на поддержке у сторонних организаций, программисты часто сталкиваются с ситуацией, когда в типовую конфигурацию (например, Управление торговлей 10.3 или УПП 1.3) внедрены объекты для обмена с интернет-магазином. Основная сложность возникает, когда названия обработок — ОбменССайтом и ПомощникНастройкиОбменаДаннымиССайтом — не имеют характерного префикса Б_, а в конфигурации поставщика эти объекты отсутствуют. Рассмотрим подробно, как определить «донора» этих объектов и найти их исходный код для выявления внесенных изменений.

Разбираемся в причинах отсутствия префикса «Б_»

Для начала проанализируем исторический контекст развития интеграции «1С-Битрикс» и фирмы «1С». Это поможет нам понять, в какую сторону направить поиск. Отсутствие префикса Б_ в именах объектов однозначно указывает на один из двух вариантов:

  1. Использование встроенного механизма «1С»: В определенный период развития платформы 8.2 и конфигураций на обычных формах (УТ 10.3, УПП 1.3, КА 1.1), фирма «1С» включала модули обмена с сайтом в состав типовой поставки. Это был совместный продукт «1С» и «Битрикс». Объекты назывались именно так: ОбменССайтом, ПомощникНастройкиОбменаДаннымиССайтом и справочник НастройкиОбменаССайтом.
  2. Устаревшие модули «Битрикс» (версии ниже 4.0): До выпуска четвертой версии модуля интеграции компания «Битрикс» не использовала префиксы для своих объектов. Если франчайзи внедряли обмен в 2012–2014 годах, они, скорее всего, использовали линейку модулей 3.х.

Проанализируем ситуацию: если ваша конфигурация — это старая версия «Управление торговлей 10.3» (выпуска до середины 2013 года), велика вероятность, что эти объекты были там изначально, но при очередном обновлении их могли снять с поддержки или оставить «как есть», в то время как «1С» исключила их из новых релизов.

Методика поиска исходной конфигурации-донора

Чтобы найти «чистые» исходники, нам необходимо выполнить несколько последовательных шагов. Рассмотрим их подробнее.

Шаг 1. Идентификация версии через код. Откроем модуль обработки ОбменССайтом в конфигураторе и попробуем найти упоминание версии модуля. Даже если разработчики не вынесли версию в отдельную константу, она часто встречается в комментариях в самом начале текста модуля или в процедурах регистрации обработки. Ищите по ключевым словам Version, Версия или v..

Шаг 2. Поиск в архивах на сайте разработчика. Проанализируем официальный ресурс «1С-Битрикс». Несмотря на то что на главной странице загрузок предлагаются современные версии (начиная с 4.0 и выше с префиксами), в архивах часто можно найти версии линейки 3.x.x.x. Скачаем дистрибутив версии 3.0.1.1 или аналогичной для вашей конфигурации. Внутри таких дистрибутивов объекты будут иметь идентичные названия без префиксов.

Шаг 3. Обращение к старым дистрибутивам «1С». Если поиск на сайте «Битрикс» не дал результатов, нам следует обратиться к архиву типовых конфигураций «1С». Например, в «Управление торговлей 10.3.20.2» эти объекты присутствовали в типовой поставке. Выясним примерную дату внедрения вашей системы и скачаем соответствующий релиз того времени с портала ИТС или из архива дистрибутивов. Сравнение вашей базы с этим релизом через механизм «Сравнение, объединение с конфигурацией из файла» сразу подсветит все изменения, внесенные франчайзи.

Анализ кода и выявление доработок

Когда исходная версия найдена, приступим к самому важному — анализу кода. Рассмотрим основные места, где чаще всего вносятся изменения. Как правило, франчайзи дорабатывают логику формирования XML-файлов или механизмы отбора данных.

Проанализируем структуру модуля обработки ОбменССайтом. Особое внимание уделим следующим процедурам:

Посмотрим на пример того, как может выглядеть типичная доработка в старом модуле. Допустим, стандартный код просто берет цену, а франчайзи добавили условие по спеццене для сайта:


// Стандартный код
ЦенаТовара = ПолучитьЦену(Товар, ТипЦен);

// Вероятная доработка франчайзи
Если НастройкаОбмена.ИспользоватьСпецЦены Тогда
    ЦенаТовара = МодульЦенообразования.ПолучитьСпецЦенуДляСайта(Товар);
Иначе
    ЦенаТовара = ПолучитьЦену(Товар, ТипЦен);
КонецЕсли;

Выясним причину изменений в справочнике НастройкиОбменаССайтом. Если в форме справочника вы видите флажки или поля, которых нет в «чистой» версии, значит, логика обмена была расширена пользовательскими настройками. Это критически важный момент для понимания того, какой функционал ожидает бизнес от системы.

Практические рекомендации по работе с наследием

Если ваша задача — не просто изучить код, а обновить обмен или исправить ошибки, проанализируем ситуацию стратегически. Старые модули (без префиксов) работают по стандарту CommerceML 2.05, который имеет множество ограничений.

Вариант 1. Точечное исправление. Если доработок немного (до 10% кода), целесообразно продолжать использовать текущую версию, предварительно зафиксировав все изменения в комментариях. Это позволит вам беспрепятственно понимать логику системы в будущем.

Вариант 2. Переход на новый модуль. Если доработок много, но они хаотичны, рекомендуем рассмотреть установку современного модуля от «Битрикс» (версии 7.х или выше с префиксом Б_). Преимущество в том, что новые модули устанавливаются параллельно и не конфликтуют с вашими объектами ОбменССайтом. Вы сможете постепенно перенести нужную бизнес-логику в новый механизм, используя современные возможности (например, выгрузку через JSON или более гибкие отборы по складам).

Выясним, стоит ли тратить время на поиск именно той «самой» версии. Если после сравнения с 2–3 похожими релизами вы видите, что структура кода совпадает на 95%, то оставшиеся 5% и есть те самые доработки. Нет необходимости искать версию до четвертого знака после запятой — достаточно найти базовый «каркас», чтобы понять вектор мысли предыдущего разработчика.

В завершение проанализируем справочник НастройкиОбменаССайтом. Часто франчайзи не меняют код обработки, а добавляют в этот справочник дополнительные реквизиты, которые затем используются в запросах внутри обработки ОбменССайтом. Проверьте состав реквизитов справочника через «Поиск ссылок на объект». Это поможет быстро локализовать все места в коде, где используется нестандартная логика.

← На главную