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