8.х Отчет с нуля!

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем ls600, 4 июн 2012.

  1. TopicStarter Overlay
    ls600
    Offline

    ls600 Опытный в 1С

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

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    А заполнять параметры кто будет? вы получаете параметры, а потом выводите сразу область без заполнения.
  3. TopicStarter Overlay
    ls600
    Offline

    ls600 Опытный в 1С

    Регистрация:
    14 май 2012
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Подскажи как заполнить, только учусь, в этом деле новичок
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.760
    Симпатии:
    509
    Баллы:
    204
    Вот так заполняются параметры в макете:
    Код:
    ОбластьДетали.Параметры.ИмяПараметраВЭтойОбласти = Значение;
  5. TopicStarter Overlay
    ls600
    Offline

    ls600 Опытный в 1С

    Регистрация:
    14 май 2012
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    ОбластьДетали.Параметры.СпособОтправки = Значение;
    ОбластьДетали.Параметры.ДокументОтгрузки = Значение;
    ОбластьДетали.Параметры.Контрагент = Значение;

    так? или нет
  6. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.760
    Симпатии:
    509
    Баллы:
    204
    Так, только вместо Значение нужно подставлять какие-то данные, например, из выборки.

    Сечете фишку :)))))))) ?
  7. TopicStarter Overlay
    ls600
    Offline

    ls600 Опытный в 1С

    Регистрация:
    14 май 2012
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Неа))) впервые делаю отчет)))!!!
  8. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

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

    ls600 Опытный в 1С

    Регистрация:
    14 май 2012
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    В каждом документе может быть по два или три вагона. Если в каком либо документе будет два или три Вагона отчет не формировал один и тот же документ три раза подряд с разными вагонами. а просто Документ Вагонная отгрузка.

    вот код какой сейчас есть.


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

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!
    Последняя фраза лишена всякого смысла
    Пожалуйста высказывайте свои мысли полностью, а не обрывистыми сообщениями.
    Насколько я могу понять, Вас не устраивает тот факт, что отчет несколько раз выводит в таблицу документ отгрузки, разделяя аналитику еще и по вагонам. Если так, то Вам нужно просто из запроса убрать выборку по вагонам. Покажите результат выполнения вашего отчета.
  11. TopicStarter Overlay
    ls600
    Offline

    ls600 Опытный в 1С

    Регистрация:
    14 май 2012
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Сейчас вроде нормально выводит!!!
    Вот только с датой проблема не все выводит?!

    Код:
    Процедура Кнопка1Нажатие(Элемент)
    НастройкаПериода = Новый НастройкаПериода;
    НастройкаПериода.УстановитьПериод(ДатаНач, ?(ДатаКон='0001-01-01', ДатаКон, КонецДня(ДатаКон)));
    НастройкаПериода.РедактироватьКакИнтервал = Истина;
    НастройкаПериода.РедактироватьКакПериод = Истина;
    НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
    НастройкаПериода.Редактировать();
    ДатаНач = НастройкаПериода.ПолучитьДатуНачала();
    ДатаКон = НастройкаПериода.ПолучитьДатуОкончания();
    //ПериодПриИзменении(ДатаНач); 
    КонецПроцедуры
    
    

    Вложения:

    • 1.JPG
      1.JPG
      Размер файла:
      59,3 КБ
      Просмотров:
      51
  12. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.760
    Симпатии:
    509
    Баллы:
    204
    А где вы дату в макет выводите ?
  13. TopicStarter Overlay
    ls600
    Offline

    ls600 Опытный в 1С

    Регистрация:
    14 май 2012
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    в столбце. Дата | Документ Отгрузки|
  14. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Я не вижу в коде заполнения реквизита ДАТА, используйте похожую конструкцию
    Код:
    ОбластьДетали.Параметры.Дата= ВыборкаДетальныеЗаписи.ДокументОтгрузки.Дата;
  15. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.760
    Симпатии:
    509
    Баллы:
    204
    Я вижу два столбца, Дата и Документ отгрузки. Покажите в коде, где вы заполняете колонку Дата.
  16. TopicStarter Overlay
    ls600
    Offline

    ls600 Опытный в 1С

    Регистрация:
    14 май 2012
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Алекс Дата сейчас заполняется!!! mialord подсказал!!! только полностью за год выводит))) допустим что бы выбрать за месяц. Код скину

    Код:
    Процедура ДействиеФормыОтчетВагоныСформировать (Кнопка)
    Макет = ОтчетОбъект.ПолучитьМакет("ОтчетВагоны");
    ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
    запрос = Новый Запрос;
    запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
    | РЦ_РеализацияЦемента.ДокументОтгрузки КАК ДокументОтгрузки,
    | РЦ_РеализацияЦемента.Контрагент,
    | РЦ_РеализацияЦемента.СпособОтправки,
    | РЦ_РеализацияЦемента.ДокументОтгрузки.Дата КАК ДокументОтгрузкиДата
    |ИЗ
    | РегистрНакопления.РЦ_РеализацияЦемента КАК РЦ_РеализацияЦемента
    |ГДЕ
    | РЦ_РеализацияЦемента.СпособОтправки = &Способ
    |
    |СГРУППИРОВАТЬ ПО
    | РЦ_РеализацияЦемента.СпособОтправки,
    | РЦ_РеализацияЦемента.ДокументОтгрузки,
    | РЦ_РеализацияЦемента.Контрагент,
    | РЦ_РеализацияЦемента.ДокументОтгрузки.Дата
    |
    |УПОРЯДОЧИТЬ ПО
    | ДокументОтгрузкиДата УБЫВ";
    
    запрос.УстановитьПараметр("Организация",Организация);
    запрос.УстановитьПараметр("НачалоПериода",НачалоДня(ДатаНач));
    запрос.УстановитьПараметр("КонецПериода",КонецДня(ДатаКон));
    запрос.УстановитьПараметр("Способ", Перечисления.СпособыОтправкиГрузов.ВагоннаяОтгрузка);
    //Если ВыборкаДетальныеЗаписи.ДокментОтгрузки."Вагоны".Количество()=0 Тогда
    //Если Перечисления.СпособыОтправкиГрузов.ВагоннаяОтгрузка.Количество()=0 Тогда
    // ОбластьДетали.Параметры.Ссылка= "Нет";
    //Иначе
    // ОбластьДетали.Параметры.Ссылка = "Да";
    // КонецЕсли;
    
    ОбластьЗаголовок  = Макет.ПолучитьОбласть("Шапка");
    ОбластьДетали  = Макет.ПолучитьОбласть("Детали");
    Результат = запрос.Выполнить();
    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    
    ОбластьДетали.Параметры.Дата= ВыборкаДетальныеЗаписи.ДокументОтгрузки.Дата;
    ОбластьДетали.Параметры.СпособОтправки = ВыборкаДетальныеЗаписи.СпособОтправки;
    ОбластьДетали.Параметры.ДокументОтгрузки = ВыборкаДетальныеЗаписи.ДокументОтгрузки;
    ОбластьДетали.Параметры.Контрагент = ВыборкаДетальныеЗаписи.Контрагент;
    ТабДок.Вывести(ОбластьДетали);
    КонецЦикла;
    ТабДок.Показать();
    КонецПроцедуры
    
    Процедура Кнопка1Нажатие(Элемент)
    НастройкаПериода = Новый НастройкаПериода;
    НастройкаПериода.УстановитьПериод(ДатаНач, ?(ДатаКон='0001-01-01', ДатаКон, КонецДня(ДатаКон)));
    НастройкаПериода.РедактироватьКакИнтервал = Истина;
    НастройкаПериода.РедактироватьКакПериод = Истина;
    НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
    НастройкаПериода.Редактировать();
    ДатаНач = НастройкаПериода.ПолучитьДатуНачала();
    ДатаКон = НастройкаПериода.ПолучитьДатуОкончания();
    //ПериодПриИзменении(ДатаНач); 
    КонецПроцедуры
    
  17. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.760
    Симпатии:
    509
    Баллы:
    204
    Вот эту строчку:
    Код:
    ОбластьДетали.Параметры.Дата= ВыборкаДетальныеЗаписи.ДокументОтгрузки.Дата;
    Замените на
    Код:
    ОбластьДетали.Параметры.Дата= ВыборкаДетальныеЗаписи.ДокументОтгрузкиДата;
    Это видно из вашего запроса. Хотя, по идее должна и первая строка отрабатывать.
  18. TopicStarter Overlay
    ls600
    Offline

    ls600 Опытный в 1С

    Регистрация:
    14 май 2012
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Тоже самое, за весь период выводит! за месяц ни как!!! не хочет
  19. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.760
    Симпатии:
    509
    Баллы:
    204
    Так вы же выводите дату документа, какой нафиг месяц????????? Вам за определенный период нужно выводить ?
  20. TopicStarter Overlay
    ls600
    Offline

    ls600 Опытный в 1С

    Регистрация:
    14 май 2012
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    За определенный

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

Поделиться этой страницей