НОВЫЙ ЗАПРОС (вариант kiruha): ИначеЕсли ФлагСиквел = -1 Тогда Время1 = _GetPerformanceCounter(); Попытка База = СоздатьОбъект("OLEDBData"); RS = База.Соединение(" |Provider=VFPOLEDB.1; |Null = Yes; |Exclusive = No; |SourceType = DBF; |Data Source=" + КаталогИБ() + "; |Mode=ReadWrite; |Extended Properties=""""; |User ID=""""; |Password=""""; |Mask Password=False; |Collating Sequence=MACHINE; |DSN="""""); //Это ВАЖНО !!! соединение Collating Sequence=MACHINE Запрос = База.СоздатьКоманду(); Исключение текОшибка = ВРег(ОписаниеОшибки()); КритичнаяОшибка = 1; Для ы = 1 По СЗнекритичныхОшибок.РазмерСписка() Цикл Если Найти(текОшибка,СЗнекритичныхОшибок.ПолучитьЗначение(ы)) <> 0 Тогда КритичнаяОшибка = 0; ЗаписьЖурналаРегистрации("монопольно="+МонопольныйРежим()+", "+текОшибка,"Provider=VFPOLEDB.1","Ошибка времени выполнения"); Прервать; КонецЕсли; КонецЦикла; Если КритичнаяОшибка <> 0 Тогда Предупреждение("Обнаружена ошибка: "+ОписаниеОшибки()+" |Сообщите программисту!"); КонецЕсли; ФлагСиквел = 0; ВыполнитьТекстЗапросаБыстро(ТЗЗ,парамРежимФормирования,ФлагСиквел); Возврат; КонецПопытки; ТекстЗапроса = " |SELECT | т.Заявка as [Заявка $Документ.ЗаявкаПокупателя], | т.Договор as [Договор $Справочник.Договоры], | т.Фирма as [Фирма $Справочник.Фирмы], | т.Склад as [Склад $Справочник.Склады], | т.ДатаОтгрузки as ДатаОтгрузки, | т.Контрагент as [Контрагент $Справочник.Контрагенты], | т.Менеджер as [Менеджер $Справочник.Пользователи], | т.Количество as КонОстК, | т.Сумма as КонОстС, | т.Флаг as Флаг |FROM( |SELECT | РегЗаявки.ЗаявкаПокупателя as Заявка, | РегЗаявки.ДоговорПокупателя as Договор, | РегЗаявки.Фирма as Фирма, | $Док.Склад as Склад, | $Док.ДатаОтгрузки as ДатаОтгрузки, | Спр1.id as Контрагент, | $Спр1.БВК_Менеджер as Менеджер, | SUM(РегЗаявки.КоличествоРасход) as Количество, | SUM(РегЗаявки.СтоимостьРасход) as Сумма, | IIF(:ДатаРаботы~~ >$Док.ДатаОтгрузки,1,0) as Флаг |FROM | ( | SELECT | $Рег.ЗаявкаПокупателя as ЗаявкаПокупателя, | $Рег.ДоговорПокупателя as ДоговорПокупателя, | $Рег.Фирма as Фирма, | $Рег.КоличествоРасход as КоличествоРасход, | $Рег.СтоимостьРасход as СтоимостьРасход |FROM | $РегистрИтоги.Заявки as Рег | WHERE Покупателя | LIKE (DTOS(:ДатуТА~~ )+"+L_(9+9+9+9)+") | ) as РегЗаявки | LEFT JOIN $Документ.ЗаявкаПокупателя Док on Док.IDDoc = Right(РегЗаявки.ЗаявкаПокупателя,9) | LEFT JOIN $Справочник.Договоры Спр on Спр.id = РегЗаявки.ДоговорПокупателя | LEFT JOIN $Справочник.Контрагенты Спр1 on Спр1.id = Спр.ParentExt | GROUP BY д,$Док.ДатаОтгрузки,Спр1.id,$Спр1.БВК_Менеджер) as т |WHERE | т.Сумма<>0 OR т.Количество<>0";
Если НАЙТИ(ВРЕГ(НазваниеНабораПрав()),"АДМИН")=0 Тогда ТекстЗапроса = ТекстЗапроса + " | and т.Менеджер = :ГлПользователь"; КонецЕсли; Если парамРежимФормирования = -1 Тогда //условий не накладываем, полный отчет Иначе ТекстЗапроса = ТекстЗапроса +" | and т.Флаг=:парамРежимФормирования"; КонецЕсли; ТекстЗапроса = ТекстЗапроса +" | Order by т.Контрагент,т.Заявка";
ДатаРаботы = ТекущаяДата()-ВыбДень; Попытка Запрос.УстановитьТекстовыйПараметр("ДатаРаботы" ,ДатаРаботы); Запрос.УстановитьТекстовыйПараметр("ГлПользователь" ,ГлПользователь); МД = СоздатьОбъект("MetaDataWork"); ДатуТА = МД.ПолучитьНачПериода(ПолучитьДатуТА()); Запрос.УстановитьТекстовыйПараметр("ДатуТА",ДатуТА); Запрос.УстановитьТекстовыйПараметр("парамРежимФормирования" ,парамРежимФормирования); ТЗЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); ЗатраченоВремени = " "+Окр((_getPerformanceCounter() - Время1)/1000,3,1)+" сек."; // //Форма.ТЗ.Видимость(1); Возврат; Исключение текОшибка = ВРег(ОписаниеОшибки()); КритичнаяОшибка = 1; Для ы = 1 По СЗнекритичныхОшибок.РазмерСписка() Цикл Если Найти(текОшибка,СЗнекритичныхОшибок.ПолучитьЗначение(ы)) <> 0 Тогда КритичнаяОшибка = 0; ЗаписьЖурналаРегистрации("монопольно="+МонопольныйРежим()+", "+текОшибка,"Provider=VFPOLEDB.1","Ошибка времени выполнения"); Прервать; КонецЕсли; КонецЦикла; Если КритичнаяОшибка <> 0 Тогда Предупреждение("Обнаружена ошибка: "+ОписаниеОшибки()+" |Сообщите программисту!"); КонецЕсли;
ФлагСиквел = 0; ВыполнитьТекстЗапросаБыстро(ТЗЗ,парамРежимФормирования,ФлагСиквел); Возврат; КонецПопытки;
|