|
v7: Как скрыть пустые строки в оборотке ? | ☑ | ||
---|---|---|---|---|
0
9451523
04.08.16
✎
11:09
|
Привет Всем
Есть отчет Оборотно-Сальдовая Ведомость по счету , в последних двух столбцах выводятся кредитовое (Ит.СКК) и дебетовое (Ит.Скд) сальдо на конец периода , главбух попросил меня не показывать строки в отчете с нулевым значением итогов СКК и СКД, я попробывал поставить условие на ПустоеЗначение: Если (ПустоеЗначение(Ит.СКК())=1) и (ПустоеЗначение(Ит.СКД())=1) Тогда Продолжить; КонецЕсли; не сработало. все равно выводит пустые строки, вот код процедуры: Процедура Сформировать(Ручн = 0, ФлагЗакрытияФормы = 0) Если Счет.Выбран() = 0 Тогда Предупреждение("Не указан счет!"); Возврат; КонецЕсли; Если глПроверкаПериода(Дата1, Дата2, Счет) = 0 Тогда Возврат; КонецЕсли; ВидСубконто[1] = ВыбВидСубконто1; Субконто[1] = Субконто1; ОтборСубконто[1] = ?(ВидСубконто[1].Выбран()=1, ОтборСубконто1.ТекущаяСтрока(), 3); ПоГруппам[1] = ПоГруппам1; Номер[1] = 1; ВидСубконто[2] = ВыбВидСубконто2; Субконто[2] = Субконто2; ОтборСубконто[2] = ?(ВидСубконто[2].Выбран()=1, ОтборСубконто2.ТекущаяСтрока(), 3); ПоГруппам[2] = ПоГруппам2; Номер[2] = 2; ВидСубконто[3] = ВыбВидСубконто3; Субконто[3] = Субконто3; ОтборСубконто[3] = ?(ВидСубконто[3].Выбран()=1, ОтборСубконто3.ТекущаяСтрока(), 3); ПоГруппам[3] = ПоГруппам3; Номер[3] = 3; Если (ВидСубконто[1] = ВидСубконто[2]) И (ОтборСубконто[1] <> 3) И (ОтборСубконто[2] <> 3) Или (ВидСубконто[2] = ВидСубконто[3]) И (ОтборСубконто[2] <> 3) И (ОтборСубконто[3] <> 3) Или (ВидСубконто[3] = ВидСубконто[1]) И (ОтборСубконто[3] <> 3) И (ОтборСубконто[1] <> 3) Тогда Предупреждение("Выбраны одинаковые виды субконто!"); Возврат; КонецЕсли; Если Ручн = 1 Тогда СохранитьЗначение("ОтчРабСчет",Счет); КонецЕсли; Если ОтборСубконто[1] > ОтборСубконто[2] Тогда Поменять(1, 2); КонецЕсли; Если ОтборСубконто[2] > ОтборСубконто[3] Тогда Поменять(2, 3); Если ОтборСубконто[1] > ОтборСубконто[2] Тогда Поменять(1, 2); КонецЕсли; КонецЕсли; ФлВал = Счет.Валютный; Расшифровка = СоздатьОбъект("СписокЗначений"); Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьРазделительУчета(РазделительУчета); КолПоСчету = 0; Заголовок1 = ""; Для А=1 По 3 Цикл Если ОтборСубконто[А] <> 3 Тогда Ит.ИспользоватьСубконто(ВидСубконто[А], Субконто[А], ОтборСубконто[А], ПоГруппам[А]); Если А <> 1 Тогда Заголовок1 = Заголовок1+"; "; КонецЕсли; Заголовок1 = Заголовок1+ВидСубконто[А]; Если ОтборСубконто[А] = 2 Тогда Заголовок1 = Заголовок1+": "+Субконто[А]; КолПоСчету = 1; КонецЕсли; КонецЕсли; КонецЦикла; Ит.ВключатьСубсчета(ДанныеПоСубсчетам); Если Ит.ВыполнитьЗапрос(Дата1, Дата2, Счет) = 0 Тогда Возврат; КонецЕсли; Если (ТипЗначенияСтр(Т) <> "Таблица") Или (Обновить = 0) Тогда Т = СоздатьОбъект("Таблица"); Иначе Т.Очистить(); КонецЕсли; Т.ИсходнаяТаблица("Таблица"); Расшифровка.Установить("Отчет", "ОборотноСальдоваяВедомостьПоСчету"); Расшифровка.Установить("РазделительУчета", РазделительУчета); Расшифровка.Установить("Дата1", Дата1); Расшифровка.Установить("Дата2", Дата2); Расшифровка.Установить("Счет", Счет); Расшифровка.Установить("ДанныеПоСубсчетам", ДанныеПоСубсчетам); Для А=1 По 3 Цикл Расшифровка.Установить("ВидСубконто"+Номер[А], ВидСубконто[А]); Расшифровка.Установить("Субконто"+Номер[А], Субконто[А]); Расшифровка.Установить("ОтборСубконто"+Номер[А], ОтборСубконто[А]); Расшифровка.Установить("ПоГруппам"+Номер[А], ПоГруппам[А]); КонецЦикла; Т.ВывестиСекцию("Секция_12"); Т.ВывестиСекцию("Секция_1"); ФиксСтрок = 5; Если ПустоеЗначение(Заголовок1) = 0 Тогда Т.ВывестиСекцию("Секция_19"); ФиксСтрок = ФиксСтрок + 1; КонецЕсли; Т.ВывестиСекцию("Секция_20"); Расшифровка.УдалитьВсе(); Расшифровка.Установить("Отчет", "КарточкаСчета"); Расшифровка.Установить("РазделительУчета", РазделительУчета); Расшифровка.Установить("Дата1", Дата1); Расшифровка.Установить("Дата2", Дата2); Расшифровка.Установить("Счет", Счет); Для А=1 По 3 Цикл Если ОтборСубконто[А] <> 3 Тогда Расшифровка.Установить("ВидСубконто"+Номер[А], ВидСубконто[А]); Если ОтборСубконто[А] = 2 Тогда Расшифровка.Установить("ОтборСубконто"+Номер[А], ОтборСубконто[А]); Расшифровка.Установить("Субконто"+Номер[А], Субконто[А]); КонецЕсли; КонецЕсли; КонецЦикла; Если ДанныеПоСубсчетам = 1 Тогда Ит.ВыбратьСчета(); Ит.ПолучитьСчет(); Пока Ит.ПолучитьСчет() = 1 Цикл Если (ПустоеЗначение(Ит.СКК())=1) и (ПустоеЗначение(Ит.СКД())=1) Тогда Продолжить; КонецЕсли; Расшифровка.Установить("Счет", Ит.Счет); Т.ВывестиСекцию("Секция_14"); Если КолПоСчету = 1 Тогда Т.ВывестиСекцию("Секция_15"); КонецЕсли; Если ФлВал = 1 Тогда Ит.ВыбратьВалюты(); Пока Ит.ПолучитьВалюту()=1 Цикл Расшифровка.Установить("Валюта",Ит.Валюта); Расшифровка.Установить("ПоВалюте",1); Т.ВывестиСекцию("Секция_16"); КонецЦикла; Расшифровка.Установить("Валюта"); Расшифровка.Установить("ПоВалюте"); КонецЕсли; ПоСубконто(Ит, Т, ФлВал); Расшифровка.Установить("Отчет", "КарточкаСчета"); КонецЦикла; Иначе ПоСубконто(Ит, Т, ФлВал); КонецЕсли; Если КолПоСчету = 0 Тогда Если ОтборСубконто[1] <> 3 Тогда Т.ВывестиСекцию("Секция_8"); Иначе Т.ВывестиСекцию("Секция_17"); КонецЕсли; Иначе Если ОтборСубконто[1] <> 3 Тогда Т.ВывестиСекцию("Секция_13"); Иначе Т.ВывестиСекцию("Секция_18"); КонецЕсли; КонецЕсли; Ит = 0; ВерхнийКолонтитул = "Оборотно-сальдовая ведомость по счету "+Счет+" ("+ПериодСтр(Дата1, Дата2)+")"+?(ТипЗначения(РазделительУчета)=0, "", " "+РазделительУчета); НижнийКолонтитул = ""; Т.ТолькоПросмотр(1); Т.Опции(0, 0, ФиксСтрок, 1, "ОпцииПечатиОСВПоСчету", "ОСВПоСчету"); Т.ОбластьПечати(2); Т.ПовторятьПриПечатиСтроки(ФиксСтрок-1,ФиксСтрок); Т.ПараметрыСтраницы(1,,,,,,,,, 1); Т.Показать("Оборотно-сальдовая ведомость по счету "+Счет+?(ПустоеЗначение(Заголовок1)=1, "", ", по субконто "+Заголовок1)+" ("+ПериодСтр(Дата1, Дата2)+")"+?(ТипЗначения(РазделительУчета)=0, "", " "+РазделительУчета), ""); Если Закрыть = 1 Тогда СтрокаДействийФормы = "#Закрыть"; КонецЕсли; Если (ФлагЗакрытияФормы = 1) Или (Обновить = 2) Или (Закрыть = 1) Тогда СтрокаДействийФормы = "#Закрыть"; КонецЕсли; КонецПроцедуры есть решение для этой задачи? С Уважением Дамир |
|||
1
Злопчинский
04.08.16
✎
20:56
|
> есть решение для этой задачи?
есть. но хотелка буха - очень плохая. есть оборотные счета. да и для нееобортных счетов обороты тоже бывают важны. так что есть шанс очень большой - убрав строки - наступить на грабли. |
|||
2
breezee
04.08.16
✎
21:06
|
Код плохо читаем, как по мне
|
|||
3
vladko
05.08.16
✎
08:19
|
(0) зачем пустое значение??? Проверяй сразу на ноль
|
|||
4
Это_mike
05.08.16
✎
08:52
|
(3) это дамир.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |