|   |   | 
| 
 | Вывод иерархического справочника в отчет | ☑ | ||
|---|---|---|---|---|
| 0
    
        padaril 12.10.11✎ 22:54 | 
        Пытаюсь сделать примерно следующее:
  Процедура ДействияФормыВыполнить(Кнопка) ТабДок = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет"); ОблСтрока = Макет.ПолучитьОбласть("Строка"); Запрос = Новый Запрос("ВЫБРАТЬ | Номенклатура.Ссылка КАК Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура | |УПОРЯДОЧИТЬ ПО | Ссылка ИЕРАРХИЯ |АВТОУПОРЯДОЧИВАНИЕ"); Рез = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); НачатьАвтогруппировкуСтрок(); й=1; ВывестиСтроки(Рез, й); ЗакончитьАвтогруппировкуСтрок(); ТабДок.Показать(); КонецПроцедуры Процедура ВывестиСтроки(Стр, й) Для каждого Стр[й] из Стр.Строки Цикл ОблСтрока.Параметры.Заполнить(Стр[й]); ТабДок.Вывести(ОблСтрока,й); ВывестиСтроки(Стр[й], й+1); КонецЦикла; КонецПроцедуры Ругается в строке "Для каждого Стр[й] из Стр.Строки Цикл" : {Обработка.ПрайсЛист.Форма.Форма(27,17)}: Ожидается символ '=' Для каждого Стр<<?>>[й] из Стр.Строки Цикл (Проверка: Толстый клиент (обычное приложение)) | |||
| 1
    
        DrShad 12.10.11✎ 22:56 | 
        откуда такой стиль написания кода!?     | |||
| 2
    
        DrShad 12.10.11✎ 22:58 | 
        да и СКД давно уже в легкую выводит такие отчеты     | |||
| 3
    
        mikecool 12.10.11✎ 23:00 | 
        Стр[й] заменить на Стр везде
  и (2) +1 или построитель | |||
| 4
    
        sanja26 12.10.11✎ 23:01 | 
        [й] зачем?     | |||
| 5
    
        padaril 12.10.11✎ 23:02 | 
        "Стр[й] заменить на Стр везде"
  и что же это получится? | |||
| 6
    
        mikecool 12.10.11✎ 23:03 | 
        (5) получится хоть что то уподобоваримое     | |||
| 7
    
        mikecool 12.10.11✎ 23:03 | 
        +6 хорошо, замени на СтрИ     | |||
| 8
    
        mikecool 12.10.11✎ 23:04 | 
        +7 и почитай про описание Для Каждого     | |||
| 9
    
        padaril 12.10.11✎ 23:04 | 
        Для каждого Стр1 из РЗ.Строки Цикл
  Обл.Параметры.Заполнить(Стр1); ТабДок.Вывести(Обл,1); Для каждого Стр2 из Стр1.Строки Цикл Обл.Параметры.Заполнить(Стр2); ТабДок.Вывести(Обл,2); КонецЦикла; КонецЦикла; пытаюсь модернизировать | |||
| 10
    
        sanja26 12.10.11✎ 23:05 | 
        Вместо Стр.Строки -> Стр ?     | |||
| 11
    
        padaril 12.10.11✎ 23:13 | 
        Как сделать, если не знаю глубину иерархии?     | |||
| 12
    
        padaril 12.10.11✎ 23:15 | 
        что-то ничего не приходит в голову умного     | |||
| 13
    
        padaril 12.10.11✎ 23:25 | 
        Всем спасибо, помогло:
  Процедура ДействияФормыВыполнить(Кнопка) ТабДок = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет"); ОблСтрока = Макет.ПолучитьОбласть("Строка"); Запрос = Новый Запрос("ВЫБРАТЬ | Номенклатура.Ссылка КАК Ссылка, | Номенклатура.Код КАК Код |ИЗ | Справочник.Номенклатура КАК Номенклатура | |УПОРЯДОЧИТЬ ПО | Код ИЕРАРХИЯ |АВТОУПОРЯДОЧИВАНИЕ"); Рез = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); ТабДок.НачатьАвтогруппировкуСтрок(); й=1; ВывестиСтроки(Рез, й, ТабДок, Макет); ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.Показать(); КонецПроцедуры Процедура ВывестиСтроки(Стр, й, ТабДок, Макет) Для каждого Стр1 из Стр.Строки Цикл ОблСтрока = Макет.ПолучитьОбласть("Строка"); ОблСтрока.Параметры.Заполнить(Стр1); ТабДок.Вывести(ОблСтрока,й); ВывестиСтроки(Стр1, й+1, ТабДок, Макет); КонецЦикла; КонецПроцедуры | |||
| 14
    
        mikecool 12.10.11✎ 23:43 | 
        убери из ВывестиСтроки 
  ОблСтрока = Макет.ПолучитьОбласть("Строка"); передавай ее параметром, только перед установкой параметров их надо чистить (?) | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |