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