§ 0.4. Командный интерфейс: оглавление прикладной программы
Откуда пользователь вообще знает, что в программе есть список товаров? Ему этого никто не рассказывал, и всё же он находит нужное окно среди десятков, а в типовой программе — среди многих сотен. Значит, программа заранее выкладывает перед ним всё, что умеет, и делает это не как попало. У книги для этого есть оглавление. У прикладной программы 1С — тоже, и называется оно командным интерфейсом.
1. Оглавление программы
Толстую книгу не листают в поисках нужной главы: открывают оглавление, находят часть, в ней строку и по номеру страницы попадают куда нужно. Программа устроена так же — только вместо глав у неё формы.
| в книге | в программе 1С |
|---|---|
| часть | раздел: «Продажи», «Склад» |
| строка оглавления | команда в разделе: «Товары», «Поступления товаров» |
| глава, которую открыли | форма, которая открылась |
Пользователь выбирает раздел, в разделе — команду, и команда открывает форму: список, карточку, отчёт. Главное дело оглавления — не рассказывать, а привести к тому месту, где рассказ начнётся.
Командный интерфейс — оглавление прикладной программы.
Оговорка, без которой образ треснет: рядом со ссылками на формы в разделе живут и действия — «Создать», «Отчёты». Оглавление книги таких кнопок не знает, а оглавление программы знает.
Строгая пара, как обычно, с адресом в Конфигураторе:
образ оглавление программы
строго разделы программы и команды
в них, через которые открывают
списки, карточки, отчёты
где подсистемы в ветке «Общие»;
свойства конфигурации
«Командный интерфейс»
2. Из чего складывается главное окно
Окно программы 1С в интерфейсе «Такси» — в нём работают современные типовые программы — делится на несколько областей. Вот как это выглядит в типовой программе, где разделов много:
┌──────────────────────────────────────────┐
│ заголовок, главное меню, поиск │
├────────────┬─────────────────────────────┤
│ Главное │ Товары │
│ Закупки │ Контрагенты │
│ Продажи ◄ │ Реализации товаров │
│ Склад │ Создать ▾ Отчёты ▾ │
│ ├─────────────────────────────┤
│ │ рабочая область: │
│ │ здесь открываются формы │
└────────────┴─────────────────────────────┘
разделы функции раздела «Продажи»
Слева — панель разделов: список разделов верхнего уровня, между которыми переключаются одним щелчком; стрелкой на наброске отмечен открытый. Рядом — функции текущего раздела: сначала команды, которые открывают списки, затем группы действий — «Создать», «Отчёты», «Сервис». Остальное место — рабочая область: здесь и открываются формы. Бывают и другие панели — избранное, история, открытые окна, — но оглавление держат эти две.
Расположение панелей не жёсткое: пользователь может скрыть лишние или выбрать для них другое место из допустимых. Но состав — какие разделы есть и какие команды в каждом — задаёт не он, а разработчик.
3. Раздел — это подсистема
Откуда берутся разделы? Первый из них, «Главное», есть в любой программе, даже самой маленькой: платформа показывает его всегда. Все остальные — это подсистемы первого уровня, объекты конфигурации из ветки «Общие», у которых включено свойство «Включать в командный интерфейс». Одна подсистема первого уровня — один раздел; вложенные в неё подсистемы становятся группами команд внутри этого раздела.
Конфигурация
└── Общие
└── Подсистемы
├── Закупки → раздел «Закупки»
├── Продажи → раздел «Продажи»
└── Склад → раздел «Склад»
Что попадает в раздел, решает состав подсистемы: разработчик включает в неё объекты — справочники, документы, отчёты, — и их стандартные команды появляются в разделе. Стандартные — это те, которые платформа даёт объекту сама, не спрашивая: открыть список, создать новую запись. Документ «ПоступлениеТоваров», включённый в подсистему «Закупки», даёт в разделе «Закупки» команду открыть список поступлений и команду создать новое. Увидит их пользователь, у которого есть права на этот документ; а если набор по умолчанию не устраивает, разработчик поправит его в командном интерфейсе подсистемы — уберёт лишнее или добавит свои команды.
| что видно в Предприятии | что задано в Конфигураторе |
|---|---|
| раздел «Главное» | есть всегда; состав — свойство конфигурации «Командный интерфейс основного раздела» |
| другие разделы | подсистемы первого уровня |
| команды в разделе | объекты, включённые в подсистему |
| какие разделы кому видны | свойство конфигурации «Командный интерфейс» |
Названия свойств запоминать сейчас не обязательно — важнее связь: подсистема даёт раздел, включённый в неё объект даёт команды в этом разделе. И здесь снова работает правило, которое встретится в книге ещё не раз: стандартные команды в разделе никто не рисовал по одной. Разработчик сказал «поступления относятся к закупкам», а кнопки платформа расставила сама.
4. Что видно в «Канцтоварах»
В «Канцтоварах» ветка «Подсистемы» пока пуста: конфигурация, собранная по «Дереву метаданных», разделов не заводила. Поэтому раздел на экране один — «Главное», тот самый, что есть всегда. Команды в нём платформа расставила сама: списки товаров, контрагентов, складов, поступлений и отчёт об остатках. Если какого-то из них там не окажется, откройте главное меню: в нём есть пункт «Все функции», где перечислено всё, что есть в программе.
Выглядит это бедно, но полезно: вы видите оглавление, которое платформа собрала без участия разработчика. Когда ближе к концу книги мы заведём подсистемы «Закупки» и «Продажи», оглавление «Канцтоваров» станет похоже на оглавление типовой программы — и вы увидите, что поменялось от нескольких строк в Конфигураторе.
Прежде чем идти дальше, разведём два похожих слова про команды: они живут в разных местах и делают разное.
5. Не путать с командной панелью формы
Слово «команда» живёт в двух местах, и их легко спутать. У программы есть командный интерфейс — оглавление. У каждой формы есть своя командная панель — полоса кнопок наверху формы: «Записать», «Провести и закрыть».
| командный интерфейс | командная панель формы | |
|---|---|---|
| чей | всей программы | одной формы |
| где на экране | панель разделов, функции раздела | верх формы, над полями |
| о чём говорит | какие разговоры можно начать | что можно сделать в этом разговоре |
| в образе | оглавление | глаголы реплики |
Проверка простая: команда оглавления доступна, когда не открыто ни одной формы, — её видно в разделе сразу после запуска программы. Глагол формы появляется вместе с формой и без неё не существует.
6. Одна форма — несколько входов
Теперь, когда оглавление отделено от глаголов формы, видно и ещё одно: оглавление — не единственная дорога к форме.
Раздел — не дом формы, а место, где стоит команда, которая её открывает. Одна и та же форма открывается разными путями, и оглавление — только один из них.
| откуда | как попасть в карточку поступления № 12 |
|---|---|
| оглавление | раздел → «Поступления товаров» → строка № 12 |
| другая форма | из отчёта или журнала, двойным щелчком по строке |
| история | панель истории: недавно открытое |
| начальная страница | если список поступлений вынесен туда |
Объект может входить и в несколько подсистем сразу: справочник «Товары» нужен и в закупках, и в продажах, и его список окажется в обоих разделах. Форма от этого не раздваивается — просто у неё два входа.
Форма живёт в своём объекте, а не в разделе. Раздел лишь даёт к ней вход — и не единственный.
7. В режиме Предприятия
-
Посмотрите на панель разделов «Канцтоваров». Сколько в ней разделов и как называется единственный?
-
Откройте «Главное» и перепишите его команды. Какие из них открывают списки, какие что-то создают, какие открывают отчёты?
-
Откройте из «Главного» список поступлений, а в нём — поступление № 12. Затем нажмите в заголовке формы кнопку с домиком: она возвращает на начальную страницу — ту, что программа показывает при запуске. Карточка при этом не закрылась: к ней можно вернуться через список открытых окон или историю.
-
Откройте главное меню и найдите в нём настройку панели разделов. В списке разделов, который она покажет, будет один «Главное».
Главное в одном абзаце
Командный интерфейс — оглавление прикладной программы: разделы и команды в них, через которые пользователь находит и открывает формы, не перебирая их подряд. В главном окне его держат две области — панель разделов и функции текущего раздела, — а формы открываются в рабочей области. Раздел «Главное» есть всегда, остальные разделы — подсистемы первого уровня, а стандартные команды в разделе появляются сами, когда разработчик включает объект в подсистему. В «Канцтоварах» подсистем пока нет, поэтому раздел один — «Главное», и его команды платформа расставила без нас. Путать командный интерфейс с командной панелью формы нельзя: первое — оглавление всей программы, второе — глаголы одной открытой формы. И раздел — не дом формы, а один из входов в неё: форма живёт в своём объекте.
Мы нашли форму по оглавлению и открыли её. Но где в этот момент находится то, что мы видим, — на нашем компьютере или там, где хранится база? И почему от ответа зависит, сохранится ли то, что мы введём?
Контрольные вопросы
- Что в программе 1С играет роль оглавления и из чего оно состоит?
- Какие области главного окна держат оглавление, а в какой открываются формы?
- Откуда берётся раздел «Главное» и откуда — все остальные разделы?
- Как команда попадает в раздел, если её никто не рисовал?
- Почему в «Канцтоварах» раздел только один?
- Чем командный интерфейс отличается от командной панели формы?
Упражнения
Оглавление «Канцтоваров». Перепишите команды раздела «Главное» и разложите их на три группы: открывают список, создают новое, открывают отчёт.
Своё оглавление. Разложите «Канцтовары» на бумаге на три-четыре раздела: какие команды в какой раздел попадут. Какой объект хочется положить сразу в два раздела и почему?
Ловушка: две панели. Коллега пишет: «Кнопку „Провести" надо добавить в командный интерфейс, пользователи её не находят». Что не так в этой фразе? Где на самом деле живёт эта кнопка?
Чужое оглавление. В типовой программе разделы такие: «Главное», «Продажи», «Закупки», «Склад», «Финансы», «Администрирование». В каком разделе вы стали бы искать список поступлений товаров, а в каком — справочник товаров? Почему справочник может найтись сразу в нескольких?
Ответы — в конце части.