|
Как прописать в запросе, чтобы строки с 0 не выводил. | ☑ | ||
---|---|---|---|---|
0
JaZDik
04.06.14
✎
15:02
|
Значение поля для которого нужно сделать "СКК"
|
|||
1
JaZDik
04.06.14
✎
15:02
|
Функция ВыполнитьНаСервере()
МассивКонтр = Новый Массив; Для Каждого Стр из Отчет.Контрагенты Цикл МассивКонтр.Добавить(Стр.Контрагенты); КонецЦикла; Если Отчет.Дебиторская = Истина Тогда ТипЗадолженности = "Дебиторская"; КонецЕсли; Если Отчет.Кредиторская = Истина Тогда ТипЗадолженности = "Кредиторская"; КонецЕсли; Запрос = Новый Запрос; ТекстЗапроса = "ВЫБРАТЬ | ХозрасчетныйОстаткиИОбороты.Счет, | ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Субконто1, | ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Субконто2, | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйРазвернутыйОстатокДт) КАК СНД, | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйРазвернутыйОстатокКт) КАК СНК, | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт) КАК ДО, | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотКт) КАК КО, | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокДт) КАК СКД, | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокКт) КАК СКК |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты( | &ДатаНач, | &ДатаКон, | , | , | Счет В ИЕРАРХИИ(&Счета), | , | Организация = &Организация"; Если ЗначениеЗаполнено(Отчет.Контрагент) Тогда ТекстЗапроса = ТекстЗапроса+" | И Субконто1 = &Контрагент"; Запрос.УстановитьПараметр("Контрагент", Отчет.Контрагент); КонецЕсли; Если Отчет.Список и Отчет.Контрагенты.Количество()>0 Тогда ТекстЗапроса = ТекстЗапроса+" | И Субконто1 В (&Контрагенты)"; Запрос.УстановитьПараметр("Контрагенты", МассивКонтр); КонецЕсли; Если ЗначениеЗаполнено(Отчет.Договор) Тогда ТекстЗапроса = ТекстЗапроса + " | И Субконто2 = &Договор"; Запрос.УстановитьПараметр("Договор", Отчет.Договор); КонецЕсли; ТекстЗапроса = ТекстЗапроса + " |) КАК ХозрасчетныйОстаткиИОбороты | |СГРУППИРОВАТЬ ПО | ХозрасчетныйОстаткиИОбороты.Субконто1, | ХозрасчетныйОстаткиИОбороты.Субконто2, | ХозрасчетныйОстаткиИОбороты.Счет |УПОРЯДОЧИТЬ ПО | Субконто1.Наименование |ИТОГИ | СУММА(СНД), | СУММА(СНК), | СУММА(ДО), | СУММА(КО), | СУММА(СКД), | СУММА(СКК) > 0 |ПО | ОБЩИЕ, | Субконто1"; Запрос.Текст = ТекстЗапроса; Запрос.УстановитьПараметр("ДатаНач", НачалоДня(Отчет.ДатаНач)); Запрос.УстановитьПараметр("ДатаКон", КонецДня(Отчет.ДатаКон)); Запрос.УстановитьПараметр("Организация", Отчет.Организация); // МассивСчетов = Новый Массив; Для каждого Строка из Отчет.СчетаУчета Цикл Если Строка.Использовать Тогда МассивСчетов.Добавить(Строка.СчетУчета); КонецЕсли; КонецЦикла; Запрос.УстановитьПараметр("Счета",МассивСчетов); ВВВ = Запрос.Выполнить().Выгрузить().ВыбратьСтроку(); Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Выборка.Следующий(); //**Общие итоги**** ИСНД = Выборка.СНД; ИСНК = Выборка.СНК; ИДО = Выборка.ДО; ИКО = Выборка.КО; ИСКД = Выборка.СКД; ИСКК = Выборка.СКК; // ***************** //ДокРезультат = Элементы.Результат; //ДокРезультат.Очистить(); ДокРезультат = Новый ТабличныйДокумент; ДокРезультат.ОтображатьЗаголовки = Ложь; ДокРезультат.ОтображатьСетку = Ложь; ДокРезультат.Очистить(); текОбъект = РеквизитФормыВЗначение("Отчет"); Макет = текОбъект.ПолучитьМакет("Макет"); Если Отчет.Список ИЛИ НЕ ЗначениеЗаполнено(Отчет.Контрагент) Тогда Шапка = Макет.ПолучитьОбласть("Шапка1"); Шапка.Параметры.СписокКонтрагентов = ПолучитьСписокКонтрагентов(); Шапка.Параметры.ТипЗадолженности = ПолучитьНаименованиеТипаЗадолженности(ТипЗадолженности); Шапка.Параметры.СписокСчетов = ПолучитьСписокСчетов(МассивСчетов); Иначе Шапка = Макет.ПолучитьОбласть("Шапка"); Шапка.Параметры.Контрагент = Отчет.Контрагент.НаименованиеПолное; КонецЕсли; Шапка.Параметры.Организация = мОрганизация; // Шапка.Параметры.ПредставлениеПериода = ПредставлениеПериода(НачалоДня(Отчет.ДатаНач), КонецДня(Отчет.ДатаКон), "ФП=Истина"); ДокРезультат.Вывести(Шапка); ДокРезультат.НачатьАвтогруппировкуСтрок(); ВыборкаПоОрганизации = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаПоОрганизации.Следующий() Цикл ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаКонтрагент"); Если ТипЗадолженности = "Дебиторская" Тогда ОбластьСтрока.Параметры.ДогКонт = ВыборкаПоОрганизации.Субконто1; ОбластьСтрока.Параметры.СНД = ВыборкаПоОрганизации.СНД; ОбластьСтрока.Параметры.ДО = ВыборкаПоОрганизации.ДО; ОбластьСтрока.Параметры.СКД = ВыборкаПоОрганизации.СКД; ИначеЕсли ТипЗадолженности = "Кредиторская" Тогда ОбластьСтрока.Параметры.ДогКонт = ВыборкаПоОрганизации.Субконто1; ОбластьСтрока.Параметры.СНК = ВыборкаПоОрганизации.СНК; ОбластьСтрока.Параметры.КО = ВыборкаПоОрганизации.КО; ОбластьСтрока.Параметры.СКК = ВыборкаПоОрганизации.СКК; Иначе ОбластьСтрока.Параметры.Заполнить(ВыборкаПоОрганизации); ОбластьСтрока.Параметры.ДогКонт = ВыборкаПоОрганизации.Субконто1; КонецЕсли; ДокРезультат.Вывести(ОбластьСтрока,1); ВыборкаПоДоговорам = ВыборкаПоОрганизации.Выбрать(); Пока ВыборкаПоДоговорам.Следующий() Цикл ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаДоговор"); Если ТипЗадолженности = "Дебиторская" Тогда ОбластьСтрока.Параметры.ДогКонт =ВыборкаПоДоговорам.Субконто2; ОбластьСтрока.Параметры.Счет = ВыборкаПоДоговорам.Счет; ОбластьСтрока.Параметры.СНД = ВыборкаПоДоговорам.СНД; ОбластьСтрока.Параметры.ДО = ВыборкаПоДоговорам.ДО; ОбластьСтрока.Параметры.СКД = ВыборкаПоДоговорам.СКД; ИначеЕсли ТипЗадолженности = "Кредиторская" Тогда ОбластьСтрока.Параметры.ДогКонт =ВыборкаПоДоговорам.Субконто2; ОбластьСтрока.Параметры.Счет = ВыборкаПоДоговорам.Счет; ОбластьСтрока.Параметры.СНК = ВыборкаПоДоговорам.СНК; ОбластьСтрока.Параметры.КО = ВыборкаПоДоговорам.КО; ОбластьСтрока.Параметры.СКК = ВыборкаПоДоговорам.СКК; Иначе ОбластьСтрока.Параметры.Заполнить(ВыборкаПоДоговорам); ОбластьСтрока.Параметры.ДогКонт =ВыборкаПоДоговорам.Субконто2; КонецЕсли; //расшифровка СтрРасшифровки = Новый Структура; СтрРасшифровки.Вставить("Поле", "Оборот"); СтрРасшифровки.Вставить("Контрагент", ВыборкаПоОрганизации.Субконто1); СтрРасшифровки.Вставить("Договор", ВыборкаПоДоговорам.Субконто2); СтрРасшифровки.Вставить("Счет", ВыборкаПоДоговорам.Счет); // ОбластьСтрока.Параметры.РДО = СтрРасшифровки; // ОбластьСтрока.Параметры.РКО = СтрРасшифровки; СтрРасшифровки = Новый Структура; СтрРасшифровки.Вставить("Поле", "Договор"); СтрРасшифровки.Вставить("Договор", ВыборкаПоДоговорам.Субконто2); ОбластьСтрока.Параметры.РДог = СтрРасшифровки; ДокРезультат.Вывести(ОбластьСтрока,2); КонецЦикла; КонецЦикла; ДокРезультат.ЗакончитьАвтогруппировкуСтрок(); //*вбОтветственныеЛицаОрганизации = ОтветственныеЛицаБП.ОтветственныеЛица(Отчет.Организация, ТекущаяДата()); ОтветственныеЛицаОрганизации = ОбщегоНазначенияБПВызовСервера.ОтветственныеЛица(Отчет.Организация, ТекущаяДата()); Руководитель = ОтветственныеЛицаОрганизации.Руководитель; ДолжностьРуководителя = ОтветственныеЛицаОрганизации.РуководительДолжность; ГлавныйБухгалтер = ОтветственныеЛицаОрганизации.ГлавныйБухгалтер; ДолжностьГлавногоБухгалтера = ОтветственныеЛицаОрганизации.ГлавныйБухгалтерДолжность; //Руководители = ОбщегоНазначения.ОтветственныеЛица(мОрганизация,ДатаКон); // ОбластьИтоги = Макет.ПолучитьОбласть("Итоги"); Если ТипЗадолженности = "Дебиторская" Тогда ОбластьИтоги.Параметры.ИСНД = ИСНД; ОбластьИтоги.Параметры.ИДО = ИДО; ОбластьИтоги.Параметры.ИСКД = ИСКД; ИначеЕсли ТипЗадолженности = "Кредиторская" Тогда ОбластьИтоги.Параметры.ИСНК = ИСНК; ОбластьИтоги.Параметры.ИКО = ИКО; ОбластьИтоги.Параметры.ИСКК = ИСКК; Иначе // ОбластьИтоги.Параметры.ИСНД = ИСНД; // ОбластьИтоги.Параметры.ИСНК = ИСНК; // ОбластьИтоги.Параметры.ИДО = ИДО; // ОбластьИтоги.Параметры.ИКО = ИКО; ОбластьИтоги.Параметры.ИСКД = ИСКД; ОбластьИтоги.Параметры.ИСКК = ИСКК; КонецЕсли; ДокРезультат.Вывести(ОбластьИтоги); ОбластьПодписи = Макет.ПолучитьОбласть("Подписи"); //Если ЗначениеЗаполнено(Контрагент) И ТипЗадолженности = 3 Тогда Если ЗначениеЗаполнено(Отчет.Контрагент) Тогда //Вад ФорматнаяСтрока = "Л=ru_RU"; ПараметрыПредметаИсчесления = "Рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2"; ////// ОстатокНаКонец = ?(ИСКД = Неопределено, 0, ИСКД) - ?(ИСКК = Неопределено, 0, ИСКК); РезультатыСверки = "на " + Формат(ДатаКон, "ДФ=dd.MM.yyyy") + " задолженность "; Если ОстатокНаКонец > 0 Тогда РезультатыСверки = РезультатыСверки + "в пользу " + Отчет.Организация + " " + Формат(ОстатокНаКонец, "ЧЦ=21; ЧДЦ=2") + " " + строка(мВалютаРегламентированногоУчета) //+" ("+УчетДенежныхСредствБП.ФорматироватьСуммуПрописьюПлатежногоДокумента(ОстатокНаКонец, мВалютаРегламентированногоУчета,Ложь)+")" ; //+" ("+УчетДенежныхСредствБП.ФорматироватьСуммуПрописьюПлатежногоДокумента(ОстатокНаКонец, мВалютаРегламентированногоУчета,Ложь)+")" ; +" ("+ ЧислоПрописью(ОстатокНаКонец, ФорматнаяСтрока, ПараметрыПредметаИсчесления)+")" ; ИначеЕсли ОстатокНаКонец < 0 Тогда РезультатыСверки = РезультатыСверки + "в пользу " + Отчет.Контрагент.НаименованиеПолное + " " + Формат(-ОстатокНаКонец, "ЧЦ=21; ЧДЦ=2") + " " + строка(мВалютаРегламентированногоУчета) //+" ("+УчетДенежныхСредствБП.ФорматироватьСуммуПрописьюПлатежногоДокумента(-ОстатокНаКонец, мВалютаРегламентированногоУчета,Ложь)+")" ; +" ("+ ЧислоПрописью(-ОстатокНаКонец, ФорматнаяСтрока, ПараметрыПредметаИсчесления)+")" ; Иначе РезультатыСверки = РезультатыСверки + "отсутствует."; КонецЕсли; Иначе РезультатыСверки = ""; КонецЕсли; ОбластьПодписи.Параметры.Организация = Отчет.Организация; // ОбластьПодписи.Параметры.РезультатСверки = РезультатыСверки; ОбластьПодписи.Параметры.Контрагент = ?(ЗначениеЗаполнено(Отчет.Контрагент), Отчет.Контрагент.НаименованиеПолное,""); ОбластьПодписи.Параметры.ДолжностьРук = ДолжностьГлавногоБухгалтера; ОбластьПодписи.Параметры.ФИОРук = ГлавныйБухгалтер; Если ЗначениеЗаполнено(Отчет.Контрагент) Тогда ОбластьПодписи.Параметры.ДолжностьКонтрагента = Отчет.Контрагент.ОсновноеКонтактноеЛицо.Должность; //ОбластьПодписи.Параметры.ФИОКонтрагента = ОбщегоНазначения.ПолучитьФамилиюИмяОтчество(Отчет.Контрагент.ОсновноеКонтактноеЛицо.Фамилия, Отчет.Контрагент.ОсновноеКонтактноеЛицо.Имя, Отчет.Контрагент.ОсновноеКонтактноеЛицо.Отчество, Истина); КонецЕсли; Если ЗначениеЗаполнено(Отчет.Контрагент) Тогда //Если ЗначениеЗаполнено(Отчет.Контрагент) И ТипЗадолженности = 3 Тогда ДокРезультат.Вывести(ОбластьПодписи); КонецЕсли; ДокРезультат.АвтоМасштаб = Истина; ДокРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Портрет; //Элементы.Панель1.ТекущаяСтраница = Элементы.Панель1.Страницы[0]; Возврат ДокРезультат; |
|||
2
Enders
04.06.14
✎
15:06
|
(0) Если я правильно понял, то строки в которых "СКК" = 0 не нужны?
Тогда чем условия в запросе не угодили? |
|||
3
Franchiser
гуру
04.06.14
✎
15:09
|
Имеющие сумма(хозрасчетныйостаткииобороты.суммаконечныйразвернутыйостатоккт)<>0
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |