Главная » 1С Предприятие » АТРИБУТЫ И КОНТЕКСТ СПРАВОЧНИКА

0

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

Совокупность атрибутов  и  методов  справочника  образует  его  контекст,  который может  быть  передан в  качестве  фактического параметра процедуры или  функции,  например  предопределенной  процедуры ОбработкаПодбора.

Два реквизита (атрибута), Код  и  Наименование,  присутствуют в любом  справочнике. В  случае  справочника Сотрудники_2 реквизит Код может  быть  использован в  качестве табельного номера  сотрудника  или  кода  группы, а Наименование  для  задания  фамилии, имени  и  отчества сотрудника  или  имени  группы.   Список  иных реквизитов  стандартного справочника  Сотрудники  и  программу их  получения  см.  в  разд.  3.1.  Свойства реквизита можно  просмотреть или изменить в конфигурации системы (рис. 5.3).

Рис. 5.3. Свойства периодического реквизита Оклад: а общие; б дополнительные

История   периодического   реквизита  просматривается    после   позиционирования на поле  со значением  реквизита (например, в  окне, приведенном на рис. 5.2) и  выбора на  панели  инструментов  формы списка  справочника  иконки  или  нажатия  на  клавишу F5.

Замечание.   Проще  обеспечить   достоверность данных,  если   запретить  ручное  изменение  периодических  реквизитов  справочников   (рис.  5.3,  б),  а  взамен  создавать  I и  проводить для  этих целей  соответствующие документы.

Рассматриваемый   нами  справочник Сотрудники_2  имеет 3  уровня.  Это  означает,  что  элемент 3-го,  самого   низкого  уровня  входит в  группу,  которая  находится на  2-м  уровне  справочника.  Имя   группы,  в  которую   входит  текущий  (выбранный) элемент   справочника,  содержит  атрибут  Родитель.   Понятно,  что   элементы   1-го   j уровня  родителей   не  имеют.  Сообщить   о   номере   уровня  справочника  позволяет метод   Уровень.

Применим метод  Уровень и  определим  атрибут Родитель для  всех элементов  справочника (табл.  5.1), употребив  следующий код:

процедура Выполнить()                     //              Связана с кнопкой Пуск обработки Проба  перем  сСотр_2;

ОчиститьОкноСообщений();

сСотр_2  = СоздатьОбъект("Справочник.Сотрудники_2"); сСотр_2.ВыбратьЭлементы();   //           Перемещаемся на начало справочника

// Заголовок таблицы результатов

Сообщить("Наименование" + СимволТабуляции +"Уровень" + СимволТабуляции + "Родитель");

// Метод ПолучитьЭлемент выбирает элемент справочника и перемещает справочник

// на следующую  позицию выборки или за ее пределы, если выборка исчерпана пока сСотр_2.ПолучитьЭлемент() > 0 цикл

Сообщить(сСотр_2.Наименование + СимволТабуляции + сСотр_2.Уровень() + СимволТабуляции + сСотр_2.Родитель);

конецЦикла // пока

конецПроцедуры // Выполнить

Результат:

Наименование 01 Цех

1

Уровень

Родитель

01/1

2

01 Цех

Агальцов  Юрий Алексеевич

3

01/1

Добрецов Борис Юрьевич

3

01/1

01/2

2

01 Цех

Волосков Михаил Андреевич

3

01/2

Кузьмина Раиса Николаевна

3

01/2

01/3

2

01 Цех

Васильева Елена  Ивановна

3

01/3

Смирнова Нина Федоровна

3

01/3

Хохлов Евгений Николаевич

3

01/3

02 Цех

1

Абрамова Лариса Сергеевна

2

02 Цех

Куприкова Людмила Сергеевна

2

02 Цех

Замечание.  Следует помнить, что атрибут Родитель имеет тип Справочник. Поэтому присваивание

сСотр_2.Родитель = "02 Цех";

не приведет к изменению родителя текущего  элемента. На самом  деле в правой части приведенного  оператора присваивания должно  стоять  значение,  возвращаемое  методом ТекущийЭлемент. Механизм изменения родителя изложен в разд.  5.5.3.2.

Атрибут Владелец,   также  имеющий тип Справочник,  связывает некоторое  подмножество записей справочника, например Дети, с определенной записью справочн ика-владельца.

Ряд  реквизитов  справочника целесообразно сделать  периодическими, то  есть хранить их историю. Таким, например,  должен  быть реквизит Оклад  справочника Сотрудники_2, тогда мы  сможем  не только  проследить динамику изменения оплаты  сотрудника,  но  и  учесть  эти  изменения при  расчете  заработной  платы  даже в том  случае,  если  значение  реквизита изменилось в  пределах  заданного расчетного  периода (то есть в  начале  месяца  вы  имели  один оклад,  а где-то  в  середине уже другой).

Замечание. Значения периодического атрибута Оклад заносятся, наряду с константами и другими периодическими реквизитами, в файл  1SCONST.DBF (поэтому  не следует изумляться внушительным размерам  этого  файла). Если периодический реквизит ссылается на  объект  агрегатного типа данных,   например  на  Справочник.Должности,  то в файл  1SCONST.DBF заносится ссылка  на соответствующий элемент  объекта;  значение этого элемента употребляется в качестве значения реквизита.

Источник: Бартеньев О. В. 1С:Предприятие:  программирование для  всех.  Базовые объекты и расчеты на одной дискете. М.: Диалог-МИФИ, 2005. 464 с.

По теме:

  • Комментарии