6Глава Концепция управляемого приложения
Скачать 6.74 Mb.
|
Глава 2. Подсистемы в режиме управляемого приложения 2.1. Подсистемы – основа командного интерфейса управляемого приложения Ранее, когда понятия командного интерфейса не существовало, подсистемы при разработке прикладных решений для 1С:Предприятие, играли вспомогательную роль. В сущности, они были нужны лишь разработчику, помогая ему структурировать конфигурацию для своих целей и автоматизировать некоторые операции. С приходом командного интерфейса подсистемы приобрели новую роль – именно на их основе строится интерфейс приложений. Рассмотрим пример. Создадим в новой конфигурации следующие подсистемы: Справочники; Документы; Регистры; Администрирование. Для создания новой подсистемы нужно перейти в ветвь дерева конфигурации Общие > Подсистемы, после чего либо выбрать команду Добавить из контекстного меню ветви Подсистемы, либо выделить эту ветвь и нажать клавишу Ins на клавиатуре, либо воспользоваться кнопкой Добавить из командной панели дерева конфигурации. После этого появится окно редактирования объекта конфигурации, приведенное на рис. 2.1. 14 Рис. 2.1. Окно редактирования объекта Здесь можно либо перемещаться по вкладкам окна в произвольном порядке, либо, используя кнопку Далее, перемещаться по ним последовательно. Зададим следующие параметры для нашей новой подсистемы: Имя: Справочники Синоним: Справочники Cиноним генерируется автоматически на основе имени, при необходимости его можно отредактировать вручную. Поле Картинка можно использовать для того, чтобы задать подсистеме заранее созданную картинку. Это позволяет сделать интерфейс пользователя более удобным. Аналогично получим остальные подсистемы Рис 2.2. Подсистемы в дереве конфигурации Результат - панель разделов в режиме 1С:Предприятие, рис.2.3.: 15 Рис. 2.3. Панель разделов после добавления подсистем Рабочий стол нужен для ускорения доступа пользователя к наиболее часто используемым объектам системы. Это – одна из закладок командного интерфейса, которая появляется первой при открытии конфигурации в пользовательском режиме. Наша подсистема видна в верхней части окна программы, в так называемой панели разделов. Она снабжена стандартным рисунком, назначаемым автоматически, подпись соответствует синониму. Щелчок по вкладке "Константы" приведет нас к командам по работе с объектами конфигурации, которые включены в эту подсистему. Здесь хочется обратить ваше внимание на кнопку Главное меню. Она открывает меню, содержащее стандартные для Windows-программ команды, рис. 2.4. Рис. 2.4. Главное меню в режиме 1С:Предприятие Особый интерес представляет команда Главное меню > Все функции. Эта команда, рис. 2.5., открывает доступ к дереву объектов конфигурации, позволяет использовать некоторые стандартные команды. Особенно это окно полезно при разработке и отладке конфигурации – для быстрого поиска необходимых объектов без использования основного пользовательского интерфейса, для выполнения административных функций (таких, как удаление помеченных объектов, просмотр журнала регистрации). В законченной конфигурации есть смысл создать отдельную подсистему, которая будет содержать набор команд для вызова административных функций. 16 Рис. 2.5. Окно Все функции Обычно наиболее часто используемые команды на панели разделов располагают левее и выше других. Можно заметить, что порядок расположения разделов не соответствует порядку расположения объектов Подсистема в дереве конфигурации. Для того чтобы изменить порядок следования подсистем в панели разделов, нужно воспользоваться командой контекстного меню корневого объекта дерева конфигурации Открыть командный интерфейс конфигурации, рис. 2.6. 17 Рис. 2.6. Открыть командный интерфейс конфигурации В появившемся окне мы можем управлять порядком следования подсистем на панели разделов и их видимостью. Еще одной полезной возможностью настройки видимости подсистем является видимость по ролям. С помощью этого механизма можно конструировать интерфейсы для отдельных ролей, которые можно назначать пользователям, формируя, таким образом, рабочую среду, которая не содержит ничего лишнего. Настроим порядок следования подсистем с помощью кнопок Переместить вверх и Переместить вниз так, чтобы они приняли вид, представленный на рисунке 2.7. Рис. 2.7. Настройка командного интерфейса После нажатия на кнопку ОК и запуска конфигурации в пользовательском режиме, внесенные изменения можно будет наблюдать на панели разделов. 2.2. Пользователи, роли и панель разделов Для демонстрации настройки видимости подсистем по ролям нам понадобятся два пользователя и две роли. Сначала создадим две роли – Администратор и Сотрудник. В дереве конфигурации перейдем в ветвь Общие > Роли, создадим новую роль, дадим ей имя Администратор. Отметим права на доступ ко всем объектам (можно выполнить команду Действия > Установить все права), установим флажок Устанавливать 18 права для новых объектов, рис. 2.8. Тем самым, при создании новых объектов, права на выполнение различных действий с ними будут добавляться к роли автоматически. Рис. 2.8. Настройка роли Администратор Вторая роль, которая нас сейчас интересует, отличается от только что созданной названием – назовем ее Сотрудник, и тем, что у нее отключено право Администрирование у корневого объекта конфигурации. Выполним уже знакомую вам команду контекстного меню корневого элемента дерева конфигурации Открыть командный интерфейс конфигурации, в окне Командный интерфейс снимем флаг напротив раздела Администрирование у роли Сотрудник, остальные флаги должны быть установлены, рис. 2.9. Рис. 2.9. Настройка видимости разделов по ролям Создадим двух пользователей конфигурации. В Конфигураторе выполним команду Администрирование > Пользователи, в появившемся окне Список пользователей нажмем на кнопку Добавить. На вкладке Основные окна Пользователь дадим 19 первому пользователю имя Администратор, реквизит Полное имя будет заполнен автоматически. Остальные параметры оставим в значении по умолчанию, что приведет к тому, что у пользователя будет пустой пароль и он будет отображаться в списке выбора пользователей (рис. 2.10.), хотя, в целях безопасности, пользователя с административными правами можно скрыть из списка выбора, да и имя "Администратор" лучше заменить на что-нибудь менее очевидное. Рис. 2.10. Создание нового пользователя Перейдем на вкладку Прочие и в списке Доступные роли установим роль Администратор, рис. 2.11. Рис. 2.11 Настройка доступных ролей 20 Добавим в список второго пользователя, дадим ему имя Директор, на закладке Прочие установим среди доступных ролей роль Сотрудник. В итоге окно Пользователи примет такой вид, рис. 2.12. Рис. 2.12. Список пользователей Теперь внесем в конфигурацию еще одно изменение. Добавим в ветвь Справочники справочник, назовем его Сотрудники (реквизит Имя на вкладке Основные) и добавим в две подсистемы, рис. 2.13. Рис. 2.13. Новый справочник, добавленный в 2 подсистемы Проверим результаты нашей работы в режиме 1С:Предприятие. После запуска конфигурации появится окно выбора пользователя, рис.2.14. 21 Рис. 2.14. Окно выбора пользователя Выбрав в списке пользователей пользователя Администратора, отметим, что панель разделов в его командном интерфейсе имеет закладки для каждой из подсистем. Выбрав пользователя Директор, можно заметить, что его панель разделов не содержит раздела Администрирование. Глава 3. Константы. Основы клиент-серверного программирования. Общие реквизиты 3.1. Константы Константы в 1С:Предприятие используются для хранения информации, которая либо не меняется никогда, либо меняется – но очень редко. Константы содержатся в ветви дерева конфигурации Константы. Создадим новую константу (рис. 3.1.), заполним ее параметры следующим образом: Имя: ТекстСообщения Тип: Строка Длина: 50 Включим константу в состав всех подсистем. Предполагается, что данная константа будет использоваться для показа сообщения пользователям, входящим в систему. Посмотрим, как включение константы в подсистемы отразится на интерфейсе нашего приложения в режиме 1С:Предприятие. Видно (рис. 3.2), что в разделе, например, Справочники, под панелью разделов, появилась еще одна панель. Она называется панелью действий. В панель действий автоматически включаются команды, разбитые на группы – Сервис, Создать, Отчеты. 22 Рис. 3.1. Настройка параметров новой константы Группы в панели действий можно создавать и самостоятельно. В нашем случае в панели действий видна группа Сервис, содержащая команду для работы с только что созданной константой . Рис. 3.2. Константа в панели действий в разделе Документы В левой части окна программы можно видеть еще одну панель – она называется панелью навигации. Сейчас она отображает ссылку для доступа к созданной константе. Свободная часть окна – это рабочая область, в которой, например, открываются списки справочников, документов и т.д. Щелкнем по команде Текст сообщения в панели действий. Отобразится окно, которое позволяет нам редактировать константу ТекстСообщения. Введем в поле Текст 23 сообщения строку "Здравствуйте, уважаемый пользователь!" (рис. 3.3.) и нажмем на кнопку Записать и закрыть. Рис. 3.3. Форма редактирования константы Текст сообщения Если мы не хотим сохранять внесенные изменения, можно просто закрыть окно с помощью стандартной кнопки Закрыть, для записи изменений без закрытия формы служит кнопка Записать объект. Для того, чтобы воспользоваться дополнительными возможностями по работе с формой, можно использовать меню Все действия, рис. 3.4. Рис. 3.4. Меню Все действия Отчасти оно дублирует кнопки, имеющиеся на форме, в нем так же имеется одна специфичная для платформы 1С:Предприятие 8.2. команда. А именно, речь идет о команде Изменить форму. Форма, которую мы видим, сформирована автоматически. Однако, в режиме 1С:Предприятие мы можем вносить в нее некоторые изменения. Выполним команду Изменить форму, появится окно Настройка формы, рис. 3.5. Рис. 3.5. Окно Настройка формы 24 Нужно учитывать, что пользователь сможет настраивать внешний вид форм в том случае, если для него установлено право Сохранение данных пользователя. Это право можно настраивать, как и другие права, в роли пользователя, рис. 3.6. В нашем случае оно установлено. Рис. 3.6. Право Сохранение данных пользователя В нашем случае, рис. 3.5., в группе Элементы формы выделен элемент Текст сообщения, в группе Свойства элемента формы мы можем настраивать его свойства. Изменим свойство Заголовок, вместо "Текст сообщения" введем "Текст сообщения для пользователей", в итоге форма будет выглядеть так, как показано на рис. 3.7. Рис. 3.7. Отредактированный заголовок объекта Перейдем в режим конфигурирования, создадим еще одну константу (она пригодится нам позже): Имя: ПрефиксНомера Тип: Строка Длина: 2 25 Включим эту константу в подсистему Администрирование. В режиме 1С:Предприятие доступ к этой константе будет организован в группе Сервис панели действий раздела Администрирование. Форма констант Для создания формы констант нужно вызвать контекстное меню ветви Константы дерева конфигурации и выбрать в нем команду Создать форму констант. В появившемся окне Конструктор общих форм, рис. 3.8., нужно оставить тип формы в значении Форма констант, при необходимости заполнить другие поля и нажать на кнопку Далее. Рис. 2.8. Конструктор общих форм В появившемся окне, рис. 3.9. можно настроить состав формы констант, в нашем случае нас устраивает то, что в нее включены обе созданные в конфигурации константы, поэтому нажмем на кнопку Готово. 26 Рис. 3.9. Конструктор общих форм, состав формы констант В ветви Общие формы появится новая форма с именем ФормаКонстант, будет открыто окно редактирования формы, рис. 3.10. Рис. 3.10. Окно редактирования формы 27 При разработке командного интерфейса в 1С:Предприятие 8.2 используется концепция декларативного описания. Это означает, что разработчик задает схематичное описание элементов интерфейса, их группировку, свойства. При построении интерфейса для конкретного пользователя система создает его, опираясь на описание, сделанное разработчиком, учитывая различные дополнительные факторы, например, такие как права пользователя и пользовательские настройки интерфейса. Форму констант так же нужно включить в одну из подсистем. Включим ее в подсистему Администрирование Результат – рис.3.11. Рис. 3.11. Окно редактирования формы Мы видим, что форма констант доступна в группе Сервис панели действий раздела Администрирование. В текущей ситуации наличие в той же группе команды вызова 28 окна константы Префикс номера может показаться избыточным. Для того чтобы убрать эту команду из панели действий, нам понадобится отредактировать командный интерфейс. Для этого мы можем выполнить команду Открыть командный интерфейс подсистемы Администрирование и в появившемся окне, рис. 3.12., снять флаг Видимость для команды Префикс номера группы Сервис панели действий. Рис. 3.12. Настройка панели действий Теперь при запуске в режиме 1С:Предприятие ненужная команда отображаться не будет. Раньше мы создавали константу Текст сообщения, предполагая выводить заданный в ней текст в качестве сообщения для пользователей, входящих в систему. Реализуем эту функциональность. Для этого нам понадобится написать код в модуле управляемого приложения. Для того, чтобы открыть этот модуль, нужно воспользоваться командой Открыть модуль управляемого приложения корневого элемента конфигурации. Для этого модуля предусмотрено несколько стандартных обработчиков событий, которые можно найти в панели инструментов Модуль, рис. 3.13. Нас интересует обработчик ПриНачалеРаботыСистемы. 29 Рис. 3.13. Выбор обработчика ПриНачалеРаботыСистемы В модуле появится пустое тело обработчика, в которое нам нужно ввести команду для вывода сообщения пользователям. Если попытаться обратиться к константе напрямую из модуля управляемого приложения – мы столкнемся с ошибкой. Дело в том, что исполнение модуля управляемого приложения происходит на клиенте, в контексте которого нет доступа к константам. Поэтому нам понадобится код, который выполняется на сервере и возвращает значение константы. В данном примере мы можем возложить на серверную часть примера и вывод сообщения (функция Сообщить, которой можно здесь воспользоваться, работает и на клиенте, и на сервере). Но гораздо полезнее, в плане перспектив повторного использования кода серверной процедуры, "вытащить" серверные данные в метод, который выполняется на клиенте. Создадим новый общий модуль (в ветви Общие модули дерева конфигурации), назовем его СерверныеФункции. Проследим за тем, чтобы в его свойствах были установлены флаги Сервер и Вызов сервера, рис. 3.14. 30 Рис. 3.14. Общий модуль СерверныеФункции, свойства Откроем редактор кода для кода модуля (например, двойным щелчком по модулю в дереве конфигурации) и введем следующий код, рис. 3.15.: // Экспортная функция для вызова из других модулей Функция ПолучитьКонстанту() Экспорт // Возвращаем полученное значение константы Возврат(Константы.ТекстСообщения.Получить()); КонецФункции Рис. 3.15. Общий модуль СерверныеФункции, код Теперь нам нужно вызвать эту функцию в подходящем месте кода обработчика события ПриНачалеРаботыСистемы в модуле управляемого приложения. Например, это можно сделать так: Процедура ПриНачалеРаботыСистемы() //Выводим сообщение пользователю Сообщить(СерверныеФункции.ПолучитьКонстанту()); КонецПроцедуры 31 В результате при входе в систему мы получим сообщение следующего вида, рис. 3.16. Рис. 3.16. Вывод сообщения пользователю Обратите внимание на то, что сообщение выводится в область Сообщения основного рабочего окна. Если сообщение вызвано из модуля какого-либо отдельного окна, например, из модуля формы констант, которая создана ранее, то, по умолчанию, сообщение будет выведено в этом окне. Посмотрим на этот механизм в действии. Откроем окно редактирования формы констант (Общие формы > ФормаКонстант), перейдем на вкладку Модуль, на панели инструментов Модуль выберем стандартный обработчик события ПриОткрытии, отредактируем тело обработчика, чтобы оно приняло следующий вид, рис. 3.17.: Рис. 3.17. Вывод сообщения пользователю из модуля формы констант Благодаря этому коду при открытии формы констант будет появляться следующее сообщение, рис. 3.18. Рис. 3.18. Вывод сообщения в форму констант 32 3.2. Основы клиент-серверного программирования Обратите внимание на директиву компиляции &НаКлиенте, которая, в вышеописанном участке кода, автоматически размещена перед описанием процедуры ПриОткрытии(). Создавая решение для 1С:Предприятие 8.2, разработчик должен четко разграничивать код, исполняемый в клиентской и серверной частях приложения. Причем, на клиенте (в контексте клиента) и на сервере (в контексте сервера) доступны различные объекты, различные программные механизмы. Основная задача серверного кода заключается во взаимодействии с базой данных, клиентский код занимается отображением этих данных и взаимодействием с пользователем. А задача разработчика заключается в том, чтобы создать код с учетом клиент-серверного взаимодействия. Если перед описанием процедуры, функции или переменной в модуле формы отсутствует директива компиляции, по умолчанию считается, что код будет исполняться на сервере. В явном виде это задается указанием директивы &НаСервере. Попытаемся в нашем модуле формы вывести в окно сообщения значение константы. Для этого мы можем добавить в модуль функцию, возвращающую значение константы, которая должна выполняться в контексте сервера. Например, это можно сделать одним из следующих способов – ниже приведена дополненная процедура ПриОткрытии и еще пара процедур, заданных в коде модуля формы: &НаКлиенте Процедура ПриОткрытии(Отказ) Сообщить("Вы открыли форму констант!"); Сообщить(ПолучитьКонстанту()+" - из функции модуля формы без директивы"); Сообщить(СерверныеФункции.ПолучитьКонстанту()+" - из общего модуля"); Сообщить(ПолучитьКонстантуНаСервере()+" - из функции модуля формы с директивой &НаСервере"); КонецПроцедуры //По умолчанию функция считается серверной Функция ПолучитьКонстанту() //Возвращаем полученное значение константы Возврат(Константы.ТекстСообщения.Получить()); КонецФункции //Директива компиляции задана явно &НаСервере Функция ПолучитьКонстантуНаСервере() //Возвращаем полученное значение константы Возврат(Константы.ТекстСообщения.Получить()); КонецФункции Здесь мы создали две функции – одну назвали ПолучитьКонстанту(), при ее описании директиву компиляции мы не указывали. Вторую назвали ПолучитьКонстантуНаСервере() – при ее описании была указана директива 33 &НаСервере. Мы вызвали эти функции для вывода сообщения в клиентской процедуре ПриОткрытии(). У нас уже есть серверная функция в общем модуле СерверныеФункции – здесь показан пример ее использования, в подобном случае, возникшем при реальной разработке, если действия, которые выполняются в серверной функции модуля формы, совпадают с действиями функции, описанной в общем модуле, можно и даже нужно пользоваться функцией общего модуля. На рис. 3.19. вы можете видеть вывод сообщений, выполненный вышеприведенным кодом. Рис. 3.19. Вывод сообщения в форму констант, разные варианты работы с серверными данными Вернемся к директивам компиляции. Они могут использоваться не только в модулях форм, но и в общих модулях, и в модулях команд. Таблица 3.1. содержит описание возможности применения директив компиляции в различных модулях. Таблица 3.1. Директивы компиляции Модули Переменные Модуль формы Модуль команды Общий модуль &НаКлиенте Да Да Да Да &НаСервере Да Да Да Да &НаКлиентеНаСервере Нет Да Нет Нет &НаСервереБезКонтекста Да Нет Нет Нет &НаКлиентеНаСервереБезКонтекста Да Нет Нет Нет Опишем основные особенности их применения: 34 &НаКлиенте – эта директива предназначена для клиентских процедур и функций. Из такого метода могут быть вызваны любые процедуры и функции. Кроме того, с данной директивой можно объявлять переменные – их называют клиентскими. Такая переменная существует столько же, сколько существует клиентская часть формы. Из метода с данной директивой доступны другие клиентские переменные модуля формы. &НаСервере – эта директива предназначена для серверных процедур и функций. Из такой процедуры могут быть вызваны серверные, серверные и клиент-серверные внеконтекстные методы, а так же методы неглобальных серверных общих модулей. Допустимо объявление переменных с данной директивой – такие переменные существуют во время выполнения вызова сервера. Из серверных методов доступны серверные переменные, объявленные в модуле формы. &НаКлиентеНаСервере – эта директива предназначена для описания процедур и функций, выполняемых на клиенте и на сервере. Такие процедуры и функции могут вызывать клиентские и серверные процедуры общих модулей. Не подходит для объявления переменных. &НаСервереБезКонтекста – такая процедура или функция исполняется на сервере вне контекста формы, в модуле которой она описана. Из нее можно вызывать лишь другие внеконтекстные процедуры или функции. Использование этой директивы позволяет сократить объем данных, передаваемых между сервером и клиентом. Не подходит для объявления переменных. &НаКлиентеНаСервереБезКонтекста – такая процедура или функция может исполняться на клиенте и на сервере, без доступа к контексту формы. Не подходит для объявления переменных. Помимо директив компиляции в модуле управляемой формы можно пользоваться инструкциями препроцессору. Инструкции препроцессору обрабатываются до того, как будут обработаны директивы компиляции. 3.3. Общие реквизиты Общие реквизиты являются новой возможностью, которая была добавлена в 14-й релиз платформы 1С:Предприятие 8.2. Общие реквизиты можно использовать двумя способами. Первый из них заключается в использовании их, как, собственно, реквизитов, которые присутствуют у всех (или у достаточно большого количества) объектов конфигурации. Второй способ предусматривает использование общих реквизитов в механизме разделения данных в качестве разделителей данных. В базе, использующей механизм разделения данных, могут работать несколько пользователей, набор данных каждого из которых не пересекается с набором данных других пользователей, то есть – каждый из них считает, что база содержит лишь "его" данные и ничего больше. Сейчас мы создадим общие реквизиты, которые планируется использовать именно как реквизиты для других объектов конфигурации. В частности, общий реквизит может быть "подключен" к следующим объектам. Правильным будет и утверждение о том, что эти объекты могут "входить в состав" общего реквизита, так как, собственно, от 35 настройки состава общего реквизита зависит его появление в других объектах. Итак, речь идет о следующих объектах: планы обмена ; справочники; документы; планы видов характеристик; планы счетов; планы видов расчета; регистры сведений; регистры накопления; регистры бухгалтерского учета; регистры расчета; бизнес-процессы; задачи. В нашем учебном примере мы собираемся вести в базе данных учет по нескольким организациям. Для этого нам понадобится, чтобы все объекты конфигурации, для которых уместен данный реквизит, содержали бы реквизит Организация, который содержит ссылку на организацию. Например, каждый документ будет оформляться от лица определенной организации, каждый элемент справочника будет относиться к той или иной организации, и так далее. Общие реквизиты позволяют снизить трудоемкость разработки. Второй реквизит, который предназначен для документов, будет использоваться для ввода комментариев к документу. Прежде чем продолжать работу над общими реквизитами, создадим следующие объекты конфигурации, не настраивая их дополнительных свойств – справочник с именем Организация, и документ с именем ПоступлениеМатериалов. Включим их в подсистему Документы. Создадим новый общий реквизит со следующими параметрами, рис. 3.20.: Имя: Комментарий Тип: Строка, длина 50 Рис. 3.20. Настройка общего реквизита 36 Обратите внимание на параметр Автоиспользование. В данном случае мы оставляем его в значении по умолчанию – Не использовать. То есть – состав общего реквизита мы будем настраивать вручную. Этот общий реквизит мы планируем добавить ко всем документам, поэтому найдем свойство Состав, нажмем на ссылку Открыть, в появившемся окне выберем вариант Использовать для документа ПоступлениеМатериалов. При создании других документов мы сможем самостоятельно включать их в состав общего реквизита. Быстро проверить состав используемых объектов общего реквизита можно в нижней части окна настройки состава. Преимущества использования общих реквизитов напоминают использование процедур и функций в общих модулях, к которым обращаются из многих других методов. Если возникает необходимость в изменении общего реквизита – например – в процессе работы в конфигурации оказалось, что длину комментария нужно увеличить – достаточно изменить параметры типа общего реквизита, и это изменение затронет все объекты конфигурации, включенные в его состав. Создадим второй общий реквизит: Имя: Организация Тип: СправочникСсылка.Организации Автоиспользование: Использовать Этот реквизит мы планируем добавить ко всем объектам, допускающим использование общих реквизитов, за исключением справочника Организации и некоторых других. Перейдем в окно настройки состава общего реквизита и установим свойство Использование у справочника Организации в значение Не использовать, рис. 3.21. Рис. 3.21. Настройка общего реквизита Откроем нашу конфигурацию в режиме 1С:Предприятие и посмотрим, как выглядит документ ПоступлениеМатериалов и справочники Организации и Сотрудники. 37 Для начала перейдем на вкладку Справочники. Обратите внимание на то, что в панель навигации раздела были автоматически добавлены ссылки для доступа к только что созданному справочнику Организации. Щелкнем по ссылке Организации. В рабочей области окна появится список справочника. На данный момент он пуст, так как мы пока не заполняли справочник организациями, по которым будет вестись учет в базе. Щелкнем по кнопке Создать, которая расположена на командной панели списка – появится отдельное окно для заполнения свойств элемента справочника, рис. 3.22. Можно отметить, что помимо стандартных реквизитов (Наименование, Код) данный справочник не содержит ничего другого – это неудивительно, мы исключили его из состава общего реквизита Организация. Рис. 3.22. Справочник Организации Теперь откроем список справочника Сотрудники и нажмем на кнопку Добавить. Общий реквизит Организация у данного справочника присутствует, рис. 3.23. 38 Рис. 3.23. Справочник Сотрудники Откроем, наконец, окно создания документа. ПоступлениеМатериалов в разделе Документы. Здесь мы видим два общих реквизита – Комментарий и Организация, рис. 3.24. Рис. 3.24. Документ ПоступлениеМатериалов |