Как самостоятельно разработать мобильный клиент для 1С:Управление торговлей 11 для работы с заказами

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Разработка мобильного клиента для существующей системы «1С:Управление торговлей 11» (УТ 11) — это эффективный способ автоматизировать работу торговых представителей и менеджеров «в полях». Часто штатные решения, такие как «1С:Заказы», могут не подходить из-за избыточности или, наоборот, нехватки специфического функционала. В этой статье мы подробно разберем, как пройти путь от идеи до работающего приложения на смартфоне, избежав типовых ошибок при публикации и настройке.

Разбираемся с ошибкой «Неверный формат конфигурации»

Проанализируем самую частую проблему, с которой сталкиваются разработчики при первой попытке запустить мобильный клиент. Ошибка «Неверный формат конфигурации» обычно возникает не из-за повреждения базы, а из-за несоответствия технологических стеков. Выясним основные причины:

  1. Версия платформы: Версия 1С:Предприятия на сервере (где опубликована база) должна максимально совпадать с версией мобильной платформы, установленной на устройстве. Если вы используете сервер 8.3.22, а мобильный клиент версии 8.3.20, платформа не сможет корректно интерпретировать метаданные.
  2. Тип публикации: При публикации базы на веб-сервере через Конфигуратор (меню Администрирование — Публикация на веб-сервере) крайне важно проверить наличие галочки «Публиковать мобильный клиент». Без этой опции веб-сервер будет отдавать данные только для тонкого или веб-клиента, что приведет к ошибке формата при попытке входа с мобильного устройства.
  3. Настройки метаданных: Проверим свойства корневого узла конфигурации. В палитре свойств должен быть разрешен запуск мобильного клиента.

Выбор архитектуры: Мобильный клиент или Мобильное приложение

Перед началом кодинга нам необходимо определиться с типом мобильного решения. Рассмотрим два основных пути:

Мобильный клиент (МК) — это «зеркало» вашей основной базы УТ 11. Он работает напрямую с данными сервера в режиме онлайн. Это оптимальный выбор для заказов, так как не нужно писать сложные правила обмена. Однако он требует стабильного интернет-соединения.

Мобильный клиент с автономным режимом — это гибридная схема. Часть данных (например, справочники товаров и контрагентов) кэшируется на устройстве, что позволяет создавать заказы даже в подвалах или местах с плохой связью. При появлении интернета данные синхронизируются автоматически.

Мобильное приложение (МП) — полностью независимая база. Мы не рекомендуем этот путь для простой задачи «создание заказов», так как разработка обмена данными через ПланыОбмена или HTTP-сервисы значительно увеличит бюджет и сроки проекта.

Настройка публикации и файла default.vrd

Разберем по шагам процесс публикации. Для работы нам понадобится веб-сервер (Apache или IIS). После стандартной процедуры публикации в каталоге базы появится файл default.vrd. Проанализируем его содержимое. Для корректной работы мобильного клиента в секции <point> должны быть правильно указаны параметры доступа к мобильным сервисам.

Если планируется работа в автономном режиме, в файле публикации необходимо прописать URL для синхронизации метаданных. Это позволит мобильному клиенту «понимать», какие изменения произошли в основной конфигурации УТ 11 без полной переустановки приложения.

Адаптация интерфейса УТ 11 под мобильное устройство

Просто запустить УТ 11 на смартфоне недостаточно — стандартные формы заказов перегружены реквизитами и не помещаются на маленьком экране. Нам необходимо создать специализированное АРМ (автоматизированное рабочее место). Рассмотрим, как это сделать программно.

Используем инструкции препроцессора для разделения логики. Посмотрим на пример кода в модуле формы, который позволяет скрыть лишние элементы только для мобильных пользователей:


&Если МобильныйКлиент Тогда
    Элементы.ГруппаЛеваяПанель.Видимость = Ложь;
    Элементы.СпецификацияТовары.Отображение = ОтображениеТаблицы.Список;
    Элементы.ДатаОтгрузки.Видимость = Ложь;
&КонецЕсли

В мобильном клиенте рекомендуется использовать свойство формы «Отображение в мобильном клиенте». Переключим его в значение «Авто», но для табличных частей документов «Заказ клиента» лучше настроить компактное отображение, где важные реквизиты (Номенклатура, Цена, Количество) выводятся в одну строку или в виде карточек.

Тестирование без сборки APK

Многие начинающие разработчики совершают ошибку, пытаясь сразу собрать APK-файл через «Сборщик мобильных приложений». Это трудоемкий процесс, требующий настройки Android SDK. Выясним, как упростить жизнь на этапе разработки:

  1. Установим на мобильное устройство стандартное приложение «1С:Запуск» (или «1С:Предприятие») из Google Play или AppStore.
  2. Опубликуем базу на веб-сервере так, чтобы смартфон имел к ней доступ по Wi-Fi или через внешний IP.
  3. В приложении на смартфоне нажмем «Добавить базу», укажем адрес публикации (например, http://192.168.1.5/my_base) и выберем тип «Мобильный клиент».

Это позволит мгновенно видеть изменения, внесенные в Конфигураторе, без пересборки пакетов.

Альтернатива: Telegram-бот для заказов

Иногда создание полноценного мобильного клиента является избыточным. Проанализируем ситуацию: если вашим менеджерам нужно просто «накидать» товар в корзину и отправить его в 1С, Telegram-бот может стать отличным решением. Его преимущества:

Рассмотрим пример того, как 1С может принимать данные от бота и создавать документ ЗаказКлиента:


Функция СоздатьЗаказИзТелеграм(ДанныеЗаказа) Экспорт
    НовыйЗаказ = Документы.ЗаказКлиента.СоздатьОбъект();
    НовыйЗаказ.Дата = ТекущаяДата();
    НовыйЗаказ.Партнер = Справочники.Партнеры.НайтиПоНаименованию(ДанныеЗаказа.ИмяКлиента);
    
    Для Каждого СтрокаТовара Из ДанныеЗаказа.Товары Цикл
        НоваяСтрока = НовыйЗаказ.Товары.Добавить();
        НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(СтрокаТовара.Код);
        НоваяСтрока.Количество = СтрокаТовара.Кол;
    КонецЦикла;
    
    НовыйЗаказ.Записать(РежимЗаписиДокумента.Проведение);
    Возврат НовыйЗаказ.Ссылка;
КонецФункции

Лицензирование и аппаратные возможности

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

При использовании именно мобильного клиента (а не бота), мы получаем доступ к аппаратным функциям смартфона. Проанализируем возможности объекта СредстваМультимедиа. Мы можем использовать камеру как полноценный сканер штрихкодов. Для этого в коде формы вызовем метод для сканирования, который вернет нам штрихкод товара сразу в обработчик события, что значительно ускорит подбор позиций в заказ.

Подводя итог: создание мобильного клиента для УТ 11 — задача вполне решаемая штатными средствами. Главное — правильно настроить веб-публикацию, следить за соответствием версий платформы и уделить внимание адаптации форм под вертикальный экран смартфона.

← На главную