8.х Как вывести сразу несколько несвязанных областей ТабДока

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Shavminator, 12 дек 2010.

  1. TopicStarter Overlay
    Shavminator
    Offline

    Shavminator

    Регистрация:
    26 дек 2007
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Всем привет

    Есть макет документа, в нем 5 областей, нужно заполнить их из нескольких табличных частей находящиеся в этом же документе. Заполнить и вывести поочередно неполучается, проблема в том, что у этих областей количество строк разные, и по этому после вывода первой области вторую и третую область присоединяются не правильно.
    по 1С 8.1 я новичок и опыта пока маловато чтоб решить таую проблему.

    Как правильно заполнить области и вывести подобную печатную форму?

    Для наглядности прикрепил сам файл в экселе.
    Области которые нужно вывести отмечены желтым цветом.

    Заранее благодарю

    Вложения:

  2. UnNone
    Offline

    UnNone Опытный в 1С

    Регистрация:
    21 мар 2007
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    Можно придумать следующий вариант решения(опишу в кратце): обработку всех 5 таблиц вы делите на два этапа:
    сначала обрабатываете одновременно первые 3, запускаете цикл по максимальному количеству строк из этих трех таблиц. В цикле контролируете момент окончания строк в меньших таблицах и в них будете выводить пустые строки, чтобы не нарушалась красота таблицы. Также поступаете и с оставшимися двумя.
    Если не сильно понятно о чем говорю или не будет получатся реализовать, могу постаратся написать примерный код и вид макета, как должно это все выглядеть.
  3. TopicStarter Overlay
    Shavminator
    Offline

    Shavminator

    Регистрация:
    26 дек 2007
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Прошу прошения за отсутствия.

    Максимальное количество строк по трем таблицам взял. И вот тут как я понял надо сделать цикл сразу по трем таблицам. А как это реализовать не знаю. Подскажите пожалуйста.
  4. UnNone
    Offline

    UnNone Опытный в 1С

    Регистрация:
    21 мар 2007
    Сообщения:
    148
    Симпатии:
    0
    Баллы:
    26
    Что-то типа такого:
    Код:
    КолвострокТаб1 = таб1.количество();
    КолвострокТаб2 = таб3.количество();
    КолвострокТаб3 = таб3.количество();
    МаксКолвоСтрок = ПолучитьМаксимум(КолвострокТаб1, КолвострокТаб2, КолвострокТаб3);
    Пока перцикла = 0 по МаксКолвоСтрок-1 цикл
    Если перцикла<=КолвострокТаб1 тогда
    ВыводстрокиПервойТаблицы(таб1[ПерЦикла]);
    Иначе
    ВыводстрокиПервойТаблицы(неопределено);//для вывода пустой строки, чтобы не нарушать красоту
    КонецЕсли;
    Если перцикла<=КолвострокТаб2 тогда
    ВыводстрокиВтороТаблицы(таб2[ПерЦикла]);
    Иначе
    ВыводстрокиВтороТаблицы(неопределено);//для вывода пустой строки, чтобы не нарушать красоту
    КонецЕсли;
    Если перцикла<=КолвострокТаб3 тогда
    ВыводстрокиТретийТаблицы(таб3[ПерЦикла]);
    Иначе
    ВыводстрокиТретийТаблицы(неопределено);//для вывода пустой строки, чтобы не нарушать красоту
    КонецЕсли;
    Конеццикла;
    
    
  5. TopicStarter Overlay
    Shavminator
    Offline

    Shavminator

    Регистрация:
    26 дек 2007
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    None спасибо большое.
    Получается

Поделиться этой страницей