OpenSource + 1С = ❤️. Как мы стали использовать платформу SimpleUI в своих проектах и почему это хорошо

13.01.26

Архитектура - Удобство использования (UX)

Рассказываем о платформе SimpleUI, ее эволюции и том, чем она отличается от типовой разработки. Показываем, как платформа помогает делать 1С-решения быстрее, удобнее и гибче, в том числе за счет подключения сторонних библиотек. Статья сопровождается практическими примерами из реальных проектов, где SimpleUI позволила решить задачи, неподъемные для стандартных средств.

Выбор оборудования и первые шаги в автоматизации

 

С блютусным или с проводным сканером работать неудобно. Так сложилось и так удачно получилось, что в нашем распоряжении оказалось Auto-ID-оборудование: терминалы сбора данных, мобильные устройства. И именно их мы решили использовать, чтобы «погрузить» физику и для учета.

На этом пути мы перепробовали множество подходов. Когда-то давно мы работали через RDP с тех самых ТСД – подключались к 1С, использовали тонкий клиент, писали собственные приложения под мобильную платформу. Но наступил момент, когда этого стало недостаточно.

Первым шагом к переменам стала маркировка молочной продукции – огромный поток данных, мчащийся по конвейерным линиям в режиме реального времени.

Старые инструменты просто не справлялись. Мы нашли решение в 1С-ных технологиях, что-то написали сами. Это дало нам два важных результата: во-первых – ценный опыт, во-вторых – осознание, что для мобильной части тоже должно существовать готовое, промышленное решение, заточенное именно под наши задачи. Начав поиск альтернатив, мы для себя выделили ключевые требования к такой платформе.

 

Требования к идеальному решению: простота и UX

 

Все устройства – мобильные, корпоративные – не существуют в вакууме. Вокруг них всегда есть огромное количество всякой периферии: это и сканеры, и принтеры, иногда это какие-то сетевые устройства, с которыми надо взаимодействовать. Мы очень хотели, чтобы интеграция с ними была попроще и повеселее.

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

И когда мы что-то искали, то хотели иметь в распоряжении нормальный набор инструментов для апгрейда UX. Это привело нас на форум «Инфостарта», где мы столкнулись с платформой SimpleUI.

 

История платформы SimpleUI

 

 

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

Но время шло, комьюнити «Инфостарта» продолжало двигать развитие этой платформы, и в нее стал заползать Python. Сначала просто в виде обработчиков, которые можно было добавить в 1С конструкторе и уже в оффлайн, на самом устройстве, эту логику повыполнять. А потом постепенно Python дошел до того, что сейчас есть отдельный конструктор, есть возможность подключать сторонние библиотеки (кстати, весь open-source откроется в подключении сторонних библиотек), есть поддержка асинхронщины и много чего интересного.

 

Архитектура платформы и ее преимущества

 

 

По самой архитектуре: на стороне мобильных устройств у нас есть приложение, которое выполняет роль платформы. Оно само по себе делать ничего не умеет – умеет только передавать нам какие-то инструменты. А поверх него уже устанавливается конфигурация.

Эта архитектура в B2B-сегменте довольно удобная. Нам не надо постоянно пересобирать АПК или прокидывать большой АПК через корпоративную сеть. Для обновлений достаточно просто обновить эту конфигурацию, а конфигурация маленькая – весит порядка одного-двух мегабайт.

Нужно еще отметить, что на самом деле это целая экосистема решений: есть и веб-клиент, и десктоп-клиент под ту же самую платформу. Но мы работаем с мобильной автоматизацией – поэтому в основном буду рассказывать про мобильную.

 

 

Итак, платформа нам дает какие-то инструменты. На картинке не полный список того, чем можно распоряжаться. Но это первое, что пришло в голову и что мы решили добавить.

Я подробно разберу инструменты работы с данными, обмена данными, способ взаимодействия с андроидом и сбор информации. Но их существует гораздо больше. Все, о чем я буду рассказывать, – это использование инструментов, которые доступны «из коробки» примерно на 99%.

 

Цели разработки: скорость и эффективность

 

 

Единственное, что нам важно – это скорость во всех ее проявлениях. Корпоративными решениями пользуются постоянно, гораздо чаще, чем десктопом. И даже если мы экономим всего полсекунды на какой-то операции, то на длительном таймфрейме –допустим, год – эти полсекунды уже складываются в ощутимое рабочее время. Например, благодаря быстрой обработке экономится неделя рабочего времени сотрудника.

 

 

Все начинается с данных. Для работы с данными на базе платформы есть несколько СУБД на выбор. SQLite – из названия понятно, за что отвечает. Хорошо хранит большие объемы данных, позволяет быстро с ними работать, но ее структуру нужно знать заранее.

В противовес этому также в нашем распоряжении есть JSON-ориентированная база данных, где структура нам может быть неизвестна заранее. Комбинируя эти два инструмента в одном решении, можно добиться действительно интересных результатов.

 

 

Например, я могу рассказать про одного из наших клиентов – сеть розничных магазинов одежды. У них довольно много НСИ, к каждой номенклатуре есть характеристики, и к каждой этой паре есть еще по несколько идентификаторов – около трех. Это приводит к тому, что таблица штрих-кодов раздувается под миллион записей, но с ней надо работать.

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

Мы обращаемся в процессе работы к нескольким источникам данных. В определенных местах нам нужно обратиться к веб-сервису, а в конце еще и положить что-то во временное хранилище, чтобы отправить в 1С.

То, насколько быстро все это работает – это заслуга самих инструментов и правильной комбинации этих инструментов.

Ниже будет пример того, как менялась внутренняя архитектура решений, и что этому поспособствовало.

 

Инструменты обмена данными и интеграции

 

У нас данные хранятся, но нам надо их получать. Инструментов, которые есть в нашем распоряжении, немало.

Файловый обмен HTTP мы рассматривать не будем – с ним все знакомы. Поговорим про сервер мобильного приложения WebSocket.

По части сервера мобильного приложения очень удобно, что на стороне мобилки он есть. В него можно что-то отправить – и в том числе можно отправить из 1С, без публикации базы, просто на сетевое устройство. Хорошо подходит всем, кто не хочет – например, по соображениям безопасности – или не может опубликовать свою базу.

Теперь по части веб-сокетов. Нам, как разработчикам, был доступен инструмент клиента – WebSocket клиента. Можно было подключить мобильное устройство как клиент к чему-то и поддерживать постоянные соединения. Но платформа гибкая, Python гибкий – поэтому оказалось возможным написать WebSocket-сервер на одном из этих мобильных устройств, его запустить, и при помощи него все данные шейрить между всеми устройствами.

 

Работа с периферией: сканеры, модули и камера

 

Мы доставили данные, сохранили, теперь надо с ними как-то работать.

Не нужно ждать, пока напишется компонент. Работа со сканерами, работа со всеми внешними дополнительными модулями – сделано все через интенты. Мы можем их совершенно спокойно слушать и, если видим перед собой какое-то незнакомое устройство, главное, чтобы оно просто умело внутри экосистемы андроида что-то вещать. Писать драйвера, чтобы начать получать данные со сканера, ждать, пока кто-то сделает компоненту, чтобы его подключить – не нужно. Вся настройка занимает секунд 15: зашли в приложение, посмотрели, ввели. То же самое касается дополнительных модулей. Все сделано на базовом уровне, на самых простых единицах, которыми с ними можно взаимодействовать.

И, конечно, отдельная тема – это работа с камерой. Это, что много лет назад нас подкупило, и то, почему мы продолжаем сейчас работать с этими решениями.

Работа с камерой очевидна для пользователя. Мы что-то видим глазами, и устройство тоже должно это видеть.

 

 

Есть отдельные инструменты для работы с камерой и распознавания текста. В платформу встроена гугловская библиотека OCR, а разработчикам предоставлены удобные инструменты для взаимодействия с ней. Простой пример: на металлическом изделии отлит его номер. Камера может распознать этот номер и сохранить его – не нужно вводить вручную. Дальше результат можно использовать по своему усмотрению.

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

 

Комбинирование детекторов и визуальная обратная связь

 

Помимо визуализации, есть возможность работать сразу с несколькими идентификаторами. Спасибо «Честному знаку» – они продолжают подкидывать нам интересные задачи, которые действительно увлекательно решать.

На следующем примере показана агрегация: какие-то товары можно поместить в упаковку, а какие-то – нет. Все отображается наглядно и просто: что-то подсвечено зеленым, что-то красным.

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

Следующий пример – распознавание различных способов нанесения информации: гравировки, надписей, печати. Все это работает стабильно и наглядно.

 

 

Если кто-то захочет попробовать, дам пару советов. Используется отдельный интерфейс и особый подход к разработке. Есть два основных правила:

  1. Готовьте данные заранее,

  2. Не заставляйте пользователя постоянно переключаться между экранами.

 

 

Дополнительно применяйте цветовую идентификацию – это сильно упрощает восприятие.

 

Преимущества платформы для разработчиков

 

На этом хвастовство заканчивается, и перейдем к тому, что мы, как разработчики, получили от использования этой платформы:

  • I - INCREMENT (MVP first, работа с обратной связью)

  • D - DEVELOP. Быстрая разработка

  • D - DELIVERY. Быстрая доставка

  • Q D -QUICKLY DEPLOY. Быстрое развертывание

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

Для быстрой разработки у нас есть набор готовых инструментов. Быстрая доставка обеспечивается за счет того, что конфигурация весит мало, легко переносится и разворачивается. Она удобно интегрируется с MDM-системами, а при необходимости можно поднять у себя сервер, с которого будут распространяться обновления. При этом сам процесс установки достаточно простой.

Из практики: мы уже год сопровождаем одну компанию. У них приложение обновлялось всего один раз, а конфигурация – каждый месяц вместе с выходом нового релиза. В результате корпоративную сеть не приходится нагружать прокачкой всего приложения – обновляется только конфигурация. Это действительно удобно.

 

Эволюция архитектуры и подход к разработке

 

Очень удобно, что платформа позволяет начать с быстрого прототипа – буквально в несколько строк кода можно заставить решение распознавать нужные штрихкоды. А дальше схему можно постепенно усложнять и рефакторить.

Например, добавили работу с новым модулем – немного переписали код.

 

 

Перешли к множеству проверок и условий – еще доработали и пришли к модульной структуре.

 

 

Для ведения всех кастомных клиентских веток мы используем GitHub. Это оказалось удобным инструментом: почти каждый заказчик хочет внести изменения «под себя». И это логично: во-первых, сама система 1С очень гибкая, во-вторых, все привыкли, что решения можно адаптировать. Для нас это не проблема – под каждую кастомизацию мы просто создаем ветку от основной, вносим туда изменения, и она остается там навсегда. Ничего не теряется, к ней всегда можно вернуться. При этом собирать APK-файл не нужно: мы работаем только с конфигурацией, и все изменения вносятся буквально в пару кликов.

 

 

В ходе последовательной трансформации и эволюции решений мы пришли к тому, что в них хорошо работает модель MVC. Архитектурно все разделено на три уровня: данные, контроллер и визуализация. На картинке показана схема обработки сканирования: с одной стороны, задача выглядит простой, но на деле задействовано немало модулей.

Структура получается достаточно объемной, но в этом есть свои плюсы. На базе платформы можно реализовать даже такие сложные схемы – и они остаются удобными в сопровождении и развитии. Кроме того, каждый модуль можно заменить или убрать, при этом остальные продолжат работать независимо.

 

 

Для ускорения сборки и доставки изменений мы используем Python как основной стек, и это дает возможность подключать любые IDE и использовать современные тестовые фреймворки. На изображении показан пример работы с APPIum: перед релизом автоматически тестируется сборка. В примере – три копии, но на практике их может быть значительно больше. При этом тесты можно писать самые разные.

 

Гибкость и расширяемость: сторонние библиотеки

 

Прототип можно создать очень быстро. Его легко менять и улучшать, и он будет развиваться дальше. Но может случиться так, что встроенных инструментов окажется недостаточно. Это не тупик – ограничиваться этим совершенно не нужно. Всегда можно подключить сторонние библиотеки, любые, которые найдете и которые помогут решить задачу:

  • SQLiteUtils (для работы с БД)

  • Excel 1.0.1 (для работы с файлами)

  • OpenCV (для детекции)

  • Pandas (для работы с данными)

  • BeautifulSoup (для html)

  • Pillow (для печати)

  • Pydantic

  • Matplotlib

В списке перечислено то, что мы использовали в своих проектах. Самый очевидный кейс: изначально платформа не умеет читать Excel, а у клиента все данные для обмена и загрузки хранятся именно в нем.

 

 

Решение оказалось простым: скачиваем нужную библиотеку, подключаем ее к конфигурации буквально в несколько строк кода – и дальше работаем с Excel так, как требуется.

Если что-то в открытой библиотеке не устраивает, это можно изменить – в этом и сила Open Source. Так что создавайте крутые решения и не идите на компромиссы. В разработке возможно все, что вы способны вообразить.

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART TECH EVENT.

См. также

Архитектура решений Бесплатно (free)

Подход к корпоративной автоматизации за последние годы заметно изменился. Все больше компаний отходят от идеи единой громоздкой системы и переходят к более гибкой, распределенной ИТ-архитектуре, где каждая бизнес-задача решается отдельным специализированным сервисом. В 2026 году этот тренд только усилится. Развивается микросервисный подход и появляются корпоративные маркетплейсы приложений, ориентированные не на универсальность, а на конкретные роли сотрудников и их ежедневные рабочие сценарии. Речь идет не о замене или отказе от крупных систем – ERP, учетных и мастер-баз. Напротив, такие решения продолжают играть ключевую роль, но используются более рационально: в связке с легковесными приложениями, которые расширяют функциональность и повышают удобство работы в существующем ИТ-ландшафте.

16.01.2026    611    0    APishchalnikov    7    

3

Удобство использования (UX) Аналитика и визуализация данных 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:УНФ Управленческий учет Бесплатно (free)

Не ломать через колено: Как подружить 1С и Google Sheets, чтобы спасти производство 20 лет стажа в 1С научили меня одному: платформа гениальна, но типовые интерфейсы часто враждебны к живому пользователю. В этой статье разбираем кейс, где принуждение к 1С чуть не остановило производство. Наше решение — оставить пользователю удобные Google Таблицы, но связать их с 1С "промышленным" способом. Описание архитектуры: Планы обмена, UUID и авторизация без боли через Service Account.

10.12.2025    1300    0    Prepod2003    33    

17

Архитектура решений 1С:Предприятие 8 1С:Управление торговлей 10 Россия Управленческий учет Бесплатно (free)

Признаюсь честно: я вынашивал эту статью лет 10-15, все времени не хватало. Как сделать из "торговой" конфигурации полноценный финансовый центр.

24.10.2025    3118    0    apatyukov    159    

9

Работа с требованиями Архитектура решений Радио Аналитик Бесплатно (free)

В четвертом выпуске четвертого сезона подкаста Радио “Аналитик“ обсудили, что такое System Design, что меняется в подходе к проектированию после его изучения и где заканчивается зона ответственности аналитика и начинается зона ответственности архитектора.

13.10.2025    885    0    Radio_Analyst    0    

2

Архитектура решений 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Бесплатно (free)

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

18.08.2025    1492    0    chuevsf    2    

0

Анализ бизнес-процессов Архитектура решений Работа с требованиями Бесплатно (free)

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

04.08.2025    1629    0    user1754524    0    

3

Архитектура решений Внедрение изменений 1С:Предприятие 8 1С:ERP Управление предприятием 2 Управленческий учет Бесплатно (free)

Расчет себестоимости — один из наиболее сложных этапов внедрения 1С:ERP. Фактически его можно считать завершающим шагом успешной автоматизации. Разбираем принципы формирования себестоимости в 1С:ERP, типичные проблемы при внедрении и способы их решения. Вы узнаете, в каких случаях применяются номенклатурные затраты, трудозатраты или постатейные расходы, как организовать учет незавершенного производства и вести раздельный учет по направлениям деятельности, а также какие доработки допустимы, а от каких лучше отказаться. Особое внимание автор уделяет статьям расходов и правильному формированию базы распределения, а также частым ошибкам, которые искажают расчеты.

29.07.2025    9129    0    user1455139    11    

21

Архитектура решений 1С:Предприятие 8 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

Функциональный архитектор проанализировал функционал 1С ERP на основе своих проектов.

22.07.2025    2809    0    asoiko    8    

8
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. GarriSoft 325 13.01.26 13:28 Сейчас в теме
Отличная статья, спасибо коллега за подробный обзор и реальные кейсы!

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

Я в свое время тоже рассматривал SimpleUI для похожих задач. Меня, тогда отпугнули два ключевых момента:

1. Документация: на тот момент ее действительно было мало, и войти в проект без глубокого погружения было сложно.
2. "Вендорский риск": проект, который держится на энтузиазме и экспертизе одного человека (огромный респект Дмитрию Воронцову за его труд!), - это всегда определенный риск для бизнес-проектов. Всегда есть вероятность, что у автора поменяются приоритеты, и тогда поддержка и развитие платформы могут замедлиться или остановиться. Переписывать всю логику работы склада под новую технологию - дорого и опасно.

В связи с этим, мне очень интересно узнать ваше мнение, как команды, которая сделала на SimpleUI ставку и внедряет его в промышленную эксплуатацию:

1. Почему выбор пал именно на SimpleUI, а не на мобильный клиент 1с.
Разработка на платформе 1С казалась бы более прямым путем, раз вся логика уже в базе, да и работа с ТСД была бы сразу в рабочей базе в режиме онлайн?
Я в свое время принял решение идти именно по этому пути, и мне было бы крайне полезно понять ваше сравнение возможностей и ограничений двух подходов из практики.

2. Как вы оцениваете тот самый "риск одного вендора"?
Из статьи видно, что проект стал более открытым (Open Source, Python-часть). Появилось ли вокруг него сообщество контрибьюторов?
Есть ли у вас стратегия на случай, если развитие платформы замедлится? Например, возможность форка или переход на собственную развитую кодовую базу на Python?

Заранее спасибо за ответы!
Ваш опыт очень важен для тех, кто сейчас стоит перед аналогичным выбором технологического стека для мобильной автоматизации.
Для отправки сообщения требуется регистрация/авторизация