Первый рабочий день месяца

tejmur 19 1 1

Функция возвращает истину, если текущая дата или произвольная -- переданная в параметре, является первым рабочим днем месяца. Работает в семействе УТ

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

См. также

Получить дату по номеру дня недели и его порядковому номеру в месяце

ПродолжитьНастройкуАвтономногоРабочегоМеста (БСП)

ОчиститьРабочийКаталог (БСП)

ВыполнитьНастройкуАвтономногоРабочегоМестаПриПервомЗапуске (БСП)

НеобходимоВыполнитьНастройкуАвтономногоРабочегоМестаПриПервомЗапуске (БСП)

Вывод месяца строкой из даты

Определение периодов работы сотрудников по данным СКУД. Сгруппировать периоды в запросе

Прибавить к дате день

Первый пропущенный артикул

Модератору