понедельник, 20 марта 2017 г.

Как обновить интегрированные Битрикс и 1С УТ?

Интеграция Битрикс и 1С УТ - достаточно трудоемкий процесс в плане настройки и тестирования. Поэтому многие клиенты, вложившись 1 раз в интеграцию этих систем, зачастую не обновляются годами, чтобы не вкладываться в перенастройку, особенно если обмен кастомизирован на стороне сайта и/или на стороне 1С.

Однако возникают ситуации, когда обновляться приходится всем поголовно, как это произошло с выходом в нынешнем году поправки к закону 54-ФЗ о контрольно-кассовой технике и с выходом обновлений 1С-Битрикс, позволяющих владельцам интернет-магазина работать в соответствии с современным звучанием данного закона.

Самые частые вопросы, которые я получаю теперь от своих интегрированных ранее клиентов - это: «Можно ли обновиться малой кровью?» и «Можно ли обновить только сторону сайта, оставив без изменения модуль на стороне 1С?».

Забегая вперед, скажу, что малой кровью (за 2 пары выходных дней) обновиться и отладить обмен по-новой в большинстве случаев возможно. И да, можно для начала обновить только сторону сайта, НО… А про но - дальнейшая часть поста. 



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

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

Как сохранить кастомные доработки модуля обмена на стороне 1С?

Изначально при внесении изменений в модуль обмена на стороне 1С стоит оборачивать эти изменения заметными комментариями, тогда особых проблем при будущем обновлении модуля обмена на стороне 1С - не возникнет.

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

Чего ожидать, если принято решение обновить только сторону сайта?

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

Обмен заказами может попытаться выгрузить из 1С все заказы вообще, и не поможет даже установка точки актуальности. Решается пересохранением узла обмена, сбросом зарегистрированных по заказам изменениям. (Эта проблема может возникнуть и после обновления модуля на стороне 1С).

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

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


В целом все возникающие проблемы решаемы и поправимы.

Комментариев нет: