Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
13 фев 2025, 19:50

Ошибка в выводе данных.

Автор AnDr2024, 10 дек 2024, 12:24

0 Пользователей и 1 гость просматривают эту тему.

AnDr2024

antoneus, Можно еще вопрос, в продолжение данной Темы?

antoneus


AnDr2024

Процедура КнопкаСформироватьНажатие(Кнопка)
   
   Если НЕ ЗначениеЗаполнено(ЭлементыФормы.НачалоПериода.Значение)
      тогда Предупреждение ("Не заполнено поле Начало периода!!!");
     ИначеЕсли НЕ ЗначениеЗаполнено(ЭлементыФормы.КонецПериода.Значение)
      тогда Предупреждение ("Не заполнено поле Конец периода!!!");
     ИначеЕсли НЕ ЗначениеЗаполнено(ЭлементыФормы.Организация.Значение)
      тогда Предупреждение ("Не заполнено поле Организация!!!"); 
             
   КонецЕсли;         
   
         ЭлементыФормы.ПолеТабличногоДокумента.Очистить();      // Для того что бы при новом нажатии на кнопку, старая информация очищалась.
              Макет = Отчеты.АнализПричинПоПретензиямОтПотребителя.ПолучитьМакет("Макет");
            
 // ОБЛАСТЬ ШАПКА
          ОбластьШапка = Макет.ПолучитьОбласть("ОбластьШапка");
           ОбластьШапка.Параметры.Год = Формат(КонецПериода, "ДФ=yyyy");
           ОбластьШапка.Параметры.НачалоПериода = Формат(НачалоПериода, "ДФ=dd.MM.yyyy");
           ОбластьШапка.Параметры.КонецПериода = Формат(КонецПериода, "ДФ=dd.MM.yyyy");
         ОбластьШапка.Параметры.Организация = Формат(Организация, "Значение");
            ЭлементыФормы.ПолеТабличногоДокумента.Вывести(ОбластьШапка);     // Вывести область Шапка в Таблицу.   
            
 // ОБЛАСТЬ СТРОКА   
            Счетчик = Число("1");    // Для начала номера.
           Запрос = Новый Запрос;       
         Запрос.УстановитьПараметр("НачалоПериода",   ЭлементыФормы.НачалоПериода.Значение); 
         Запрос.УстановитьПараметр("КонецПериода",    ЭлементыФормы.КонецПериода.Значение);     
         Запрос.УстановитьПараметр("Организация",     ЭлементыФормы.Организация.Значение);

          Запрос.Текст = "ВЫБРАТЬ
    |   РекламацииОтПотребителя.Дата,
    |   РекламацииОтПотребителя.Номер,
    |   РекламацииОтПотребителя.Ссылка КАК Рекламация,
    |   РекламацииОтПотребителя.Потребитель,
    |   РекламацииОтПотребителя.Решение_2,
    |   РекламацииОтПотребителя.Решение_3,
    |   Мероприятия_8D.НомерДока,
    |   Мероприятия_8D.ПричинаДефекта,
   |   Мероприятия_8D.ДатаЗавершения,
   |   Мероприятия_8D.Команда.(ФИО)
    |ИЗ
    |   Документ.РекламацииОтПотребителя КАК РекламацииОтПотребителя
    |ЛЕВОЕ СОЕДИНЕНИЕ
    |    Документ.Мероприятия_8D КАК Мероприятия_8D
    |ПО
    |    РекламацииОтПотребителя.Ссылка = Мероприятия_8D.Рекламация
    |ГДЕ
    |   РекламацииОтПотребителя.Дата МЕЖДУ &НачалоПериода И &КонецПериода
   |   И РекламацииОтПотребителя.Организация = &Организация";
   

    Выборка = Запрос.Выполнить().Выбрать();
    ОбластьСтрока = Макет.ПолучитьОбласть("ОбластьСтрока");
       Пока Выборка.Следующий() Цикл
           Рекламация = Выборка.Рекламация;
           ОбластьСтрока.Параметры.Номер            = Счетчик;     
           ОбластьСтрока.Параметры.Рекламация       = "Рекламация №" + Выборка.Номер + " от " + Формат(Выборка.Дата, "ДФ=dd.MM.yyyy") + "г." + Выборка.Потребитель;
           ОбластьСтрока.Параметры.Статус_1         = Выборка.Решение_2;   
           ОбластьСтрока.Параметры.Статус_2         = Выборка.Решение_3;
         ОбластьСтрока.Параметры.Номер8Д          = Выборка.НомерДока;          //"№" +  + " от "; + убрал, стояло перед Выборка.
            ОбластьСтрока.Параметры.Причина         = Выборка.ПричинаДефекта;       // "Дефект" + убрал, стояло перед Выборка.
         
         ОбластьСтрока.Параметры.Исполнители      = Выборка.Команда(ФИО); //НЕ РАБОТАЕТ

             Для каждого Стр из Рекламация.СписокНоменклатуры Цикл//это тоже можно в запрос запихать, но потом уж как-нибудь, не всё сразу
                 Номенклатура = Стр.Номенклатура;
                 ОбластьСтрока.Параметры.Номенклатура       = Строка(Номенклатура.Артикул) + Строка(" ") + Строка(Номенклатура.Наименование);
                 ОбластьСтрока.Параметры.Проблема         = Стр.ВидДефекта;         
                 ЭлементыФормы.ПолеТабличногоДокумента.Вывести(ОбластьСтрока);
                 Счетчик = Счетчик + Число("1");
      
             Если ЗначениеЗаполнено(Выборка.ДатаЗавершения) тогда
            ОбластьСтрока.Параметры.Статус_3 = Формат(Выборка.ДатаЗавершения, "ДФ=dd.MM.yyyy; ДП=-") + "г. - Выполнено";
            иначе
            ОбластьСтрока.Параметры.Статус_3 = "В работе";
             КонецЕсли;
            
            Для каждого Стр из Мероприятия.Команда Цикл
            ОбластьСтрока.Параметры.Исполнители = Стр.ФИО;
         КонецЦикла;
         КонецЦикла;
         КонецЦикла;
 
// ОБЛАСТЬ ПОДВАЛ   
    ОбластьПодвал = Макет.ПолучитьОбласть("ОбластьПодвал");
    ЭлементыФормы.ПолеТабличногоДокумента.Вывести(ОбластьПодвал);      
 
    
               
КонецПроцедуры

antoneus

Ух, сколько кода) А что именно не получается?

AnDr2024

Дополнил код новыми запросами и получил итоговую таблицу, в колонке (Исполнители) не выходят ФИО..Анализ.jpg

AnDr2024

Получается что в Таблице Мероприятия есть еще одна Таблица (поле) - Команда, к ней нужен запрос на ФИО.

AnDr2024

 ОбластьСтрока.Параметры.Исполнители      = Выборка.Команда(ФИО); //НЕ РАБОТАЕТ

LexaK

Цитата: AnDr2024 от 13 дек 2024, 11:36ОбластьСтрока.Параметры.Исполнители      = Выборка.Команда(ФИО); //НЕ РАБОТАЕТ
а если в команде 10 человек, как вы их хотите в одну строку поместить?
через запятую?
если помогло нажмите: Спасибо!

AnDr2024

LexaK, Да, через запятую.

LexaK

AnDr2024, примерно такую команду сделайте
лкИсполнители = СтрСоединить(Выборка.Команда.Выгрузить().ВыгрузитьКолонку("ФИО"),",");
ОбластьСтрока.Параметры.Исполнители = лкИсполнители;
обязательно проверьте имена реквизитов (есть ФИО в тч.Команда?)
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск