DataMobile и 1С: обмен с ТСД через файлы, COM и HTTP-сервис
Содержание
Чтобы подключить DataMobile к 1С, нужны три вещи: обработка обмена DataMobile в информационной базе, выбранный канал связи с ТСД (файлы, COM-соединение или опубликованный HTTP-сервис) и пользователь 1С с правами на чтение справочников и запись документов. Само приложение на терминале настраивается в последнюю очередь, когда 1С уже отдаёт данные.
Частая ошибка — начинать с телефона или терминала: ставить DataMobile, вбивать адрес сервера и потом долго выяснять, почему «нет связи». Чаще проблема не в ТСД, а в публикации базы, правах пользователя или брандмауэре. Поэтому порядок ниже идёт от 1С к устройству.
Какой способ интеграции DataMobile с 1С выбрать
Способ обмена зависит от редакции DataMobile и от того, как устроен склад. Офлайн-редакции работают с файлами заданий, онлайн-редакции обращаются к базе в реальном времени.
| Способ | Когда подходит | Что нужно со стороны 1С | Слабое место |
|---|---|---|---|
| 📁 Файловый обмен | Небольшой склад, инвентаризация, связь нестабильна | Обработка обмена, общая папка или USB | Данные на ТСД устаревают между выгрузками |
| 🔌 COM-соединение | Программа-посредник на ПК в той же локальной сети | Зарегистрированный comcntr.dll, Windows | Только Windows, разрядность должна совпадать |
| 🌐 HTTP-сервис | Онлайн-проверка остатков и цен, несколько складов, работа по Wi-Fi или через интернет | Веб-сервер (IIS или Apache), публикация базы | Нужна настройка веб-сервера и, желательно, HTTPS |
💡 Если сомневаетесь, начните с файлового обмена. Он запускается за час и сразу показывает, правильно ли выгружаются номенклатура и штрихкоды. На онлайн-схему потом переходите уже с проверенными настройками.
Что подготовить до начала
- 🧾 Версию платформы и конфигурации: откройте
Справка → О программе. Обработка обмена DataMobile выпускается под конкретные типовые конфигурации (УТ 11, БП 3.0, КА 2, ERP, УНФ, Розница), и для сильно доработанной базы может понадобиться адаптация. - 👤 Отдельного пользователя 1С для обмена, например
DataMobile. Не используйте учётную запись главного бухгалтера: в журнале регистрации потом не отличить ручные правки от загруженных с ТСД. - 🗂 Актуальную копию базы . Первую загрузку документов делайте в копии, а не в рабочей базе.
- 📶 Адрес ПК или сервера в локальной сети, на котором будет работать обмен, и открытые порты в брандмауэре.
- 📱 Сам ТСД с установленным DataMobile и активированной лицензией нужной редакции.
Права пользователя обмена
Пользователь должен читать номенклатуру, характеристики, штрихкоды, склады, цены и остатки и создавать документы, в которые загружаются данные с ТСД. В БП 3.0 и УТ 11 пользователи и группы доступа настраиваются в Администрирование → Настройки пользователей и прав.
Для HTTP-варианта дополнительно нужно, чтобы у пользователя была роль, разрешающая вызов HTTP-сервиса. Её обычно добавляет сама поставка обмена; если сервис отвечает кодом 403 или «Недостаточно прав», первым делом проверьте именно это.
Подключение DataMobile к 1С через COM в локальной сети
COM-соединение позволяет внешней программе на Windows открыть информационную базу 1С без интерфейса и читать или записывать данные. Такой вариант используют, когда обменом управляет программа-посредник на ПК, а ТСД синхронизируется с ней по Wi-Fi или кабелю.
Шаг 1. Зарегистрировать COM-компоненту
Компонента V83.COMConnector ставится вместе с платформой, но не всегда регистрируется. Запустите командную строку от имени администратора и выполните команду с путём к вашей версии платформы:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\comcntr.dll"
Номер в пути замените на свой: он должен совпадать с версией, на которой работает база.
Разрядность компоненты должна совпадать с разрядностью программы, которая к ней обращается. 32-битная программа не увидит 64-битную comcntr.dll из C:\Program Files, ей нужна компонента из C:\Program Files (x86)\1cv8\.... Именно это даёт ошибку «Недопустимая строка с указанием класса».
Шаг 2. Собрать строку соединения
Строка подключения указывается в настройках программы-посредника. Для файловой и клиент-серверной базы она разная:
File="D:\Bases\Trade";Usr="DataMobile";Pwd="пароль";
Srvr="srv1c";Ref="trade";Usr="DataMobile";Pwd="пароль";
- 📂
File— путь к каталогу файловой базы, а не к файлу1Cv8.1CD. - 🖥
Srvr— имя сервера 1С,Ref— имя базы в кластере, как оно указано в консоли администрирования. - 🔑
UsrиPwd— пользователь обмена из предыдущего раздела.
Шаг 3. Проверить соединение без DataMobile
Прежде чем винить приложение, убедитесь, что COM вообще работает. Самый быстрый тест — скрипт PowerShell от того же пользователя Windows, под которым будет работать обмен:
$c = New-Object -ComObject "V83.COMConnector"
$base = $c.Connect('File="D:\Bases\Trade";Usr="DataMobile";Pwd="пароль";')
$base.Метаданные.Имя
Если в ответ выводится имя конфигурации, COM настроен. Ошибка на первой строке — компонента не зарегистрирована или не та разрядность. Ошибка на второй — неверный путь, пользователь или пароль.
💡 Для файловой базы у пользователя Windows должны быть права на запись в каталог базы. Иначе соединение откроется, но запись документов упадёт с ошибкой блокировки.
Обмен DataMobile с 1С через HTTP-сервис
Онлайн-редакции DataMobile работают напрямую с базой: терминал отправляет запрос, 1С отвечает остатком, ценой или списком строк задания. Для этого базу нужно опубликовать на веб-сервере, а HTTP-сервис обмена должен быть в конфигурации или в расширении.
Шаг 1. Установить веб-сервер и модули расширения
На сервер, где будет публикация, нужны:
- IIS (роль Windows Server) или Apache 2.4.
- Компонент платформы «Модули расширения веб-сервера» — отмечается в установщике 1С.
- Для клиент-серверной базы — доступ веб-сервера к серверу 1С по сети.
Разрядность модуля расширения и веб-сервера должна совпадать, как и с COM.
Шаг 2. Опубликовать базу
- Запустите Конфигуратор от имени администратора Windows — без этого публикация не запишется в каталог веб-сервера.
- Откройте
Администрирование → Публикация на веб-сервере. - Укажите имя публикации латиницей, например
trade, и каталог. - Включите флажки публикации HTTP-сервисов, в том числе HTTP-сервисов расширений, если обмен поставлен расширением.
- Нажмите «Опубликовать». Для Apache после этого перезапустите службу.
Перезапуск Apache или IIS обрывает сеансы всех, кто работает с базой через веб-клиент. Делайте это вне рабочих часов или предупредите пользователей.
Шаг 3. Проверить адрес сервиса в браузере
Адрес HTTP-сервиса строится по шаблону:
http://<сервер>/<имя публикации>/hs/<корневой URL сервиса>/
Корневой URL смотрите в конфигураторе: ветка Общие → HTTP-сервисы, свойство «Корневой URL» у сервиса обмена. Откройте адрес в браузере на самом сервере, затем на другом компьютере в сети, затем с ТСД.
Ответ сервера сразу подсказывает, где проблема:
- ✅ Окно ввода логина или ответ сервиса — публикация работает.
- 🔒
401— неверный пользователь или пароль либо пользователь не входит в список пользователей базы. - ❓
404— не опубликованы HTTP-сервисы, опечатка в имени публикации или корневом URL. - 💥
500— ошибка в модуле сервиса; текст ищите в журнале регистрации базы за то же время.
Шаг 4. Настроить подключение на ТСД
В настройках подключения DataMobile указывается адрес публикации, логин и пароль пользователя обмена. Терминал должен быть в той же сети Wi-Fi, что и сервер, либо сервер должен быть доступен из интернета.
💡 Для работы через интернет используйте HTTPS с нормальным сертификатом и не открывайте наружу публикацию с пользователем, у которого полные права. Многие современные версии Android по умолчанию ограничивают незашифрованные HTTP-соединения для приложений.
Лицензии 1С при онлайн-обмене
Сеансы HTTP-сервисов учитываются как клиентские сеансы 1С и занимают клиентские лицензии. Пять терминалов, которые одновременно обращаются к базе, могут занять до пяти лицензий сверх пользователей за компьютерами.
Чтобы каждый запрос не открывал новый сеанс, в публикации используют повторное использование сеансов (параметр reuseSessions в файле default.vrd). Если обмен поставлен разработчиком готовым, сначала уточните, поддерживает ли его сервис такой режим.
Выгрузка справочников и НСИ из 1С на терминал
Нормативно-справочная информация — это то, без чего ТСД не узнает товар по штрихкоду: номенклатура, характеристики, упаковки, штрихкоды, склады, ячейки, цены. При файловом обмене она выгружается в файл, при онлайн-обмене терминал запрашивает её у базы.
Что выгружать обязательно
- 📦 Номенклатуру с единицами измерения и упаковками.
- 🏷 Штрихкоды. Проверьте, что они заведены в базе: в УТ 11 и КА они хранятся в отдельном регистре штрихкодов номенклатуры. Если штрихкодов нет в базе, ТСД будет показывать «товар не найден» на каждой позиции.
- 🎨 Характеристики и серии, если по ним ведётся учёт.
- 🏬 Склады и, при адресном хранении, ячейки.
- 💰 Цены нужного вида: «Типы цен номенклатуры» в БП, «Виды цен» в УТ 11.
Как не перегрузить терминал
Справочник на 80 000 позиций выгружается и загружается на ТСД заметно дольше, чем на 5 000. Отбирайте только то, что реально лежит на складе:
- Ставьте отбор по складу или по группам номенклатуры.
- Не выгружайте помеченные на удаление элементы.
- Для онлайн-схемы выгружайте на ТСД только справочники, а остатки и цены пусть терминал запрашивает по скану.
💡 После первой выгрузки отсканируйте на ТСД 10–15 разных товаров: с характеристикой, весовой, в упаковке, без штрихкода. Это проверка, которая за 5 минут находит ошибки сопоставления, обнаруживаемые иначе только на инвентаризации.
Сопоставление полей
Если выгрузку настраивает интегратор или вы адаптируете обмен под доработанную базу, полезно сразу зафиксировать, какое поле 1С во что превращается на терминале:
Документы: задания на ТСД и результаты обратно в 1С
Обмен документами идёт в две стороны. Из 1С на терминал уходят задания — приходная накладная, заказ на сборку, инвентаризация. С терминала возвращаются фактически отсканированные количества.
Типовые сценарии
| Операция на складе | Что отправляется на ТСД | Что возвращается в 1С |
|---|---|---|
| Приёмка | Ожидаемые строки поступления | Фактическое количество, расхождения |
| Отбор и отгрузка | Строки заказа или расходного ордера | Собранное количество, серии, коды маркировки |
| Инвентаризация | Список товаров склада или пусто | Пересчитанные остатки |
| Перемещение | Строки документа перемещения | Фактически перемещённое |
| Сбор штрихкодов | Пусто | Новые штрихкоды для записи в базу |
Как загружать результат
Результат с ТСД лучше загружать в новый документ или в табличную часть существующего непроведённого документа. Проводить его стоит после того, как кладовщик или бухгалтер сверил расхождения.
Повторная загрузка одного и того же файла с ТСД в уже проведённый документ задвоит количество. Перед повторной загрузкой очистите табличную часть или загружайте в новый документ, а ошибочную копию пометьте на удаление.
Статусы выполнения
В онлайн-режиме задание на ТСД проходит путь «отправлено → в работе → выполнено», и 1С видит, какой документ уже взят в работу. Конкретный набор статусов задаёт обработка обмена, так что ориентируйтесь на её форму, а не на общие схемы. Главное правило — одно задание держит один терминал: если два кладовщика берут один заказ, при загрузке количества сложатся.
Для товаров с маркировкой коды Честного знака сканируются на ТСД и возвращаются в документ вместе с количеством. Проверьте на тестовом документе, что коды попали в нужную табличную часть, до того как запускать отгрузку маркированного товара.
Ошибки синхронизации DataMobile и 1С: где искать причину
Ошибки синхронизации почти всегда сводятся к одному из трёх уровней: сеть, 1С, данные. Идите по ним по очереди.
Где смотреть подробности
- 📜 Журнал регистрации базы:
Администрирование → Обслуживание → Журнал регистрациив БП 3.0 и УТ 11. Отберите события по пользователю обмена. - 🖥 Для клиент-серверной базы — список сеансов в консоли администрирования кластера: видно, сколько сеансов открыли терминалы.
- 🌐 Журналы веб-сервера (IIS или Apache): там видно, дошёл ли запрос с ТСД до сервера вообще.
Завершать сеансы терминалов из консоли кластера можно, но кладовщик потеряет несохранённые строки задания. Предупредите склад перед этим.