- •Корпоративные информационные системы
- •Введение
- •Кис 1с: Предприятие 7.7
- •Компонентная структура
- •Понятие конфигурации системы
- •Объекты метаданных компоненты “Оперативный учет”
- •Типы данных
- •Пользовательский интерфейс
- •Набор прав пользователя
- •Справочники
- •Свойства объектов и реквизитов
- •Форма объекта метаданных
- •Формы справочника
- •Элементы управления справочников
- •Документы
- •Форма документа
- •Определение свойств реквизитов документа
- •Модули документа
- •Журналы документов
- •Проведение документов
- •Регистры
- •Создание отчета
- •Запросы
- •Элементы встроенного языка 1с: Предприятие Понятие программного модуля (пм)
- •Виды модулей
- •Формат программного модуля
- •Структура программного модуля
- •Объявление переменных
- •Управляющие операторы Условный оператор
- •Оператор цикла Для
- •Оператор цикла Пока
- •Агрегатные типы данных
- •Позиционирование объекта на нужном элементе данных
- •Методы справочников
- •Методы документов
- •Модуль формы документа
- •Модуль документа
- •Создание модуля отчета
- •Создание запросов
- •Операторы языка запросов
- •Методы запросов
- •Создание таблиц значений в модулях
- •Методы таблиц
- •Варианты заданий для самостоятельной работы
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Оглавление
- •Библиографический список
- •Корпоративные информационные системы
- •620002, Екатеринбург, Мира, 19
- •620002, Екатеринбург, Мира, 19
Агрегатные типы данных
Агрегатные типы даны – это специализированные типы данных системы 1С: Предприятие. Суть этих типов – отражение объектов предметной области и способ работы с ними. Каждый агрегатный тип имеет набор атрибутов и методов. Понятие атрибута аналогично понятию свойства объекта в Visual Basic. Значения атрибутов можно читать и присваивать.
Методы – это те действия, которые могут выполняться над объектом (функции, определяющие поведение объекта).
Работа с объектом агрегатного типа определяется следующей последовательностью действий.
С помощью функции СоздатьОбъект создается объект агрегатного типа и какой-либо переменной присваивается ссылка на него.
Объект позиционируется на нужном элементе данных.
Проводятся манипуляции с объектом через вызовы методов и обращения к его атрибутам.
Если объект больше не нужен, он может быть отсоединен от переменной путем переприсваивания переменной какого-либо значения базового типа.
Позиционирование объекта на нужном элементе данных
Объект, созданный с помощью функции СоздатьОбъект, изначально не определен (не содержит никакого значения).
Для того чтобы начать с ним работать, его необходимо позиционировать – установить на конкретный элемент справочника или документа.
В случае позиционирования объекта типа Документ применяют один из следующих методов:
НайтиДокумент();
НайтиПоНомеру();
ПолучитьДокумент().
В случае позиционирования объекта типа Справочник применяют такие методы, как НайтиЭлемент(), НайтиПоКоду(), ПолучитьЭлемент().
Пример позиционирования объекта:
Процедура ОбработкаПроведения()
Спр=СоздатьОбъект("Справочник.Спонсоры");
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Спр.НайтиЭлемент(Спонсор);
Спр.Адрес=Адрес;
Спр.Телефон=Телефон;
Спр.Записать();
КонецЦикла;
КонецПроцедуры
Процедура позволяет внести изменения в справочник Спонсоры с помощью документа Изменение данных (рис. 24).
Метод справочника НайтиЭлемент ищет в справочнике значение реквизита Спонсор, соответствующее значению, введенному в поле документа.
Рис. 24. Форма документа Изменение данных
Метод Записать позволяет обновить в справочнике значения адреса и телефона указанного спонсора.
Методы справочников
Рассмотрим некоторые методы справочников, которые наиболее часто используются в модулях форм и отчетов.
ТекущийЭлемент() – возвращает значение элемента справочника в целом как объекта. Метод используется для присвоения элемента какому-либо реквизиту.
Пример:
Пока СпрСотр.ПолучитьЭлемент()=1 Цикл
ТЭ=СпрСотр.ТекущийЭлемент();
Если ТЭ.ЭтоГруппа()=1 Тогда
Наз=ТЭ.Наименование;
КонецЦикла
Пример демонстрирует часть процедуры Сформировать, в которой организована выборка элементов справочника Сотрудники. Временной переменной ТЭ присваивается текущий элемент справочника, а затем проверяется на принадлежность к группе. Если элемент является группой, то переменной Наз присваивается наименование этой группы.
Выбрать(<Подсказка>, <ФормаСписка>) – вызывает диалоговое окно для выбора элемента и затем позиционирует справочник на выбранном элементе. Метод возвращает число 1, если элемент выбран, 0 – если не выбран.
Подсказка – текст заголовка окна диалога выбора.
ФормаСписка – идентификатор формы списка справочника. Если это значение пустое, то используется форма списка по умолчанию.
Пример:
Процедура Номера()
Ном=СоздатьОбъект("Справочник.Номера");
Ном.ИспользоватьВладельца(Абонент);
Если Ном.Выбрать("Выберите номер","")>0 тогда
НоваяСтрока();
Телефон=Ном.ТекущийЭлемент();
КонецЕсли;
КонецПроцедуры
В примере представлена процедура модуля формы. Процедура позволяет выбрать нужный элемент из формы списка подчиненного справочника Номера и присвоить значение реквизита справочника Наименование (основное представление справочника) реквизиту документа Телефон.
ВыбратьЭлементыПоРеквизиту(<имя реквизита>, <значение>, <режим иерархии>, <режим групп>) – открывает выборку элементов справочника по значению реквизита.
Режим иерархии задается числами (1 или 0):
1 – выбор элементов в соответствии с заранее заданным порядком (например, по возрастающему коду); 0 – выбор без учета иерархии.
Режим групп задается числами (1 или 0):
1 – выбор элементов среди групп справочника;
0 – выбор среди элементов справочника.
Важно! Для использования метода необходимо в окне свойств реквизита установить флажок Отбор по реквизиту.
Пример:
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.ИспользоватьВладельца(ВыбКаф);
СпрСотр.ВыбратьЭлементыПоРеквизиту("Должность",ВыбДолж,0,0);
В примере представлен фрагмент процедуры Сформировать. Процедура выводит список сотрудников, работающих на выбранной должности выбранной кафедры. Для успешной работы метода ВыбратьЭлементыПоРеквизиту необходимо установить флажок Отбор по реквизиту в свойствах реквизита Должность справочника Сотрудники.
НайтиЭлемент(<Элемент>) – выполняет поиск элемента справочника по значению, заданному параметром <Элемент>. Метод используется только для объектов, созданных функцией СоздатьОбъект.
Новый() – позволяет добавить новый элемент в справочник.
Записать() – позволяет внести изменения в справочник.
Пример:
СпрСотр=СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.НайтиЭлемент(Сотрудник);
СпрСотр.Адрес=Адрес;
СпрСотр.Записать();
Пример демонстрирует часть процедуры проведения документа, в котором отсутствует табличная часть. В справочнике Сотрудники ищется элемент (запись) со значением сотрудника, указанного в документе и обновляется значение реквизита Адрес.
Методы, применяемые для поиска элемента справочника:
НайтиЭлемент(<Элемент>);
НайтиПоКоду(<Код>);
НайтиПоНаименованию(<Наименование>);
НайтиПоРеквизиту (<Реквизит>, <Значение>).
В последнем случае необходимо, чтобы элементы справочника были отсортированы по этому реквизиту – в свойстве реквизита на вкладке Дополнительные необходимо установить флажок Сортировка.
Метод ПорядокНаименований() устанавливает режим выборки элементов справочника в порядке возрастания наименования элементов.
ПорядокКодов() – устанавливает режим выборки элементов справочника в порядке возрастания кодов элементов.
ЭтоГруппа() – проверяет принадлежность элемента к группе и возвращает значение 1, если текущий элемент справочника – группа.
Уровень() – определяет номер уровня текущего элемента справочника.
ИспользоватьВладельца(<Владелец>) – устанавливает элемент справочника-владельца, которому подчинен текущий подчиненный справочник. Параметр не является обязательным.
ВыбратьЭлементы() – открывает выборку элементов справочника. Метод возвращает число 1, если в выборке есть хотя бы один элемент, и число 0, если в выборке нет ни одного элемента.
ПолучитьЭлемент() – позволяет получить из выборки следующий элемент справочника. Метод работает в паре с методом ВыбратьЭлементы().
Пример:
СпрСотр=СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.ПорядокНаименований();
СпрСотр.ИспользоватьВладельца(ВыбКаф);
СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлемент()=1 Цикл
Пример демонстрирует часть процедуры Сформировать. В справочнике Сотрудники выбираются элементы (записи о сотрудниках), относящиеся к кафедре, значение которой определяется переменной ВыбКаф. Элементы справочника сортируются в алфавитном порядке по реквизиту Наименование.
