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