§ 0.2. Что такое интерфейс пользователя: всё, что видно и трогается
Слово «интерфейс» слышал каждый, кто хоть раз ругал неудобную программу. Употребляют его широко и не всегда точно: то про одну кнопку, то про всю программу разом. Раз это главный предмет книги, договоримся о нём твёрдо: что мы будем называть интерфейсом, где у него границы и почему смотреть мы будем именно сюда.
1. Интерфейс — место встречи
Интерфейс есть не только у программ, а у любого устройства, с которым человек имеет дело. Сравним три знакомых.
| устройство | человек сообщает | устройство отвечает |
|---|---|---|
| автомобиль | рулём, педалями | стрелками приборов, звуком |
| микроволновка | ручкой времени, кнопками | цифрами на табло, звонком |
| банкомат | клавишами, картой | экраном, купюрами, чеком |
Общее у всех трёх одно: это место встречи человека и системы. Через него человек сообщает, чего хочет, а система отвечает — цифрами, светом, звуком, движением. Обходного пути у пользователя обычно нет: он не лезет под капот и не разбирает банкомат, он работает с тем, что ему выставили наружу.
Интерфейс — это всё, через что человек общается с системой.
Строже: интерфейс — граница системы, через которую она принимает действия человека и показывает ему результат. Формулировка широкая, но точная: она годится и для микроволновки, и для прикладной программы 1С.
2. Что входит в интерфейс программы
У программы интерфейс — всё, что показано на экране, и всё, через что программой управляют. Для «Канцтоваров» это выглядит так.
| часть | зачем | в «Канцтоварах» |
|---|---|---|
| разделы | главы в оглавлении программы | не заданы: их добавит разработчик |
| списки | много однотипных записей | список товаров |
| карточки | одна запись целиком | карточка поступления |
| поля | показать или принять значение | «Артикул» у товара |
| кнопки | запустить действие | «Записать», «Провести и закрыть» |
| сообщения и вопросы | предупредить, переспросить | вопрос о несохранённых изменениях |
Перечень не полный, но масштаб по нему виден: интерфейс — не одна кнопка и не одно окно, а вся видимая и доступная для действия поверхность программы.
Интерфейс программы — набор окон, элементов и команд, через которые она принимает действия пользователя и показывает результат.
«Видно и трогается» — короткая память об этом. Строго говоря, часть интерфейса не видна: горячие клавиши, звуковой сигнал, подсказка, которую читает вслух программа для незрячих. Поэтому точнее говорить о поверхности, доступной для восприятия и действия.
Окна, элементы и команды — как раз те части, на которые мы потом будем разбирать каждое такое окно, так что строгая формулировка ещё поработает. А на первое время хватит короткой: интерфейс — всё, что видно и трогается.
3. Интерфейс — поверхность
У интерфейса есть глубина, в которой его самого нет. Под окнами «Канцтоваров» лежат данные — товары, документы, остатки, — правила, по которым программа считает и проверяет, код, написанный разработчиком, и устройство объектов, описанное в дереве конфигурации. Пользователь всего этого прямо не видит; видит он то, во что оно превращается на поверхности.
пользователь
│ видит и трогает
▼
┌──────────────────────────┐
│ интерфейс: формы, │ ← эта книга
│ кнопки, разделы, отчёты │
└──────────────────────────┘
│ опирается на
▼
┌──────────────────────────┐
│ данные и логика: база, │ ← другие книги
│ код, дерево конфигурации │ серии
└──────────────────────────┘
Проверить себя удобно на трёх вещах с экрана «Канцтоваров»:
| на поверхности | под ней |
|---|---|
| поле «Количество» в поступлении | реквизит строки документа, число в базе |
| кнопка «Провести и закрыть» | свойство документа «Проведение» и код, который делает записи в регистре |
| строка отчёта «Бумага А4 — 200» | записи регистра остатков |
Интерфейс — поверхность системы. Под ним всегда есть данные и логика.
Эта книга — о поверхности. Не потому, что глубина не важна: глубиной заняты другие книги серии, о коде и о дереве объектов. Задача этой — научиться читать поверхность так, чтобы за каждым полем и каждой кнопкой видеть, откуда они взялись.
4. В режиме Предприятия: разные лица одной программы
«Канцтовары» — не одно окно с одним набором кнопок, а много окон, и устроены они по-разному. Чтобы это увидеть, откроем четыре окна и сравним.
-
Найдите в общем перечне команд список товаров и откройте его. Это таблица: строки — товары, колонки — несколько коротких сведений о каждом.
-
Дважды щёлкните по строке «Ручка шариковая». Откроется карточка одного товара — уже не таблица, а несколько отдельных полей.
┌─ Ручка шариковая (Товары) ─────────────┐
│ [Записать и закрыть] [Записать] Ещё │
│ │
│ Код: [000000006 ] │
│ Наименование: [Ручка шариковая] │
│ Родитель: [Письменные…][…] │
│ Артикул: [РУЧ-01 ] │
│ Единица измерения: [шт ][…] │
└────────────────────────────────────────┘
Поле «Родитель» показывает группу, в которой лежит товар: справочник «Товары» иерархический, и ручка лежит в группе «Письменные принадлежности».
- Откройте список документов «Поступление товаров», а в нём — поступление № 12 от 15 марта. Сверху — отдельные поля: номер, дата, поставщик, склад; ниже — таблица товаров с количеством и ценой.
┌─ Поступление товаров 0000000012 ──────┐
│ [Провести и закрыть] [Записать] Ещё │
│ │
│ Номер: [0000000012] от: [15.03.2026] │
│ Контрагент: [Канцелярия Плюс ][…] │
│ Склад: [Основной ][…] │
│ │
│ ┌─────────────────┬──────┬──────┐ │
│ │ Товар │ Кол. │ Цена │ │
│ ├─────────────────┼──────┼──────┤ │
│ │ Бумага А4 │ 500 │ 250 │ │
│ │ Ручка шариковая │ 400 │ 20 │ │
│ │ Папка-регистра… │ 150 │ 90 │ │
│ └─────────────────┴──────┴──────┘ │
└───────────────────────────────────────┘
-
Откройте отчёт об остатках товаров на складе и нажмите «Сформировать». Сверху — настройки, снизу появится результат.
| Склад | Товар | Количество |
|---|---|---|
| Основной | Бумага А4 | 200 |
| Основной | Ручка шариковая | 300 |
| Основной | Папка-регистратор | 100 |
| Дополнительный | Бумага А4 | 200 |
| Дополнительный | Ручка гелевая | 240 |
Теперь сравним четыре окна.
| окно | как устроено | на какой вопрос отвечает |
|---|---|---|
| список товаров | таблица строк | какие товары у нас бывают |
| карточка товара | отдельные поля | каков этот товар |
| карточка поступления | поля и таблица | что произошло: пришла партия |
| отчёт | настройки и результат | сколько товара на складах |
Первые два окна принадлежат одному справочнику «Товары» — и всё же это разные окна: список показывает много товаров сразу, карточка — один целиком. Окна различаются не прихотью того, кто их делал, а тем, что отвечают на разные вопросы: в «Канцтоварах» их вообще никто не рисовал вручную, и всё же платформа построила список и карточку по-разному.
Разные окна программы устроены по-разному, потому что отвечают на разные вопросы. Даже у одного справочника окон несколько.
Каждое такое окно — список, карточка, отчёт — называется формой. Это главное слово книги, и следующий параграф займётся им всерьёз.
Главное в одном абзаце
Интерфейс пользователя — всё, через что человек общается с системой: у автомобиля это руль и приборы, у программы — разделы, списки, карточки, поля, кнопки, сообщения. В прикладной программе 1С интерфейс виден в режиме Предприятия и складывается из множества окон, устроенных по-разному: список товаров — таблица, карточка товара — отдельные поля, карточка поступления — поля и таблица, отчёт — настройки и результат. Устроены они по-разному потому, что отвечают на разные вопросы, и даже у одного справочника окон несколько. Под интерфейсом всегда лежат данные и логика — база, правила, код, дерево конфигурации, — а сам интерфейс есть поверхность, через которую к ним подходят. Эта книга — о поверхности, и каждое отдельное окно на ней называется формой.
Окон много, и все они разные. Но что делает окно формой — и о чём, собственно, каждая форма говорит с пользователем?
Контрольные вопросы
- Что такое интерфейс в широком смысле? Приведите пример не из мира программ.
- Назовите не меньше пяти частей, из которых складывается интерфейс программы 1С.
- В каком режиме платформы виден интерфейс прикладной программы?
- Список товаров и карточка товара принадлежат одному справочнику. Почему окна всё же разные?
- Что лежит «под» интерфейсом?
- Что шире — интерфейс или форма? Почему?
Упражнения
Четыре окна. Откройте в Предприятии список товаров, карточку товара, карточку поступления и отчёт об остатках. Для каждого окна двумя-тремя предложениями опишите, как оно устроено и на какой вопрос отвечает.
Своё устройство. Выберите бытовое устройство, которого не было в параграфе, — лифт, стиральную машину, кофейный автомат. Составьте для него такую же таблицу: чем человек сообщает, чем устройство отвечает, что скрыто под поверхностью.
Ловушка: «программа меня не понимает». Пользователь жалуется: «Нажимаю кнопку — ничего не происходит». Где может быть причина — на поверхности, под ней или в обоих местах? Приведите по примеру для каждого случая.
Где это живёт. Программист говорит: «Здесь мы переводим число в строку и приписываем знак рубля». О поверхности он говорит или о том, что под ней? А если бы он сказал: «Сумму на форме покажем с двумя знаками после запятой»?
Окно не из четырёх. Найдите в «Канцтоварах» окно, которое не похоже ни на список, ни на карточку, ни на отчёт. Опишите его и предположите, для чего оно нужно. Ищите там, где программа что-то у вас спрашивает: например, при выборе значения в поле кнопкой «…».
Ответы — в конце части.