Как лучше перейти на управляемые формы в 1С 8.3 и работать с ними в облаке?

Программист 1С v8.3 (Управляемые формы)
← На главную

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

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

Зачем вообще переходить на управляемые формы? Преимущества и особенности

Прежде чем углубляться в методы перехода, давайте еще раз убедимся в необходимости этого шага. Управляемые формы (УФ) — это не просто новый внешний вид; это фундаментальное изменение архитектуры взаимодействия между клиентом и сервером. Фирма "1С" активно развивает именно этот подход, делая его стандартом разработки для текущих и будущих версий платформы. Без управляемых форм работа в веб-клиенте и облаке становится невозможной.

Основные преимущества управляемых форм:

  1. Современный и гибкий интерфейс: УФ позволяют пользователям самостоятельно настраивать свое рабочее пространство, адаптируя его под личные предпочтения и задачи. Это включает изменение расположения панелей, видимости разделов, команд и полей.
  2. Упрощение разработки базовых форм: Платформа 1С автоматически генерирует простые формы на основе метаданных, что значительно ускоряет начальный этап создания интерфейса. Разработчик может сосредоточиться на логике, а не на визуализации.
  3. Снижение нагрузки на сеть и клиент: Основные вычисления и запросы к базе данных выполняются на сервере. Это значительно уменьшает объем передаваемых данных, улучшая производительность при работе через веб-браузер или при нестабильном интернет-соединении.
  4. Стандартизация и читаемость кода: Принципы разработки УФ способствуют более структурированному и понятному коду, что упрощает сопровождение и передачу проекта другим специалистам.
  5. Четкое разделение кода на клиентскую и серверную части: Архитектура УФ обязывает разработчика строго разделять логику, выполняемую на клиенте, и логику, выполняемую на сервере, используя директивы компиляции. Это способствует правильной организации кода.
  6. Расширенные возможности полей ввода: УФ предлагают улучшенные элементы управления, такие как сохранение истории выбора, возможность быстрого создания нового элемента непосредственно из поля ввода и кнопка "Показать все" для доступа к полному списку.
  7. Автоматическое сохранение настроек: Начиная с версии 8.3, пользователи могут настроить автоматическое сохранение своих персональных настроек динамических списков, что повышает удобство работы.

Влияние управляемых форм на скорость работы

Один из часто задаваемых вопросов — ускоряется ли работа при переходе на управляемые формы? В чистом виде, управляемые формы сами по себе не влияют на прирост скорости выполнения операций, так как обработка данных происходит на сервере. Однако, благодаря архитектуре клиент-серверного взаимодействия и снижению сетевого трафика, субъективно работа через тонкий клиент или веб-клиент на управляемых формах может ощущаться быстрее, особенно в условиях медленного интернета или удаленного доступа. Важно понимать, что обычные формы — это уже устаревшая технология, и переход на УФ — это требование современности и функциональности (например, для работы в облаке).

Стратегии перехода на управляемые формы

Рассмотрим различные стратегии перехода, исходя из опыта и советов сообщества 1С.

1. Параллельная разработка и поэтапное внедрение (рекомендуемый подход)

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

  1. Выборочная разработка: Начните с перевода наиболее критичных и часто используемых объектов (документов, справочников) на управляемые формы. Поэтапно переводите рабочие процессы, сначала основные, затем менее значимые (отчеты, редко используемые справочники).
  2. Сосуществование форм: Платформа 1С позволяет одному и тому же объекту иметь как обычную, так и управляемую форму. Это означает, что пока вы разрабатываете УФ, пользователи могут продолжать работать с привычными обычными формами.
  3. Пользовательский переход: По мере готовности управляемых форм для определенного функционала, вы можете переводить отдельных пользователей или группы на работу в тонком клиенте (с УФ), в то время как остальные продолжат использовать толстый клиент с обычными формами. Это позволяет тестировать новый функционал в реальных условиях с минимальными рисками. Например, можно перевести одного пользователя в тонкий клиент для тестирования, а остальные пока работают в толстом клиенте.
  4. Изучение типовых решений: Для самописных конфигураций может быть полезно подсмотреть, как реализован переход на управляемые формы в типовых конфигурациях 1С, например, в 1С:УПП (Управление производственным предприятием), где этот процесс также осуществлялся поэтапно.

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

2. Разработка на копии с последующей синхронизацией данных

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

  1. Разработка на копии: На копии базы данных создаем и отлаживаем все необходимые управляемые формы и связанную с ними логику.
  2. Синхронизация данных: После того как разработка на копии завершена и протестирована, возникает задача переноса всех изменений на актуальную рабочую базу. Здесь может быть несколько вариантов:
    • Обновление конфигурации: Загрузка измененной конфигурации на рабочую базу. При этом важно, чтобы изменения в метаданных на рабочей базе не конфликтовали с изменениями, внесенными на копии.
    • Перенос данных: Если в процессе разработки на копии были внесены изменения в данные, их также потребуется перенести. Это сложная задача, особенно если на рабочей базе пользователи активно вносили изменения. Для синхронизации данных можно использовать механизм обмена данными 1С (например, через "Конвертацию данных 2.0" или "EnterpriseData"). Однако, без опыта работы с выгрузкой/загрузкой данных или серьезной синхронизацией, этот путь может быть рискованным и привести к потерям или искажениям данных.

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

3. Создание новой конфигурации с нуля и импорт данных

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

  1. Новая конфигурация: Проектируем и разрабатываем конфигурацию полностью с нуля, используя современные подходы и управляемые формы.
  2. Импорт данных: После создания новой конфигурации, из старой базы экспортируются и импортируются только необходимые данные. Это требует тщательной предварительной подготовки правил конвертации и сопоставления объектов.

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

Особенности перехода для самописной конфигурации

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

При переносе функционала из обычных форм в управляемые, мы рекомендуем: располагать элементы новой формы так же, как и в старом приложении, и называть реквизиты формы один в один. Это значительно упрощает копирование существующих процедур и функций, так как потребуется изменить только обращения к объектам формы (например, ЭлементыФормы.МойРеквизит в обычном приложении трансформируется в Элементы.МойРеквизит в управляемом).

Важность директив компиляции и разделения кода

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

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

Работа с данными и синхронизация

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

  1. Настройка правил обмена: Используйте стандартные механизмы обмена данными (например, XML с помощью "Конвертации данных 2.0" или XDTO через EnterpriseData) для переноса данных между базами. EnterpriseData является более современным подходом, ориентированным на бизнес-объекты.
  2. Сопоставление объектов: Тщательно настраивайте правила сопоставления объектов и реквизитов, чтобы избежать дублирования или потери данных.
  3. Детальное логирование: Рекомендуется настраивать синхронизацию с дополнительными параметрами, позволяющими отслеживать ошибки и процесс обмена для большей прозрачности.

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

Тестирование и отладка

После переноса логики и интерфейса на управляемые формы, необходимо провести тщательное тестирование. Мы должны убедиться, что весь функционал работает корректно, нет ошибок производительности и интерфейс удобен для пользователей. Используйте встроенный отладчик 1С, а также приемы быстрой отладки управляемых форм для выявления и исправления проблем. Существуют универсальные инструменты для управляемых форм (консоли кода, редакторы JSON/HTML), которые могут значительно упростить процесс разработки и отладки.

Работа в облаке: многопользовательский доступ под одной учетной записью

Автор сообщения также задал вопрос о возможности работы нескольких пользователей под одной учетной записью в облаке 1С. Мы рассмотрим этот аспект подробнее.

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

Что касается работы нескольких пользователей под одной учетной записью, ситуация следующая:

  1. Лицензирование 1С: Для каждого клиента, который одновременно подключается к серверу 1С:Предприятия, требуется отдельная клиентская лицензия. Это базовое правило платформы, независимо от того, используется ли одна и та же учетная запись пользователя 1С или разные.
  2. Ограничения облачного сервиса: Большинство облачных провайдеров 1С (например, 1С:Фреш) предоставляют тарифы, рассчитанные на определенное количество одновременно работающих пользователей. Даже если вы технически сможете подключиться под одной учетной записью (что часто ограничивается самой платформой, не допуская одновременной работы), это будет нарушением лицензионного соглашения и может привести к ошибкам или блокировке со стороны облачного сервиса.
  3. Права доступа и безопасность: Работа под одной учетной записью несколькими людьми крайне нежелательна с точки зрения безопасности, аудита и разграничения прав доступа. Администратор облачного сервиса или базы 1С может легко создавать отдельные логины и пароли для каждого пользователя, а также назначать им индивидуальные роли и права.
  4. Вылетает ли другой пользователь?: Если платформа или облачный сервис настроены на строгое соблюдение лицензионной политики и правил безопасности, то при попытке повторной авторизации под уже активным пользователем, существующая сессия может быть завершена, и другой пользователь будет "выброшен". В некоторых случаях система может просто не дать войти второму пользователю.

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

Инструменты для разработчиков

Для ускорения и упрощения разработки управляемых форм существуют специализированные инструменты. Мы можем использовать универсальные консоли кода для управляемых форм, редакторы JSON и HTML, а также различные утилиты, доступные на платформах вроде GitHub. Они позволяют быстро отлаживать код, работать с данными и тестировать интерфейсные решения. Для использования большинства таких инструментов потребуется платформа 1С не ниже версии 8.3.14.1565.

Заключение

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

← На главную