|   |   | 
| 
 | Вывод секции в печатной форме. | ☑ | ||
|---|---|---|---|---|
| 0
    
        Kurbash 14.06.13✎ 14:36 | 
        на форме документа есть ТЧ  с таблицой типа:
  ЦЕХ/Номенклатура/количество/неделя например ЦЕХ1/Номенклатур1а/2/2 ЦЕХ2/Номенклатура2/6/1 ЦЕХ3/Номенклатура3/8/4 Хочу чтобы в печатной форме отображался как бы сетевой график, например сверху номер недели, а по столбцам все остальное? 1/ 2/ 3/ 4/ ЦЕХ1/Номенклатур1а/ 2 ЦЕХ2/Номенклатура2/ 6 ЦЕХ3/Номенклатура3/ 8 никто не подскажет как делать? | |||
| 1
    
        Kurbash 14.06.13✎ 14:37 | 
        я так понимаю нужно играться  с присоединить секцию..а вот как не догоню никак     | |||
| 2
    
        mikecool 14.06.13✎ 14:38 | 
        вывести векцию - выводишь начало
  присоединить - цепляейшь к ней справа | |||
| 3
    
        Kurbash 14.06.13✎ 14:41 | 
        это перед выводом горизонтальной секции ? или после нее?     | |||
| 4
    
        Kurbash 14.06.13✎ 14:43 | 
        ТабДок = Новый ТабличныйДокумент;
  Макет = Документы.ЗапускВПланирование.ПолучитьМакет("Печать"); ОбластьГрафик = Макет.ПолучитьОбласть("График"); ОбластьНеделя=Макет.ПолучитьОбласть("Неделя"); Для Каждого стр Из СоставИзделияПодетально Цикл ОбластьГрафик.Параметры.Заполнить(стр); ТабДок.Вывести(ОбластьГрафик);ТабДок.Вывести(ОбластьНеделя); КонецЦикла; так? | |||
| 5
    
        kosts 14.06.13✎ 14:44 | 
        Для каждой строки один раз делаешь Вывести потом много раз присоединить     | |||
| 6
    
        kosts 14.06.13✎ 14:44 | 
        В т.ч. для шапки таблицы     | |||
| 7
    
        kosts 14.06.13✎ 14:48 | 
        На вскидку не скажу, но специально сформированным запросом и выборкой можно получить такой результат, что у тебя получиться кросс-таблица без всяких заморочек...     | |||
| 8
    
        Kurbash 14.06.13✎ 14:51 | 
        (5)-на моем коде можешь показать?     | |||
| 9
    
        Kurbash 14.06.13✎ 14:51 | 
        никак в голове не сращу     | |||
| 10
    
        aleksonic 14.06.13✎ 14:54 | 
        Цикл по строкам Вывести и внутри цикл по колонкам Присоединить.     | |||
| 11
    
        kosts 14.06.13✎ 14:55 | ||||
| 12
    
        Kurbash 14.06.13✎ 14:55 | 
        ТабДок = Новый ТабличныйДокумент;
  Макет = Документы.ЗапускВПланирование.ПолучитьМакет("Печать"); ОбластьГрафик = Макет.ПолучитьОбласть("График"); ОбластьНеделя=Макет.ПолучитьОбласть("Неделя"); Для Каждого стр Из СоставИзделияПодетально Цикл ОбластьГрафик.Параметры.Заполнить(стр); ТабДок.Присоединить(ОбластьНеделя); ТабДок.Вывести(ОбластьГрафик); КонецЦикла; не канает..что не атк делаю? | |||
| 13
    
        НаборДанных 14.06.13✎ 14:57 | 
        (12)Читай (5) до просветления.     | |||
| 14
    
        Kurbash 14.06.13✎ 14:58 | 
        хм.....     | |||
| 15
    
        aleksonic 14.06.13✎ 14:58 | 
        (11) подробный пример     | |||
| 16
    
        НаборДанных 14.06.13✎ 14:59 | 
        Вывести(ЦЕХ1)/Присоединить(Номенклатур1а)/Присоединить() Присоединить(2) Присоединить() Присоединить()
  Так понятней? | |||
| 17
    
        Kurbash 14.06.13✎ 15:01 | 
        я пока только до этого додумался
  ТабДок = Новый ТабличныйДокумент; Макет = Документы.ЗапускВПланирование.ПолучитьМакет("Печать"); ОбластьГрафик = Макет.ПолучитьОбласть("График"); ОбластьНеделя=Макет.ПолучитьОбласть("Неделя"); Для Каждого стр Из СоставИзделияПодетально Цикл ОбластьГрафик.Параметры.Заполнить(стр); для каждого стр1 из СоставИзделияПодетально цикл ТабДок.Вывести(ОбластьНеделя); ТабДок.Присоединить(ОбластьНеделя); конеццикла; ТабДок.Вывести(ОбластьГрафик); КонецЦикла; | |||
| 18
    
        НаборДанных 14.06.13✎ 15:02 | 
        (17)У тебя сверху и слева имена секций должны быть еще, так более понятно?     | |||
| 19
    
        kosts 14.06.13✎ 15:03 | 
        Пустые ячейки тоже нужно выводить (сказал так, на всякий случай)...     | |||
| 20
    
        Kurbash 14.06.13✎ 15:03 | 
        так у меня сверху секция Неделя, по горизонтали-График     | |||
| 21
    
        aleksonic 14.06.13✎ 15:03 | 
        ТабДок = Новый ТабличныйДокумент;
  Макет = Документы.ЗапускВПланирование.ПолучитьМакет("Печать"); ОбластьГрафик = Макет.ПолучитьОбласть("График"); ОбластьНеделя=Макет.ПолучитьОбласть("Неделя"); Для Каждого стр Из СоставИзделияПодетально Цикл ОбластьГрафик.Параметры.Заполнить(стр); ТабДок.Вывести(ОбластьГрафик); для каждого стр1 из СоставИзделияПодетально цикл ТабДок.Присоединить(ОбластьНеделя); конеццикла; КонецЦикла; Примерно так | |||
| 22
    
        НаборДанных 14.06.13✎ 15:04 | 
        ОбластьНеделя=Макет.ПолучитьОбласть("Неделя|День1"); Чет типа того. В(11) Есть код, очень замечательный ОбластьШапкаНоменклатура = Макет. ПолучитьОбласть("Шапка|Номенклатура");     | |||
| 23
    
        НаборДанных 14.06.13✎ 15:07 | 
        И там же есть код 
  //3. Левая верхняя ячейка отчёта. Печать начинается отсюда ТабДок.Вывести(ОбластьШапкаНоменклатура); Пока ВыборкаКонтрагент.Следующий() Цикл ОбластьШапкаКонтрагент.Параметры.Заполнить(ВыборкаКонтрагент); //4. Ячейку с наименованием контрагента печатаем не снизу, а справа от предыдущей ТабДок.Присоединить(ОбластьШапкаКонтрагент); КонецЦикла; В общем, реализуй отчет из (11) придет просветление. | |||
| 24
    
        Kurbash 14.06.13✎ 15:08 | 
        парни гляньте конфу если не сложно?
  http://zalil.ru/34580058 | |||
| 25
    
        Kurbash 14.06.13✎ 15:08 | 
        мысли в кучу уже     | |||
| 26
    
        НаборДанных 14.06.13✎ 15:09 | 
        (20)Сверху у тебя должны быть секции день1, день2, день3, если я верно понимаю (0)     | |||
| 27
    
        Kurbash 14.06.13✎ 15:09 | 
        нет, сверху должны стоять порядки недель     | |||
| 28
    
        Kurbash 14.06.13✎ 15:10 | 
        или как то их по индексу выводить...     | |||
| 29
    
        kosts 14.06.13✎ 15:10 | 
        Вот такие секции должны быть (примерно)
  http://s47.radikal.ru/i117/1306/3b/070a8eabc823.jpg | |||
| 30
    
        Kurbash 14.06.13✎ 15:13 | 
        у меня получается что недели идут не по порядку, и выводить надо и пустые тоже     | |||
| 31
    
        kosts 14.06.13✎ 15:13 | 
        Что бы было проще настроиться на нужную волну. Создай на форме обычную таблицу значений с нужным количеством колонок и заполни её. Как получиться, переходи к макету...     | |||
| 32
    
        НаборДанных 14.06.13✎ 15:13 | ||||
| 33
    
        НаборДанных 14.06.13✎ 15:13 | 
        Выводишь номер строки например, потом присоединяешь областьданных, неделю1, неделю2, неделюN     | |||
| 34
    
        kosts 14.06.13✎ 15:15 | 
        Кстати, если у тебя фиксированное количество колонок (4 шт), то не нужно тогда таких заморочек с колонками...     | |||
| 35
    
        НаборДанных 14.06.13✎ 15:16 | 
        (34)Кстати да, если их 4е всего, то можно тупо строку заполнять и все и выводить без присоединения.     | |||
| 36
    
        Kurbash 14.06.13✎ 15:17 | 
        (34)-это как? заполнять строку у меня рядом одна колонка и получится, а мне надо как в (0)     | |||
| 37
    
        Kurbash 14.06.13✎ 15:20 | 
        парни не бросайте плиз горит курсач     | |||
| 38
    
        kosts 14.06.13✎ 15:21 | 
        (36) если как в (34), то в макете сразу делаешь сколько нужно колонок, параметры будут:
  Номенклатура ЗначениеКолонки_1 ЗначениеКолонки_2 ЗначениеКолонки_3 ЗначениеКолонки_4 | |||
| 39
    
        kosts 14.06.13✎ 15:22 | 
        (38)+ Перед выводом
  
  | |||
| 40
    
        Kurbash 14.06.13✎ 15:23 | 
        вот..а в году получается 57 недель, это макет какой получится?     | |||
| 41
    
        Kurbash 14.06.13✎ 15:31 | 
        ау     | |||
| 42
    
        kosts 14.06.13✎ 16:13 | 
        Ну тогда только секции присоединять     | |||
| 43
    
        Kurbash 15.06.13✎ 08:30 | 
        блин вот я баран)))))
  номернедели=""; н=0;//начала отсчета для количества присоединяемых пустых нулей ТабДок = Новый ТабличныйДокумент; Макет = Документы.ЗапускВПланирование.ПолучитьМакет("Печать"); ОбластьГрафик = Макет.ПолучитьОбласть("График|Номен"); //ОбластьНеделя=Макет.ПолучитьОбласть("График|Неделя"); Для Каждого стр Из СоставИзделияПодетально Цикл ОбластьГрафик.Параметры.Заполнить(стр); ТабДок.Вывести(ОбластьГрафик); //начали играться с секцией неделя для сч=н по стр.Неделя цикл нед=стр.Неделя; номернедели="График|Неделя"+нед; ОбластьНеделя=Макет.ПолучитьОбласть(номернедели); ОбластьНеделя.Параметры.Заполнить(стр); ТабДок.Присоединить(ОбластьНеделя); н=н+1; конеццикла; КонецЦикла вотткак сделал))) | |||
| 44
    
        Kurbash 15.06.13✎ 08:52 | 
        а, нет...вот так:
  номернедели=""; //н=0;//начала отсчета для количества присоединяемых пустых нулей ТабДок = Новый ТабличныйДокумент; Макет = Документы.ЗапускВПланирование.ПолучитьМакет("Печать"); ОбластьГрафик = Макет.ПолучитьОбласть("График|Номен"); //ОбластьНеделя=Макет.ПолучитьОбласть("График|Неделя"); Для Каждого стр Из СоставИзделияПодетально Цикл ОбластьГрафик.Параметры.Заполнить(стр); ТабДок.Вывести(ОбластьГрафик); //начали играться с секцией неделя для сч=1 по стр.Неделя цикл нед=стр.Неделя; номернедели="График|Неделя"+нед; ОбластьНеделя=Макет.ПолучитьОбласть(номернедели); ОбластьНеделя.Параметры.Заполнить(стр); если сч<>стр.Неделя тогда ОбластьНеделя.Параметры.Количество=""; конецесли; ТабДок.Присоединить(ОбластьНеделя); //н=н+1; конеццикла; КонецЦикла; | |||
| 45
    
        hhhh 15.06.13✎ 08:57 | 
        можно
  номернедели="График|Неделя"; то есть в макете делать не 52 колонки, а одну колонку. Она ведб подходит для всех недель. | |||
| 46
    
        Kurbash 15.06.13✎ 08:58 | 
        это как?     | |||
| 47
    
        Kurbash 15.06.13✎ 08:58 | 
        колонки же по имени идут     | |||
| 48
    
        hhhh 15.06.13✎ 09:00 | 
        (47) ну, в макете будет одна колонка для этого. Называется "Неделя".В цикле присоединяется к табличному документу 52 раза.     | |||
| 49
    
        Kurbash 15.06.13✎ 09:05 | 
        а, ну да, не сразу догнал о чем ты)))у меня так и сделано))утро, не сразу въехал))     | |||
| 50
    
        Wobland 15.06.13✎ 09:12 | 
        (49) номернедели="График|Неделя"+нед;
  ОбластьНеделя=Макет.ПолучитьОбласть(номернедели); не заметно | |||
| 51
    
        Kurbash 15.06.13✎ 09:17 | 
        старый код
  вт какой сейчас номернедели=""; //н=0;//начала отсчета для количества присоединяемых пустых нулей ТабДок = Новый ТабличныйДокумент; Макет = Документы.ЗапускВПланирование.ПолучитьМакет("Печать"); ОбластьГрафик = Макет.ПолучитьОбласть("График|Номен"); //ОбластьНеделя=Макет.ПолучитьОбласть("График|Неделя"); Для Каждого стр Из СоставИзделияПодетально Цикл ОбластьГрафик.Параметры.Заполнить(стр); ТабДок.Вывести(ОбластьГрафик); //начали играться с секцией неделя для сч=1 по стр.Неделя цикл ОбластьНеделя=Макет.ПолучитьОбласть("График|Неделя"); ОбластьНеделя.Параметры.Заполнить(стр); если сч<>стр.Неделя тогда //забиваем пустыми значениями ненужные клетки в кроссе ОбластьНеделя.Параметры.Количество=""; конецесли; ТабДок.Присоединить(ОбластьНеделя); //н=н+1; конеццикла; КонецЦикла; | |||
| 52
    
        Wobland 15.06.13✎ 09:20 | 
        ПолучитьОбласть из цикла вынь     | |||
| 53
    
        Kurbash 15.06.13✎ 09:28 | 
        зачем? и так нормально     | |||
| 54
    
        Wobland 15.06.13✎ 09:29 | 
        (53) тогда ещё .ПолучитьМакет("Печать"); туда засунь     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |