§ 0.7. Два режима форм: управляемые и обычные

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

1. Две эпохи

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

обычная формауправляемая форма
как задананарисована: элементы стоят там, где их положили, и под окно не пересчитываютсяописана свойствами: что есть и с чем связано
кто раскладываетразработчик, при рисованииплатформа, при открытии
где работаеттолько толстый клиенттонкий клиент, веб-клиент, мобильный, толстый
когда появиласьпервые выпуски восьмёркиверсия 8.2; основным способом стали в 8.3

2. Почему платформа сменила подход

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

Их и называют клиентами: программу на компьютере — толстым или тонким клиентом, браузер — веб-клиентом, телефон — мобильным. Разница между толстым и тонким здесь неважна; важно, что рисуют они по-разному. Нарисованную по координатам картинку в браузер как есть не перетащишь: там другие шрифты, другие размеры, другое окно, и подогнать её под каждый экран нечем. А описание «здесь поле артикула, здесь таблица товаров, вот кнопки» переносится куда угодно — каждый клиент рисует его своими средствами.

Отсюда и название, которое сбивает с толку почти всех новичков. Слышится в нём, будто управляет формой пользователь: двигает поля, меняет их размер. На деле пользователь управляет данными и командами, а раскладкой — платформа.

Управляемая форма названа так не потому, что ею управляет пользователь, а потому, что её раскладкой управляет платформа.

Кое-что пользователю платформа всё же отдаёт: в разрешённых пределах он подстраивает вид под себя — прячет колонки, меняет их порядок и ширину. Но раскладку в целом считает она.

3. Как отличить одну от другой

Отличить нетрудно, и полезно уметь: по признакам сразу ясно, применима ли к форме эта книга.

где смотретьобычнаяуправляемая
редактор формы в Конфигураторехолст, элементы двигаются мышьюдерево элементов, координат нет
каким клиентом открываетсятолько толстымтонким, веб-клиентом, мобильным, толстым
свойства корня конфигурации«Основной режим запуска» — «Обычное приложение»«Управляемое приложение»
редактор обычной        редактор управляемой
┌──────────────────┐    Форма
│ Наименование [ ] │    ├── Реквизиты
│ Артикул      [ ] │    ├── Элементы
│                  │    │   ├── Наименование
│    [Записать]    │    │   └── Артикул
└──────────────────┘    └── Команды
  элементы двигают      порядок и группы

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

4. Где обычные формы ещё попадаются

Совсем они не исчезли. Встретить их можно в трёх случаях.

случайчто увидите
старая конфигурация, начатая до 8.2 и не переведённаявсе формы обычные
у конфигурации включён режим совместимости с версией 8.1управляемое приложение запрещено: программа работает как обычное
включено свойство «Использовать обычные формы в управляемом режиме»приложение управляемое, но в толстом клиенте работают обычные формы

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

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

5. Что это значит для книги

Дальше в книге слово форма значит «управляемая форма», и оговариваться об этом мы больше не будем. Всё, что сказано про правила, раскладку, клиент и сервер, относится к ним.

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

Главное в одном абзаце

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


Мы всё время ссылались на дерево конфигурации: там задан тип реквизита, там живут подсистемы, там лежат формы. А что это, собственно, за дерево — и где в нём место коду?

Контрольные вопросы

  1. Чем обычная форма отличается от управляемой по способу задания?
  2. Почему управляемая форма называется управляемой?
  3. Какими клиентами открывается обычная форма, а какими — управляемая?
  4. По каким признакам вы отличите одну от другой в Конфигураторе?
  5. В каких случаях в конфигурации до сих пор работают обычные формы?

Упражнения

Найдите режим. В Конфигураторе откройте свойства корня конфигурации «Канцтовары» и найдите свойство «Основной режим запуска». Какое значение в нём стоит и что это значит для форм, которые мы будем делать?

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

Ловушка: кто управляет. Новичок говорит: «Управляемая форма — это форма, которой пользователь может управлять: двигать поля, менять колонки. А обычная — та, где ничего не подвинешь». Что здесь перепутано и почему вывод всё же получился отчасти верным?

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

Ответы — в конце части.