На рассмотрении

+4

Несколько обменов с 1С

Александр Сафонкин Обновлен 5 лет назад в категории CMS Общий функционал 3

Всем привет.

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

1) При большом количестве данных (я имею ввиду, когда у вас более 50 тыс позиций в выгрузке, в моем случае более 200 тыс) происходит обрыв связи спустя несколько суток. Нам же выгружаться несколько суток - это не совсем то, что нужно. Решение было найдено быстро и мы решили выгружать позиции порциями создав несколько обменов по 10-20 тыс позиций. (при таком объеме нужно отключать выгрузку изображений, иначе будет очень долго идти обмен. Конечно все индивидуально, но проблема такая существует в 1С Предприятие УТ 10, но она актуальна и для других..)
2) Создав несколько обменов мы посчитали, что проблема решена, но это далеко не так. В Административной части имеется модуль "Обмен данными", при установки галочки в настройках модуля: "Обмен данными" - Что делать с товарами, отсутствующими в файле импорта? = Удалять/Деактивировать, кажется, что имея несколько обменов будет все норм, но это не так. Представим, что у нас имеются 5 отдельных обменов, мы запускаем выполняться первый обмен, затем второй и т.д., на сайте мы увидим, что все товары появились и все хорошо. Тут таится другая острая проблема - это остатки товара и их видимость на сайте. Представьте, что в настройках "Обмена данными", Что делать с товарами, отсутствующими в файле импорта? = Деактивировать, в этом случае вы делаете первый обмен данными и после этого хотите сделать второй, делаете второй обмен и замечаете, что все позиции из первой выгрузки отключились и не видны. Происходит это из-за того, что RS не учитывает идентификатор выгрузки и тем самым не знает о том, какой это обмен 1, 20 или 50-й по сути RS без разницы какой обрабатывать т.к. он лишь исполнитель.
3) Остатки товаров - в случае если при первом обмене у нас в 1С было на остатках по одной позиции 1 шт, то после продажи этого товара оффлайн в магазине его остаток ноль, но сайт еще об этом не знает. Мы думаем, что запустив снова обмен, остаток обновится, но это не так. В обмен остаток нулевой не попадет (зависит от настроек). После того как обмен будет выполнен, на сайте остаток не изменится.

Так как у каждого обмена есть уникальный GUID, необходимо реализовать механизм при котором, каждый обмен будет учитываться по GUID и RS будет понимать, какая именно выгрузка сейчас идет и к каким товарам нужно применять настройки обмена.

Комментарии 3

  • Сергей Токарев 5 лет назад

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

  • Павел С 5 лет назад

    Советую сразу писать индивидуальное решение под себя работающее через API RS, а все остальное это колхоз и пустая трата времени и нервов.

    • Александр Сафонкин 5 лет назад

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

Написать сообщение