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