Двусторонний HTTP-обмен между УТ 10.3 и УТ 11.5: поэтапная миграция без остановки бизнеса

16.02.26

Интеграция - Перенос данных 1C

Столкнулись с необходимостью миграции с УТ 10.3 на УТ 11, но не можете остановить бизнес-процессы на складе и в интернет-магазине? В статье — рабочее решение двустороннего обмена данными между разнотипными конфигурациями через HTTP-сервисы.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Объекты для УТ 10.3
.cf 128,75Kb
8 2 500 руб. Купить
УТ10.3. Обработка для ручной отправки данных в УТ 11
.epf 9,21Kb
8 2 500 руб. Купить
УТ11.5. расширение для обмена с УТ10.3.
.cfe 188,76Kb
8 2 500 руб. Купить
HTTP-обмен между УТ 10.3 и УТ 11.5 (общий архив с исходниками)
.zip 236,84Kb
17 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Введение

При переходе на новую платформу многие сталкиваются с проблемой: "старая" система (УТ 10.3) обросла уникальными доработками под складские и бизнес-процессы, и мгновенный перенос всего функционала в УТ 11 невозможен или слишком рискован.

Видел много материалов по обмену между идентичными конфигурациями. Однако наш случай — потребовал нестандартного подхода. Готовых правил обмена КД не нашли, а разработка и тестирование новых правил обмена в КД с нуля представлялась гораздо более трудоемкой, чем написать представленный механизм, который позволил:

  1. Запустить розницу на УТ 11.5 + РМК без остановки продаж.

  2. Сохранить управление складом и интеграцию с сайтом в доработанной УТ 10.3.

  3. Обеспечить единство НСИ и остатков в обеих системах.

Это решение — не готовая коробка, а подробный кейс с архитектурой, кодом и "граблями", который будет полезен разработчикам:

  • которым нужен рабочий пример HTTP-обмена.

  • планирующим поэтапную миграцию между разными версиями конфигураций 1С.

 

Предпосылки и постановка задачи

В торговой организации (розница + распределительный склад + интернет-магазин) исторически сложился учет на базе УТ 10.3. За годы эксплуатации конфигурация была серьезно доработана под нужды торговли и складской логистики.

Было принято решение:

  • Новую розницу разворачиваем на УТ 11.5 с использованием РМК. Отказ от УТ10.3 в розничных магазинах не предвещал проблем. 

  • Складские процессы и обмен с сайтом оставляем на проверенной временем УТ 10.3.

Ключевые требования к обмену:

  • Двусторонняя синхронизация. Данные должны передаваться в обе стороны.

  • Единая НСИ. Ввод всей нормативно-справочной информации (справочники) должен производиться в УТ 10.3 и автоматически мигрировать в УТ 11.5.

  • Актуальные остатки. Остатки товаров на складах должны быть идентичны в обеих системах.

  • Поэтапность. Возможность постепенно переносить наработанный в функционал из старой системы (УТ 10.3. ) в новую (УТ 11.5.).

 

Архитектура обмена

Обмен построен на прямой передаче данных через HTTP-сервисы. Это позволило избежать промежуточных файлов и обеспечить приемлемую скорость.

Ключевые принципы:

  1. Синхронизация по GUID. Все ссылочные объекты (справочники, документы) синхронизируются между разными информационными базами по глобальным уникальным идентификаторам (GUID). Это гарантирует, что один и тот же элемент не раздвоится.

  2. HTTP-сервисы как транспорт. В каждой из конфигураций опубликован свой HTTP-сервис (/hs/api/), который принимает данные от системы-источника.

  3. Регламентные задания. Обмен инициируется по расписанию из обеих ИБ.

  4. УТ10. была давно снята с поддержки, поэтому изменения делал непосредственно в ней (Общий модуль, План обмена, Http-Сервис, Регламентное задание).

  5. Расширение для УТ 11. Так как вмешательство в типовой код УТ 11 не предполагалось, вся логика вынесена в расширение.

 

Логика работы:

  • УТ 10.3 выступает в роли мастера по НСИ. Справочники создаются и изменяются здесь, после чего отправляются в УТ 11.5.

  • УТ 10.3 - основной источник товародвижения. Приход, перемещения итд. формируется в УТ10.3. и так же отправляется в УТ 11.5.

  • УТ 11.5 выступает в роли источника розничных продаж(ОРП, возвраты, реализации, заказы клиентов, заказы на перемещение с ЦС) и отправляет их в УТ 10.3.

 

Состав обмениваемых данных

Бизнес процесс построен так, что есть возможность разделить потоки данных, чтобы избежать циклических зависимостей и корректно отражать специфику учета в каждой системе.

Из УТ 10.3 (источник НСИ и складских документов) в УТ 11.5

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

Товародвижение (Приход):

  • Поступление товаров и услуг

  • Перемещение товаров

  • Оприходование товаров

  • Возврат товаров от покупателя

Товародвижение (Расход) и Заказы:

  • Реализация товаров и услуг

  • Отчет о розничных продажах (из УТ 10, если были возвраты или продажи)

  • Кассовая смена

  • Списание товаров

  • Возврат товаров поставщику

  • Комплектация номенклатуры

  • Заказ покупателя

  • Заказ поставщику

Денежные документы и прочее:

  • Платежные поручения (входящие/исходящие)

  • Кассовые ордера (приходные/расходные)

  • Установка цен номенклатуры

  • Счета-фактуры (выданные/полученные)

  • Требование-накладная

Из УТ 11.5 (источник розничных данных) в УТ 10.3

  • Отчет о розничных продажах

  • Отчет о розничных возвратах

  • Кассовая смена

  • Заказ на перемещение

  • Заказ клиента

  • Реализация товаров и услуг (если она была оформлена в розничной базе)

Важно: Состав документов, передаваемых из УТ 11, может быть расширен. В нашем случае он диктовался потребностями складского учета в "старой" системе, количество объектов обмена продолжает наращиваться.

Детали реализации

Разработанный код не претендует на эталонную чистоту, но полностью работоспособен. Версии платформы и конфигураций, на которых текущий механизм работает сейчас: УТ 10.3.75.2 и УТ 11.5.25.85.

Для УТ 10.3:

  1. План обмена: Создан план обмена "ОбменУправлениеТорговлейУТ10_11". Для всех участвующих объектов установлена авторегистрация = Истина.

  2. HTTP-Сервис: "API" с двумя методами:

    • version — возвращает версию сервиса (используется для проверки доступности).

    • load_ut10 — точка входа для загрузки данных из УТ 11 в УТ 10.

  3. Общий модуль: "ОбщегоНазначенияОбменУТ10_УТ11" — содержит всю логику выгрузки и загрузки данных.

  4. Регламентное задание: "ОбменУТ11" — по расписанию отправляет зарегистрированные изменения в УТ 11.

  5. Внешняя обработка: "УТ10_в_УТ11_ОтправкаДанных.epf" — для тестирования и ручной отправки.

Для УТ 11.5:

  • Создано расширение с зеркально-симметричной логикой. В нем также реализованы HTTP-сервис для приема данных из УТ 10 и регламентное задание для отправки розничных данных обратно.

 

Настройка подключения

Предполагается, что веб-сервер (Apache или IIS) уже настроен, и обе базы опубликованы стандартным образом.

Общий принцип: Настройки подключения (адрес, пользователь, пароль, метод) указываются в элементах плана обмена.

Настройка в УТ 10.3

  1. Откройте план обмена "ОбменУправлениеТорговлейУТ10_11".

  2. Центральный узел: должен иметь код UT10 (менять нельзя).

  3. Создайте или откройте периферийный узел с кодом UT11.

  4. Заполните настройки для этого узла:

    • Адрес сервера, пользователь, пароль для доступа к базе УТ 11.

    • Имя метода: /<имя_вашей_публикации_УТ11>/hs/api/load_ut10 (например, /ut11_base/hs/api/load_ut10).

    • При необходимости укажите фильтр по организации и размер пакета.

 

Рис.1. Пример настройки узла обмена в УТ 10.3Рис.1. Пример настройки узла обмена в УТ 10.3

 

Настройка в УТ 11.5

  1. В расширении откройте настройки плана обмена.

  2. Центральный узел: код UT11.

  3. Периферийный узел: код UT10.

  4. Укажите параметры подключения к базе УТ 10.3:

    • Адрес, пользователь, пароль.

    • Имя метода: /<имя_вашей_публикации_УТ10>/hs/api/load_ut11.

 

Рис.2. Пример настройки узла обмена в расширении для УТ 11Рис.2. Пример настройки узла обмена в расширении для УТ 11

 

Управление обменом

Для отладки и разовых отправок можно использовать созданные обработки.

  • Ручная отправка данных из УТ 10.3. 

 

(Рис.3)

  • Ручная отправка данных из УТ 11.5. 

 

(Рис.4)

(Рис.4)

 

Особенности эксплуатации и выводы

Предложенное решение успешно эксплуатируется уже долгое время. Это позволило перевести розничные магазины с УТ10.3. на УТ11.5., не останавливая работу магазинов, основного склада и интернет-магазина.

Плюсы подхода:

  • Поэтапная миграция. Возможность постепенно переносить функционал из старой системы в новую, не создавая "большого взрыва".

  • Гибкость. Легко добавлять новые документы и справочники в обмен по мере необходимости.

  • Прозрачность. Использование HTTP-запросов упрощает мониторинг и отладку.

Минусы и ограничения:

  • Код развивался эволюционно, поэтому его чистота далека от идеала. Это скорее рабочая лошадка, чем эталонный код.

  • Требует аккуратности при доработках в обеих системах.

  • Как шаблон подойдет под другие конфигурации, адаптация выглядит не сложной.

Материалы распространяются "как есть" (AS IS). Обновления и исправления будут выкладываться по мере дальнейшей эксплуатации. Претензии из серии "зачем это нужно" не принимаются, но конструктивная критика и предложения по улучшению приветствуются.

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей, редакция 10.3, релизы 10.3.75.2
  • Управление торговлей, редакция 11, релизы 11.5.25.85

Вступайте в нашу телеграмм-группу Инфостарт

HTTP HTTP-обмен УТ 10.3 УТ 11.5

См. также

Перенос данных 1C Программист 1С:Предприятие 8 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

58000 руб.

04.08.2015    184970    432    299    

440

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

50050 руб.

25.02.2015    186762    349    284    

411

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

22650 руб.

12.06.2017    158416    947    317    

478

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.264.x) и БП 3.0 (3.0.192.x). Правила подходят для версии ПРОФ и КОРП.

38000 34200 руб.

15.12.2021    32856    244    61    

184

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Правила переноса кадровых и расчетных данных и справочной информации из "1С:УПП1.3" или "1С:КА 1.1" в "1С:ЗУП 3.1 | Разработан в формате КД 2 (правила конвертации данных) | При выгрузке есть фильтр по организациям | Обновляется при выходе новых релизов 1С | Развитие алгоритмов | Расчетные документы переносятся в документ "Перенос данных" | Создаются документы "Начальная штатная расстановка" и "Начальная задолженность по зарплате", переносятся кадровые документы

58000 руб.

29.10.2018    61642    77    129    

76

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 3, УНФ 3 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

16531 руб.

18.02.2016    200376    662    543    

559

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.25.x).

38000 34200 руб.

23.07.2020    66448    309    86    

248

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

58000 руб.

15.04.2019    82268    220    170    

159
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. IvanTerentev 15 16.02.26 13:27 Сейчас в теме
предложения по улучшению приветствуются

1) На форме узла плана обмена вместо адреса ресурса лучше указывать имя публикации, а приведение к нужному формату захардкодить, т.к у пользователей часто возникают трудности с правильным заполнением хвоста "/hs/api/load_ut11/"
2) Вместо формы ручного обмена можно использовать типовую
Обработка.РегистрацияИзмененийДляОбменаДанными.Форма

3) На форму узла плана обмена можно вынести флажок использования защищенного соединения
2. DenIv 20 16.02.26 13:30 Сейчас в теме
Согласен, доработаю
3. evn-zorin 36 17.02.26 17:37 Сейчас в теме
зачем такие сложности?
есть ут 10.3, есть бп 3.0. между ними у всех обмен.
Розницу и всё связанное с маркировкой проводим в БП 3.0.
в ут 10.3 продолжаем вести управленческий учёт без остановки. ВСЁ.
4. P__Slava 26.02.26 16:58 Сейчас в теме
В файле конфигурации Объекты для УТ 10.3 в плане обмена ОбменУправлениеТорговлейУТ10_11 не заполнен состав?
5. DenIv 20 27.02.26 14:17 Сейчас в теме
(4) Объекты для УТ 10.3 - это вырезка логики из УТ10.3, в этой "вырезке" нет документов и справочников, соответственно нет возможности заполнить Состав. Эта вырезка по идее нужна, для объединения с УТ10.3, в которой уже заполнить Состав будет возможно.
6. P__Slava 27.02.26 19:35 Сейчас в теме
Спасибо, настроил обмен. Обработкой из УТ10 пересылает объекты в УТ11, УТ11 получает. А через план обмена и регламентное задание не получается, пишет:

Модуль: ОбщийМодуль.ОбщегоНазначенияОбменУТ10_УТ11.Модуль; Вид объекта: ; Ошибка: Ошибка при вызове метода контекста (УстановитьСтроку); Причина: Несоответствие типов (параметр номер '1'); Исходная строка: ЧтениеJSON.УстановитьСтроку(СтрокаJSON);; Строка №: 118; Дополнительно: Ошибка десериализации JSON:Да;

Куда можно копнуть?
7. DenIv 20 27.02.26 22:18 Сейчас в теме
(6)
десериализации

Добрый день. Нужно в отладчике посмотреть на переменную "СтрокаJSON". Если я правильно понимаю речь идет о функции:

Функция ДесериализоватьОбъектИзJSON(СтрокаJSON)	
	Данные = Неопределено;
	ИмяПроцедуры = "ДесериализоватьОбъектИзJSON";
	Попытка
		ЧтениеJSON = Новый ЧтениеJSON;
		ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
		СвойстваСДатой = "Дата,ДатаВходящегоДокумента,ДатаИсправления,ДоверенностьДата,ДатаВыставления,ДатаОплаты,ДатаПоступления,ДатаОтгрузки";
		Данные = ПрочитатьJSON(ЧтениеJSON,, СвойстваСДатой, ФорматДатыJSON.ISO);
		ЧтениеJSON.Закрыть();
	Исключение   
		Комментарий = "Ошибка десериализации JSON:" + Лев(СтрокаJSON, 50);
		СформироватьСообщениеЛога(ИмяПроцедуры, Неопределено, ИнформацияОбОшибке(), Неопределено, "!", Комментарий);
	КонецПопытки;
		
	Возврат Данные;
КонецФункции
Показать


Поставьте точку останова по ошибке на строке:
Комментарий = "Ошибка десериализации JSON:" + Лев(СтрокаJSON, 50);


и кода выпадет в ошибку, посмотрите что не так с СтрокаJSON.

С десериализацией были проблемы, но только с реквизитами, типа "Дата" , посмотрите пристально на значения с датами, все реквизиты "Дата", которые встречались у меня в обмене я перечислил в в переменной: СвойстваСДатой, возможно у Вас какой-то атрибут, который не перечислен?

+ в ЖР будет зафиксирована ошибка "Ошибка десериализации JSON:", но там будет только первые 50 символов из СтрокаJSON.
8. P__Slava 04.03.26 11:52 Сейчас в теме
(7) Что-то не могу запустить отладку фоновых заданий на это старой базе. Но в ответе СтрокаJSON = "Да". И все. Можете помочь с этим?
9. DenIv 20 04.03.26 16:03 Сейчас в теме
(8) Добрый день. Логика модулей обмена построена симметрично для обеих информационных баз и заключается в следующем:

Прием данных осуществляется через HTTP-метод load_ut10 (или load_ut11 соответственно). Модуль-обработчик (например, ЗагрузитьДанныеУТ10/11) получает строку JSON от базы-отправителя.

Десериализация полученной строки JSON в структуру данных:
ДанныеДляЗагрузки = ДесериализоватьОбъектИзJSON(СтрокаJSON);


В результате переменная ДанныеДляЗагрузки содержит структуру, где:

Ключ — вид объекта метаданных (справочник, документ и т.д.);

Значение — массив объектов. Каждый элемент массива представляет собой соответствие (ключ — имя реквизита, значение — данные реквизита).

Чтобы локализовать проблему, необходимо точно определить, на каком этапе возникает ошибка.

Сценарий 1. Ошибка возникает при десериализации JSON.
Если ошибка воспроизводится в строке
ДанныеДляЗагрузки = ДесериализоватьОбъектИзJSON(СтрокаJSON);

выполните следующие шаги:

Установите точку останова непосредственно перед этой строкой в базе-приемнике.

Выполните сеанс обмена и посмотрите содержимое переменной СтрокаJSON, полученной от базы-отправителя.

Значение СтрокаJSON = "Да" является не типичным и я такой ответ не встречал. В корректной работе из базы-отправителя должна передаваться строка, содержащая сериализованные данные объектов, зарегистрированных в плане обмена.

Сценарий 2. В базу-приемник передается некорректная строка JSON.
В этом случае диагностику следует продолжить на стороне базы-отправителя:

Откройте общий модуль, отвечающий за отправку данных (например, ОбменУТХХ_УТYY — точное наименование зависит от конфигурации).

Найдите процедуру формирования и отправки пакета данных (обычно это ОтправитьИзменения() или ОтправитьПакетДанных(мИмя, МассивОтправка, УзелУТ)).

Найдите строку, где выполняется сериализация данных перед отправкой, например: СтрокаJSON = ПолучитьСтрокуJSON(ДанныеВыгрузки);.

Установите точку останова и проанализируйте, что именно записывается в переменную СтрокаJSON перед отправкой. Именно эта строка будет вставлена в тело HTTP-запроса к базе-приемнику.
Надеюсь, предложенная схема отладки поможет вам выявить причину.
10. DenIv 20 04.03.26 16:08 Сейчас в теме
(8) Добрый день. Логика модулей обмена построена симметрично для обеих информационных баз и заключается в следующем:

Прием данных осуществляется через HTTP-метод load_ut10 (или load_ut11 соответственно). Модуль-обработчик (например, ЗагрузитьДанныеУТ10/11) получает строку JSON от базы-отправителя.

Десериализация полученной строки JSON в структуру данных:
ДанныеДляЗагрузки = ДесериализоватьОбъектИзJSON(СтрокаJSON);


В результате переменная ДанныеДляЗагрузки содержит структуру, где:

Ключ — вид объекта метаданных (справочник, документ и т.д.);

Значение — массив объектов. Каждый элемент массива представляет собой соответствие (ключ — имя реквизита, значение — данные реквизита).

Чтобы локализовать проблему, необходимо точно определить, на каком этапе возникает ошибка.

Сценарий 1. Ошибка возникает при десериализации JSON.
Если ошибка воспроизводится в строке
ДанныеДляЗагрузки = ДесериализоватьОбъектИзJSON(СтрокаJSON);

выполните следующие шаги:
Установите точку останова непосредственно перед этой строкой в базе-приемнике.
Выполните сеанс обмена и посмотрите содержимое переменной СтрокаJSON, полученной от базы-отправителя.
Значение СтрокаJSON = "Да" является не типичным и я такой ответ не встречал. В корректной работе из базы-отправителя должна передаваться строка, содержащая сериализованные данные объектов, зарегистрированных в плане обмена.

Сценарий 2. В базу-приемник передается некорректная строка JSON.
В этом случае диагностику следует продолжить на стороне базы-отправителя:
Откройте общий модуль, отвечающий за отправку данных (например, ОбменУТХХ_УТYY — точное наименование зависит от конфигурации).
Найдите процедуру формирования и отправки пакета данных (обычно это ОтправитьИзменения() или
ОтправитьПакетДанных(мИмя, МассивОтправка, УзелУТ)).

Найдите строку, где выполняется сериализация данных перед отправкой, например:
СтрокаJSON = ПолучитьСтрокуJSON(ДанныеВыгрузки);.

Установите точку останова и проанализируйте, что именно записывается в переменную СтрокаJSON перед отправкой. Именно эта строка будет вставлена в тело HTTP-запроса к базе-приемнику.
Надеюсь, предложенная схема отладки поможет вам выявить причину.
11. Tarlich 91 11.03.26 11:04 Сейчас в теме
Прошу подсказать - если с 26 года хотим в 11 то лучше в коде указать что бы ошибки пользователя не было ?
в коде какие виды спр и док ВЫ реализовали (только те что на фото в УТ11)? Стараетесь дублировать все док базах ? или в УТ 11 синхронизируется рег ОстаткиТоваров(Организаций) и вам этого хватает , просто не вижу списание, оприходование, поступление ... установка цен ?
т.к заказы прилетают в УТ 10 из разных систем , возможно под наши нужды хочу допилить что бы склад в 11 добавил отгрузки марками и в 11 эдо ...
12. DenIv 20 14.03.26 10:52 Сейчас в теме
(11)
или в УТ 11 синхронизируется рег ОстаткиТоваров(Организаций) и вам этого хватает , просто не вижу списание, оприходование, поступление ... установка цен ?

Добрый день! Постараюсь ответить максимально подробно.
Вы совершенно правильно обратили внимание на ключевые моменты — состав объектов, логику синхронизации остатков. Давайте по порядку.

1. Состав объектов обмена (реализовано в продуктивном решении)
В демо-версии (вырезке) для УТ 10 состав объектов пустой, т.к. разработать расширение для УТ10 не представлялось возможным, а выкладывать целиком всю конф УТ10 то же не реально. Поэтому в исходниках 10.3 состав плана обмена пустой. Ниже привожу полный перечень того, что реально работает в "боевом" обмене и включено в составы планов обмена.

Из УТ 10.3 в УТ 11.5 (мастер-система по НСИ и складским операциям):

1. Справочники (полная синхронизация НСИ):[/B]
Банки, БанковскиеСчета, Валюты, ВидыКонтактнойИнформации, ВидыНоменклатуры, ДоговорыКонтрагентов, ЕдиницыИзмерения, Кассы, КассыККМ, КлассификаторЕдиницИзмерения, КлассификаторСтранМира, Контрагенты, Номенклатура, Организации, Подразделения, Пользователи, Склады, ТипыЦенНоменклатуры, ТипоразмерыУпаковок, ФизическиеЛица.

2. Документы (приход, расход, заказы, деньги):[/B]
ВозвратТоваровОтПокупателя, ВозвратТоваровПоставщику, ЗаказПокупателя, ЗаказПоставщику, КассоваяСмена, КомплектацияНоменклатуры, ОприходованиеТоваров, ОтчетОРозничныхПродажах (ОРП), ПеремещениеТоваров, ПоступлениеТоваровУслуг (ПТУ), ПлатежноеПоручениеВходящее/Исходящее (ППВ/ППИ), Приходный/Расходный КассовыйОрдер (ПКО/РКО), РеализацияТоваровУслуг (РТУ), СписаниеТоваров, СчетаФактуры (выданные/полученные), УстановкаЦенНоменклатуры.

3. Регистры сведений:
ШтрихКоды.

4. Планы видов характеристик:
СвойстваОбъектов.

Из УТ 11.5 в УТ 10.3 (розничные операции):

1. Документы:
ОтчетОРозничныхПродажах (ОРП), ЗаказКлиента, ЗаказПокупателя, КассоваяСмена, РеализацияТоваровУслуг (РТУ), ЗаказНаПеремещение.

Почему именно такой состав? (Про дублирование документов и остатки)
Вы совершенно верно уловили суть: мы не ставили цели дублировать все документы во всех базах.
Главный критерий включения объекта в обмен — обеспечение тождественности остатков товаров и денежных средств между системами.

На текущем этапе в УТ 11 работает только розница. Поэтому в неё из УТ 10 летят документы прихода (поступление, перемещение, оприходование), чтобы на розничных складах (в УТ 11) всегда были актуальные остатки. Обратно из УТ 11 в УТ 10 летят розничные продажи и возвраты, чтобы списать товар со склада в УТ 10.

Регистры остатков (например, ОстаткиТоваров) напрямую не синхронизируются. Их тождественность достигается именно за счет корректной и своевременной передачи всех движущих документов. Такой подход мы считаем более надежным и контролируемым.

Да, сейчас в списке нет, например, "Поступления" из УТ 11 в УТ 10 — это и не нужно, так как товар приходит на центральный склад (УТ 10). Как только в УТ 11 начнут работать другие процессы, состав документов для обратной связи будет расширен. Архитектура это позволяет.

Как добавить новый объект в обмен (инструкция по доработке)
Допилить решение под свои нужды (склад в УТ 11, маркировка, ЭДО) — задача реальная и не сверхсложная. Алгоритм действий единообразен для большинства объектов:

1. Включите объект в план обмена на источнике (галочка авторегистрации).

2. В конфигурации-источнике в общем модуле ОбщегоНазначенияОбменУТХХ_УТХХ:
- Напишите процедуру выгрузки данных по этому объекту (или используйте готовую универсальную ВыгрузитьПростойОбъект, если структура реквизитов совпадает или легко приводится).
- Добавьте вызов этой процедуры в основной алгоритм ОтправитьИзменения().

5. В конфигурации-приемнике (УТ 10) в модуле HTTP-сервиса:
- Напишите процедуру загрузки (или используйте универсальную ЗагрузитьПростойОбъект).
- Добавьте её вызов в процедуру ЗагрузитьДанныеУТХХ().

В тексте кода приведено много примеров использования универсальных процедур. Если объекты в источнике и приемнике различаются только по именам реквизитов — это самый быстрый путь.
Для отправки сообщения требуется регистрация/авторизация