Процедура ПолучитьДокументыПоСтд() СрокОплатыСравнение = 2;// 1 - Неважно 2 - Просрочен (более чем на) СрокОтгрузкиСравнение = 1;// 1 - Неважно НаличиеРезервов = 3;// 1 - Неважно 3 - С резервами РазмещениеРезервов = 1; // 1 - На складах и в заказах СостояниеОплаты = 2;// 1 - Неважно 2 - Не оплачен полностью (неоплачен либо оплачен частично) СостояниеОтгрузки = 1; // 1 - Неважно ДатаНач = НачалоДня(ЭтотОбъект.РекДатаНач);//начало периода отбора месяцназад ДатаКон = КонецДня(ЭтотОбъект.РекДатаКон);//конец периода отбора месяцвперед ПустаяДата=Дата('00010101'); ДатаОплаты=НачалоДня(ТекущаяДата()); ДатаОтгрузки=НачалоДня(ТекущаяДата()); ПричинаЗакрытияЗаказа = Справочники.ПричиныЗакрытияЗаказов.ПустаяСсылка(); //сообщить(""+ДатаНач+" "+ДатаКон+""); //Пытаемся учитывать только рабочие дни по календарю ПолучитьДаты = Новый Запрос; ПолучитьДаты.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | РегламентированныйПроизводственныйКалендарь.Год |ИЗ | РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь |ГДЕ | РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачГода И &КонГода"; ПолучитьДаты.УстановитьПараметр("НачГода",НачалоГода(ТекущаяДата())); ПолучитьДаты.УстановитьПараметр("КонГода",КонецГода(ТекущаяДата())); ПолучилиДаты = ПолучитьДаты.Выполнить(); //РекДнейВПлюч - реквизит формы, число Если ПолучилиДаты.Пустой() Тогда ТребуемаяДатаОплаты=НачалоДня(ТекущаяДата()-24*60*60*ЭтотОбъект.РекДнейВПлюс); ТребуемаяДатаОтгрузки=НачалоДня(ТекущаяДата()-24*60*60*ЭтотОбъект.РекДнейВПлюс); Иначе ТребуемаяДатаОплаты=ЗаполнениеДокументов.ОпределитьДату(НачалоДня(ТекущаяДата()),-ЭтотОбъект.РекДнейВПлюс); ТребуемаяДатаОтгрузки=ЗаполнениеДокументов.ОпределитьДату(НачалоДня(ТекущаяДата()),-ЭтотОбъект.РекДнейВПлюс); КонецЕсли; ТекстЗапроса = " |ВЫБРАТЬ //РАЗЛИЧНЫЕ | истина КАК Переносить, | &ПричинаЗакрытияЗаказа КАК ПричинаЗакрытияЗаказа, | ВЫБОР КОГДА ЕстьNULL(ЗаказыПокупателейОстатки.КоличествоОстаток,0)>0 ТОГДА | истина ИНАЧЕ ложь КОНЕЦ КАК ЗаказыКоличество, | ВЫБОР КОГДА ЕстьNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,0)>0 ТОГДА | истина ИНАЧЕ ложь КОНЕЦ КАК РезервыКоличество, | ВЫБОР КОГДА ЕстьNULL(РазмещениеЗаказовПокупателейОстатки.КоличествоОстаток,0)>0 ТОГДА | истина ИНАЧЕ ложь КОНЕЦ КАК РазмещенияКоличество, | ЕстьNULL(ЗаказыПокупателейОстатки.СуммаВзаиморасчетовОстаток,0) КАК ЗаказыОстаток, | ЕстьNULL(РасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток,0) КАК РасчетыОстаток, | | ДокументыЗаказПокупателя.Ссылка, | ДокументыЗаказПокупателя.Дата, | ДокументыЗаказПокупателя.Номер, | ДокументыЗаказПокупателя.Контрагент, | ДокументыЗаказПокупателя.ДоговорКонтрагента, | ДокументыЗаказПокупателя.КонтактноеЛицоКонтрагента, | ДокументыЗаказПокупателя.Организация, | ДокументыЗаказПокупателя.Подразделение, | ДокументыЗаказПокупателя.СкладГруппа, | ДокументыЗаказПокупателя.Ответственный, | ДокументыЗаказПокупателя.СуммаДокумента, | ДокументыЗаказПокупателя.ВалютаДокумента, | ДокументыЗаказПокупателя.ТипЦен, | ДокументыЗаказПокупателя.ДатаОплаты, | ДокументыЗаказПокупателя.ДатаОтгрузки, | ДокументыЗаказПокупателя.УсловиеПродаж, | ДокументыЗаказПокупателя.Грузополучатель, | ДокументыЗаказПокупателя.ДисконтнаяКарта, | ДокументыЗаказПокупателя.Проведен | |{ВЫБРАТЬ | ДокументыЗаказПокупателя.Контрагент.* КАК Контрагент, | ДокументыЗаказПокупателя.ДоговорКонтрагента.* КАК ДоговорКонтрагента, | ДокументыЗаказПокупателя.Организация.* КАК Организация, | ДокументыЗаказПокупателя.КонтактноеЛицоКонтрагента.* КАК КонтактноеЛицоКонтрагента, | ДокументыЗаказПокупателя.Подразделение.* КАК Подразделение, | ДокументыЗаказПокупателя.СкладГруппа.* КАК СкладГруппа, | ДокументыЗаказПокупателя.Ответственный.* КАК Ответственный, | ДокументыЗаказПокупателя.СуммаДокумента КАК СуммаДокумента, | ДокументыЗаказПокупателя.ТипЦен.* КАК ТипЦен, | ДокументыЗаказПокупателя.ВалютаДокумента КАК ВалютаДокумента, | ДокументыЗаказПокупателя.УсловиеПродаж.* КАК УсловиеПродаж, | ДокументыЗаказПокупателя.Грузополучатель.* КАК Грузополучатель, | ДокументыЗаказПокупателя.ДисконтнаяКарта.* КАК ДисконтнаяКарта |//СВОЙСТВА |} | |ИЗ | Документ.ЗаказПокупателя КАК ДокументыЗаказПокупателя | | ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки | ПО ДокументыЗаказПокупателя.Ссылка = ЗаказыПокупателейОстатки.ЗаказПокупателя | | ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.РасчетыСКонтрагентами.Остатки КАК РасчетыСКонтрагентамиОстатки | ПО ДокументыЗаказПокупателя.Ссылка = РасчетыСКонтрагентамиОстатки.Сделка | | ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки | ПО ДокументыЗаказПокупателя.Ссылка = ТоварыВРезервеНаСкладахОстатки.ДокументРезерва | | ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.РазмещениеЗаказовПокупателей.Остатки КАК РазмещениеЗаказовПокупателейОстатки | ПО ДокументыЗаказПокупателя.Ссылка = РазмещениеЗаказовПокупателейОстатки.ЗаказПокупателя | |//СОЕДИНЕНИЯ | | { ГДЕ | ДокументыЗаказПокупателя.Контрагент.* КАК Контрагент, | ДокументыЗаказПокупателя.ДоговорКонтрагента.* КАК ДоговорКонтрагента, | ДокументыЗаказПокупателя.Организация.* КАК Организация, | ДокументыЗаказПокупателя.КонтактноеЛицоКонтрагента.* КАК КонтактноеЛицоКонтрагента, | ДокументыЗаказПокупателя.СкладГруппа.* КАК СкладГруппа, | ДокументыЗаказПокупателя.Подразделение.* КАК Подразделение, | ДокументыЗаказПокупателя.Ответственный.* КАК Ответственный, | ДокументыЗаказПокупателя.СуммаДокумента КАК СуммаДокумента, | ДокументыЗаказПокупателя.ТипЦен.* КАК ТипЦен, | ДокументыЗаказПокупателя.ВалютаДокумента КАК ВалютаДокумента, | ДокументыЗаказПокупателя.УсловиеПродаж.* КАК УсловиеПродаж, | ДокументыЗаказПокупателя.Грузополучатель.* КАК Грузополучатель, | ДокументыЗаказПокупателя.ДисконтнаяКарта.* КАК ДисконтнаяКарта |//СВОЙСТВА |//КАТЕГОРИИ | } | |ГДЕ | (ДокументыЗаказПокупателя.Проведен) И | | ((ДокументыЗаказПокупателя.Дата >= &ДатаНач) ИЛИ (&ДатаНач = &ПустаяДата)) И | ((ДокументыЗаказПокупателя.Дата <= &ДатаКон) ИЛИ (&ДатаКон = &ПустаяДата)) И | | ( ((&СрокОплатыСравнение = 6) И (ДокументыЗаказПокупателя.ДатаОплаты = &ПустаяДата)) ИЛИ | ((&СрокОплатыСравнение = 5) И (ДокументыЗаказПокупателя.ДатаОплаты > &ДатаОплаты)) ИЛИ | ((&СрокОплатыСравнение = 4) И (ДокументыЗаказПокупателя.ДатаОплаты = &ДатаОплаты)) ИЛИ | ((&СрокОплатыСравнение = 3) И (ДокументыЗаказПокупателя.ДатаОплаты < &ДатаОплаты)) ИЛИ | ((&СрокОплатыСравнение = 2) И (ДокументыЗаказПокупателя.ДатаОплаты <= &ТребуемаяДатаОплаты)) ИЛИ | (&СрокОплатыСравнение = 1) | ) И | | ( ((&СрокОтгрузкиСравнение = 6) И (ДокументыЗаказПокупателя.ДатаОтгрузки = &ПустаяДата)) ИЛИ | ((&СрокОтгрузкиСравнение = 5) И (ДокументыЗаказПокупателя.ДатаОтгрузки > &ДатаОтгрузки)) ИЛИ | ((&СрокОтгрузкиСравнение = 4) И (ДокументыЗаказПокупателя.ДатаОтгрузки = &ДатаОтгрузки)) ИЛИ | ((&СрокОтгрузкиСравнение = 3) И (ДокументыЗаказПокупателя.ДатаОтгрузки < &ДатаОтгрузки)) ИЛИ | ((&СрокОтгрузкиСравнение = 2) И (ДокументыЗаказПокупателя.ДатаОтгрузки <= &ТребуемаяДатаОтгрузки)) ИЛИ | (&СрокОтгрузкиСравнение = 1) | ) И | | ( ((&СостояниеОплаты = 3) И (ДокументыЗаказПокупателя.СуммаДокумента > 0) И ((РасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток IS NULL) ИЛИ (РасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток < 0))) ИЛИ | ((&СостояниеОплаты = 2) И (ДокументыЗаказПокупателя.СуммаДокумента > 0) И (РасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток > 0)) ИЛИ | (&СостояниеОплаты = 1) | ) И | | ( ((&СостояниеОтгрузки = 3) И (ДокументыЗаказПокупателя.СуммаДокумента > 0) И ((ЗаказыПокупателейОстатки.СуммаВзаиморасчетовОстаток IS NULL) ИЛИ (ЗаказыПокупателейОстатки.СуммаВзаиморасчетовОстаток < 0)) И ((ЗаказыПокупателейОстатки.КоличествоОстаток IS NULL) ИЛИ (ЗаказыПокупателейОстатки.КоличествоОстаток < 0))) ИЛИ | ((&СостояниеОтгрузки = 2) И (ДокументыЗаказПокупателя.СуммаДокумента > 0) И ((ЗаказыПокупателейОстатки.СуммаВзаиморасчетовОстаток > 0) ИЛИ (ЗаказыПокупателейОстатки.КоличествоОстаток > 0))) ИЛИ | (&СостояниеОтгрузки = 1) | ) И | | ( ((&НаличиеРезервов = 3) И (&РазмещениеРезервов = 3) И ((ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток IS NULL) ИЛИ (ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток < 0)) И (РазмещениеЗаказовПокупателейОстатки.КоличествоОстаток > 0)) ИЛИ | ((&НаличиеРезервов = 3) И (&РазмещениеРезервов = 2) И (ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток > 0) И ((РазмещениеЗаказовПокупателейОстатки.КоличествоОстаток IS NULL) ИЛИ (РазмещениеЗаказовПокупателейОстатки.КоличествоОстаток < 0))) ИЛИ | ((&НаличиеРезервов = 3) И (&РазмещениеРезервов = 1) И ((ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток > 0) ИЛИ (РазмещениеЗаказовПокупателейОстатки.КоличествоОстаток > 0))) ИЛИ | ((&НаличиеРезервов = 2) И ((ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток IS NULL) ИЛИ (ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток < 0)) И ((РазмещениеЗаказовПокупателейОстатки.КоличествоОстаток IS NULL) ИЛИ (РазмещениеЗаказовПокупателейОстатки.КоличествоОстаток < 0))) ИЛИ | (&НаличиеРезервов = 1) | ) | |УПОРЯДОЧИТЬ ПО | ДокументыЗаказПокупателя.Дата, ДокументыЗаказПокупателя.Номер |"; Запрос=Новый Запрос; Запрос.Текст=ТекстЗапроса; Запрос.УстановитьПараметр("СрокОплатыСравнение",СрокОплатыСравнение); Запрос.УстановитьПараметр("СрокОтгрузкиСравнение",СрокОтгрузкиСравнение); Запрос.УстановитьПараметр("НаличиеРезервов",НаличиеРезервов); Запрос.УстановитьПараметр("СостояниеОплаты",СостояниеОплаты); Запрос.УстановитьПараметр("СостояниеОтгрузки",СостояниеОтгрузки); Запрос.УстановитьПараметр("ДатаНач",ДатаНач); Запрос.УстановитьПараметр("ДатаКон",ДатаКон); Запрос.УстановитьПараметр("ПустаяДата",ПустаяДата); Запрос.УстановитьПараметр("ДатаОплаты",ДатаОплаты); Запрос.УстановитьПараметр("ДатаОтгрузки",ДатаОтгрузки); Запрос.УстановитьПараметр("ТребуемаяДатаОплаты",ТребуемаяДатаОплаты); Запрос.УстановитьПараметр("ТребуемаяДатаОтгрузки",ТребуемаяДатаОтгрузки); Запрос.УстановитьПараметр("РазмещениеРезервов",РазмещениеРезервов); Запрос.УстановитьПараметр("ПричинаЗакрытияЗаказа",ПричинаЗакрытияЗаказа); Результат=Запрос.Выполнить(); //Сообщить(Результат.Выбрать().Количество()); Если НЕ Результат.Пустой() Тогда СписокЗаказов=Новый ТаблицаЗначений; СписокЗаказов=Результат.Выгрузить(); ЭлементыФормы.СписокЗаказов.СоздатьКолонки();//Поле ввода, ТаблицаЗначений СоздатьДокументЗЗП(); //переход к процедуре подготовки документа ЗакрытиеЗаказовПокупателей Иначе Предупреждение("Просроченные заказы не найдены!"); Возврат; КонецЕсли; КонецПроцедуры
вторник, 30 июня 2015 г.
1С получить список просроченных заказов
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий