Почему различаются интерфейсы при подключении через тонкий и толстый клиент и как это исправить

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

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

Разберем основы: Толстый против Тонкого клиента

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

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

Важно понимать: то, что вы видите в толстом клиенте (если это старая конфигурация), — это обычные формы. То, что вы пытаетесь увидеть в тонком клиенте, — это управляемые формы. Это не просто разные «настройки вида», это две разные технологии разработки.

Почему нельзя «просто переключить» интерфейс?

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

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

Пошаговый план перехода на управляемый интерфейс (Тонкий клиент)

Рассмотрим последовательность действий, которую необходимо выполнить для адаптации вашей системы под веб-сервер или тонкий клиент.

Шаг 1. Изменение свойств конфигурации

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

Шаг 2. Разрешение управляемого приложения

В свойствах конфигурации нужно убедиться, что разрешен запуск в режиме управляемого приложения. Только после этого тонкий клиент сможет «увидеть» вашу базу.

Шаг 3. Создание управляемых форм

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

Разберем особенности программного кода

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

Проанализируем пример кода, который типичен для управляемой формы:


&НаКлиенте
Процедура КомандаВыполнить(Команда)
    // Здесь мы взаимодействуем только с интерфейсом
    Результат = ВыполнитьРасчетНаСервере();
    Сообщить(Результат);
КонецПроцедуры

&НаСервере
Функция ВыполнитьРасчетНаСервере()
    // Здесь мы имеем доступ к объектам базы данных, запросам и т.д.
    Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура");
    Возврат Запрос.Выполнить().Выгрузить().Количество();
КонецФункции

В тонком клиенте вы не можете написать Запрос = Новый Запрос внутри клиентской процедуры. Программа выдаст ошибку, так как объект Запрос недоступен на стороне клиента. Весь код, работающий с данными, должен быть вынесен в процедуры с директивой &НаСервере.

Ограничения и нюансы работы в Тонком клиенте

При переходе на работу через веб-сервер мы столкнемся со следующими ограничениями:

Гибридный режим как стратегия развития

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

  1. Оставить часть пользователей (например, бухгалтерию) в толстом клиенте на обычных формах.
  2. Постепенно создавать управляемые формы для тех, кому нужен веб-доступ.
  3. Назначать разные формы для разных типов клиентов в настройках объекта.

Посмотрим, как это выглядит в конфигураторе: у любого объекта метаданных (например, Документ.РеализацияТоваровУслуг) есть список форм. Вы можете назначить одну форму как Основная форма объекта (для обычного приложения), а другую как Основная управляемая форма объекта.

Заключение

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

← На главную