База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как сохранить стандартный период в регистре сведений 1С? › Ответ в теме: Как сохранить стандартный период в регистре сведений 1С?
В 1С стандартный период — это объект типа «СтандартныйПериод», который содержит даты начала и окончания периода (например, месяц, квартал, год и т.п.). В регистре сведений для хранения периода обычно используется поле типа «Дата» или «ДатаВремя» с именем «Период».
Чтобы сохранить стандартный период в регистре сведений, нужно:
1. В конфигураторе в регистре сведений создать измерение или реквизит типа «Дата» или «ДатаВремя» (обычно это поле «Период»).
2. При записи данных в регистр сведений в поле «Период» записать дату начала или дату окончания стандартного периода, либо обе даты, если в регистре два поля для периода (например, «ДатаНачала» и «ДатаОкончания»).
3. В коде 1С при работе с объектом «СтандартныйПериод» получить даты начала и окончания через свойства:
|
1 2 3 |
СтандартныйПериод = Новый СтандартныйПериод(ПериодТип, Год, Месяц); // пример создания ДатаНачала = СтандартныйПериод.ДатаНачала; ДатаОкончания = СтандартныйПериод.ДатаОкончания; |
4. Записать эти даты в регистр сведений:
|
1 2 3 4 |
Запись = РегистрыСведений.ИмяРегистра.СоздатьМенеджерЗаписи(); Запись.Период = ДатаНачала; // или ДатаОкончания, в зависимости от структуры регистра // заполнить остальные измерения и реквизиты Запись.Записать(); |
Если в регистре сведений период задаётся одним полем «Период», обычно туда записывают дату начала периода.
Если нужно хранить оба конца периода, то в регистре должны быть два поля (например, «ДатаНачала» и «ДатаОкончания»), и туда записываются соответствующие даты из стандартного периода.
—
Пример записи стандартного периода в регистр сведений с одним полем «Период»:
|Процедура ЗаписатьСтандартныйПериод(СтандартныйПериодОбъект)
| Запись = РегистрыСведений.ИмяРегистра.СоздатьМенеджерЗаписи();
| Запись.Период = СтандартныйПериодОбъект.ДатаНачала;
| // заполнить остальные измерения и реквизиты
| Запись.Записать();
|КонецПроцедуры
—
Если нужно использовать стандартный период в запросах или фильтрах, то можно использовать свойства объекта «СтандартныйПериод» для получения дат начала и окончания.
Рекомендую посмотреть здесь, как работать со стандартными периодами и параметрами в отчетах и обработках: