Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
22 Май 2017, 22:31
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Вывод в табличный документ с неизвестным количество колонок  (Прочитано 1068 раз)

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

Оффлайн ty

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-06-20
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день как можно вывести полученные данные в запросе в таком виде как на скрине?


Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ВнешняяТаблицаПодразделений" , ПодразделенияТЧ);
   Запрос.УстановитьПараметр("ТипЦен", ТипЦен);
   Запрос.УстановитьПараметр("Период", КонецДня(ДатаОкончания));
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ВнешняяТаблицаПодразделений.Подразделение
      |ПОМЕСТИТЬ ВнешняяТаблицаПодразделений
      |ИЗ
      |   &ВнешняяТаблицаПодразделений КАК ВнешняяТаблицаПодразделений
      |;
      |
      |////////////////////////////////////////////////////////////////////////////////
      |ВЫБРАТЬ
      |   СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка,
      |   ВнешняяТаблицаПодразделений.Подразделение,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.Количество
      |ПОМЕСТИТЬ Спецификации
      |ИЗ
      |   ВнешняяТаблицаПодразделений КАК ВнешняяТаблицаПодразделений
      |      ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие
      |      ПО ВнешняяТаблицаПодразделений.Подразделение = СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка.Подразделение
      |;
      |
      |////////////////////////////////////////////////////////////////////////////////
      |ВЫБРАТЬ
      |   Спецификации.Ссылка КАК Спецификация,
      |   Спецификации.Подразделение,
      |   Спецификации.Номенклатура,
      |   Спецификации.Количество,
      |   ЦеныНоменклатурыСрезПоследних.Цена,
      |   ЕСТЬNULL(Спецификации.Количество * ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК СуммаСтроки,
      |   Спецификации.Ссылка.Номенклатура КАК Изделие
      |ИЗ
      |   Спецификации КАК Спецификации
      |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК ЦеныНоменклатурыСрезПоследних
      |      ПО Спецификации.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
      |ГДЕ
      |   ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен";
   
   РезультатЗапроса = Запрос.Выполнить().Выгрузить();
   РезультатЗапроса.Свернуть("Спецификация, Подразделение, Изделие", "СуммаСтроки");

       



Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>


Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
ну у вас вполне известное количество колонок, так что обычный макет обычное заполнение таб дока
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн ty

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-06-20
  • Сайт: 
  • Профессия: Ученик 1С
Подразделений может быть много

Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
у таб док есть метод присоединить
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн ty

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-06-20
  • Сайт: 
  • Профессия: Ученик 1С
А как установить отбор чтобы дальше нужная цена и спецификация попадали в нужное подразделение

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

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С

Оффлайн ty

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-06-20
  • Сайт: 
  • Профессия: Ученик 1С
СКД не катит в этой форме будет ёще два отчета по другим параметрам и регистрам а выводиться должно всё в одно окно а вообще вот готовый код
Если Не ЗначениеЗаполнено(Подразделения) Тогда
      Предупреждение("Вы невыбрали ни одного подразделения отчет не может быть сформирован");
      Возврат;
   ИначеЕсли Не ЗначениеЗаполнено(ДатаОкончания) Тогда
      Предупреждение("Вы не указали дату окончания");
      Возврат;
   ИначеЕсли Не ЗначениеЗаполнено(ТипЦен) Тогда
      Предупреждение("Вы не выбрали тип цены");
      Возврат;
   КонецЕсли;
      
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ВнешняяТаблицаПодразделений" , ПодразделенияТЧ);
   Запрос.УстановитьПараметр("ТипЦен", ТипЦен);
   Запрос.УстановитьПараметр("Период", КонецДня(ДатаОкончания));
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ВнешняяТаблицаПодразделений.Подразделение
      |ПОМЕСТИТЬ ВнешняяТаблицаПодразделений
      |ИЗ
      |   &ВнешняяТаблицаПодразделений КАК ВнешняяТаблицаПодразделений
      |;
      |
      |////////////////////////////////////////////////////////////////////////////////
      |ВЫБРАТЬ
      |   СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка,
      |   ВнешняяТаблицаПодразделений.Подразделение,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура,
      |   СпецификацииНоменклатурыИсходныеКомплектующие.Количество
      |ПОМЕСТИТЬ Спецификации
      |ИЗ
      |   ВнешняяТаблицаПодразделений КАК ВнешняяТаблицаПодразделений
      |      ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие
      |      ПО ВнешняяТаблицаПодразделений.Подразделение = СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка.Подразделение
      |;
      |
      |////////////////////////////////////////////////////////////////////////////////
      |ВЫБРАТЬ
      |   Спецификации.Ссылка КАК Спецификация,
      |   Спецификации.Подразделение,
      |   Спецификации.Номенклатура,
      |   Спецификации.Количество,
      |   ЦеныНоменклатурыСрезПоследних.Цена,
      |   ЕСТЬNULL(Спецификации.Количество * ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК СуммаСтроки,
      |   Спецификации.Ссылка.Номенклатура КАК Изделие
      |ИЗ
      |   Спецификации КАК Спецификации
      |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ) КАК ЦеныНоменклатурыСрезПоследних
      |      ПО Спецификации.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
      |ГДЕ
      |   ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен";
   
   РезультатЗапроса = Запрос.Выполнить().Выгрузить();
   
   
   ТаблицаПодразделений = РезультатЗапроса.Скопировать();
   ТаблицаИзделий = РезультатЗапроса.Скопировать();
   
   ТаблицаИзделий.Свернуть("Изделие");
   ТаблицаПодразделений.Свернуть("Подразделение");
   РезультатЗапроса.Свернуть("Спецификация, Подразделение, Изделие", "СуммаСтроки");
       
    Макет = ПолучитьМакет("Макет");
     ЭлементыФормы.Результат.Очистить();
    Область = Макет.ПолучитьОбласть("Заголовок|Область1");
    Если ЗначениеЗаполнено(Номенклатура) Тогда
        Область.Параметры.Номенклатура = Строка(Номенклатура);
    КонецЕсли;
     Область.Параметры.Подразделения = Подразделения;
    Область.Параметры.ТипЦен = Строка(ТипЦен);
    Область.Параметры.ДатаОкончания = Строка(Формат(ДатаОкончания,"ДФ=dd.MM.yyyy"));
    ЭлементыФормы.Результат.Вывести(Область);
    ЭлементыФормы.Результат.Защита = Истина;
   
            Для Каждого СтрокаПодразделений Из ТаблицаПодразделений Цикл
                ОбластьПодразделения = Макет.ПолучитьОбласть("Заголовок|Подразделение");
                ОбластьПодразделения.Параметры.ПодразделениеОрганизации = Строка(СтрокаПодразделений.Подразделение);
               ОбластьПодразделения.Параметры.РасшифровкаОрганизации = СтрокаПодразделений.Подразделение;
                ЭлементыФормы.Результат.Присоединить(ОбластьПодразделения);    
            КонецЦикла;
 
       
         Область             = Макет.ПолучитьОбласть("Строка|Область1");
           ОбластьСпецификации = Макет.ПолучитьОбласть("Строка|Подразделение");
         
         Для Каждого СтрокаИзделия ИЗ ТаблицаИзделий Цикл
            Изделие = СтрокаИзделия.Изделие;
            Область.Параметры.Изделие = Строка(СтрокаИзделия.Изделие);
            Область.Параметры.РасшифровкаИзделия = СтрокаИзделия.Изделие;
            ЭлементыФормы.Результат.Вывести(Область);
                          Для Каждого СтрокаПодразделений Из ТаблицаПодразделений Цикл
                             Подразделение = СтрокаПодразделений.Подразделение;
                                          Для Каждого СтрокаРезультатаЗапроса из РезультатЗапроса Цикл
                                                 Если СтрокаРезультатаЗапроса.Подразделение = Подразделение И СтрокаРезультатаЗапроса.Изделие = Изделие Тогда
                                                   ОбластьСпецификации.Параметры.спецификация = Строка(СтрокаРезультатаЗапроса.Спецификация);
                                                  ОбластьСпецификации.Параметры.РасшифровкаСпецификации = СтрокаРезультатаЗапроса.Спецификация;
                                                        ОбластьСпецификации.Параметры.сумма        = Строка(СтрокаРезультатаЗапроса.СуммаСтроки);
                                             ЭлементыФормы.Результат.Присоединить(ОбластьСпецификации);
                                               КонецЕсли;
                                          КонецЦикла;           
                          КонецЦикла;
         КонецЦикла;
         

Добавлено: 21 Июн 2016, 15:40

осталось ещё пару мелких проблем решить


Теги:
 

Какова взаимосвязь объектов конфигурации "Договоры" и "Документ"?

Автор DDDРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 4120
Последний ответ 25 Ноя 2008, 10:43
от DDD
Как можно подставлять цену из регистра сведений "Цены поставщиков" в документ"ПоступлениеТоваров" на актуальную дату? Необходимо использовать запрос в решении.

Автор Елена6666666666Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 7667
Последний ответ 24 Окт 2014, 13:30
от cska-fanat-kz
не могу вывести отображение цен в "подборе" документ "Заявка покупателя" УТ 10.3

Автор Виталий ЕмельяновРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 2567
Последний ответ 05 Окт 2015, 19:22
от Виталий Емельянов
Как программно открыть документ программно

Автор СерьезныйЧеловекРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 16709
Последний ответ 10 Ноя 2010, 14:08
от Lexius
Документ "Сторно" в 1с 8.2 бух 2.0

Автор cannabis_86Раздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 11782
Последний ответ 09 Июн 2011, 12:57
от defers

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
99 Сообщений
Dethmontt Dethmontt
74 Сообщений
alex0402
64 Сообщений
MuI_I_Ika MuI_I_Ika
56 Сообщений
wise wise
47 Сообщений
Сергей Федоров Сергей Федоров
41 Сообщений
ilyay ilyay
40 Сообщений
ilnur75
22 Сообщений
videomause
22 Сообщений
BuhRust
22 Сообщений

* Кто онлайн

  • Точка Гостей: 278
  • Точка Скрытых: 0
  • Точка Пользователей: 6
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal