
- •Лабораторная работа 7. Справочники и Перечисления
- •7.1. Справочник "Фирмы"
- •7.1.1. Закладка "Данные"
- •7.1.2. Закладка "Нумерация"
- •7.1.3. Закладка "Формы"
- •7.1.4. Закладка "Макеты"
- •7.1.5. Закладка "Интерфейсы"
- •7.2. Справочник "Подразделения"
- •7.2.1. Закладка "Иерархия"
- •7.2.2. Закладка "Владельцы"
- •7.2.3. Закладка "Нумерация"
- •7.2.4. Закладка "Формы"
- •7.2.5. Закладка "Интерфейсы"
- •7.3. Самостоятельная работа: справочник "Сотрудники"
- •7.4. Справочник "ОсновныеСредства"
- •7.4.1. Реквизит "Фирма"
- •7.4.2. Перечисление "ГруппыОс" и реквизит "ГруппаОс"
- •7.4.3. Реквизит "ЕстьДетали"
- •7.4.4. Табличная часть "СписокДеталей"
- •7.4.5. Реквизиты "ДатаВвода" и "ДатаСписания"
- •7.4.6. Реквизит "Изображение"
- •7.4.7. Закладка "Нумерация"
- •7.5. Самостоятельная работа: справочник "Детали"
- •7.6. Работа со справочником из встроенного языка системы
- •7.6.1. Менеджер справочника
- •7.6.2. Организация выборки
- •7.6.3. Получение ссылки на элемент справочника
- •7.6.4. Работа с отдельными записями как с объектами
- •7.6.5. Закладка "Прочие" и Модуль объекта
- •7.7. Предопределенные записи в справочнике
- •7.8. Работа со справочниками в режиме "1с:Предприятие"
- •7.8.1. Ввод элементов в справочник "Фирмы"
- •7.8.2. Ввод элементов в справочник "Подразделения"
- •7.8.3. Ввод записей в справочник "Сотрудники"
- •7.9. Использование языка запросов
- •7.9.1. Конструктор запросов
- •7.9.2. Конструктор выходных форм
- •7.10. Что мы узнали
7.6.3. Получение ссылки на элемент справочника
У менеджера справочника есть три метода, которые позволяют найти необходимую запись в справочнике и получить на нее ссылку:
НайтиПоКоду(…);
НайтиПоНаименованию(…);
НайтиПоРеквизиту(…).
Все эти методы возвращают в качестве значения тип данных СправочникСсылка.<Имя справочника>.
При организации выборки Вы также можете получить ссылку на выбранную запись как на объект, если обратитесь к свойству Ссылка типа данных СправочникВыборка.<Имя справочника>.
7.6.4. Работа с отдельными записями как с объектами
У объектов типа СправочникСсылка.<Имя справочника> и СправочникВыборка.<Имя справочника> есть метод ПолучитьОбъект(), который позволяет получить доступ к объекту типа СправочникОбъект.<Имя справочника>.
Объект этого типа обладает достаточным набором свойств и методов, которые позволяет не только прочитать все поля записи из ИБ, но изменить эту запись, сохранив сделанные в ОП изменения.
Свойствами этого объекта являются все реквизиты справочника, поэтому обращаться к ним можно "через точку" по имени. А с полным набором методов можно ознакомится в документации.
У объекта типа СправочникМенеджер.<Имя справочника> есть два метода, которые позволяют создавать новые записи в справочнике:
СоздатьГруппу();
СоздатьЭлемент();
Кроме этого новая запись может быть получена путем применения метода .Скопировать() у типов данных СправочникОбъект и СправочникСсылка.
При этом процесс создания новой записи программным путем может выглядеть следующим образом:
НовыйЭлемент=Справочники.Имя.СоздатьЭлемент(); НовыйЭлемент.Код = …; НовыйЭлемент.Наименование = …; НовыйЭлемент.… = …; ……………………………………… НовыйЭлемент.Записать();
Таким образом, мы приходим к выводу, что новый объект в системе может быть создан не только вследствие интерактивных действий пользователя, но и в результате выполнения программных действий.
Рис.
7.15.
Закладка "Прочие".
Тот же вывод верен и для изменения (модификации) существующих записей.
Для того чтобы процесс создания новых и изменения существующих записей (как интерактивным, так и программным путем) выполнялся бы единообразным образом (работали бы одни и те же алгоритмы), в системе у Справочников, Документов, Отчетов и Обработок существует Модуль Объекта. Этот модуль предназначен для обработки системных событий связанных с конкретной записью, ее созданием, заполнением, записью в ИБ и удалением.
7.6.5. Закладка "Прочие" и Модуль объекта
Если открыть окно редактирования справочника и выбрать закладку "Прочие" (см. рис. 7.15), то кнопка "Модуль объекта" позволит открыть одноименный модуль.
Для справочников этот модуль позволяет обрабатывать события, которые, напомним, могут возникать как интерактивным, так и программным способом.
Для их обработки в Модуле объекта можно использовать следующие обработчики событий (имена фиксированы):
ПриУстановкеНовогоКода(<Стандартная обработка>, <Префикс>)
ПриКопировании(<Объект копирования>)
ОбработкаЗаполнения(<Основание>)
ПередЗаписью(<Отказ>)
ПриЗаписи(<Отказ>)
ПередУдалением(<Отказ>)
Рассмотрим, как это можно делать на следующем примере.
Предположим, что при копировании записи в справочнике "Фирмы" мы хотим, чтобы к наименованию добавлялся бы символ "1". Тогда текст модуля объекта этого справочника будет следующим:
// Модуль объекта справочника "Фирмы" Процедура ПриКопировании(ОбъектКопирования) Наименование = Наименование+"1"; КонецПроцедуры
Упражнение №7.29. |
Откройте модуль справочника "Фирмы" и внесите в него текст процедуры ПриКопировании(…). |