Главная » 1С Предприятие » МЕТОДЫ ОБЪЕКТА ПЕРИОДИЧЕСКИЙ

0

Позволяют  читать,  перебирать,  искать,  изменять  и  удалять  периодические  реквизиты справочников  и  периодические  константы.  При  удалении  записи  сразу  проставляется  DBF-пометка удаления. Удаленные записи  восстановлению  не  подлежат.  Нельзя  методами  ОП  добавлять  новые  значения  периодических  констант или  реквизитов справочников.

Кроме значения и  даты периодического  объекта,  методы ОП устанавливают  связь с документами,   создавшими   и    впоследствии   обновлявшими   записи   периодических объектов.

Методы перечислены в табл. 6.1.

Методы объекта Периодический

Таблица 6.1

Метод

Описание

флаг = оп.Использовать Объект(перОб, [элемент]);

Прикрепляет ОП к периодическому реквизиту справочника (периодической константе), идентификатор которого (которой) содержится в строке перОб. Параметр  элемент имеет тип Справочник. Параметр задается, если перОб является периодическим реквизитом справочника, и содержит значение текущего  элемента справочника. Если перОб это пустая строка и задан параметр элемент,

то ОП доступны значения  всех периодических реквизитов текущего элемента справочника, заданного параметром элемент. Метод возвращает 1, если действие завершилось успешно, или 0 -в противном случае.  Пример употребления см. в разд. 6.1, 6.2

Метод

Описание

оп.НазначитьТип (тип, длина, точность);

Назначает тип  периодическому  объекту  неопределенного типа. Параметр тип  это строка с именем базового типа, например  "Число",  или разновидностью агрегатного типа, например "Справочник.Образование_2" или "Документ.ИзменениеОклада". Параметр длина задается для числового или символьного типа и означает размер отводимого под значение поля.  Параметр  точность  применяется только с числовым типом и задает число знаков после десятичной точки.  Понятно, что точность < длина

значен =  оп.ЗначениеНаДату

(дата);

Возвращает значение  периодического  объекта на дату, заданную  параметром дата. При  исполнении метода позиция периодического объекта сохраняется. Пример употребления см. в разд. 6.1

флаг = оп.НайтиЗначение

(дата,  [режим]);

Осуществляет поиск значения  периодического объекта на заданную  параметром  дата дату. Если значение

не найдено и параметр режим = -1 , то ищется значение

на ближайшую меньшую дату, если режим =  1, то ищется значение на ближайшую большую дату, и если режим = 0, то возвращает 0. По умолчанию режим = -1. Возвращает 1 в случае успеха.  Пример  употребления см.  в разд.  6.2

флаг =  оп.ВыбратьЗначения ([датаНачала],  [датаКонца]);

Открывает выборку значений периодического  объекта. Параметры датаНачала и  датаКонца  задают соответственно даты начала и  конца периода выборки. Собственно выборка осуществляется методом ПолучитьЗначение.  Если  параметр  датаНачала не задан, то значения периодического объекта выбираются начиная с меньшей даты.  Если  не  задан  параметр датаКонца,

то периодические значения выбираются вплоть до самой

большой даты. Возвращает 1, если в выборке есть хотя бы одно  значение, или 0 -в  противном случае.  Пример использования см.  в разд.  6.1

флаг  оп.ВыбратьПо Документу(док);

Открывает выборку значений периодических  объектов, созданных  документом  док.  Дальнейшая  выборка осуществляется методом ПолучитьЗначение. Возвращает 1, если в выборке есть хотя б ы одно значение, ил и 0    в противном случае

флаг = оп.ПолучитьЗначение();

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

Метод

Описание

флаг = оп.ОбратныйПорядок

([порядок]);

Задает  порядок получения  записей  выборки. Если параметр порядок отличен от нуля или  не задан  вовсе, то выбор записей осуществляется в обратном  порядке.  Если параметр порядок равен  нулю, выборка  производится в  прямом порядке.  Вызывается до применения метода ВыбратьЗначения. Вернет  1 при успешном вызове или 0 в  противном случае

док = оп.ТекущийДокумент();

Возвращает значение  документа, установившего  значение выбранной записи  периодического объекта. Вернет  пустое  значение  типа Документ,  если ссылки  на документ нет. Пример  для метода приведен в разд.  6.1

элем = оп.ТекущийОбъект( );

Возвращает, если  выбираются значения  периодического реквизита, значение элемента справочника, которому периодический реквизит принадлежит.  Вернет  пустое  значение неопределенного типа, если выбираются значения периодической  константы

рекв = оп.ТекущийРеквизит();

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

периодического реквизита, например Сотрудники 2.0клад

номСтроки = оп.НомерСтроки();

Должен  вернуть номер  строки документа,  получаемого методом  ТекущийДокумент

флаг = оп.Записать();

Обновляет  периодическое  значение  текущей записи. Возвращает  1, если  обновление выполнено успешно, или 0 в  случае  неудачи.  Пример  употребления см.  в разд.  6.2

флаг = оп.Удалить();

Удаляет (проставляет DBF-пометку удаления)  запись периодического объекта. Возвращает 1, если обновление выполнено успешно,  или О-в  случае неудачи

Замечание. Имя  on   переменной типа   Периодический,   употребленное  в  табл.   6.1  перед названиями  методов, может быть произвольным.

Пример.  Выбираются значения  периодического реквизита   Оклад  справочника С отрудники_2,  созданные документом ИзменениеОклада №  3.

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

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

док = СоздатьОбъект("Документ.ИзменениеОклада"); флаг = док.НайтиПоНомеру(3, Дата(0));

если флаг = 1 тогда

оп  = СоздатьОбъект("Периодический"); оп.ВыбратьПоДокументу(док.ТекущийДокумент()); пока оп.ПолучитьЗначение() = 1 цикл

окл = оп.Значение;           //         Значение  и ДатаЗначатрибуты ОП дат = оп.ДатаЗнач;

Сообщить("Оклад " + окл + " сотрудника " +

оп.ТекущийОбъект( ).Наименование + " назначен с " + дат); конецЦикла; // пока

иначе

Предупреждение("Приказ № 3 об изменении оклада не найден"); конецЕсли;

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

Результат:

Оклад  3000 сотрудника Волосков Михаил Андреевич назначен с 22.11.01

Оклад  2700 сотрудника  Горюнова  Ульяна  Валерьевна назначен с 22.11.01

6.3.    ПРОСМОТР ИСТОРИИ  ПЕРИОДИЧЕСКОГО ОБЪЕКТА

Можно  выполнить  интерактивно,   выбирая,   например,  на  панели  инструментов иконку

Рис.  6.2.  История  окладов Горюновой  Ульяны Валерьевны

6.4.        ВЫВОДЫ

1.             Агрегатный тип данных  Периодический применяется для периодических реквизитов справочников и периодических констант.

2.               Метод  ИспользоватьОбъект, связывающий ОП  с периодическим объектом, не употребляется, если выборка периодических объектов осуществляется по документу.

3.               Вызов

оп.ИспользоватьОбъект("", элемент);

обеспечит доступ  к значениям  всех периодических реквизитов текущего элемента справочника, заданного параметром элемент.

4.           Позиция периодического  объекта  изменяется  методами  НайтиЗначение,  Выбрать Значения, ВыбратьПоДокументу и ПолучитьЗначение.  Метод ЗначениеНаДату позицию периодического объекта не изменяет.

5.          Записи  периодического  объекта,  удаляемые  методом   Удалить,  получают   DBFпометку  удаления и поэтому  восстановлению не подлежат.

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

7.          Каждый   вид  документа порождает в  информационной базе  в  общем  случае  два DBF-файла и два CDX-файла одна пара файлов для шапки документов заданного вида, вторая для их табличной части.

8.           1С открывает все созданные для документов и справочников DBFи CDX-файлы.

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

9.           Все  созданные  документы  перечисляются в  одном, общем  журнале  документов, который можно  просматривать по частям, давая каждой  части свое имя, например ПриказыКадровые.

7.    ЖУРНАЛ  И ВИДЫ РАСЧЕТОВ. КАЛЕНДАРИ И ТАБЕЛЬ

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

По теме:

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