Назначение периодических реквизитов
Включение опции «Периодический» позволяет указать для реквизита справочника хранение истории изменений его значения. Такой реквизит в системе 1С:Предприятие называется периодическим и обладает следующим свойством: в отличие от «обычных» (не периодических) реквизитов, система 1С:Предприятие хранит значения такого реквизита по датам их изменения. При обращении к значению такого реквизита на некоторую дату выдается его значение на эту дату, либо, если таковое отсутствует, — на ближайшую предыдущую дату, на которую устанавливалось значение реквизита.
Подобное свойство реквизита справочника позволяет, например, легко организовать хранение истории изменения курсов в справочнике валют.
К периодическому реквизиту можно обращаться при помощи встроенного языка системы 1С:Предприятие — получать и записывать значение реквизита на указываемую дату. Однако, следует иметь в виду, что при получении значения реквизита на какую-то дату извлекается его значение на указанную или (если значение на указанную дату отсутствует) на ближайшую предыдущую дату, а запись значения периодического реквизита выполняется всегда на указанную дату.
В режиме использования конфигурации для периодического реквизита можно вызвать окно «История». Это окно представляет собой таблицу, состоящую из двух граф: дата изменения значения реквизита справочника и значение на эту дату. Окно «История» позволяет редактировать историю изменений значения реквизита напрямую: вводить новые строки, редактировать или удалять существующие.
Методы периодических реквизитов
//так мы узнаем, какая была у сотрудника категория на определенную дату
Катег = СпрСотр.Категория.Получить(НекаяДата);
//так мы установим сотруднику категорию на определенную дату
СпрСотр.Категория.Установить(НекаяДата, НоваяКатегория);
Внимание! Эти методы можно применять, если ранее не применялся метод ИспользоватьДату
Установка даты выборки периодических реквизитов
//можно установить дату выборки периодических реквизитов для всего справочника
СпрСотр.ИспользоватьДату(НекаяДата);
//тогда ниже уже нельзя использовать методы Установить и Получить
//доступ к периодическим реквизитам становится такой же, как к обычным реквизитам
Катег = СпрСотр.Категория;
СпрСотр.Оклад = 6000;
Объект "Периодический"
Для работы с историей периодического реквизита очень удобно использовать объект "Периодический".
Пример, вывести историю карьеры сотрудника за текущий год:
ИсторияКарьеры = СоздатьОбъект("Периодический");
ИсторияКарьеры.ИспользоватьОбъект("Должность",ВыбрСотрудник);
ИсторияКарьеры.ВыбратьЗначения(НачГода(РабочаяДата(),КонГода(РабочаяДата()));
Пока ИсторияКарьеры.ПолучитьЗначение()=1 Цикл
....Сообщить(Строка(ИсторияКарьеры.ДатаЗнач) + " " + Строка(ИсторияКарьеры.Значение));
КонецЦикла;
С помощью объекта Периодический можно также редактировать и удалять значения.
Проведение документов
При проведении документа часто требуется установить новое значение периодического реквизита на определенную дату. Это называется движение документа. В этом случае следует применять метод УстановитьРеквизитСправочника:
Процедура ОбработкаПроведения()
УстановитьРеквизитСправочника(Сотрудник, "Должность", НоваяДолжность, ДатаПеремещения);
КонецПроцедуры
Если документ имеет табличную часть и вы хотите, чтобы движения документа были привязаны к номеру строки документа, тогда следует применять метод ПривязыватьСтроку.
Процедура ОбработкаПроведения()
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
ПривязыватьСтроку(НомерСтроки);
УстановитьРеквизитСправочника(Сотрудник, "Должность", НоваяДолжность, ДатаПеремещения);
КонецЦикла;
КонецПроцедуры
Strazik