Вывод отчёта на макет

1. user1008893 12.07.20 21:37 Сейчас в теме
Проблема с выводом поставщиков, столбцы должны появлять в зависимости от самого большего количества поставщиков на одну номенклатуру,но максимум 3.
 
Счетчик=ТаблНомПост[3].Поставщик;
    пока Счетчик<>0 Цикл    
        Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Поставщик");
        
        Если _ИмяГр = "ОснПоставщик" тогда
            СтруктураОтбора = Новый Структура("Номенклатура,ВариантИсполнения", ВхЗапрВыб.Номенклатура, ВхЗапрВыб.ВариантИсполнения);

            МассивПост=ТаблНомПост.НайтиСтроки(СтруктураОтбора);
            Сч=1;
            Для Каждого стр из МассивПост цикл
                
                //Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Поставщик");
                
                Если _ИмяГр = "ОснПоставщик" Тогда
                    Область.Параметры.ЗначениеГрСтрПостав     = стр.Поставщик; 
                     ВхТаблДок.Присоединить(Область); 
                     Сч=Сч+1;
                КонецЕсли;
                Если Сч = 3 Тогда
                    Прервать;
                КонецЕсли;

            КонецЦикла;
               
        КонецЕсли;
        Если _ИмяГр = "Номенклатура" тогда
            Отбор=Новый Структура("Номенклатура",ВхЗапрВыб.Номенклатура);
            МассивПост=ТаблНомПост.НайтиСтроки(Отбор);
            Сч1=1;
            Для Каждого стр из МассивПост цикл
                
                //Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Поставщик");
                
                Если _ИмяГр = "Номенклатура" И НЕ ВхЗапрВыб.РазрешитьНесколькоВариантовИсполнения
                    Тогда
                    Область.Параметры.ЗначениеГрСтрПостав     = стр.НоменклатураПоставщика; 
                      ВхТаблДок.Присоединить(Область); 
                     Сч1=Сч1+1;

                КонецЕсли;
                 Если Сч1 = 3 Тогда
                    Прервать;
                КонецЕсли;

            КонецЦикла;
              //  ВхТаблДок.Присоединить(Область);
        КонецЕсли;
        
        Если  _ИмяГр = "Номенклатура" или _ИмяГр = "ВариантИсполнения" тогда
            СтруктураОтбора = Новый Структура("Номенклатура,ВариантИсполнения", ВхЗапрВыб.Номенклатура, ВхЗапрВыб.ВариантИсполнения);
            МассивПост=ТаблНомПост.НайтиСтроки(СтруктураОтбора);
            Сч2=1;
            Для Каждого стр из МассивПост цикл
                
                //Область = ВхМакет.ПолучитьОбласть(_ИмяСекции + "|Поставщик");
                Если _ИмяГр = "Номенклатура"                    Тогда
                    Область.Параметры.ЗначениеГрСтрПостав     = стр.НоменклатураПоставщика; 
                    ВхТаблДок.Присоединить(Область); 
                     Сч2=Сч2+1
                Иначе Если
                 _ИмяГр = "ВариантИсполнения" тогда
                    Область.Параметры.ЗначениеГрСтрПостав     = стр.ВариантИсполненияПоставщика;
                      ВхТаблДок.Присоединить(Область); 
                     Сч2=Сч2+1
                 КонецЕсли;
                   КонецЕсли;
                 Если Сч2 = 3 Тогда
                    Прервать;
                КонецЕсли;
                
                //ВхТаблДок.Присоединить(Область);
            КонецЦикла;    
            //ВхТаблДок.Присоединить(Область);
        КонецЕсли;
        //ВхТаблДок.Присоединить(Область);
        Счетчик=Счетчик-1;
        КонецЦикла;

     
Показать
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. platonov.e 158 13.07.20 07:25 Сейчас в теме
А почему бы не сделать просто группировку по поставщикам?
3. user1008893 13.07.20 07:45 Сейчас в теме +1 $m
(2)Поставщиков может быть 3, У каждого свое наименование поставщика и вариант исполнения,поэтому выводим в отдельный столбцы.
Прикрепленные файлы:
4. platonov.e 158 13.07.20 07:56 Сейчас в теме
(3) ну ок. тогда в чем проблема?
5. user1008893 13.07.20 08:03 Сейчас в теме
(4)Смотрите,на картинке которая в вопросе,там столбцы поехали,а должно быть как в (3),т.е. там номенклатура поставщика и вариант исполнения не выводится. После Запроса получаю вот такие результаты и записываю их в массив
Прикрепленные файлы:
6. Vlan 36 13.07.20 08:32 Сейчас в теме
Если есть таблица значений, почему бы не отсортировать строки нужным образом и не выводить их последовательно? Таблица в (5) - это и есть исходная?
7. user1008893 13.07.20 08:39 Сейчас в теме
(6)Да,то таблица которую получаем после запроса и в таком виде записываю в массив
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот