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

25.10.20

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

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

Вводные

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

Реализация

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

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

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

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

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

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

 

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

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

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

 

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

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

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

 

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

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

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

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

 

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

 

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

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

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

 

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

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

 

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

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

См. также

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

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

24000 руб.

19.12.2023    10276    59    14    

54

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

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

36000 руб.

03.08.2020    21613    30    24    

24

Сайты и интернет-магазины Программист Пользователь 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Платные (руб)

Данный модуль предоставляет возможность выгружать заказы из 1С: Управление торговлей 11 версии в "MEASOFT" (ранее "Курьерская служба 2008").

9600 руб.

27.04.2022    12447    22    3    

13

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

Модуль выгрузки товаров услуг из 1С для сайта "Авито" раздел "Автозагрузка" выполнена в виде обработки. Обработка подходит для конфигураций УТ, УНФ и Розница. Данная обработка позволяет создавать шаблон с объявлениями для "Авито" - "Автозагрузка".

4200 руб.

07.06.2022    20756    47    56    

48

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

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

26400 руб.

02.11.2024    2707    13    2    

11

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

Легкая обработка для мониторинга цен практически любого сайта (парсинга), не требует специальных знаний при настройке.

6960 руб.

17.04.2017    33405    30    28    

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

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

Решил сделать удобный для себя инструмент, после "открыл" для себя в конструкторе запросов "Отображать таблицы изменений".
Для объектов работает, по остаткам оверхед получается. Все равно делается запись в индексированную таблицу, в моем случае записью управляю сам и могу группировать. Остатки могут меняться как на складе так и при изменении графика поставок.
3. Pixar0000 23.09.20 10:42 Сейчас в теме
название статьи "Организация данных и вариант обработки для организации обмена с сайтом"
после просмотра возникает вопрос, а что за "движок" на котором крутится сайт?
+ функция ПолучитьТЗГруппыНоменклатуры - явно чужая, если исходить из текста предыдущих
4. malikov_pro 1347 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/, эта наработка пригодится.
Для отправки сообщения требуется регистрация/авторизация