|
v7: неправильный вывод иерархии элементов (ВыполнитьЗапрос()) | ☑ | ||
---|---|---|---|---|
0
furia
20.02.14
✎
15:52
|
Привет. почему один элемент справочника выходит не в той группе. т.е. есть группа, ее уровень 3, в ней есть элементы, так же в этой группе есть еще одна группа, которая содержит тоже элементы (т.е. в ней уже элементы уровнем 4). так вот один из элементов у которого уровень 3, выходит после группы с элементами у которых уровень 4...
ставлю к наименованию, Ит.Субконтов(2).Родитель+ " "+Ит.Субконто(2).Уровень(). показывает все правильно т.е. "Родитель" группа правильная, и уровень 3, но порядок не тот... -Группа1 -Эл1 -Эл2 -Эл3 -Группа2 -Эл1 -Эл2 -Эл4 вот такая примерно схема. в запросе все нормально. не пойму в чем проблема... [spoiler] Если Склад.Выбран()=1 Тогда Ит.ИспользоватьСубконто(ВидыСубконто.Склады,Склад,2,1); Иначе Ит.ИспользоватьСубконто(ВидыСубконто.Склады,,1); КонецЕсли; Если Товар.Выбран()=1 Тогда Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура,Товар,1,1); Иначе Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура,,1,1); КонецЕсли; Если Склад.Парт = Перечисление.ДаНет.Да Тогда Ит.ИспользоватьСубконто(ВидыСубконто.Партии,,1); КонецЕсли; Если Заб = 1 Тогда Если Вид = 1 Тогда Ит.ВыполнитьЗапрос(Дата1,Дата2,СчетПоКоду("Скл")); Иначе Ит.ВыполнитьЗапрос(,Дата2,СчетПоКоду("Скл")); КонецЕсли; ИначеЕсли Склад.Магазин = 1 Тогда Если Вид = 1 Тогда Ит.ВыполнитьЗапрос(Дата1,Дата2,Склад.Счет); Иначе Ит.ВыполнитьЗапрос(,Дата2,Склад.Счет); КонецЕсли; Иначе Если Вид = 1 Тогда Ит.ВыполнитьЗапрос(Дата1,Дата2); Иначе Ит.ВыполнитьЗапрос(,Дата2); КонецЕсли; КонецЕсли; // перебираем субконто Ит.ВыбратьСубконто(1); Пока Ит.ПолучитьСубконто(1)=1 Цикл Расшифровка.Установить("Субконто",Ит.Субконто(1)); Т.ВывестиСекцию("Секция_9"); // считаем итоги СНД = СНД + Ит.СНД()-Ит.СНК(); СКД = СКД + Ит.СКД()-Ит.СКК(); ДО = ДО + Ит.ДО(); КО = КО + Ит.КО(); Ит.ВыбратьСубконто(2); Пока Ит.ПолучитьСубконто(2)=1 Цикл Если Ит.Субконто(2).ЭтоГруппа()=0 Тогда СНДКол = СНДКол + Ит.СНД(3)-Ит.СНК(3); СКДКол = СКДКол + Ит.СКД(3)-Ит.СКК(3); ДОКол = ДОКол + Ит.ДО(3); КОКол = КОКол + Ит.КО(3); КонецЕсли; Субконто=Строка(Ит.Субконто(2)); Расшифровка.Установить("Субконто1",Ит.Субконто(2)); // выводим в случае если есть нач. остаток или был приход или расход Если ((Ит.СНД(3)-Ит.СНК(3))<>0) или (Ит.ДО(3)+Ит.КО(3)<>0) или ((Ит.СНД()-Ит.СНК())<>0) или (Ит.ДО()+Ит.КО()<>0) Тогда Если Ит.Субконто(2).ЭтоГруппа()=1 Тогда Отступ = Ит.Субконто(2).Уровень(); Текст = ""; Для i=1 По Отступ Цикл Текст = Текст + " "; КонецЦикла; Текст = Текст + СокрЛП(Ит.ПредставлениеСубконто(2)); Т.ВывестиСекцию("Группа"); Продолжить; КонецЕсли; КонецЕсли; Ном = Ном +1; Состояние("Обработано "+Ном + " записей справочника Номенклатура"); // непартийный учет Если Ит.Субконто(1).Парт = Перечисление.ДаНет.Нет Тогда Если ((Ит.СНД(3)-Ит.СНК(3))<>0) или (Ит.ДО(3)<>0) или (Ит.КО(3)<>0) или ((Ит.СКД()-Ит.СКК())<>0) или (Ит.ДО()<>0) или (Ит.КО()<>0) Тогда // все что было и приходило в итоге ушло Если (Ит.СКД(3)-Ит.СКК(3)) = 0 Тогда Если (Ит.СНД(3)-Ит.СКК(3)<>0) Или (Ит.ДО(3)<>0) Тогда Если (Ит.СНД(3)-Ит.СКК(3)<>0) и (Ит.ДО(3) = 0) Тогда Цена = (Ит.СНД()-Ит.СНК())/(Ит.СНД(3)-Ит.СНК(3)); ИначеЕсли (Ит.СНД(3)-Ит.СКК(3) = 0) и (Ит.ДО(3) <> 0) Тогда Цена = Ит.ДО()/Ит.ДО(3); КонецЕсли; КонецЕсли; // что-то осталось ИначеЕсли (Ит.СКД(3)-Ит.СКК(3))<>0 Тогда Цена = (Ит.СКД()-Ит.СКК())/(Ит.СКД(3)-Ит.СКК(3)); КонецЕсли; ЕдИзм = Ит.Субконто(2).ЕдИзм; Отступ = Ит.Субконто(2).Уровень(); Текст = ""; Для i=1 По Отступ Цикл Текст = Текст + " "; КонецЦикла; Текст = Текст + СокрЛП(Ит.ПредставлениеСубконто(2)); // + " "+Ит.Субконто(2).Родитель+" "+Ит.Субконто(2).Уровень() Т.ВывестиСекцию("Секция_8"); Если Режим = "Подробно" Тогда Подробно(Ит.Субконто(2),""); КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; [/spoiler] |
|||
1
KishMish
20.02.14
✎
16:07
|
Потому-что, вывод так и работает
Уровень 3, вывод группы и все что в нее входит, и потом продолжается вывод элементов 3 уровня а ты как предлагаешь сделать? |
|||
2
furia
20.02.14
✎
16:11
|
обычно выводятся все элементы, после уже группы. или нет ?
|
|||
3
KishMish
20.02.14
✎
16:22
|
ну да,
в таком порядке группа уровень 3 Элементы из группы 3 (уровень 4) Элементы уровня 3(продолжение) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |