Как перевести сильно доработанную 1С:УПП на веб-клиент или найти альтернативу Citrix для 300 пользователей

Программист Промышленность, строительство и АПК
← На главную

Перевод крупной производственной системы на базе 1С:Управление производственным предприятием (УПП) с обычных форм на управляемые — это масштабная задача, сравнимая по трудозатратам с полноценным внедрением новой системы. Особенно остро этот вопрос встает, когда целью является экономия на лицензиях Citrix при большом количестве одновременно работающих пользователей (более 300 человек). Рассмотрим подробнее, какие пути решения существуют, проанализируем риски и разберем по шагам стратегии миграции.

Анализ трудозатрат и рисков переписывания УПП на управляемые формы

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

Основные сложности, с которыми мы столкнемся:

  1. Смена парадигмы выполнения кода: В обычных формах код выполняется в контексте формы. В управляемых формах необходимо четкое разделение на &НаКлиенте и &НаСервере. Потребуется переписывание всех обработчиков событий.
  2. Отказ от модальности: Веб-клиент принципиально не поддерживает модальные окна. Все вызовы типа Вопрос() или Предупреждение() должны быть заменены на асинхронные вызовы с использованием описаний оповещений.
  3. Объем доработок: Если система дорабатывалась с 2008 года, накопленный «технический долг» может быть огромен. Оценка в 2-3 человеко-года для команды из нескольких разработчиков является реалистичной.
  4. Работа с торговым оборудованием: В производстве колбас критична работа с весами и сканерами. В веб-клиенте работа с драйверами через браузер требует установки дополнительных расширений и часто работает менее стабильно, чем в нативном приложении.

Альтернативы Citrix: как сэкономить на лицензиях без переписывания кода

Если основной целью является сокращение затрат на лицензии Citrix, выясним причину, по которой обычный RDP (Remote Desktop Services) считается неподходящим. Современные версии Windows Server предоставляют достаточно стабильные инструменты для работы 300 пользователей.

Рассмотрим альтернативные варианты:

Стратегия гибридного перехода: создание АРМ на управляемых формах

Переписывать всю УПП целиком нецелесообразно, учитывая, что фирма «1С» планирует прекращение поддержки этой конфигурации в ближайшие годы. Вместо этого разберем по шагам стратегию частичного перевода на управляемые формы:

Шаг 1. Сегментация пользователей. Выделим группы пользователей, чья работа наиболее однотипна. Например, мастера смен, которые только вводят отчеты о производстве, или кладовщики. Их рабочие места (АРМ) можно перевести на управляемые формы в первую очередь.

Шаг 2. Разработка новых интерфейсов. Создадим новые управляемые формы только для необходимых объектов (документы «Отчет производства за смену», «Реализация товаров и услуг»). Всю сложную бухгалтерскую логику и расчет себестоимости оставим на обычных формах для административного персонала.

Шаг 3. Использование тонкого клиента. Для этих пользователей запустим 1С в режиме тонкого клиента (через веб-сервер Apache или IIS). Это позволит им работать без использования терминального доступа (Citrix/RDP), что напрямую сократит потребность в лицензиях.

Технические нюансы реализации кода при переводе на управляемые формы

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


// В обычной форме УПП
Процедура КнопкаРассчитатьНажатие(Кнопка)
    // Весь расчет происходит прямо здесь
    Результат = МодульРасчета.ВыполнитьДлительнуюОперацию(ДанныеФормы);
    Предупреждение("Расчет завершен!");
КонецПроцедуры

Для работы в веб-клиенте этот код необходимо переработать с учетом серверного вызова и асинхронности. Проанализируем правильный подход:


&НаКлиенте
Процедура КнопкаРассчитатьНажатие(Команда)
    // Вызываем серверный метод для расчетов
    ВыполнитьРасчетНаСервере();
    
    // Используем немодальное оповещение
    ПоказатьПредупреждение(, "Расчет завершен!");
КонецПроцедуры

&НаСервере
Процедура ВыполнитьРасчетНаСервере()
    // Логика расчета перенесена на сервер
    МодульРасчета.ВыполнитьДлительнуюОперацию(Объект);
КонецПроцедуры

Важно помнить, что в управляемом интерфейсе Объект (данные документа) и ЭтаФорма — это разные сущности. На сервере мы работаем с данными, а на клиенте — с визуальным представлением.

Работа с торговым оборудованием в веб-клиенте

Выясним причину, по которой оборудование часто становится камнем преткновения. В «толстом» клиенте 1С напрямую взаимодействует с COM-объектами драйверов. В браузере (веб-клиенте) прямой доступ к железу ограничен политиками безопасности.

Рекомендации по работе с оборудованием:

  1. Используйте 1С:Библиотеку подключаемого оборудования (БПО). Она содержит современные механизмы для работы в управляемом интерфейсе.
  2. Для весового оборудования на производстве колбас рассмотрите вариант использования HTTP-сервисов. Весы могут передавать данные на промежуточный сервер, а 1С будет запрашивать их через HTTPЗапрос, что полностью снимает проблему драйверов на стороне клиента.
  3. Если работа через веб-клиент нестабильна, рассмотрите использование Тонкого клиента 1С с подключением по протоколу HTTP. Он выглядит как обычное приложение, но не требует терминальных лицензий и лучше работает с локальным оборудованием.

Стратегический выбор: УПП или ERP?

Проанализируем ситуацию с точки зрения бизнеса. Переписывание УПП под управляемые формы — это инвестиция в «уходящую» технологию. Фирма «1С» активно продвигает 1С:ERP как преемника УПП.

Если бюджет на доработку УПП сопоставим с затратами на внедрение ERP, то выбор в пользу новой системы очевиден по следующим причинам:

Итог: Переход на веб-клиент для 300 пользователей УПП — задача крайне рискованная. Рекомендуется сначала рассмотреть замену Citrix на более бюджетные терминальные решения (MS RDS, Thinstuff). Если же переписывание неизбежно — делайте это точечно, создавая отдельные АРМ для конкретных групп сотрудников, сохраняя основной функционал в терминальной среде.

← На главную