Лабораторная работа 4. Проектирование и программирование
справочников
4.1. Работа
со справочником из встроенного языка системы
4.1.1. Менеджер
справочника
4.1.2. Организация
выборки
4.1.3. Получение
ссылки на элемент справочника
4.1.4. Работа
с отдельными записями как с объектами
4.1.5. Закладка
"Прочие" и Модуль объекта
4.2. Предопределенные
записи в справочнике
4.3. Работа
со справочниками в режиме "1С:Предприятие"
4.3.1. Ввод
элементов в справочник "Фирмы"
4.3.2. Ввод
элементов в справочник "Подразделения"
4.3.3. Ввод
записей в справочник "Сотрудники"
4.4. Использование
языка запросов
4.4.1. Конструктор
запросов
4.4.2. Конструктор
выходных форм
4.5. Что
мы узнали
4.1. Работа со справочником из встроенного языка системы |
4.1.1. Менеджер
справочника Для того чтобы обратиться к справочникам из встроенного языка
системы необходимо воспользоваться свойством
Справочники глобального контекста. Это свойство имеет тип
СправочникиМенеджер. |
4.1.1. Менеджер справочника |
Чтобы обратиться к конкретному справочнику
необходимо использовать свойство глобального контекста Справочники. В результате будет получен менеджер справочников (СправочникиМенеджер). Для обращения к конкретному
справочнику нужно в качестве свойства менеджера справочников указать имя
нужного, например: Справочники.Фирмы. Такая запись СправочникМенеджер.<Имя справочника> - это менеджер конкретного справочника, который имеет методы:
|
4.1.2. Организация выборки |
||||||
Для того чтобы открыть выборку записей в справочнике необходимо
применить либо метод Выбрать(…), либо метод ВыбратьИерархически(…). Приведем ряд примеров. В предыдущем разделе мы с помощью конструктора
печати написали в модуле
формы списка справочника "Фирмы" процедуру Печать(), в которой цикл
выборки выглядит следующим образом: Процедура Печать(Элемент) Обычно метод .Выбрать()
применяют для неиерархических справочников. Если справочник имеет два и более
уровня, то в таких случаях лучше применять метод .ВыбратьИерархически(…), поскольку
он открывает выборку с учетом иерархии
записей. Для того чтобы привести пример иерархической выборки, сформируем
с помощью Конструктора
печати макет
для формы списка справочника "Подразделения".
Откроем модуль основной формы списка справочника
"Подразделения" и обратим внимание на цикл выборки из процедуры
"Печать": ……………………………………………………………… В этих примерах переменная
Выборка имеет тип СправочникВыборка. Свойствами этого типа будут имена всех
реквизитов
справочника и его табличных
частей. Кроме этого свойство ЭтоГруппа
позволяет определить является ли текущая выбранная запись группой или это
элемент. Методов
у этого типа данных всего три:
Метод .Следующий()
извлекает очередную запись из выборки, к полям которой можно обратиться через
свойства
объекта. Метод УровеньВВыборке() имеет смысл применять, если выборка была открыта методом
ВыбратьИерархически(…). Номер уровня отсчитывается от 0.
|
4.1.3. Получение ссылки на элемент справочника |
У менеджера справочника есть три метода,
которые позволяют найти необходимую запись в справочнике и получить на нее
ссылку:
Все эти методы
возвращают в качестве значения тип
данных СправочникСсылка.<Имя справочника>. При организации выборки Вы также можете получить ссылку на
выбранную запись, если обратитесь к свойству
Ссылка типа данных СправочникВыборка.<Имя справочника>. |
4.1.4. Работа с отдельными записями как с объектами |
У объектов
типа СправочникСсылка.<Имя справочника> и СправочникВыборка.<Имя справочника> есть метод
ПолучитьОбъект(), который позволяет получить доступ к объекту типа СправочникОбъект.<Имя справочника>. Объект этого типа обладает достаточным набором свойств
и методов, которые позволяет не только прочитать все поля записи из ИБ, но
изменить эту запись, сохранив сделанные в ОП изменения. Свойствами этого объекта являются все реквизиты
справочника, поэтому обращаться к ним можно "через точку" по имени.
А с полным набором методов можно ознакомится в документации. У объекта типа СправочникМенеджер.<Имя справочника> есть два метода, которые позволяют
создавать новые записи в справочнике:
Кроме этого, новый элемент может быть получен путем применения
метода Скопировать() у типов данных СправочникОбъект и СправочникСсылка. При этом процесс создания нового элемента программным путем
может выглядеть следующим образом: НовыйЭлемент=Справочники.Имя.СоздатьЭлемент(); Таким образом, мы приходим к выводу, что новый объект в системе
может быть создан не только вследствие интерактивных действий пользователя,
но и в результате выполнения программных действий.
Тот же вывод верен и для изменения (модификации) существующих
записей. Для того чтобы процесс создания новых и изменения существующих
записей (как интерактивным, так и программным путем) выполнялся бы
единообразным образом (работали бы одни и те же алгоритмы), в системе у
Справочников существует Модуль Объекта. Этот модуль предназначен для
обработки системных событий связанных с конкретным элементом справочника, его
созданием, заполнением, записью в информационную базу и удалением. |
4.1.5. Закладка "Прочие" и Модуль объекта |
|||
Если открыть окно
редактирования справочника и выбрать закладку "Прочие" (см. рис. 3.15),
то кнопка "Модуль объекта" позволит открыть одноименный модуль. Для их обработки в Модуле объекта можно использовать следующие
обработчики событий (имена фиксированы):
Рассмотрим, как это можно делать на следующем примере. Предположим, что при копировании записи в справочнике
"Фирмы" мы хотим, чтобы к наименованию добавлялся бы символ
"1". Тогда текст модуля объекта этого справочника будет следующим: // Модуль объекта справочника "Фирмы"
|
4.2. Предопределенные записи в справочнике |
|||||||||||||
Закладка "Прочее" имеет кнопку
"Предопределенные", которая открывает окно "Предопределенные
элементы справочника", которое изображено на рисунке 4.2.
Поскольку по условиям нашей задачи справочник должен содержать
группу "Компьютеры", то мы добавим ее, выполнив следующее
упражнение:
После выполнения этого упражнения справочник будет содержать
группу с кодом "00000001" и наименованием "Компьютеры и
оргтехника", которую пользователь
не сможет удалить в режиме "1С:Предприятие". |
4.3. Работа со справочниками в режиме "1С:Предприятие" |
4.3.1. Ввод
элементов в справочник "Фирмы" В этом разделе мы рассмотрим, как можно работать с формами
справочников в режиме "1С:Предприятие". Прежде всего, отметим, что в результате установки флажков на
закладке "Интерфейсы" в окне
редактирования справочника, основной интерфейс
конфигурации содержит пункты меню для вызова формы списка справочников
"Фирмы","Подразделения","Сотрудники".(см.
рис 4.4).
|
4.3.1. Ввод элементов в справочник "Фирмы" |
||||||||||||
Сначала мы приступим к заполнению справочника "Фирмы".
Если Вы все сделали правильно, то форма списка справочника
"Фирмы" в режиме "1С:Предприятие"
будет выглядеть так, как это изображено на рисунке 4.5.
|
4.3.2. Ввод элементов в справочник "Подразделения" |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Приступим к заполнению справочника "Подразделения":
Для того чтобы вести новый элемент на 2-м уровне необходимо в форме
сначала включить Просмотр по владельцу, который по умолчанию отключен.
Именно поэтому форма отображала записи подчиненные всем фирмам.
|
4.3.3. Ввод записей в справочник "Сотрудники" |
|||||||||||||||||
Записи в этом справочнике могут принадлежать как справочнику
"Фирмы", так и справочнику "Подразделения", что
определяется содержимым реквизита
"Владелец". Этот реквизит имеет так называемый составной тип
данных. Для данного справочника это означает, что при заполнении этого реквизита
в форме
сначала придется выбрать необходимый тип
данных, а уже за тем его конкретное значение: ссылка на элемент
справочника "Фирмы" или ссылка на элемент справочника
"Подразделения".
|
4.4. Использование языка запросов |
4.4.1. Конструктор
запросов В этом разделе мы рассмотрим использование языка запросов для
обращения к данным на примере формирования печатных форм справочников
"Фирмы" и "Подразделения |
4.4.1. Конструктор запросов |
||||||||||||||||||||||||||||
В этом разделе мы рассмотрим использование конструктора
запросов на примере печати списка записей справочника "Фирмы". Сначала выполните подготовительные действия самостоятельно.
Для того чтобы сформировать текст запроса, необходимо установить
курсор в то место процедуры,
где по смыслу должен располагаться его текст и, используя правую кнопку мыши,
вызвать конструктор.
Это окно
содержит 3 закладок, которые позволяют написать текст запроса визуальным
образом. Как правило, текст запроса начинают формировать с закладки
"Таблицы и поля".
На первом этапе Конструктор
предложит указать таблицы и поля, которые должен обработать объект Запрос.
Закладку "Итоги" также можно пропустить, т.к. этот
справочник не содержит числовых реквизитов. После завершения упражнения в текст нашей процедуры добавились
строки: Запрос = Новый Запрос();
|
4.4.2. Конструктор выходных форм |
|||
Выходную форму вместе с запросом можно создавать, используя для ускорения процесса конфигурирования Конструктор выходных форм.
|