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

0

Управление справочником  осуществляется  через  его  методы, которые можно  разделить на 4 группы:

1.      Методы  Получить  и  Установить периодических реквизитов  справочника.

2.      Общие методы  справочника;  они  могут  быть  вызваны как  в  модулях  его  форм,  так и   в  модулях,  где  создан   объект  типа Справочник,  например  сСотр_2.  В  первом случае  методы  вызываются  без  префикса, например  Записать(  ), во  втором  им предваряются,  например  сСотр_2.3аписать( ).  Не  все методы   этой  группы   будут, однако,  работать  в  форме  элемента или списка справочника.  Так,  метод  ВыбратьЭлементы,  будучи  вставленным  в  модуль  формы элемента  справочника  и  использованным  для текущего  справочника (записывается  без префикса), синтаксический контроль пройдет, но при вызове возникнет ошибка, сопровождаемая сообщением

ВыбратьЭлементы();

Объект не может быть перепозиционирован!

Но  мы  уже  знаем:  для  того, чтобы  эту  ошибку преодолеть, нужно  создать  объект типа Справочник,  например  сСотр_2,  соответствующей  разновидности  и  употребить с ним этот метод:

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

3.       Методы, используемые  только  в форме  элемента, группы  или списка справочника, например  ПросмотрИстории. Их  действие распространяется или  на  текущий  элемент, если метод  вызван в форме  элемента, или на текущий справочник.

4.       Методы, используемые  только  в  форме  списка  справочника, например  Сортировка.  Их действие распространяется на текущий справочник.

5.12.1. МЕТОДЫ ПЕРИОДИЧЕСКИХ РЕКВИЗИТОВ

Метод  Получить  имеет следующий  синтаксис:

значение  =  <спрЭлем>.<пРекв>.Получить([<датаПРекв>]);

Возвращает  значение  периодического  реквизита пРекв  для  элемента справочника спрЭлем  на  заданный  параметром датаПРекв   момент   времени.  Если  параметр  датаПРекв  опущен, то  по  умолчанию  вместо  него   используется  либо  точка  актуальности (ТА), если  используется  компонент Оперативный  учет, либо рабочая  дата  в  противном  случае.

Пояснение.  Понятие  ТА вводится в  1С для  объектов типа Регистры.  Такие объекты накапливают  данные, например  остатки  или  обороты ресурсов.  Для  первой  цели  применяются регистры   остатков, для  второй  оборотные  регистры. Так  вот,  ТА  это  момент  времени, на который зафиксированы значения  всех регистров остатков.

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

Пример.   Методом  Получить  возвращаются  на  рабочую   дату  оклады  сотрудников из справочника Сотрудники_2.

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

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

// Создаем объект сСотр_1

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

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

пока сСотр_2.ПолучитьЭлемент() = 1 цикл если сСотр_2.ЭтоГруппа() = 1 тогда

продолжить; конецЕсли;

окл  = сСотр_2.0клад.Получить(рабДат);

//или

// окл = сСотр_2.ТекущийЭлемент( ).Оклад.Получить(рабДат); Сообщить(СокрП(сСотр_2.Наименование) + Символ Табуляции + окл);

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

Фрагмент  возможного результата:

Горюнова Ульяна  Валерьевна

2700

Костина Ольга  Владимировна

2900

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

2100

Замечание.   Метод  Получить  (Установить)  нельзя  одновременно употреблять  с  методом  ИспользоватьДату для одного  и того  же объекта  типа Справочник.

Метод  Установить имеет следующий  синтаксис:

<спрЭлем>.<пРекв>.Установить(<датаПРекв>, <значПРекв>);

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

Пример.   Сотрудникам    из   справочника   Сотрудники_2,   ставка   которых   меньше 2900 руб., начиная  с текущей  даты  повышается оклад  на 500 руб.

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

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

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

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

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

окл  = сСотр_2.0клад.Получить(текДат);

если (сСотр_2.ЭтоГруппа( ) = 1) или (окл >= 2900) тогда

продолжить;

//

Пропускаем группы

конецЕсли;

//

и сотрудников с "большим" окладом

// Повышение оклада сСотр_2.0клад.Установить(текДат,  окл + 500); новОкл = сСотр_2.0клад.Получить(текДат);

Сообщить(СокрП(сСотр_2. Наименование) + СимволТабуляции + новОкл); конецЦикла; // пока

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

Фрагмент  результата:

Горюнова Ульяна Валерьевна                                3200

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

Замечания:

1.       Метод  Установить  меняет значение периодического   реквизита  справочника  без последующего применения метода Записать.

2.       Для метода Установить недопустим  вызов типа

сСотр_2.ТекущийЭлемент(  ).Оклад.Установить(текДат, новОкл);    //   Это ошибка хотя подобный вызов вполне применим с методом Получить: сСотр_2.ТекущийЭлемент().Оклад.Получить(рабДат);

3.     Повышение  оклада выполнено в   обход документа Приказ об изменении  оклада.

Это зафиксировано  и  в  истории    периодического   реквизита Оклад, например  для Горюновой У. В. (рис. 5.59).

Рис. 5.59. История изменения периодического реквизита Оклад

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

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

По теме:

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