Ответы к части 5
Ответы собраны здесь, а не под вопросами: подсказка, увиденная сразу после вопроса, отменяет попытку вспомнить. У каждого ответа до трёх ступеней: сам ответ, указание — если ответ не дался сразу — и полное решение там, где рассуждение важнее вывода.
§ 5.1. Авторазмещение: у формы нет координат
К вопросу 1. Ответ. Нигде: места на экране у элемента нет. Записано его место в дереве элементов и правила — группа, порядок, растягивание. Экран платформа собирает по ним при каждом открытии.
К вопросу 2. Ответ. Форму открывают разными клиентами и в окнах разного размера; добавьте к этому масштаб, размер шрифта и длину подписей на другом языке. Ни одно из условий заранее не известно.
К вопросу 3. Ответ. Порядок в дереве, вложенность в группу, растягивание, положение в группе, ширина и высота как пожелание.
К вопросу 4. Указание. Что стоит в свойстве, когда его не трогали?
Полное решение. Третье состояние означает «решай сама». Записано оно у разных свойств по-разному: у растягивания это незаданное значение — документация называет его автоматическим определением, — а у ширины ту же роль играет ноль. Положение в группе со значением «авто» берётся от родительской группы. Форма, где всюду оставлено «решай сама», не недоделана: платформа справляется с размещением сама, пока ей не сказали иначе.
К вопросу 5. Ответ. Потому что ширина задаётся в символах и участвует в расчёте макета: места может не хватить, и тогда платформа сожмёт поле. Точного размера в точках в управляемой форме не бывает.
К вопросу 6. Ответ. Что буквально подвинуть нельзя, но можно изменить порядок в дереве, собрать поля в группу или разрешить растягивание — и спросить, что именно человеку мешает.
К упражнению «По образцу». Ответ. В узком окне колонки сжимаются, часть подписей укорачивается, а при совсем малой ширине список показывает не все колонки сразу. В широком — колонки раздаются по свободному месту.
К упражнению «Своё: переведите просьбу». Ответ. «Телефон справа от наименования» — положить оба поля в одну группу с горизонтальным порядком; «наименование во всю ширину» — разрешить растягивание по горизонтали; «ИНН поуже» — задать ширину в символах.
К упражнению «Ловушка: „форма разъехалась"». Указание. На чьём экране форма «правильная»?
Полное решение. Правильного экрана нет: форма собирается под то окно, в котором открыта, и на ноутбуке коллеги она выглядит иначе по устройству, а не по ошибке. «Прибить поля на место» в управляемой форме нельзя — координат нет. Проверить стоит другое: не тесно ли на узком экране, не расползаются ли поля на широком, и не мешает ли конкретному человеку конкретное поле. Если мешает — лечится это порядком, группой или растягиванием, и лечится для всех сразу.
К упражнению «Обратный ход». Ответ. Широкому полю разрешено растягивание по горизонтали, у узкого задана ширина в символах или растягивание запрещено. Возможен и третий вариант: поля лежат в разных группах.
К упражнению «На чтение». Ответ. На узком экране полям не хватит места, и платформа всё равно сожмёт их или покажет полосу прокрутки. На широком — форма останется прижатой к левому краю, а справа будет пустота. Обе картины — цена спора с платформой без причины.
§ 5.2. Группы: рамка, внутри которой свой порядок
К вопросу 1. Ответ. Элемент, который держит в себе другие элементы. Показывать ему нечего, поэтому и пути к данным не положено.
К вопросу 2. Ответ. Свойство «Группировка». Значения: вертикальная, горизонтальная, горизонтальная всегда и горизонтальная, если возможно.
К вопросу 3. Ответ. «Горизонтальная» ставит элементы в строку и тогда, когда места мало. «Горизонтальная, если возможно» смотрит на ширину: не хватило — опускает элементы друг под друга.
К вопросу 4. Ответ. Как вертикальная стопка, в которой некоторые ряды разложены в строку: форма — вертикальная группа, внутри неё поля и другие группы, а горизонтальные группы собирают поля в ряды.
К вопросу 5. Указание. Что вообще рисует рамку?
Полное решение. Рамка — не обязательное свойство группы, а одно из значений отображения: оно бывает сильным, обычным, слабым и никаким. При «никаком» на экране остаётся только порядок. Вторая возможность — снятое свойство «Объединённая»: тогда элементы такой группы располагаются прямо в родительской, а из свойств самой группы действуют только цвет фона и группировка. Ни то ни другое ошибкой не является: группу часто заводят ради размещения, а не ради вида.
К вопросу 6. Ответ. Видимость, доступность и «только просмотр» действуют на всё, что внутри: спрятали группу — исчезли все её элементы.
К вопросу 7. Ответ. Чаще — что поля из группы вынесли, а её саму забыли убрать. Но бывает и замысел: группу оставили, чтобы прятать одно поле вместе с её заголовком.
К упражнению «По образцу». Ответ. В структуре появляется группа «Контакты», а телефон и контактное лицо оказываются вложенными в неё; на экране — рамка с заголовком, внутри два поля.
К упражнению «Своё: разложите карточку». Ответ. Разумный вариант: форма — вертикальная; наименование отдельно; группа «Реквизиты» с ИНН; группа «Контакты» с телефоном и контактным лицом. Объяснение каждой группы — одной фразой про дело, а не про красоту.
К упражнению «Ловушка: „рамка пропала"». Указание. Рамку рисует не заголовок.
Полное решение. Первое объяснение — у группы отключено отображение: заголовок задан, а рисовать его не на чем. Второе — снято свойство «Объединённая», и элементы ушли в родительскую группу вместе с заголовком. Смотреть нужно в палитру свойств самой группы, а не в свойства полей: поля тут ни при чём.
К упражнению «Обратный ход». Ответ. Оба поля лежат в одной группе, и у неё горизонтальная группировка — в одном из двух видов. Если на узком экране поля опускаются друг под друга, значит, «если возможно».
К упражнению «На чтение». Ответ. Скорее всего, полей в группе было несколько, а потом их убрали или перенесли: заголовок и сильное выделение ради одного поля заводят редко.
§ 5.3. Страницы: форма, которую показывают по частям
К вопросу 1. Ответ. Из групп со значениями свойства «Вид» «Страницы» и «Страница». Первая держит набор и показывает закладки, вторая держит содержимое одной закладки.
К вопросу 2. Ответ. Как обычная группа: своя группировка, свой заголовок — он и становится надписью на закладке.
К вопросу 3. Ответ. Сверху, снизу, слева, справа, никак и на усмотрение платформы; отдельно — пролистывание жестом. Значение «нет» нужно помощникам, где страницы переключают командами «Далее» и «Назад».
К вопросу 4. Ответ. В свойстве «Текущая страница» у группы «Страницы».
К вопросу 5. Ответ. На первую — то, что нужно каждый раз; на следующие — то, что нужно не всегда; вне страниц — то, что нужно на любой закладке, вроде номера и даты документа.
К вопросу 6. Указание. Что пользователь видит на закладке, которую не открывал?
Полное решение. Ничего: содержимое второй закладки показывается только тогда, когда её открыли. Обязательное поле там легко пропустить, и узнает о нём пользователь по ошибке при записи — то есть в самый неудобный момент. Прятать на следующие закладки стоит то, без чего можно обойтись, а не то, без чего нельзя записать.
К вопросу 7. Ответ. Страница — часть одной формы: данные общие, переключение ничего не открывает, записывается всё разом. Отдельная форма — своё окно со своими данными и своей записью.
К упражнению «По образцу». Ответ. В структуре появляется группа «Страницы» с двумя страницами; наименование и ИНН на «Основном», телефон и контактное лицо на «Контактах». Если вы собирали группу «Контакты» в прошлом параграфе, её можно положить на страницу целиком.
К упражнению «Своё: разложите реализацию». Ответ. Над страницами — номер и дата; «Шапка» — контрагент и склад; «Товары» — таблица товаров. Над страницами остаётся то, что нужно видеть на любой закладке.
К упражнению «Ловушка: „каждая закладка — своя форма"». Ответ. Форма одна: закладки лишь показывают её по частям. Реквизиты общие, и записывается форма целиком, одной кнопкой — шапка вместе с товарами.
К упражнению «Обратный ход». Ответ. Сначала свойство «Текущая страница» у группы «Страницы»; если там пусто — страницу переключает код при открытии, и тогда причина в модуле.
К упражнению «На чтение». Ответ. Пошаговый помощник: страницы есть, но закладки скрыты, и пользователь переходит по ним командами «Далее» и «Назад».
§ 5.4. Декорации: то, что в форме ради пользователя, а не ради данных
К вопросу 1. Ответ. Надпись и картинка. От полей они отличаются тем, что пути к данным у них не бывает: показывают то, что записано в самой форме.
К вопросу 2. Ответ. В её свойстве «Заголовок». У надписи это и есть весь показываемый текст.
К вопросу 3. Ответ. По виду элемента в структуре и по пути к данным: у декорации пути нет, у поля картинки есть. Подсказка — у каждой записи своя картинка почти наверняка значит поле.
К вопросу 4. Указание. Как в управляемой форме задают то, что на экране выглядит линией?
Полное решение. Разделитель — это не отдельная вещь на экране, а решение «здесь кончается одно дело и начинается другое». В управляемой форме такие решения записывают правилом: блоки полей собирают в группы, а группам задают выделение и заголовок. Линия, рамка, промежуток — всё это вид группы, а не отдельный элемент. Поэтому отдельной декорации-разделителя и нет: ей нечего было бы делать.
К вопросу 5. Ответ. Что на надпись будут нажимать, а что произойдёт по нажатию, задано обработчиком — значит, в форме есть код, который её обслуживает.
К вопросу 6. Ответ. Когда это инструкция на абзац вместо короткого пояснения; когда это украшение ради украшения; когда текст должен меняться вместе с данными.
К вопросу 7. Ответ. Чаще подсказка: она привязана к полю и видна, когда пользователь к нему подходит. Надпись уместна как пояснение к целому блоку.
К упражнению «По образцу». Ответ. В структуре появляется декорация-надпись рядом с полем ИНН; в Предприятии она одинакова у всех контрагентов.
К упражнению «Своё: декорация или поле». Ответ. «Документ проведён» — поле надписи: меняется от документа к документу; «Все цены без НДС» — декорация-надпись; логотип фирмы — декорация-картинка; фотография товара — поле картинки с путём к данным.
К упражнению «Ловушка: „добавь линию между блоками"». Ответ. Искать разделитель бесполезно: его среди декораций нет. Шапку и товары собирают в группы, и группе, которая идёт второй, задают выделение и заголовок — линия появится как часть её вида.
К упражнению «Обратный ход». Ответ. Группу с заголовком «Покупатель» и выделением, внутри которой лежат поля контрагента.
К упражнению «На чтение». Ответ. У надписи включено свойство «Гиперссылка», а в модуле формы есть обработчик нажатия, который и заполняет значения. Код за границей книги, но то, что он есть, видно без модуля.
§ 5.5. От дерева к скетчу и обратно
К вопросу 1. Ответ. Дерево показывает вложенность и порядок, включая скрытое; скетч — прямоугольники и соседство, только то, что увидит пользователь.
К вопросу 2. Ответ. Вертикальная группа — друг под другом; горизонтальная — в строку; выделение — рамка; заголовок группы — надпись у рамки; группа «Страницы» — ряд закладок; надпись-декорация — строка текста без поля. И отрицательное: скрытое на скетч не попадает.
К вопросу 3. Ответ. Элемент со снятой видимостью: его место в дереве, на экране пользователь его не увидит.
К вопросу 4. Ответ. По раскладке внутри рамки: прямоугольники друг под другом — вертикальная, в строку — горизонтальная.
К вопросу 5. Ответ. Например: не хватило ширины, и поля из строки опустились друг под друга; у группы нет выделения, и рамки на экране нет.
К вопросу 6. Указание. Кто из двоих знает, что такое группировка?
Полное решение. Дерево — язык редактора: в нём группировки, выделения, пути к данным, и человеку, который с формой работает, всё это ничего не говорит. Скетч показывает то же решение в том виде, в каком его увидит пользователь, — прямоугольниками и подписями. Поэтому спорить о форме с пользователем удобнее по скетчу, а переводить согласованный скетч в дерево — уже дело разработчика.
К вопросу 7. Ответ. Из скетча в дерево: так собирают форму — сперва замысел на бумаге, потом правила в редакторе.
К упражнению «По образцу». Ответ. Сверху номер и дата в одну строку или друг под другом; под ними ряд закладок «Шапка» и «Товары»; открыта «Шапка» — контрагент и склад.
К упражнению «Своё: выведите дерево». Ответ. Форма вертикальная; наименование; группа «Кто отвечает» с заголовком и выделением, внутри адрес и ответственный — друг под другом или в строку, как нарисовали.
К упражнению «Ловушка: „на скетче было не так"». Ответ. Скорее всего, не прав: на узком экране горизонтальная группа «если возможно» опускает поля друг под друга — так и задумано. Проверить стоит группировку: если стоит «если возможно», дерево верное, а расхождение — от ширины окна.
К упражнению «Обратный ход». Ответ. Форма вертикальная; группа «Оплата» с заголовком и выделением, горизонтальная, внутри три поля; под ней поле комментария с растягиванием по горизонтали.
К упражнению «На чтение». Ответ. На скетче группы не будет вовсе — ни рамки, ни пяти полей. Это говорит, что у формы есть часть, которую пользователь не видит: служебные значения или то, что показывают только в особых случаях.
§ 5.6. Чужая форма: композиция и замысел
К вопросу 1. Ответ. Первый даёт скетч — что увидит пользователь. Второй — замысел: почему сложено именно так, в нескольких фразах о работе.
К вопросу 2. Ответ. От крупного к мелкому: страницы, группы, направление и выделение, декорации, скрытое. Крупные решения задают рамку для мелких; кто начинает с полей, тонет в них.
К вопросу 3. Ответ. Что в ней, как разложено, видна ли.
К вопросу 4. Ответ. Что её, скорее всего, собрали ради размещения, а не ради смысла. Тогда стоит проверить, не зря ли у неё рамка и заголовок.
К вопросу 5. Указание. Что знает скетч о скрытом?
Полное решение. Ничего: скрытая группа на скетч не попадает, и по экрану о ней не узнать. А в ней может лежать главное — поля, которые показывают одним пользователям и прячут от других, или то, что появляется только в особых случаях. Разбор, построенный по экрану, этого не увидит; разбор по дереву — увидит и заставит спросить, кто и когда меняет её видимость.
К вопросу 6. Ответ. Скрытую группу с важными полями — почему и от кого она скрыта; россыпь декораций-пояснений — что именно в форме непонятно.
К вопросу 7. Ответ. Читать только экран; не заметить группу без выделения; считать закладки отдельными формами; искать разделитель среди декораций.
К упражнению «По образцу». Ответ. Скетч: номер и дата сверху, закладки «Шапка» и «Товары», на открытой — контрагент и склад. Замысел, например: «номер и дата нужны всегда»; «шапку заполняют один раз»; «товары — основная работа, им отдана своя закладка».
К упражнению «Своё: замысел в фразах». Ответ. Например: «наименование — главное, оно первым»; «артикул и единица — одно дело для склада, их держат вместе в рамке „Учёт“»; «подробности и остатки кладовщик смотрит по требованию». Годится любой вариант, где фразы про работу, а не про устройство.
К упражнению «Ловушка: „группы нет — значит, поля сами по себе"». Ответ. Группу без выделения: на экране её не видно, а в дереве она есть и держит номер и дату в одной строке. Судить о связанности по рамке нельзя — её может и не быть.
К упражнению «Обратный ход». Ответ. Форма вертикальная; страницы «Основное», «Товары», «Дополнительно»; на «Основном» — группа «Покупатель» с заголовком; таблица на «Товарах»; на «Дополнительно» — группа «Бухгалтерия» с видимостью, которую показывают только бухгалтеру.
К упражнению «На чтение». Ответ. Композиция перекошена: на первой закладке двадцать полей без всякого деления — дело не разложено на части; на второй одно поле выделено так, будто оно важнее всего остального. Скорее всего, раскладка устарела, и замысел придётся восстанавливать по разговору с пользователями.