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

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 и настроить в нем параметр мониторинга

 

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

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

 

Итог

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

 

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

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

См. также

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

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

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

60000 руб.

05.10.2022    9159    9    8    

10

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

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

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

84000 руб.

19.08.2020    22357    18    1    

21

Автоматическая многопоточная выгрузка данных 1С 8.3 в БД Clickhouse и MS SQL (для работы с данными 1С в BI-системах)

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

Готовое решение для автоматизированной выгрузки данных из 1С 8.3, а также MS Excel в базу данных ClickHouse, а также в Microsoft SQL для работы с данными 1С в Yandex Datalens, Visiology, Apache Superset (и не только) - "Экстрактор данных 1С в BI". Решение отлично работает со всеми типовыми (и не только) конфигурациями 1С 8.3 для управляемых форм. Gозволяет автоматизировать работу бизнес-аналитика по ежедневной выгрузке данных из 1С в БД ClickHouse для последующей работы с этой БД в Yandex Datalens/ Система полностью автоматизирует работу с хранилищем данных в БД Clickhouse/MS SQL. Не надо быть программистом, чтобы одной кнопкой получать любые данные из 1С в Вашей BI-системе

230000 руб.

15.11.2022    12930    12    47    

28

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

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

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

24000 руб.

24.04.2017    48632    96    159    

86

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

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

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме. Без существенных изменений типовой конфигурации. Проверено с брендами: Интеграция 1С и GEELY Интеграция 1С и HAVAL Интеграция 1С и KIA Интеграция 1С и FORD Интеграция 1С и LADA ГАРАНТИЯ 100% ВНЕДРЕНИЯ!

36000 руб.

03.08.2020    15663    9    17    

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