Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование на платформе 1С Предприятие 8.3. Учебное пособие
.pdf
3.8. Модуль управляемой формы
51
&НаСервереБезКонтекста – определяет, что подпрограмма будет
выполняться на стороне сервера, но контекст формы (реквизиты, элементы,
параметры) будет в ней недоступен, что существенно ускоряет обработку.
&НаКлиентеНаСервереБезКонтекста – определяет, что подпро-
грамма будет выполняться как на стороне сервера, так и на стороне клиента, смотря откуда она будет вызвана. Контекст формы будет в ней недоступен. Эту директиву разработчики обычно используют тогда, когда
нужно выполнить одинаковые действия при создании формы на сервере и
в процессе ее функционирования на клиенте.
Если никакая директива компиляции перед процедурой не указана,
то платформа использует директиву &НаСервере.
В целом исполнение модуля формы на клиенте и на сервере характеризуется тем, что из клиентских процедур модуля формы можно вызывать серверные, тем самым передавая выполнение с клиента на сервер. После выполнения серверных процедур исполнение кода возвращается на
клиент. Принудительно передать исполнение кода в обратную сторону, с
сервера на клиент, нельзя.
Модуль формы содержит обработчики событий, связанные с формой. Например, обработчики событий, связанные с открытием и закрытием
формы (указаны в порядке возникновения событий):
ПриЧтенииНаСервере – выполняется на сервере. Вызывается
только для существующих в информационной базе объектов. В этой процедуре доступен прикладной объект, с которым работает форма.
ПриСозданииНаСервере – выполняется на сервере. Вызывается
всегда при открытии форм и новых, и существующих объектов. Здесь уже
недоступен прикладной объект, отображаемый в форме, и можно отказаться от открытия формы.
ПриОткрытии – выполняется на клиенте. Событие возникает до по-
каза открываемой формы пользователю. Здесь можно отказаться от открытия
формы или выполнить некоторые интерактивные действия, которые невозможны на сервере: выдать предупреждение пользователю или открыть связанную форму, данные которой зависят от основной открываемой формы.
ПередЗакрытием – выполняется на клиенте. Возникает при закры-
тии формы до закрытия окна формы. Здесь разработчик имеет возможность
отказаться от закрытия формы.

3. Модули конфигурации
52
ПриЗакрытии – выполняется на клиенте. Возникает при закрытии
формы после закрытия окна формы. Здесь можно описывать алгоритмы,
которые должны быть выполнены только в случае, когда форма будет
наверняка закрыта.
3.9. Модуль команды
Для прикладных объектов конфигурации существуют подчиненные
объекты Команды. Существуют также общие объекты конфигурации –
объекты Общая команда. У каждой команды есть модуль команды, в котором можно написать предопределенную процедуру ОбработкаКоманды, в
которой на встроенном языке реализуются действия, выполняемые при вызове этой команды.
Модуль команды, так же, как и модуль управляемой формы, суще-
ствует и на сервере, и на клиенте. В модуле команды могут быть использованы следующие директивы компиляции:
&НаКлиенте – выполняется на стороне клиента.
&НаСервере – выполняется на стороне сервера.
&НаКлиентеНаСервере – выполняется и на клиенте и на сервере.
Процедура ОбработкаКоманды обязательно должна предваряться
директивой &НаКлиенте, так как выполнение команды происходит в клиентском приложении.
Из клиентских процедур модуля команды можно вызывать сервер-
ные, после их выполнения исполнение кода возвращается на клиент.
Но при этом из серверных процедур/функций вызывать клиентские проце-
дуры нельзя.
Модуль команды должен содержать только описание процедур и
функций и не может иметь переменных и тела модуля.
Контрольные вопросы
1. Что такое контекст модуля?
2. Чем контекст клиента отличается от контекста сервера?
3. Что такое общий модуль и каково его назначение?
4. Сколько общих модулей может быть определено в конфигурации?

Контрольные вопросы
53
5. Что такое глобальный общий модуль?
6. Какие свойства общего модуля определяют доступность его экс-
портируемых подпрограмм?
7. Для чего предназначен модуль управляемого приложения?
8. Какие обработчики событий может содержать модуль управляе-
мого приложения?
9. В какой момент выполняется процедура ПередНачаломРаботыСи-
стемы?
10. В какой момент выполняется процедура ПриНачалеРаботыСи-
стемы?
11. В какой момент выполняется ПередЗавершениемРаботыСистемы?
12. В какой момент выполняется процедура ПриЗавершенииРа-
ботыСистемы?
13. В какой момент выполняется модуль сеанса и для чего он предна-
значен?
14. Для чего используется событие УстановкаПараметровСеанса?
15. Что может и чего не может содержать модуль сеанса?
16. Для запуска в каком режиме предназначен модуль внешнего соеди-
нения?
17. Какие обработчики событий реализует модуль внешнего соедине-
ния?
18. Для чего предназначен модуль объекта?
19. Как называется модуль объекта для различных объектов конфигу-
рации (константа, справочник, документ, отчет, обработка, бизнес-процесс,
задача, регистр сведений, регистр накопления, последовательность)?
20. В какой момент выполняется процедура ОбработкаПроверки-
Заполнения и для чего она предназначена?
21. В какой момент выполняется процедура ПередЗаписью и для чего
она предназначена?
22. В какой момент выполняется процедура ПриЗаписи и для чего она
предназначена?
23. Для чего предназначен модуль менеджера объекта?
24. Для чего предназначен модуль формы?
25. В каком контексте могут исполняться процедуры модуля формы?
26. Как задается контекст выполнения подпрограммы модуля формы?

3. Модули конфигурации
54
27. В какой момент выполняется процедура ПриЧтенииНаСервере и
для чего она предназначена?
28. В какой момент выполняется процедура ПриСозданииНаСервере и
для чего она предназначена?
29. В какой момент выполняется процедура ПриОткрытии и для чего
она предназначена?
30. В какой момент выполняется процедура ПередЗакрытием и для
чего она предназначена?
31. В какой момент выполняется процедура ПриЗакрытии и для чего
она предназначена?
32. Для чего предназначен модуль команды?
33. В каком контексте могут исполняться подпрограммы модуля ко-
манды?
34. Как задать контекст выполнения подпрограмм модуля команды?
35. Каковы правила перехода от одного контекста к другому в модулях
формы и команды?

4.2. Виды справочников
55
4. СПРАВОЧНИКИ
4.1. Назначение справочника
Справочник – это ограниченный список значений некоторого реквизита (документа, формы, регистра и т.п.), имеющий средства для создания,
удаления и редактирования списка пользователем прикладной системы.
Исторически справочники появились в связи с потребностью пользователя добавлять в информационную базу объекты учета, которыми оперирует система. Например, справочник сотрудников содержит список сотрудников предприятия. Но состав сотрудников время от времени изменяется. Пользователь должен иметь возможность изменять содержимое справочника – добавлять одни элементы и удалять другие.
Другие примеры. Справочник Студенты – ограниченный список
всех студентов. Справочник Место рождения – ограниченный список населенных пунктов.
При реализации оконного интерфейса справочники обычно связываются с полями, в которых пользователь должен выбрать некоторое значение.
При выборе значения открывается форма выбора справочника, содержащая
список его элементов, из состава которых пользователь и делает свой выбор.
При этом данный список может редактироваться, т.е. в процессе выбора
пользователь может создать новый элемент и тут же его выбрать.
Значение связанного со справочником поля, после выбора пользователя, будет иметь тип ссылка, т.е содержать ссылку на выбранный элемент.
Справочники предназначены для достижения двух целей.
1. Избежать возможности неоднозначного ввода информации. Выбор
элемента из заранее заданного списка гарантирует однозначное представление одного и того же материального объекта всеми сотрудниками и во
всех формах учета.
2. Для реализации базы данных обо всех объектах материального
мира, задействованных в процессе функционирования и ведения учета на
предприятии.
Справочник является одним из краеугольных камней, на котором
строится прикладное решение. С одной стороны, это список объектов, за-

4. Справочники
56
действованных в хозяйственной деятельности предприятия. С другой стороны, справочник позволяет для каждого объекта создать и хранить любое
количество реквизитов, используемых и для ведения учета, и просто в информативных целях.
Например, для справочника сотрудников можно создать реквизиты
адрес места жительства, гражданство, телефон, количество детей, семейное
положение и т.д. Фактически справочник сотрудников превращается в базу
данных о сотруднике.
При помощи справочников реализуются различные классификаторы, установленные законодательством для каких-либо параметров или
создаются самими разработчиками. Например, классификатор видов деятельности, классификатор адресов.
4.2. Виды справочников
Все справочники могут быть двух видов:
одноуровневые;
многоуровневые.
Одноуровневый справочник фактически является классической реляционной таблицей. Столбцы таблицы называются «Реквизиты справочника», Строки таблицы – «Элементы справочника», Элементы хранят значения реквизитов.
В любом справочнике всегда существует, по крайней мере, два предопределенных реквизита: Код и Наименование. Структура одноуровневого
справочника изображена на рис. 4.1.
Рис. 4.1. Одноуровневый справочник

4.2. Виды справочников
57
Многоуровневые справочники, в свою очередь, могут быть двух
видов:
иерархия групп и элементов,
иерархия элементов.
Иерархия групп и элементов означает, что справочник может содер-
жать элементы и группы. Группы предназначены для создания уровней
группировки данных справочника. Группа может содержать другие группы
и обычные элементы. Количество уровней групп можно ограничить соответствующим параметром в окне свойств справочника, но может быть и
неограниченным.
В таком справочнике возможно отдельно задавать реквизиты для
элементов и для групп справочника. Реквизиты бывают трех видов:
только реквизиты элементов (используется по умолчанию);
только реквизиты групп (видны в группе, не видны в элементах);
реквизиты элементов и групп (присутствуют и там, и там).
Первый вид задает реквизит, который присутствует только в элементах справочника, но не присутствует в записях, соответствующих группам.
Именно такое реквизиты чаще всего используются для создания базы данных об объектах операционной деятельности, так как элемент является объектом операционной деятельности, а группа всего лишь создает группировку таких объектов.
Второй вид реквизитов присутствует только в записях-группировках
и используется, когда для таких записей также нужно создавать базу данных, отличную от базы данных элементов.
Третий вид используется, когда и элементы, и группы должны содержать один и тот же реквизит.
Разберем пример, изображенный на рис. 4.2. На этом рисунке изображена организационная структура распределения сотрудников таганрогского кампуса ЮФУ по состоянию на осень 2019 г.
Первый уровень соответствует институтам. Это записи-группировки. Второй уровень соответствует кафедрам. Это также записи-группировки, которые расположены внутри институтов. Третий уровень соответствует преподавателям и сотрудникам кафедр. Это элементы справочника.

4. Справочники
58
Рис. 4.2. Пример иерархии групп и элементов
Достоинством такой иерархии является возможность логически понятной для пользователя группировки элементов справочника. Она же является и недостатком, если мы точно не знаем к какой кафедре или институту относится тот или иной сотрудник. Для таких случаев в системе имеется возможность отключить группировку, вывести все элементы одним
списком и найти нужный элемент по известным параметрам.
На рис. 4.3. изображен пример отображения иерархического спра-
вочника в виде иерархии.
Рис. 4.3. Справочник в виде иерархии
Сотрудники
ИРТСУ ИКТИБ
ВТ МОП ЭВМ
Преподаватель 1Преподаватель 2Преподаватель
3
САПР
Преподаватель
4
САиТ
ИНЭП ИУиЭС

4.2. Виды справочников
59
На рис. 4.4. этот же справочник отображается в виде одноуровневого
списка.
Рис. 4.4. Справочник в виде списка
Еще один режим отображения иерархического справочника – в виде
дерева. Пример этого режима изображен на рис. 4.5.
Рис. 4.5. Справочник в виде дерева
Существенным недостатком иерархического справочника является
невозможность копирования иерархии из одного справочника в другой.

4. Справочники
60
Приведенная на рис. 4.2 иерархия сотрудников ЮФУ аналогична иерархии
студентов ЮФУ. Но для справочника студентов ее нужно будет создавать
самостоятельно.
Второй вид иерархии – иерархия элементов. Такой справочник состоит только из элементов. При этом некоторые из элементов могут выступать в качестве групп, в которые сгруппированы другие элементы. Такой
подход позволяет унифицировать набор реквизитов всех элементов и групп
справочника.
Пример иерархии элементов изображен на рис. 4.6. Здесь первый
уровень иерархии образуют директора институтов таганрогского кампуса ЮФУ. Второй уровень – заведующие кафедрами институтов. На
третьем уровне расположены преподаватели и сотрудники университета. Все элементы и группы такого справочника имеют одинаковый
набор реквизитов.
Рис. 4.6. Пример иерархии элементов
Одним из наиболее универсальных способов реализации иерархии в
справочниках является организация починенных справочников. Справочник может быть подчинен другому справочнику. При этом между ними
устанавливается отношение (или связь) «один ко многим».
Сотрудники
Директор
ИРТСУ
Директор
ИКТИБ
Зав. кафедрой
ВТ
Зав. кафедрой
МОП ЭВМ
Преподаватель 1Преподаватель 2Преподаватель
3
Зав. кафедрой
САПР
Преподаватель
4
Зав. кафедрой
САиТ
Директор
ИНЭП
Директор
ИУиЭС
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
