1С 8.3 Программно получить первый рабочий день месяца
Данные > Примеры кода 1С > 1С 8.3 Типовые (БП3, ЗУП, УТ)
Перейти в раздел примеры кода 1С 8.3:
Возвращает истину, если текущая дата или произвольная -- переданная в параметре, является первым рабочим днем месяца. Работает в семействе УТ.
Программно получить первый рабочий день месяца в 1С 8.3 семейства УТ
// Функция - Это первый рабочий день месяца
//
// Параметры:
// Дата - Дата - Дата, которую необходимо проверить, если не заполнено, тогда функция проверяет текущую дату
//
// Возвращаемое значение:
// Булево - Фукнция возвращает истину, если дата -- первый рабочий день месяца
//
Функция ЭтоПервыйРабочийДеньМесяца(Дата = Неопределено)
Если Дата = Неопределено Тогда
Дата = ТекущаяДатаСеанса();
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СУММА(ВЫБОР
| КОГДА ДанныеПроизводственногоКалендаря.ВидДня =
//
// Параметры:
// Дата - Дата - Дата, которую необходимо проверить, если не заполнено, тогда функция проверяет текущую дату
//
// Возвращаемое значение:
// Булево - Фукнция возвращает истину, если дата -- первый рабочий день месяца
//
Функция ЭтоПервыйРабочийДеньМесяца(Дата = Неопределено)
Если Дата = Неопределено Тогда
Дата = ТекущаяДатаСеанса();
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СУММА(ВЫБОР
| КОГДА ДанныеПроизводственногоКалендаря.ВидДня =
ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК ВидДня
|ИЗ
| РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
|ГДЕ
| ДанныеПроизводственногоКалендаря.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ТекущаяДата, МЕСЯЦ)
Запрос.УстановитьПараметр("ТекущаяДата", Дата);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
Возврат Выборка.ВидДня = 1;
КонецФункции
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ) КАК ВидДня
|ИЗ
| РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
|ГДЕ
| ДанныеПроизводственногоКалендаря.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ТекущаяДата, МЕСЯЦ)
И НАЧАЛОПЕРИОДА(&ТекущаяДата, ДЕНЬ)";
Запрос.УстановитьПараметр("ТекущаяДата", Дата);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
Возврат Выборка.ВидДня = 1;
КонецФункции
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник