Структура обработки загрузки цен и остатков поставщика с примерами и комментариями

25.10.20

Интеграция - Внешние источники данных

В статье опишу структуру обработки по загрузке цен и остатков от поставщика с примерами.

Вводные

  1. Конфигурация Управление торговлей 11
  2. Состыкованный каталог номенклатуры с каталогом поставщика
  3. Нужно автоматически обновлять цены и остатки номенклатуры по данным поставщика
  4. Нужно организовать мониторинг автоматической загрузке

 

Порядок обработки

  1. Получение данных
  2. Декодирование
  3. Состыковка
  4. Запись
  5. Постобработка

 

Получение данных

 
 Вариации источников

 

В качестве примера рассмотрю получение данных от

  • sima-land (сайт, документация API), HTTP API c поддержкой JSON. Использовать буду v3 без аутентификации, v5 с аутентификацией.
  • samson(сайт, документация API), HTTP API c поддержкой JSON, доступ по токену.
  • steam-toys (сайт), HTTP файл XLS, доступ по basic аутентификации. Есть YML и CSV, но по полноте данных и компактности в данном случае XLS лучше.

В случае sima-land запросом можно получить информацию по списку id, список 50 элементов, при небольшом количестве товаров оптимально использовать этот подход. При большем объеме возможен вариант использования фильтра по группе товаров.

Минусом конкретной реализации API является то что получаем всю карточку товара, хотя нам нужны только остатки.

 
 Реализация запроса по списку id

 

У samson остатки/цены получить можно только все, ответ разбит на страницы.

 
 Реализация запроса по страницам

 

У steam-toys один файл

 
 Реализация получения файла

 

Декодирование

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

Для остатков

  • id товара
  • склад
  • количество

Для цен

  • id товара
  • вид цены
  • цена

Для остатков информация может быть дополнена остатками "всего" и "в пути".

Для цен информация может быть дополнена валютой (в минимуме все в руб) и курсом.

 

Перед распределением по документам можно формировать временную скомпонованную таблицу, можно просто перебирать декодированный массив и писать в документы

 
 Декодирование JSON

 

Условием нормального декодирования  XLS является наличие в первой строке заголовков соответствующим требованиям именования колонок таблицы значений. Прайс листы с группировками, картинками раскрасками и подобным нужны для удобства ручной обработки (формирования заказа в том же файле), вопрос формирования прайс листа технического формата можно решить административно.

 
 Чтение XLSX средствами платформы

Состыковка

Состыковку делаю по артикулу номенклатуры поставщика, при наличии идентификаторов со стороны поставщика это оптимальный вариант.

Перед состыковкой получаю таблицу значений и индексирую её по колонке "Артикул". Рассматриваю вариант без характеристик.

 
 Реализация получения номенклатуры поставщика и состыковки

 

Запись

Записи результата загрузки несколько, оптимальный выбирается из ситуации в базе и требований заказчика

Остатки
  • Документом оприходование излишков товаров товаров
    • оприходуется на "виртуальный склад", видно в подборе заказа поставщику при использовании группы складов
    • по складу может стоять ордерная схема для оприходования и при проведении только этого документа остаток не будет виден в подборе
    • удобно выгружать типовыми обработками на сайт (как правило берут данные из РН "Свободные остатки")
  • Документом заказ поставщику
    • ставится "к поступлению" на основной склад, в подборе видно при "простом" варианте отображения подбора
    • можно указать плановую дату поступления на склад, что лучше чем просто остаток
    • для выгрузки на сайт добавляется запрос к РС "ДоступныеОстаткиПланируемыхПоступлений", в типовом обмене 
  • Документом корректировка регистров в РН "Свободные остатки"
    • из преимуществ перед записью документами то что меньше времени на обработку
    • основной минус в "поломке" баланса учета
  • При использовании Мегапрайс (помощник закупок) записать данные в его регистр напрямую.
Цены
  • Документом Установка цен номенклатуры
    • Цены продажи
    • Базовые цены для расчета цен продажи
    • В упрощенном варианте в том числе закупочные если поставщик один
  • Документом Установка цен номенклатуры поставщика
    • Цены закупки
  • Документом заказ поставщику, совместно с регистрацией цен. Для отсутствия остатков по РН "Расчеты с поставщиками" можно выбрать хоз операцию "Прием на хранение с правом продажи", в строках ТЧ "Товары" указать вид цен поставщика.
  • При использовании Мегапрайс (расчет цен) записать данные в его регистр напрямую

 

При фиксации записи данных нужно определится фиксируете только последнее состояние или историю. При фиксации истории уточните какой период и с какой точностью.

Результат упущения данного вопроса база в 50+ГБ 90 процентов которой были изменения по свободным остаткам через корректировку регистра. По отзывам клиентов в последних релизах вендор поправил алгоритм.

 

Постобработка

После загрузки цен как правило рассчитывают цены продажи. основная проблема в том что механизм расчета цен применяемый в документе Установка цен номенклатуры жестко завязан за форму документа, которую нельзя получить в серверном контексте, решением является эмулирование формы через структуру, решение вопроса в статье //infostart.ru/public/1257236/.

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

 

После загрузки остатков запускают обновление остатков/статусов товаров. Типового по этому поводу в УТ 11 не встречал.

 

Мониторинг

 

Варианты

  • От ошибки
    • при ошибке загрузки отправлять уведомление на почту или в мессенджер
    • при ошибке писать в журнал регистрации, отдельно запускать обработку анализа журнала регистрации и отправлять уведомления об ошибках
  • От отсутствия успешного выполнения (если система не получает пинг в ожидаемое время, он посылает вам предупреждение)
    • Использовать https://healthchecks.io/
    • Использовать Zabbix и настроить в нем параметр мониторинга

 

Варианты реализации

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

 

Итог

Реализовать механизм загрузки не сложно. Проблемы возникают при некорректном формате данных и "сложной" постобработке.

 

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

Обработка загрузка цены остатки.

См. также

Перенос данных из Парус 8 в ЗГУ 3

Зарплата Внешние источники данных Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    22604    19    1    

22

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

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

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

36000 руб.

03.08.2020    15923    13    18    

13

Перенос данных из Парус 10 в ЗГУ ред.3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    9303    9    8    

11

Экстрактор данных 1С в BI - выгрузка данных из 1С в BI-аналитику

Внешние источники данных Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование Конфигурации 1cv8 Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

15.11.2022    13615    12    SQV0    47    

28

Перенос данных из Парус 7.хх в ЗГУ ред.3

Внешние источники данных Зарплата Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 7.хх учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

24000 руб.

24.04.2017    48818    97    163    

86
Оставьте свое сообщение