Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Макет, получить значение области

Макет, получить значение области
Я
   lg2marvel
 
15.10.18 - 13:48
Добрый день.
Есть макет: https://dropmefiles.com/ddQEr

В коде вывожу данные:
    Таб         = ЭтаФорма.ЭлементыФормы.ТабличныйДокумент//Новый ТабличныйДокумент;

    Таб.Очистить();
    Макет         = ПолучитьМакет("Макет");
    Шапка           = Макет.ПолучитьОбласть("Шапка");
    Таб.Вывести(Шапка);
    ШапкаТЧ        = Макет.ПолучитьОбласть("ШапкаТЧ|Основное");
    Таб.Вывести(ШапкаТЧ);

    ШапкаУслуги = Макет.ПолучитьОбласть("ШапкаТЧ|КолонкаУслуги");    //вывожу динамическую часть макета, а именно шапки

    Для Каждого стртзУслугиСтатьи Из тзУслугиСтатьи Цикл
        ШапкаУслуги.Параметры.Заголовок = стртзУслугиСтатьи.СтатьяЗатрат;
        Таб.Присоединить(ШапкаУслуги);
    КонецЦикла;

    Строка          = Макет.ПолучитьОбласть("Строка|Основное");
    СтрокаУслуги          = Макет.ПолучитьОбласть("Строка|КолонкаУслуги");

//

    Для Каждого стр из тзЗапросСклады Цикл             //Выводим в ТЧ результат запроса Склады

        Строка.Параметры.Склад = стр.Склад;
//вывожу данные в Строка.Параметры.бла-бла-бла

        Таб.Вывести(Строка);

//наступает время выводить динамическую часть строки. По идее я запускаю два цикла с перебором доступных вариантов (как при выводе шапки) и с условием присваиваю параметр и присоединяю секцию СтрокаУслуги


Вопрос вот в чем, не могу получить значение области шапки, да и вообще любой области.
Пробовал так:
Область = Макет.Область(2,3);
и так:
Область = Макет.Область("R2C3");
и выделением области:
Область = Макет.Область("R2C3:R3C3");
И где-то повстречал такой вариант:
Область = Макет.ПолучитьОбласть("R2C3");

Саму область взял для примера, там точно есть запись.

Затем проверяю
Если Область.ЗначениеЗаполнено Тогда
    Сообщить(Область.Значение);
КонецЕсли;

Но отладчик все время твердит что значение не доступно.

Или же я все-таки неправильно построил вывод данных и нужно выводить динамические столбцы во вложеном цикле? (пробовал, шапка динамического столбца съезжает вниз)
 
 
   lg2marvel
 
1 - 15.10.18 - 13:55
Пробовал так:
        Для Каждого стртзУслугиСтатьи Из тзУслугиСтатьи Цикл
            ШапкаУслуги.Параметры.Заголовок = стртзУслугиСтатьи.СтатьяЗатрат;
            Таб.Присоединить(ШапкаУслуги);

            ПараметрыОтбора = Новый Структура; 
            ПараметрыОтбора.Вставить("ТорговыйОбъект", стр.Склад.ТорговыйОбъект);  
            ПараметрыОтбора.Вставить("СтатьяЗатрат", стртзУслугиСтатьи.СтатьяЗатрат);
            тзУслугиСтатьиТО = тзУслуги.Скопировать(ПараметрыОтбора);//ОткрытьЗначение(тзУслугиСтатьиТО);

            НакоплениеУслуг = 0;
                Для Каждого стр1 Из тзУслугиСтатьиТО Цикл
                    НакоплениеУслуг = НакоплениеУслуг + стр1.СуммаБезНДС;
                КонецЦикла;    
                СтрокаУслуги.Параметры.Услуга = НакоплениеУслуг;Сообщить(Строка(стртзУслугиСтатьи.СтатьяЗатрат)+Строка(НакоплениеУслуг));
            КонецЦикла;        
            
            Таб.Вывести(Строка);
            Таб.Присоединить(СтрокаУслуги);

Но все пишет в первую ячейку (ну да, так как присоединение вне цикла)
   lg2marvel
 
2 - 15.10.18 - 13:57
Вот такой вариант выводит данные, но выглядит мягко говоря неочень:
        Таб.Вывести(Строка);
        Для Каждого стртзУслугиСтатьи Из тзУслугиСтатьи Цикл
            ШапкаУслуги.Параметры.Заголовок = стртзУслугиСтатьи.СтатьяЗатрат;
            Таб.Присоединить(ШапкаУслуги);
        //КонецЦикла;        

            
            //Для Каждого стртзУслугиСтатьи Из тзУслугиСтатьи Цикл

            //    Область = Макет.Область(2,3);

            ПараметрыОтбора = Новый Структура; 
            ПараметрыОтбора.Вставить("ТорговыйОбъект", стр.Склад.ТорговыйОбъект);  
            ПараметрыОтбора.Вставить("СтатьяЗатрат", стртзУслугиСтатьи.СтатьяЗатрат);
            тзУслугиСтатьиТО = тзУслуги.Скопировать(ПараметрыОтбора);//ОткрытьЗначение(тзУслугиСтатьиТО);

            НакоплениеУслуг = 0;
                Для Каждого стр1 Из тзУслугиСтатьиТО Цикл
                    НакоплениеУслуг = НакоплениеУслуг + стр1.СуммаБезНДС;
                КонецЦикла;    
                СтрокаУслуги.Параметры.Услуга = НакоплениеУслуг;Сообщить(Строка(стртзУслугиСтатьи.СтатьяЗатрат)+Строка(НакоплениеУслуг));
            Таб.Присоединить(СтрокаУслуги);    
        КонецЦикла;    

Шапка опускается на уровень строки и выводит попеременно шапку и результат
   lg2marvel
 
3 - 15.10.18 - 14:09
Пардон, получилось
   lg2marvel
 
4 - 15.10.18 - 14:10
Шапку присоединил до внешнего цикла, и после вывода Строки внутри цикла:

        Для Каждого стртзУслугиСтатьи Из тзУслугиСтатьи Цикл
            ПараметрыОтбора = Новый Структура; 
            ПараметрыОтбора.Вставить("ТорговыйОбъект", стр.Склад.ТорговыйОбъект);  
            ПараметрыОтбора.Вставить("СтатьяЗатрат", стртзУслугиСтатьи.СтатьяЗатрат);
            тзУслугиСтатьиТО = тзУслуги.Скопировать(ПараметрыОтбора);//ОткрытьЗначение(тзУслугиСтатьиТО);

            НакоплениеУслуг = 0;
                Для Каждого стр1 Из тзУслугиСтатьиТО Цикл
                    НакоплениеУслуг = НакоплениеУслуг + стр1.СуммаБезНДС;
                КонецЦикла;    
                СтрокаУслуги.Параметры.Услуга = НакоплениеУслуг;Сообщить(Строка(стртзУслугиСтатьи.СтатьяЗатрат)+Строка(НакоплениеУслуг));
            Таб.Присоединить(СтрокаУслуги);    
        КонецЦикла;

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует