Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование на платформе 1С Предприятие 8.3. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
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
Зав. кафедрой
САиТ
Директор
ИНЭП
Директор
ИУиЭС
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]