Сервис доступа к данным 1С для внешних систем
Жёлтый мост
Практика · Программисту 1С

УТ 10.3: как отдать данные во внешнюю систему, если конфигурацию трогать нельзя

Обычные формы, платформа старая, веб-сервисы поднимать некому. Разбираем, что реально работает на УТ 10.3 и сколько это стоит по времени.

Задача

Клиент сидит на "Управлении торговлей" 10.3. База живая, в ней работают, менять ее никто не даст: последняя доработка была пять лет назад, программиста, который ее делал, давно нет. А данные наружу нужны: сайт, личный кабинет клиента, дашборд руководителю или просто регулярная выгрузка остатков.

Отдельная беда - платформа. На УТ 10.3 часто стоит 8.3.5 или около того, на Windows, где нет современного шифрования. Половина готовых решений там просто не запускается.

Как это решают обычно

Веб-сервисы и OData. На управляемых формах это рабочий путь. На УТ 10.3 их нужно писать руками в конфигураторе, а потом публиковать базу на веб-сервере. То есть снять конфигурацию с поддержки или поставить на поддержку с изменениями, поднять Apache или IIS, попросить белый IP, пробросить порты. На практике это две-три недели и разговор с сисадмином, который открывать периметр не хочет.

Обмен файлами. Выгрузка в XML или CSV по расписанию, забор с диска или по FTP. Работает, но данные всегда вчерашние, при сбое никто не узнает, а любое изменение формата ломает обе стороны.

COM-соединение. Живет, пока внешняя система стоит на той же машине. Как только сервер переезжает или обновляется платформа, все рассыпается.

Как быстрее

Путь данных: наружу ходит сама база, входящих соединений в вашу сеть нет
1С: УТ 10.3обычные формы, данные остаются здесь
Обработка Жёлтого мостаоткрытый код, ставится в базу как внешняя
Шлюз onecdatalink.ruочередь заданий, ключи, маскировка
ИИ-ассистент или ваше приложениепривычный ИИ-чат, скрипт сайта, код на питоне, кабинет клиента

Сервис "Жёлтый мост" заходит с другой стороны: наружу ходит сама база. В нее ставится внешняя обработка, она по расписанию спрашивает у шлюза, есть ли задание, выполняет запрос внутри базы и отдает результат. Входящих соединений в сеть клиента нет вообще, поэтому белый IP, проброс портов и публикация не нужны.

Для УТ 10.3 важны три вещи:

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

Так выглядит ответ на запрос остатков: строки приходят в JSON, внешняя система получает готовые значения
НоменклатураСкладОстатокРезервДоступно
Труба ВГП 25Основной48060420
Труба ВГП 32Основной1250125
Отвод 90Транзитный000

Как это сделать

1. Зарегистрируйтесь в кабинете и скачайте обработку для обычных форм. Если платформа 8.3.5 или ниже, возьмите сборку для старых платформ.

2. Откройте обработку в базе как обычный внешний отчет, вставьте ключ из кабинета и включите обмен. Пока окно открыто, база на связи; для постоянной работы обмен ставится регламентным заданием.

3. Внешняя система обращается к API сервиса по ключу и получает данные. Запрос пишется на языке 1С, отбор и периоды указываете вы.

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

Что стоит знать заранее

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

Если обработка закрыта и регламентное задание не настроено, база не на связи: запрос подождет в очереди и вернет понятную ошибку, а не пустой ответ.

Не уверены, как подключается именно ваша база - в 1С:Фреш, в аренде, своя серверная или файловая? Выберите свой случай на главной: покажем, что мешает и что меняет мост.

Проверьте на своей базе. Подключение занимает около пятнадцати минут: обработка из кабинета, ключ, готовый текст для ИИ. При регистрации даются три дня работы одной базы, карта не нужна.
Настроить у себя Другие задачи