Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 17:44

Создание отчета!

Автор ls600, 04 июн 2012, 10:02

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

ls600

Благодарю!!! буду разбираться !

СветланаCC

вот твоя обработка - постарайся разобраться - что к чему, а лучше прочитать в книгах или интернете - формирование запросов с условиями... и вывод в табличный документ.

Тазовод)

ls600

Вопрос появился, подскажите . Есть Поле  Способ отправки, после формирования отчета. появляется список документов. и спосб Самовывоз и Вагоннаяя отгрузка.

В каждом документы может быть по два или три вагона. не могу понять как можно сделать так чтоб формировалось чисто вагонная отгрузка. Если в каком либо документе будет два или три Вагона отчет не формировал один и тот же документ три раза подряд с разными вагонами. а просто Документ Вагонная отгрузка.

Процедура ДействиеФормыОтчетВагоныСформировать (Кнопка)

Макет = ОтчетОбъект.ПолучитьМакет("ОтчетВагоны");
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
запрос = Новый Запрос;

запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
               |   РЦ_РеализацияЦемента.ДокументОтгрузки,
               |   РЦ_РеализацияЦемента.Контрагент,
               |   РЦ_РеализацияЦемента.СпособОтправки
               |ИЗ
               |   РегистрНакопления.РЦ_РеализацияЦемента КАК РЦ_РеализацияЦемента
               |
               |СГРУППИРОВАТЬ ПО
               |   РЦ_РеализацияЦемента.СпособОтправки,
               |   РЦ_РеализацияЦемента.ДокументОтгрузки,
               |   РЦ_РеализацияЦемента.Контрагент";
   
ОбластьЗаголовок  = Макет.ПолучитьОбласть("Шапка");
ОбластьДетали  = Макет.ПолучитьОбласть("Детали");
Результат = запрос.Выполнить();
ТабДок.Очистить();

ТабДок.Вывести(ОбластьЗаголовок);


ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

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

Заранее благодарю!!!

СветланаCC

Можешь выложить результат данного отчета - что он выводит, и как хочешь чтобы выводил?
Тазовод)

СветланаCC

И вопрос такой где опять в запросе период за который выводится отчет? и где условие организации?
Тазовод)

СветланаCC

   Макет = ОтчетОбъект.ПолучитьМакет("ОтчетВагоны");
   ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
   
   запрос = Новый Запрос;
   запрос.Текст = "ВЫБРАТЬ
                  |   РЦ_РеализацияЦемента.ДокументОтгрузки,
                  |   РЦ_РеализацияЦемента.Контрагент,
                  |   РЦ_РеализацияЦемента.СпособОтправки
                  |ИЗ
                  |   РегистрНакопления.РЦ_РеализацияЦемента(&НачалоПериода, &КонецПериода, Авто,Организация = &Организация) КАК РЦ_РеализацияЦемента
                  |
                  |СГРУППИРОВАТЬ ПО
                  |   РЦ_РеализацияЦемента.СпособОтправки,
                  |   РЦ_РеализацияЦемента.ДокументОтгрузки,
                  |   РЦ_РеализацияЦемента.Контрагент";
             
   запрос.УстановитьПараметр("Организация",Организация);
   запрос.УстановитьПараметр("НачалоПериода",НачалоДня(ДатаНач));
   запрос.УстановитьПараметр("КонецПериода",КонецДня(ДатаКон));
   
   ОбластьЗаголовок  = Макет.ПолучитьОбласть("Пояснение");
   
   Результат = запрос.Выполнить();
   ВыборкаДетальныеЗаписи = Результат.Выбрать();
   
   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      ОбластьДетали     = Макет.ПолучитьОбласть("Детали");
  ОбластьДетали.Параметры.ДокментОтгрузки = ВыборкаДетальныеЗаписи.ДокментОтгрузки;
  ОбластьДетали.Параметры.СпособОтправки = ВыборкаДетальныеЗаписи.СпособОтправки;
  ОбластьДетали.Параметры.Контрагент =  ВыборкаДетальныеЗаписи.Контрагент;
      ТабДок.Вывести(ОбластьДетали);
   КонецЦикла;
   ТабДок.Показать();
Тазовод)

ls600

Форма отчета 
Я сделал то что уже формируется Вагонная отгрузка. Есть Колонка Да/НЕТ там затрудняюсь. смысл такой.
Если стоит Вагонная отгрузка но нет Вагонов то будет НЕТ. на оборот ДА

СветланаCC

нужно проверить - количество строк в табличной части документа отгрузки
Если ВыборкаДетальныеЗаписи.ДокментОтгрузки."Название табличной части".Количество()=0 Тогда
  ОбластьДетали.Параметры.ДаНет= "Нет";
  Иначе
  ОбластьДетали.Параметры.ДаНет = "Да";
  КонецЕсли;
Тазовод)

ls600

Сейчас попробую!!!

ls600

Тему закрывайте, отчет готов!!! Благодарю кто помогал!!!

Теги:

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

Рейтинг@Mail.ru

Поиск