8.х Как работает метод присоединить в табличном документе?

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

  1. TopicStarter Overlay
    ppkmlite
    Offline

    ppkmlite Опытный в 1С

    Регистрация:
    28 окт 2014
    Сообщения:
    70
    Симпатии:
    0
    Баллы:
    26
    Не пойму как работает этот метод присоединить?
    Сначала вывожу наименование - текст, а потом присоединяю справа.
    А он мне этот текст несколько раз выводит, а потом еще присоединяет одну и ту же номенклатуру несколько раз! Объясните, что я не так делаю?
    Код:
    Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    МЗ_СписаниеМатериалы.Номенклатура.Код,
        |    МЗ_СписаниеМатериалы.Номенклатура.Наименование КАК Наименование,
        |    МЗ_СписаниеМатериалы.Номенклатура.ЕдиницаИзмерения.Код,
        |    МЗ_СписаниеМатериалы.Номенклатура.ЕдиницаИзмерения.Наименование,
        |    МЗ_СписаниеМатериалы.Ссылка.ЦМОПолучатель,
        |    МЗ_СписаниеМатериалы.Ссылка.ЦМООтправитель
        |ИЗ
        |    Документ.МЗ_Списание.Материалы КАК МЗ_СписаниеМатериалы
        |ГДЕ
        |    МЗ_СписаниеМатериалы.Ссылка = &Ссылка";
       
        Запрос.УстановитьПараметр("Ссылка", Ссылка);
        //////
        РезультатЗапроса = Запрос.Выполнить().Выгрузить();
        колонка1 = табДокумент.ПолучитьОбласть("R50C5:R50C7");
        колонка1.Область().Текст = "наименование";
        ТабДокумент.Вывести(колонка1);
        для каждого колонка из РезультатЗапроса цикл
            колонкаН = табДокумент.ПолучитьОбласть("R50C8:R50C11");
            колонкаН.Область().Параметр = колонка.Наименование;
            колонкаН.Область().ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;
            ТабДокумент.Присоединить(колонкаН);
            /////
            колонка1 = табДокумент.ПолучитьОбласть("R50C12");
            колонка1.Область().текст = "    ";
            колонка1.Область().ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;
            ТабДокумент.присоединить(колонка1);
    
        конеццикла;
    
  2. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    В цикле потому что
  3. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.577
    Симпатии:
    717
    Баллы:
    204
    да я уже замучался говорить о том, что
    ТабДокумент.ПолучитьОбласть("R50C8:R50C11"); в цикле - глупость.
    Необходимо изменять адрес получаемой области.

    Из приведенного кода вообще не понятно, для чего используется метод Присоединить(), т.к. вывод идет напрямую в ячейки ТабДок.
    Последнее редактирование: 11 авг 2015

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