Вывести в макет две ТЗ параллельно #448284


#0 by Asdef
Есть две ТЗ, я вывожу их в макет. Код: Начисл = Макет.ПолучитьОбласть("Начисл");    для каждого ы из Листок цикл Две ТЗ нужно вывести в макет параллельно, т.е. вторая ТЗ долна выводиться справа первой ТЗ, на одном уровне с ней. Примерно так: ААА        ВВВ Где ААА – первая ТЗ, ВВВ – вторая ТЗ Однако следующий код, выводит вторую ТЗ ниже первой: ААА ААА        ВВВ        ВВВ Подскажите что поправить?
#1 by reg-aleks
Код:
#2 by Asdef
а зачем цикл по второй ТЗ помещать в цикл обхода первой ТЗ ? данные то многократно получается выводятся...
#3 by Rie
Там нет цикла по второй ТЗ. Там опечатка - вместо Удер.Получить(Индекс) должно быть c = Удерж.Получить(Индекс).
#4 by Asdef
а можно поподробнее какой индекс ?
#5 by Rie
А какие данные должны соответствовать? Если просто выводить подряд - то перед циклом
#6 by Asdef
переписал так: при работе выдает ошибку: Индекс находится за границами массива что не так?
#7 by Asdef
опа, работает, вывел Индекс = Индекс+1; за пределы цикла однако возникла другая проблема, строки второй ТЗ в макете повторяются столько же раз, столько строк в первой ТЗ...
#8 by Asdef
т.е. первая строка второй ТЗ многократно повторяется, по числу строк в первой ТЗ, при этом остальные строки второй ТЗ не выводятся
#9 by Asdef
примерно так: ААА1   ВВВ1
#10 by Asdef
ап
#11 by Rie
Не поверишь, но проблема в возникла из-за того, что ты, как написал в вынес Индекс=Индекс+1 за пределы цикла. Верни его внутрь цикла - и будет счастье. Но! Таблицы у тебя - с разным количеством строк? Вот и вставь проверку, что Индекс<Удерж.Количество, и выводи только существующие строки.
#12 by Asdef
Переписал еще раз вот так: Индекс = 0;    для каждого ы из Листок цикл        если ы.КодНач > 100 тогда Все работает, правда возникла след прошлема, когда в первой ТЗ строки развигаются, и напротив пустого места выводится вторая ТЗ, пример: ААА1        ВВВ1        ВВВ2 ААА2 ААА3
#13 by Rie
Вот этот код что сделает:
#14 by Asdef
этот код сделал так: ААА1      ВВВ1 ААА2      ВВВ2 ААА3
#15 by Zlodey1С
Второй раз не получай область Перепиши все тиак же но без  Удер = Макет.ПолучитьОбласть("Начисл");
#16 by Zlodey1С
Покажи код с первым ПолучитьОбласть
#17 by Rie
Что есть область "Начисл"? Прямоугольник - или же строка целиком? Сдаётся мне, что последнее.
#18 by lxndr
а может таблицы значений проще соединить предварительно и выводить далее в одну область?
#20 by Asdef
а что будет тогда: с = Удерж[Индекс]; мы ж область не получили...
#21 by Rie
А какое отношение имеет растение семейства адоксовые на приусадебном участке к брату матери, проживающему в столице Украины?
#22 by Rie
+ Форму области посмотри. Если строка целиком - то она строкой целиком и выведется в первом же Вывести. И Присоединить будет присоединять к следующей строке.
#23 by Asdef
в общем переписал: все выводится, однако вторая ТЗ опять двоится: ААА1   ААА2   ВВВ1 ААА3   ВВВ1 ААА4   ВВВ2
#24 by Asdef
форма области обычная
#25 by Asdef
генетическое
#26 by Rie
Было Присоединить, стало Вывести... Что есть "обычное"? Сделай прямоугольную область, а не всю строку. Например, выдели в макете это самое как прямоугольник и дай ему имя.
#28 by Asdef
а про прямоугольную область можно поподробнее ?
#29 by Rie
См. . Выдели в макете тот прямоугольник ячеек, которые составляют нужную область - и дай ему имя Начисл (там, где Имя в свойствах ячеек).
#30 by Rie
+ Не строки, а именно прямоугольник. Чтобы справа ячейки оставались невыделенными.
#31 by MoneG
© "Профессиональная разработка в системе 1С:Предприятие 8". Стр 465 - 484 (хотя бы) . Неужели сложно 20 стр пролистить и найти нужных 2 строчки?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С