§ 8.3. Объект в подсистеме: одна связь, два окна

Откройте в дереве конфигурации документ «Поступление товаров», а в окне его редактирования — закладку с подсистемами: там перечислены подсистемы конфигурации, и у каждой флажок. Теперь откройте подсистему «Закупки» и посмотрите её состав: там перечислены объекты, и у каждого тоже флажок. Это не два разных списка. Это одна и та же связь, показанная с двух сторон, — и задать её можно из любого окна.

1. Связь одна, окна два

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

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

Работают обе одинаково: поставили флажок в одном окне — он появится и в другом.

Объект и подсистема связаны одной ниткой, и концов у неё два. Потянете за любой — связь получится одна и та же.

2. Что появляется в разделе

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

что включиличто появилось в разделе
справочник «Товары»открыть список товаров, создать товар
документ «Поступление товаров»открыть список поступлений, создать поступление
отчёт об остаткахоткрыть отчёт

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

3. В подсистему включают объект, а не форму

Для книги о формах это важная оговорка. В составе подсистемы перечислены объекты конфигурации — справочники, документы, отчёты. Форм там нет.

Подсистема «Закупки»
└── Документ «ПоступлениеТоваров»
        │
        └── команда открыть список
                │
                └── основная форма списка

Цепочка короткая: подсистема решает, какой объект попадёт в раздел, объект даёт команду, а какая форма откроется, решают основные формы объекта. Поэтому вопрос «почему из раздела открывается не та форма» к составу подсистемы отношения не имеет.

4. Объект в двух подсистемах

Контрагенты нужны и закупщику, и продавцу. Включаем справочник в обе подсистемы — и смотрим, что получилось.

гдечто видит пользователь
раздел «Закупки»команда открыть список контрагентов
раздел «Продажи»та же команда
обе командыоткрывают одну и ту же форму одного и того же справочника

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

5. Куда включать: по работе, а не по виду объекта

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

как делитьчто получится
по видам объектовраздел «Справочники» и раздел «Документы» — оглавление ни о чём
по работе человека«Закупки», «Продажи», «Склад» — каждому своё место

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

Из этого правила следует и то, как поступать с общими справочниками: товары и контрагенты нужны всем, поэтому их включают в несколько подсистем, а не выносят в отдельный раздел «Справочники».

6. Что видно при чтении чужой конфигурации

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

что видно в составечто это значит
три-четыре объекта, из них один документраздел про одно дело
двадцать объектов вперемешкураздел стал свалкой; пользователь ищет глазами
документ есть, а его справочники — нетдо справочников доберутся из формы документа
объект во всех подсистемахобщий для всей программы
объект без подсистемв оглавлении его нет вовсе

Третья строка — не ошибка, а решение: не всё, что нужно в работе, обязано стоять в оглавлении. Но если пользователь заводит контрагентов десять раз в день, отдельная команда в разделе сэкономит ему эти десять путей через форму документа.

7. В Конфигураторе и в Предприятии

Наполним разделы «Канцтоваров».

  1. В ветке «Общие → Подсистемы» откройте «Закупки» и найдите свойство состава. В нём отметьте документ «Поступление товаров», справочники «Товары» и «Контрагенты».
Здесь будет снимок экранаокно состава подсистемы «Закупки» с отмеченными объектами
  1. Откройте подсистему «Продажи» и отметьте документ «Реализация товаров», те же два справочника.

  2. Откройте окно редактирования справочника «Товары» и найдите закладку с подсистемами: обе отмечены. Это тот же флажок, только с другой стороны.

  3. Обновите конфигурацию базы данных и откройте «Канцтовары». Зайдите в «Закупки»: список поступлений, списки товаров и контрагентов, команды создания.

  4. Откройте из раздела список товаров и сравните с тем, что открывается из «Продаж»: форма одна и та же.

  5. Оставьте состав как есть: на нём будут построены следующие разговоры.

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

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


Состав задан, команды в разделах появились сами. Но порядок у них тот, что выбрала платформа, и видно в разделе всё, что она решила показать. Где менять этот порядок и как убрать из раздела лишнее, не выбрасывая объект из подсистемы?

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

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

Упражнения

По образцу. Включите в обе подсистемы справочник «Склады» и проверьте, что команда появилась в обоих разделах.

Своё: соберите раздел. Для подсистемы «Склад» перечислите объекты «Канцтоваров», которые вы бы в неё включили, и объясните каждый.

Ловушка: «объект в двух разделах — два объекта». Пользователь завёл контрагента в разделе «Закупки» и не видит его в списке из раздела «Продажи». Что случилось на самом деле?

Обратный ход. В разделе есть команда создания документа, но нет команды открыть его список. Как такое может быть?

На чтение. В чужой конфигурации подсистема «Кадры» содержит один документ и восемь справочников. Что можно предположить о работе, ради которой её собрали?

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