//изменяет ЧЧ ММ СС
Процедура глСекундыВЧасы(Знач ЧислоСекунд, ЧЧ, ММ, СС)
ЧЧ = Цел(ЧислоСекунд/3600);
ММ = Цел((ЧислоСекунд - ЧЧ*3600)/60);
СС = Цел(ЧислоСекунд % 60);
КонецПроцедуры
//возвращает ТЗ
Функция глНайтиТЗДокументы(ФильтрДата1, ФильтрДата2, СЗВидыДокументов = "", ФлагПроведенные = 1, СЗФирмы = "") Экспорт
Запрос = СоздатьОбъект("ODBCRecordset");
МД = СоздатьОбъект("MetaDataWork");
ТекстЗапроса = "
|--глНайтиТЗДокументы()
|
|SEL ECT
| Журнал.IDDOC [Док $Документ],
| Журнал.IDDOCDEF Док_вид,
| Журнал.DocNO НомерДок,
| NullIf(Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime), '17530101') [ДатаДок $Дата],
| substring(Журнал.Date_Time_IDDoc ,9 ,6) as Время36,
| Журнал.IDDOCDEF [Вид $ВидДокумента],
| Журнал.Closed & 1 as Проведен
|FROM
| _1SJourn Журнал(nolock)
|
|WHERE 1=1
| and Журнал.Date_Time_IDDoc BETWEEN :ФильтрДата1 AND :ФильтрДата2~
| and Журнал.IsMark = 0
|";
Если ФлагПроведенные = 1 Тогда
ТекстЗапроса = ТекстЗапроса + "
| and Журнал.Closed & 1 = 1
|";
КонецЕсли;
Если ПустоеЗначение(СЗФирмы) = 0 Тогда
Если ТипЗначенияСтр(СЗФирмы)= "СписокЗначений" Тогда
ТекстЗапроса = ТекстЗапроса + "
| and Журнал.$ОбщийРеквизит.Фирма in (select id fr om #Фирмы)
|";
Запрос.УложитьСписокОбъектов(СЗФирмы, "#Фирмы");
Иначе
ТекстЗапроса = ТекстЗапроса + "
| and Журнал.$ОбщийРеквизит.Фирма = :Фирма
|";
Запрос.УстановитьТекстовыйПараметр("Фирма", СЗФирмы);
КонецЕсли;
КонецЕсли;
Если СЗВидыДокументов <> "" Тогда //санек
Если ТипЗначенияСтр(СЗВидыДокументов) = "Строка" Тогда
ТекстЗапроса = ТекстЗапроса + "
| and Журнал.IDDocDef = $ВидДокумента." + СокрЛП(СЗВидыДокументов);
Иначе
Запятая = "";
ТекстЗапроса = ТекстЗапроса + " and Журнал.IDDocDef IN (";
Для ф=1 по СЗВидыДокументов.РазмерСписка() Цикл
Вид1 = СЗВидыДокументов.ПолучитьЗначение(ф);
ТекстЗапроса = ТекстЗапроса + Запятая +"
| $ВидДокумента." + СокрЛП(Вид1);
Запятая = ", ";
КонецЦикла;
ТекстЗапроса = ТекстЗапроса + " )";
КонецЕсли;
КонецЕсли;
Запрос.УстановитьТекстовыйПараметр("ФильтрДата1", ФильтрДата1);
Запрос.УстановитьТекстовыйПараметр("ФильтрДата2", ФильтрДата2);
ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
ТЗ.НоваяКолонка("ВремяЧасы", "Чтсло");
ТЗ.НоваяКолонка("ВремяМинуты", "Число");
ТЗ.НоваяКолонка("ВремяСекунды", "Число");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл
сВремя36 = ТЗ.Время36;
ВремяЗапросНаДоставку = МД.СтрокаВЧисло(сВремя36, 36)/10000; //секунд
ЧЧ = 0;
ММ = 0;
СС = 0;
глСекундыВЧасы(ВремяЗапросНаДоставку, ЧЧ, ММ, СС);
ТЗ.ВремяЧасы = ЧЧ;
ТЗ.ВремяМинуты = ММ;
ТЗ.ВремяСекунды = СС;
КонецЦикла;
Запрос = "";
МД = "";
Возврат ТЗ;
КонецФункции
Показать