Организация данных и вариант обработки для организации обмена с сайтом

25.10.20

Интеграция - Сайты и интернет-магазины

В статье опишу вариант организации данных и обработки для обмена с сайтом.

Вводные

  • Конфигурация 1С: Управление торговлей 11
  • Сайт с возможностью обмена по API и отсутствием хранения внешних ключей, например WooCommerce (документация), PrestaShop (документация)
  • Требуется организовать
    • обмен справочниками
    •  обновление цен/остатков
    • загрузку заказов
  • Настройка обмена с сайтом вынесена в отдельный справочник

Реализация

Общее описание

Храню внешних ключи в регистре сведений. Регистрацию изменений сделал за счет регистра сведений

Перед отправкой данных проверяю есть ли ключ для объекта 

  • если есть то формирую тело запроса, проверяю на совпадение с хешем,
    • если не совпадает то использую PUT запрос 
  • если ключа нет, то использую POST запрос.

Если элемент успешно обработан, то

  • при добавлении фиксирую его ключ
  • фиксирую отправленный хэш
  • удаляю регистрацию
 
 ос_ОбработкаДанныхОбъекты.ОбработатьСостояниеОтправки()

 

Хранение внешних ключей

Использую регистр сведений "ос_ИдентификаторыОбъектов"

  • Измерения
    • НастройкаОбмена
    • ТипДанных
    • Объект
  • Ресурсы
    • Идентификатор, тип "Число", можно использовать и строку при необходимости, обычно во внешних системах ключ типа int()

 

Хранение хешей

Использую регистр сведений "ос_ОтправленныеДанные"

  • Измерения
    • НастройкаОбмена
    • Объект
  • Реквизиты
    • СтрокаДанныеХэш
    • Дата
 
 ос_ОбработкаДанныхОбъекты.ЗаписатьОтправленныеДанные()

 

Хранение изменений

Прочитав статью //infostart.ru/1c/articles/899200/ решил написать свой неблокируемый вариант. Общий подход: пишем изменения в регистр с "ТекущаяДата()", для отправки забираем изменения "ТекущаяДата() - 1", тем самым записи с которыми работам при обмене не пересекаются с записями которые формируются в ходе работы базы.

Для объектов использую регистр сведений "ос_ИсторияИзменений"

  • Измерения
    • НастройкаОбмена
    • Дата
    • Тип
    • Объект
 
 ос_ОбработкаДанныхОбъекты.ПолучитьМассивИзмененныхОбъектов()

 

Для регистров сведений формирую отдельные регистры "ос_ИсторияИзмененияОстатков" и "ос_ИсторияИзмененияЦен"

 

Выгрузка иерархии

Для выгрузки нужна была таблица групп номенклатуры отсортированная по уровням иерархии, вариант решения через транзитивное замыкание, описание в //infostart.ru/1c/articles/899200/.

 
 ПолучитьТЗГруппыНоменклатуры

 

Проект на GitHub (ссылка).

Проект в полусобранном состоянии, т.к. для универсального решения нужно выделить код из текущих наработок. Если нужно уточнить реализацию - пишите, по возможности проект уточню/расширю.

 

Благодарю за внимание.

См. также

Оплата товара "Долями" в 1С:Розница 2.3 (для работы с сервисом dolyame.ru)

Сайты и интернет-магазины Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку. Присутствует возможность работы подсистемы как с использованием в составе РИБ (распространение расширения в составе обновления Распределенной информационной базы, работа в рамках РИБ), так и отдельно.

20400 руб.

19.12.2023    2320    19    6    

17

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    16289    14    18    

14

Интеграция 1С и Битрикс 24 — модуль синхронизации для обмена задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    18495    10    15    

16

Парсинг сайтов и интернет магазинов: универсальный парсер товаров и цен, выгрузка данных каталога сайта

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

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

9600 руб.

19.10.2018    52724    220    101    

112

Интеграция API b2b.4tochki.ru (Форточки)

Прайсы Оптовая торговля Сайты и интернет-магазины Программист Пользователь Платформа 1С v8.3 Оперативный учет Управляемые формы 1С:Управление торговлей 11 Транспорт, автопарки, такси Управленческий учет Платные (руб)

Внешняя обработка адаптирована для УТ 11, предназначена для наполнения вашей базы данных товарами и сопутствующей информацией, предоставляемой b2b.4tochki.ru, обновления остатков и цен.

8160 руб.

31.01.2020    30653    11    7    

14
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. serg-lom89 76 22.09.20 08:54 Сейчас в теме
" Регистрацию изменений сделал за счет регистра сведений"
а чем план обмена не подходит?
2. malikov_pro 1303 22.09.20 09:16 Сейчас в теме
(1) Из статьи указанной в публикации
"Классическое решение проблемы блокировки
Какие проблемы возникают с планами обмена?

На операции ВыбратьИзменения(), в случае большого UPDATE происходят блокировки, следовательно, по этим объектам не проходят удаления и новая регистрация изменений."

Решил сделать удобный для себя инструмент, после "открыл" для себя в конструкторе запросов "Отображать таблицы изменений".
Для объектов работает, по остаткам оверхед получается. Все равно делается запись в индексированную таблицу, в моем случае записью управляю сам и могу группировать. Остатки могут меняться как на складе так и при изменении графика поставок.
3. Pixar0000 23.09.20 10:42 Сейчас в теме
название статьи "Организация данных и вариант обработки для организации обмена с сайтом"
после просмотра возникает вопрос, а что за "движок" на котором крутится сайт?
+ функция ПолучитьТЗГруппыНоменклатуры - явно чужая, если исходить из текста предыдущих
4. malikov_pro 1303 23.09.20 10:50 Сейчас в теме
(3) Писалось под REST API для битрикса https://infostart.ru/1c/articles/1185983/.
для WooCommerce и PrestaShop подойдет с их встроенным HTTP API.
"явно чужая" - она логически связана если дерево с внешними ключами выгружать.
Будет заказчик кому эта технология подойдет (объекты можно и через узел обмена прогнать), то допишу адаптеры, пока либо CML2 либо SQL через HTTP обертки.

Вариант сделать API прайса на PostgREST https://infostart.ru/1c/articles/1217831/, эта наработка пригодится.
Оставьте свое сообщение