§ 0.7. Два режима форм: управляемые и обычные
Слово «управляемая» стояло в этой главе почти в каждом абзаце, и до сих пор мы обходились без объяснения. Пора сказать, с чем его противопоставляют: раз формы управляемые, значит, бывают и другие. Они называются обычными, и разговор о них будет коротким — увидеть, научиться отличать и больше к ним не возвращаться.
1. Две эпохи
Обычные формы — из первых выпусков восьмой версии. Их рисовали мышью на холсте: поле стоит там, куда его положили, и окно выглядит ровно так, как его нарисовал разработчик. Управляемые появились в версии 8.2, вместе с тонким и веб-клиентом, а основным способом работы стали позже. Устроены они иначе: в конфигурации описано, что на форме есть и с чем связано, а где что окажется на экране, решает платформа.
| обычная форма | управляемая форма | |
|---|---|---|
| как задана | нарисована: элементы стоят там, где их положили, и под окно не пересчитываются | описана свойствами: что есть и с чем связано |
| кто раскладывает | разработчик, при рисовании | платформа, при открытии |
| где работает | только толстый клиент | тонкий клиент, веб-клиент, мобильный, толстый |
| когда появилась | первые выпуски восьмёрки | версия 8.2; основным способом стали в 8.3 |
2. Почему платформа сменила подход
Причина прямо следует из того, о чём мы говорили. Окно строит клиент — а клиентов стало несколько: обычная программа на компьютере, браузер, телефон.
Их и называют клиентами: программу на компьютере — толстым или тонким клиентом, браузер — веб-клиентом, телефон — мобильным. Разница между толстым и тонким здесь неважна; важно, что рисуют они по-разному. Нарисованную по координатам картинку в браузер как есть не перетащишь: там другие шрифты, другие размеры, другое окно, и подогнать её под каждый экран нечем. А описание «здесь поле артикула, здесь таблица товаров, вот кнопки» переносится куда угодно — каждый клиент рисует его своими средствами.
Отсюда и название, которое сбивает с толку почти всех новичков. Слышится в нём, будто управляет формой пользователь: двигает поля, меняет их размер. На деле пользователь управляет данными и командами, а раскладкой — платформа.
Управляемая форма названа так не потому, что ею управляет пользователь, а потому, что её раскладкой управляет платформа.
Кое-что пользователю платформа всё же отдаёт: в разрешённых пределах он подстраивает вид под себя — прячет колонки, меняет их порядок и ширину. Но раскладку в целом считает она.
3. Как отличить одну от другой
Отличить нетрудно, и полезно уметь: по признакам сразу ясно, применима ли к форме эта книга.
| где смотреть | обычная | управляемая |
|---|---|---|
| редактор формы в Конфигураторе | холст, элементы двигаются мышью | дерево элементов, координат нет |
| каким клиентом открывается | только толстым | тонким, веб-клиентом, мобильным, толстым |
| свойства корня конфигурации | «Основной режим запуска» — «Обычное приложение» | «Управляемое приложение» |
редактор обычной редактор управляемой
┌──────────────────┐ Форма
│ Наименование [ ] │ ├── Реквизиты
│ Артикул [ ] │ ├── Элементы
│ │ │ ├── Наименование
│ [Записать] │ │ └── Артикул
└──────────────────┘ └── Команды
элементы двигают порядок и группы
Самый быстрый признак — редактор. Если разработчик двигает поле мышью и оно остаётся там, куда его положили, перед вами обычная форма. Если вместо холста дерево элементов, а расположение задаётся порядком и группами, — управляемая.
4. Где обычные формы ещё попадаются
Совсем они не исчезли. Встретить их можно в трёх случаях.
| случай | что увидите |
|---|---|
| старая конфигурация, начатая до 8.2 и не переведённая | все формы обычные |
| у конфигурации включён режим совместимости с версией 8.1 | управляемое приложение запрещено: программа работает как обычное |
| включено свойство «Использовать обычные формы в управляемом режиме» | приложение управляемое, но в толстом клиенте работают обычные формы |
Третий случай стоит прочитать внимательно: «управляемый режим» здесь — про режим работы приложения, а не про тип клиента. Обычные формы и в такой конфигурации открываются только толстым клиентом.
Во всех трёх случаях дело не в отдельной форме, а в решении, принятом для всей конфигурации. Перевод такой конфигурации на управляемые формы — отдельная большая работа, и книга её не разбирает.
5. Что это значит для книги
Дальше в книге слово форма значит «управляемая форма», и оговариваться об этом мы больше не будем. Всё, что сказано про правила, раскладку, клиент и сервер, относится к ним.
Если, открыв чужую конфигурацию, вы увидите холст с координатами, — это не повод решить, что книга вас обманула. Это повод узнать обычную форму в лицо и понять, что перед вами наследство прежней эпохи.
Главное в одном абзаце
Формы в 1С бывают двух родов. Обычные рисовали мышью на холсте, элементы в них стоят по координатам, и работают такие формы только в толстом клиенте, — это наследство первых выпусков восьмёрки. Управляемые появились в версии 8.2: в конфигурации описано, что на форме есть и с чем оно связано, а раскладку считает платформа при открытии, поэтому одно и то же описание живёт и в программе на компьютере, и в браузере, и на телефоне — выглядя на каждом по-своему. Отсюда название: формой управляет не пользователь, а платформа. Отличают их по редактору — холст против дерева элементов, — по клиенту и по свойствам конфигурации. Обычные формы ещё встречаются в старых конфигурациях и при режиме совместимости с 8.1, но эта книга дальше говорит только об управляемых.
Мы всё время ссылались на дерево конфигурации: там задан тип реквизита, там живут подсистемы, там лежат формы. А что это, собственно, за дерево — и где в нём место коду?
Контрольные вопросы
- Чем обычная форма отличается от управляемой по способу задания?
- Почему управляемая форма называется управляемой?
- Какими клиентами открывается обычная форма, а какими — управляемая?
- По каким признакам вы отличите одну от другой в Конфигураторе?
- В каких случаях в конфигурации до сих пор работают обычные формы?
Упражнения
Найдите режим. В Конфигураторе откройте свойства корня конфигурации «Канцтовары» и найдите свойство «Основной режим запуска». Какое значение в нём стоит и что это значит для форм, которые мы будем делать?
Два описания. Опишите словами, как выглядело бы задание карточки товара в обычной форме и в управляемой: что в каждом случае задаёт разработчик, а что остаётся платформе.
Ловушка: кто управляет. Новичок говорит: «Управляемая форма — это форма, которой пользователь может управлять: двигать поля, менять колонки. А обычная — та, где ничего не подвинешь». Что здесь перепутано и почему вывод всё же получился отчасти верным?
Чужая форма из описания. Дано: «окно открывается только в толстом клиенте, поля стоят на своих местах и не переставляются, разработчик менял их расположение мышью». Какого рода эта форма и в какой конфигурации она могла сохраниться?
Ответы — в конце части.