|   |   | 
| 
 | v7: Пустые строки в отчете | ☑ | ||
|---|---|---|---|---|
| 0
    
        Gangar 01.10.12✎ 18:33 | 
        Подскажите, телепаты, почему в печатной форме выводит пустые строки?
  ТЗ = 0; ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("ТоварСВ"); ТЗ.НоваяКолонка("КолвоСВ"); ТЗ.НоваяКолонка("ТоварПН"); ТЗ.НоваяКолонка("КолвоПН"); Заявка.ВыбратьСтроки(); Пока Заявка.ПолучитьСтроку() = 1 Цикл ТЗ.ТоварСВ = Заявка.Товар; ТЗ.КолвоСВ = Заявка.Количество; Если ПрихДок.Выбран() = 1 Тогда ПрихДок.ВыбратьСтроки(); Пока ПрихДок.ПолучитьСтроку() = 1 Цикл Если Заявка.Товар = ПрихДок.Товар Тогда ТЗ.ТоварПН = ПрихДок.Товар; ТЗ.КолвоПН = ПрихДок.Количество; КонецЕсли; КонецЦикла; КонецЕсли; ТЗ.Свернуть("ТоварСВ,ТоварПН","КолвоСВ,КолвоПН"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл ТоварСВ = ТЗ.ТоварСВ.ТекущаяСтрока(); КолвоСВ = ТЗ.КолвоСВ.ТекущаяСтрока(); ТоварПН = ТЗ.ТоварПН.ТекущаяСтрока(); КолвоПН = ТЗ.КолвоПН.ТекущаяСтрока(); КонецЦикла; Таб.ВывестиСекцию("Товар"); КонецЦикла; | |||
| 1
    
        Wobland 01.10.12✎ 18:34 | 
        Таб.ВывестиСекцию("Товар"); где-то не там     | |||
| 2
    
        Oleg_Kag 01.10.12✎ 18:35 | 
        Таб.ВывестиСекцию("Товар");
  Внести во второй цикл перед КОнецЦикла | |||
| 3
    
        zladenuw 01.10.12✎ 18:35 | 
        (1) мда тяжелый понедельник     | |||
| 4
    
        Wobland 01.10.12✎ 18:36 | 
        (3) да уж, непростой ;)     | |||
| 5
    
        del123 01.10.12✎ 18:39 | 
        А зачем везде ТекущаяСтрока()?     | |||
| 6
    
        Gangar 01.10.12✎ 18:41 | 
        количество строк выводит как надо, но в строках тишина...     | |||
| 7
    
        Gangar 01.10.12✎ 18:42 | 
        (5)
  Хоть с ней хоть без - эффект один. | |||
| 8
    
        zladenuw 01.10.12✎ 18:43 | 
        (6) ты вообще читаешь что тебе пишут или нет ? 
  (2) уже дали ответ. что за люди. им советуешь. | |||
| 9
    
        Gangar 01.10.12✎ 18:48 | 
        (8)
  Тогда вообще ничего не выводит. Но спасибо, конечно. | |||
| 10
    
        del123 01.10.12✎ 18:48 | 
        а где в ТЗ добавляешь строку??     | |||
| 11
    
        del123 01.10.12✎ 18:49 | 
        +(10) по идее это надо за цикл перебора строк документа вынести
  ТЗ.Свернуть("ТоварСВ,ТоварПН","КолвоСВ,КолвоПН"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл ТоварСВ = ТЗ.ТоварСВ.ТекущаяСтрока(); КолвоСВ = ТЗ.КолвоСВ.ТекущаяСтрока(); ТоварПН = ТЗ.ТоварПН.ТекущаяСтрока(); КолвоПН = ТЗ.КолвоПН.ТекущаяСтрока(); Таб.ВывестиСекцию("Товар"); КонецЦикла; | |||
| 12
    
        Gangar 01.10.12✎ 18:51 | 
        (10)
  Бинго! Понедельник, такой понедельник... | |||
| 13
    
        Oleg_Kag 01.10.12✎ 18:56 | 
        Пока Заявка.ПолучитьСтроку() = 1 Цикл            
  Если ПрихДок.Выбран() = 1 Тогда ПрихДок.ВыбратьСтроки(); Пока ПрихДок.ПолучитьСтроку() = 1 Цикл Если Заявка.Товар = ПрихДок.Товар Тогда ТЗ.НоваяСтрока() ТЗ.ТоварСВ = Заявка.Товар; ТЗ.КолвоСВ = Заявка.Количество; ТЗ.ТоварПН = ПрихДок.Товар; ТЗ.КолвоПН = ПрихДок.Количество; КонецЕсли; КонецЦикла; КонецЕсли; ТЗ.Свернуть("ТоварСВ,ТоварПН","КолвоСВ,КолвоПН"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл ТоварСВ = ТЗ.ТоварСВ; КолвоСВ = ТЗ.КолвоСВ; ТоварПН = ТЗ.ТоварПН; КолвоПН = ТЗ.КолвоПН; Таб.ВывестиСекцию("Товар"); КонецЦикла; КонецЦикла; | |||
| 14
    
        Oleg_Kag 01.10.12✎ 18:59 | 
        Руки мне оторвать :(
  Пока Заявка.ПолучитьСтроку() = 1 Цикл Если ПрихДок.Выбран() = 1 Тогда ПрихДок.ВыбратьСтроки(); Пока ПрихДок.ПолучитьСтроку() = 1 Цикл Если Заявка.Товар = ПрихДок.Товар Тогда ТЗ.НоваяСтрока() ТЗ.ТоварСВ = Заявка.Товар; ТЗ.КолвоСВ = Заявка.Количество; ТЗ.ТоварПН = ПрихДок.Товар; ТЗ.КолвоПН = ПрихДок.Количество; КонецЕсли; КонецЦикла; ТЗ.Свернуть("ТоварСВ,ТоварПН","КолвоСВ,КолвоПН"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл ТоварСВ = ТЗ.ТоварСВ; КолвоСВ = ТЗ.КолвоСВ; ТоварПН = ТЗ.ТоварПН; КолвоПН = ТЗ.КолвоПН; Таб.ВывестиСекцию("Товар"); КонецЦикла; Иначе Сообщить("Не выбран документ поступления..."); КонецЕсли; КонецЦикла; | |||
| 15
    
        Oleg_Kag 01.10.12✎ 19:04 | 
        Всё...почитал код - понял задачу...
  13 и 14 будет, работать, но НЕ оптимально | |||
| 16
    
        Gangar 01.10.12✎ 19:07 | 
        (15)
  Копать в сторону прямых запросов? | |||
| 17
    
        Gangar 01.10.12✎ 19:12 | 
        (15)
  Странно как то работает. Если в доке строк больше одной выводит полную херню. | |||
| 18
    
        Gangar 02.10.12✎ 01:07 | 
        Чую, что ошибка раньше где-то. В ДНК, скорее всего...
  Заявка = СоздатьОбъект("Документ.СчетВходящий"); Заявка.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода); Пока Заявка.ПолучитьДокумент() = 1 Цикл ЗаявкаПеч = Заявка.ТекущийДокумент(); //Получаем Приходную Накладную ПрихДок = СоздатьОбъект("Документ"); ПрихДок.ВыбратьПодчиненныеДокументы(,,ЗаявкаПеч); Пока ПрихДок.ПолучитьДокумент() = 1 Цикл Если ПрихДок.Выбран() = 1 Тогда Если ПрихДок.Вид()="ПриходнаяНакладная" Тогда ПрихДокПеч = ПрихДок.ТекущийДокумент(); КонецЕсли; КонецЕсли; КонецЦикла; Таб.ВывестиСекцию("Документ"); ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("ТоварСВ"); ТЗ.НоваяКолонка("КолвоСВ"); ТЗ.НоваяКолонка("ТоварПН"); ТЗ.НоваяКолонка("КолвоПН"); Пока ЗаявкаПеч.ПолучитьСтроку() = 1 Цикл Если ПрихДокПеч.Выбран() = 1 Тогда ПрихДокПеч.ВыбратьСтроки(); Пока ПрихДокПеч.ПолучитьСтроку() = 1 Цикл Если ЗаявкаП.Товар = ПрихДокПеч.Товар Тогда ТЗ.НоваяСтрока(); ТЗ.ТоварСВ = ЗаявкаПеч.Товар; ТЗ.КолвоСВ = ЗаявкаПеч.Количество; ТЗ.ТоварПН = ПрихДокПеч.Товар; ТЗ.КолвоПН = ПрихДокПеч.Количество; КонецЕсли; КонецЦикла; ТЗ.Свернуть("ТоварСВ,ТоварПН","КолвоСВ,КолвоПН"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку() = 1 Цикл ТоварСВ = ТЗ.ТоварСВ; КолвоСВ = ТЗ.КолвоСВ; ТоварПН = ТЗ.ТоварПН; КолвоПН = ТЗ.КолвоПН; Таб.ВывестиСекцию("Товар"); КонецЦикла; Иначе Сообщить("Нету подчиненных документов..."); КонецЕсли; КонецЦикла; КонецЦикла; В таблице не правильно отображает данные если подчиненного документа нету или строк в документах больше одной. | |||
| 19
    
        GreyAngel 02.10.12✎ 09:23 | 
        1. Перебираются все документы, включая помеченные на удаление.
  2. ПрихДокПеч нигде не очищается. Если подчиненного документа не найдено, то в переменной останется ссылка на предыдущий документ. 3. Зачем нужны два поля (ТоварСВ и ТоварПН) если в них помещаются исключительно одинаковые значения? 4. ТЗ нигде не очищается и при этом ПОЛНОСТЬЮ выводится после считывания КАЖДОЙ строки заявки. Таки да, скорее всего в ДНК :) | |||
| 20
    
        Gangar 02.10.12✎ 12:13 | 
        (19)
  Спасибо, все заработало. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |