Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 С Предприятие (варианты сам работы).doc
Скачиваний:
10
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆

Агрегатные типы данных

Агрегатные типы даны – это специализированные типы данных системы 1С: Предприятие. Суть этих типов – отражение объектов предметной области и способ работы с ними. Каждый агрегатный тип имеет набор атрибутов и методов. Понятие атрибута аналогично понятию свойства объекта в Visual Basic. Значения атрибутов можно читать и присваивать.

Методы – это те действия, которые могут выполняться над объектом (функции, определяющие поведение объекта).

Работа с объектом агрегатного типа определяется следующей последовательностью действий.

  1. С помощью функции СоздатьОбъект создается объект агрегатного типа и какой-либо переменной присваивается ссылка на него.

  2. Объект позиционируется на нужном элементе данных.

  3. Проводятся манипуляции с объектом через вызовы методов и обращения к его атрибутам.

  4. Если объект больше не нужен, он может быть отсоединен от переменной путем переприсваивания переменной какого-либо значения базового типа.

Позиционирование объекта на нужном элементе данных

Объект, созданный с помощью функции СоздатьОбъект, изначально не определен (не содержит никакого значения).

Для того чтобы начать с ним работать, его необходимо позиционировать – установить на конкретный элемент справочника или документа.

В случае позиционирования объекта типа Документ применяют один из следующих методов:

  • НайтиДокумент();

  • НайтиПоНомеру();

  • ПолучитьДокумент().

В случае позиционирования объекта типа Справочник применяют такие методы, как НайтиЭлемент(), НайтиПоКоду(), ПолучитьЭлемент().

Пример позиционирования объекта:

Процедура ОбработкаПроведения()

Спр=СоздатьОбъект("Справочник.Спонсоры");

ВыбратьСтроки();

Пока ПолучитьСтроку()=1 Цикл

Спр.НайтиЭлемент(Спонсор);

Спр.Адрес=Адрес;

Спр.Телефон=Телефон;

Спр.Записать();

КонецЦикла;

КонецПроцедуры

Процедура позволяет внести изменения в справочник Спонсоры с помощью документа Изменение данных (рис. 24).

Метод справочника НайтиЭлемент ищет в справочнике значение реквизита Спонсор, соответствующее значению, введенному в поле документа.

Рис. 24. Форма документа Изменение данных

Метод Записать позволяет обновить в справочнике значения адреса и телефона указанного спонсора.

Методы справочников

Рассмотрим некоторые методы справочников, которые наиболее часто используются в модулях форм и отчетов.

ТекущийЭлемент() – возвращает значение элемента справочника в целом как объекта. Метод используется для присвоения элемента какому-либо реквизиту.

Пример:

Пока СпрСотр.ПолучитьЭлемент()=1 Цикл

ТЭ=СпрСотр.ТекущийЭлемент();

Если ТЭ.ЭтоГруппа()=1 Тогда

Наз=ТЭ.Наименование;

КонецЦикла

Пример демонстрирует часть процедуры Сформировать, в которой организована выборка элементов справочника Сотрудники. Временной переменной ТЭ присваивается текущий элемент справочника, а затем проверяется на принадлежность к группе. Если элемент является группой, то переменной Наз присваивается наименование этой группы.

Выбрать(<Подсказка>, <ФормаСписка>) – вызывает диалоговое окно для выбора элемента и затем позиционирует справочник на выбранном элементе. Метод возвращает число 1, если элемент выбран, 0 – если не выбран.

Подсказка – текст заголовка окна диалога выбора.

ФормаСписка – идентификатор формы списка справочника. Если это значение пустое, то используется форма списка по умолчанию.

Пример:

Процедура Номера()

Ном=СоздатьОбъект("Справочник.Номера");

Ном.ИспользоватьВладельца(Абонент);

Если Ном.Выбрать("Выберите номер","")>0 тогда

НоваяСтрока();

Телефон=Ном.ТекущийЭлемент();

КонецЕсли;

КонецПроцедуры

В примере представлена процедура модуля формы. Процедура позволяет выбрать нужный элемент из формы списка подчиненного справочника Номера и присвоить значение реквизита справочника Наименование (основное представление справочника) реквизиту документа Телефон.

ВыбратьЭлементыПоРеквизиту(<имя реквизита>, <значение>, <режим иерархии>, <режим групп>) – открывает выборку элементов справочника по значению реквизита.

Режим иерархии задается числами (1 или 0):

1 – выбор элементов в соответствии с заранее заданным порядком (например, по возрастающему коду); 0 – выбор без учета иерархии.

Режим групп задается числами (1 или 0):

1 – выбор элементов среди групп справочника;

0 – выбор среди элементов справочника.

Важно! Для использования метода необходимо в окне свойств реквизита установить флажок Отбор по реквизиту.

Пример:

СпрСотр = СоздатьОбъект("Справочник.Сотрудники");

СпрСотр.ИспользоватьВладельца(ВыбКаф);

СпрСотр.ВыбратьЭлементыПоРеквизиту("Должность",ВыбДолж,0,0);

В примере представлен фрагмент процедуры Сформировать. Процедура выводит список сотрудников, работающих на выбранной должности выбранной кафедры. Для успешной работы метода ВыбратьЭлементыПоРеквизиту необходимо установить флажок Отбор по реквизиту в свойствах реквизита Должность справочника Сотрудники.

НайтиЭлемент(<Элемент>) – выполняет поиск элемента справочника по значению, заданному параметром <Элемент>. Метод используется только для объектов, созданных функцией СоздатьОбъект.

Новый() – позволяет добавить новый элемент в справочник.

Записать() – позволяет внести изменения в справочник.

Пример:

СпрСотр=СоздатьОбъект("Справочник.Сотрудники");

СпрСотр.НайтиЭлемент(Сотрудник);

СпрСотр.Адрес=Адрес;

СпрСотр.Записать();

Пример демонстрирует часть процедуры проведения документа, в котором отсутствует табличная часть. В справочнике Сотрудники ищется элемент (запись) со значением сотрудника, указанного в документе и обновляется значение реквизита Адрес.

Методы, применяемые для поиска элемента справочника:

  • НайтиЭлемент(<Элемент>);

  • НайтиПоКоду(<Код>);

  • НайтиПоНаименованию(<Наименование>);

  • НайтиПоРеквизиту (<Реквизит>, <Значение>).

В последнем случае необходимо, чтобы элементы справочника были отсортированы по этому реквизиту – в свойстве реквизита на вкладке Дополнительные необходимо установить флажок Сортировка.

Метод ПорядокНаименований() устанавливает режим выборки элементов справочника в порядке возрастания наименования элементов.

ПорядокКодов() – устанавливает режим выборки элементов справочника в порядке возрастания кодов элементов.

ЭтоГруппа() – проверяет принадлежность элемента к группе и возвращает значение 1, если текущий элемент справочника – группа.

Уровень() – определяет номер уровня текущего элемента справочника.

ИспользоватьВладельца(<Владелец>) – устанавливает элемент справочника-владельца, которому подчинен текущий подчиненный справочник. Параметр не является обязательным.

ВыбратьЭлементы() – открывает выборку элементов справочника. Метод возвращает число 1, если в выборке есть хотя бы один элемент, и число 0, если в выборке нет ни одного элемента.

ПолучитьЭлемент() – позволяет получить из выборки следующий элемент справочника. Метод работает в паре с методом ВыбратьЭлементы().

Пример:

СпрСотр=СоздатьОбъект("Справочник.Сотрудники");

СпрСотр.ПорядокНаименований();

СпрСотр.ИспользоватьВладельца(ВыбКаф);

СпрСотр.ВыбратьЭлементы();

Пока СпрСотр.ПолучитьЭлемент()=1 Цикл

Пример демонстрирует часть процедуры Сформировать. В справочнике Сотрудники выбираются элементы (записи о сотрудниках), относящиеся к кафедре, значение которой определяется переменной ВыбКаф. Элементы справочника сортируются в алфавитном порядке по реквизиту Наименование.