Стандартный период в 1С

Стандартный период в 1С – это общий объект, который можно использовать и при работе с управляемой формой, и при работе с компоновкой данных. В этой статье разберем, как работать со стандартным периодом на управляемой форме и в СКД.

Стандартный период в 1С на управляемой форме

На управляемой форме можно создать реквизит с типом Стандартный период, и поместить этот реквизит на саму форму в виде поля ввода.

Стандартный период 1С

Теперь, если пользователь нажмет на кнопку «…» поля ввода стандартного периода, то откроется окно «Выберете период».

Стандартный период 1С

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

Стандартный период 1С

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

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

&НаКлиенте
Процедура ПрочитатьДатыПериода(Команда)
	
	ДатаНачала = Период.ДатаНачала;
	ДатаОкончания = Период.ДатаОкончания;
	
	Сообщить("Начало: " + ДатаНачала + ", окончание: " + ДатаОкончания);
	
КонецПроцедуры

Напомню, что Период – это реквизит формы  (см. первый скрин).

Стандартный период 1С

Стандартный период можно создать в коде при помощи конструктора Новый.

&НаКлиенте
Процедура СоздатьСтандартныйПериод(Команда)
	
	ПериодЛокальный = Новый СтандартныйПериод();
	
КонецПроцедуры

Если мы сделаем так, то создадим пустой стандартный период (с пустыми датами). Также можно создать стандартный период с уже заранее определенными датами.

&НаКлиенте
Процедура СоздатьСтандартныйПериод(Команда)
	
	НачалоТекущегоМесяца = НачалоМесяца(ТекущаяДата());
	КонецТекущегоМесяца  = КонецМесяца(ТекущаяДата());
	
	ПериодЛокальный = Новый СтандартныйПериод(НачалоТекущегоМесяца,КонецТекущегоМесяца);
	
КонецПроцедуры

Ещё, можно создать стандартный период по варианту. Например, создадим стандартный период вчерашней даты.

&НаКлиенте
Процедура СоздатьСтандартныйПериод(Команда)
		
	ПериодЛокальный = Новый СтандартныйПериод(ВариантСтандартногоПериода.Вчера);
КонецПроцедуры

ВариантСтандартногоПериода – системное перечисление, которое содержит разные варианты стандартного периода. Посмотреть на все значения этого перечисления можно в синтакс-помощнике (Системные перечисления – Разные – Варианта стандартного периода).

Созданную при помощи конструктора Новый переменную типа СтандартныйПериод, можно, как вариант, присвоить реквизиту формы такого же типа.

&НаКлиенте
Процедура СоздатьСтандартныйПериод(Команда)
	
	ПериодЛокальный = Новый СтандартныйПериод(ВариантСтандартногоПериода.Вчера);
	Период = ПериодЛокальный;
	
КонецПроцедуры 

 Стандартный период 1С

Стандартный период 1С в СКД

Стандартный период можно использовать в СКД. Например, нам нужно получить список документов, начиная с одной даты и заканчивая другой датой.

У нас получится такой вот несложный запрос в наборе данных.

Стандартный период 1С в СКД

Со следующим набором параметров.

Стандартный период 1С в СКД

Если мы всё так и оставим, эти параметры у нас перейдут и в настройку.

Стандартный период 1С в СКД

И в форму отчета.

Стандартный период 1С в СКД

Возможно, вас такой вариант и устроит, а можно заменить эти даты стандартным периодом.

Для этого в схеме компоновки данных нужно создать параметр с типом СтандартныйПериод.

Стандартный период 1С в СКД

А в поле Выражение  для параметров ДатаНачала и ДатаОкончания  получать дату начала и дату окончания параметра с типом СтандартныйПериод:

&Период.ДатаНачала
&Период.ДатаОкончания

А также, у параметров с датами необходимо установить флаги у поля Ограничение доступности, чтобы их не было видно на форме отчёта.

Стандартный период 1С в СКД

Чтобы поле Период отобразилось на форме отчёта, следует установить свойство Включать в пользовательские настройки соответствующему параметру на закладке Настройки.

Стандартный период 1С в СКД

Ну и также, не забудем выбрать поля у детальных записей.

Стандартный период 1С в СКД

После всех этих настроек, на форме отчета должно появиться поле Период, в котором можно выбрать разные варианты периодов.

Стандартный период 1С в СКД

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Программировать в 1С за 11 шагов

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси
  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301

Подписывайтесь на мой канал в телеграмме: https://t.me/Programming1CNizamutdinov

И вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

семь + 3 =