Лупонос Дмитрий, разработчик 1С, эксплуататор 1С, настройка серверов для 1С
Выполнение обменов – существенная часть разработки. Дело в том, что сама база данных представляет для собственника бизнеса ценнейший ресурс.
С помощью обменов появляется возможность делиться частью информации со сторонними сервисами, например OZON, Yandex маркет, сайтом на Bitrix, Квартплата24 и прочими.
Кроме того, сведения передаются в надзорные организации, например ФНС, Пенсионный фонд, статистика и прочие.
REST API
Для обмена со внешней системой, в большинстве случаев, используется REST API – документированный способ обмена структурами, называемыми “сообщения”, которые содержат пакет информации из отправляющей системы в принимающую.
Рассмотрим на примере WMS, то есть Системы управления складом:
- Компания выводит складской учет под внешнее управление, что позволяет использовать, во-первых, инфраструктуру склада – сотрудников, оборудование, логистические преимущества;
- Внешний склад исполняет поручения Компании по приемке и отгрузке товаров, так же обеспечивает соответствующее хранение;
- При приемке товара в учетной системе 1С создается документ “Поступление (приобретение) товаров и услуг” (ПТУ) и документ “Приходный (складской) ордер на товары” (ПСО);
- При отгрузке товара создается документ “Реализация Товаров Услуг” (РТУ) и документ “Расходный (складской) ордер на товары” (РСО);
Склад уведомляет компанию о поступлении специальным пакетом, содержащим в себе номер входящей накладной, перечнем товаров с количеством, сериями. Компания принимает через каналы связи отправленный пакет, как правило в формате JSON, который может внутри содержать прикрепленные документы, например в формате XML. В системе 1С однозначно идентифицируются данные пакета и создаются ПТУ и ПСО без участия пользователя, в автоматическом режиме.
В идет приемка данных о состоянии полученного товара, например они будут такие: “Товар получен на склад”, “Товар размещен на складе” – в этом варианте могут быть дополнительные данные, например складская ячейка. В результате ПСО меняет статус с “К приемке” на “Получен” и далее на “Принят” с отражением в 1С особенностей размещения товара тем же методом получения пакетов данных из внешней системы.
При отгрузке товара при создании РТУ, как правило, после успешной проверки остатков товаров, в системе 1С автоматически формируется РСО со статусом “К отгрузке”. В результате в WMS улетает пакет данных, содержащий ключи Компании, Организацию отправитель, Покупателя, Грузополучателя и перечень товаров к отгрузке. Склад подтверждает поручение и начинает собирать товар в зоне отгрузки и упаковывать (опалечивать) его. В дальнейшем остается только получать статус формирования товара (В процессе отгрузки) и зафиксировать сборку партии товара (Подготовлен), а так же получить сообщение “Отгружен” когда Грузополучатель забрал товар либо товар был отправлен транспортной компанией.
В этом случае требуется отправить электронные копии документов на транспортировку товара и Торг-12/Счет-фактуру или УПД. В зависимости от соглашения со складом бухгалтерские документы отправляются Покупателю ЭДО, возможно еще REST API WMS позволяет отправлять эти документы в складскую систему для предоставления перевозчику.
Обмен завершен
Конвертация данных 1С
Для связи внутри инфраструктуры 1С существует удобный механизм обмена – CommerceML. Он работает на объектном уровне, где объект, к примеру, это элемент справочника “Номенклатура”, документ “Реализация товаров услуг” и позволяет гибко настраивать передачу данных, к примеру, между Бухгалтерией Предприятия 3.0 и Управлением Торговлей 11.5. Такой обмен уже зашит в эти системы и при обновлении объектов меняется и сам формат обмена.
Для настроек таких обменов используется конфигурация Конвертация Данных 3.0 и ее более старая версия Конвертация Данных 2.0 для предыдущих версий 1С, вплоть до 7.7.
В рамках данной статьи не смогу показать даже минимальный процесс таких обменов, могу сказать только одно – таким путем можно передать из одной базы данных все, что угодно, при этом полностью или частично и разместить в базе приемнике с обработкой по произвольному алгоритму. Например документ “Выпуск блюд” одной конфигурации может стать документом “Поступление товаров из производства” другой конфигурации.
Шина данных
Для консолидации различных обменов и снижением нагрузки на оборудование серверной части 1С используется шина данных. По-сути шина данных это коннектор, прокси для сообщений обменов между различными системами. Она имеет свой способ хранения объектов, которые сопоставляются с различными внешними системами каждый по своему правилу.
Нагрузка снижается за счет уменьшения до одного обмена информацией между шиной данных и базой данных 1С с разовой передачей всех необходимых пакетов.
В дальнейшем шина данных по алгоритму и расписанию передачи данных во внешнюю систему или запросу из внешней системы передает в рамках способов обмена именно с этой внешней системой данные, которые были получены и принимает данные, которые должны быть приняты.
Резюмирую: Шина данных удобный механизм для связи между набором внешних систем обмена данными, который снижает нагрузку на 1С, является следующим шагом развития взаимодействия базы данных 1С и неограниченного набора внешних систем, с которыми происходит обмен.