§ 1.5. Когда оставляем автоформу, когда делаем свою

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

1. Чем платят за свою форму

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

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

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

Автоформа составом не отстаёт от объекта: она каждый раз собирается по дереву. Своя форма отстаёт всякий раз, когда о ней забыли.

2. Правило решения

Рабочее правило простое и опирается не на вид формы, а на работу, которую ею делают.

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

Границу удобно держать деревом решений.

часто ли с ней работают?
├─ редко ───────────────► автоформа
└─ часто
   что мешает?
   ├─ ничего ───────────► автоформа
   ├─ порядок, пояснения► сначала дерево
   └─ действия, расчёты► своя форма

3. Дешёвое лечение: поправить дерево

Прежде чем рисовать форму, стоит вспомнить, что автоформа — прямой снимок дерева. Многое из того, что «мешает», лечится в самом объекте, и лечение достаётся бесплатно: оно действует во всех окнах сразу.

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

Последняя строка — про то, что читатель уже умеет, сам того не зная: колонки, их порядок и отборы в списке пользователь настраивает себе сам, и это сохраняется.

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

4. Чего деревом чинить нельзя

Обратное тоже верно, и об этом стоит сказать прямо. Дерево описывает данные, а не экран. Заводить реквизит ради вида, менять тип ради удобства ввода, разбивать объект на два, чтобы «форма стала короче», — значит чинить не то.

соблазнчем кончается
реквизит «для галочки на форме»лишнее поле в базе у всех
разбить документ на два ради длиныдва документа там, где событие одно
сменить тип ради вида поляданные перестают быть данными

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

5. Смешанное решение — норма

Выбор не двоичный. В живой конфигурации обычное состояние такое: у документа своя форма, у его списка — автоформа; у главного справочника своя форма элемента, у служебного — ничего своего.

ПоступлениеТоваров
├── форма документа ── своя
└── форма списка ──── авто

Склады
├── форма элемента ── авто
└── форма списка ──── авто

Это не признак недоделанности, а разумная экономия: своё делают там, где на это есть причина, названная словами.

6. Как выглядит решение на словах

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

плохохорошо
«автоформа некрасивая»«кладовщик оформляет двадцать документов в день и путает склад»
«сделаем как у людей»«нужен подбор товаров: сейчас на документ уходит четыре минуты»
«потом переделаем»«пока хватает автоформы: справочник меняют раз в квартал»

Причина для своей формы — это предложение о работе человека, а не о внешнем виде окна.

7. Изменили объект — проверьте его формы

Из платы за свою форму следует привычка, которую стоит завести сразу, пока форм у вас ещё нет.

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

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

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

8. В режиме Предприятия

Попробуем самое дешёвое лечение своими руками — то, для которого не нужен ни редактор форм, ни Конфигуратор.

  1. Откройте список товаров и уберите из него колонку — например, код: меню «Ещё» → изменение формы или настройка списка.

  2. Закройте список и откройте снова. Колонка не вернулась: настройка сохранилась за вами.

  3. Верните колонку на место тем же путём.

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

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

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


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

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

  1. Чем платят за свою форму, кроме времени на её сборку?
  2. Почему своя форма отстаёт от объекта, а автоформа — нет?
  3. По какому признаку выбирают между автоформой и своей формой?
  4. Что из «мешающего» лечится деревом, а не формой? Приведите три примера.
  5. Почему нельзя менять дерево ради вида формы?
  6. Как звучит хорошая причина для своей формы?

Упражнения

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

Своё: три объекта. Для справочника «Склады», справочника «Товары» и документа «ПоступлениеТоваров» решите, что оставить на автоформе, и объясните каждое решение одной фразой про работу.

Ловушка: «своя форма догонит». Разработчик рассуждает: «Сделаю форму по образцу автоформы, а если в объекте что-то поменяется, форма подхватит». В чём он ошибается и чем это грозит через полгода?

Чужая причина. Заказчик пишет: «Форма поступления неудобная, переделайте». Какие три вопроса вы зададите, прежде чем открывать редактор?

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