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