8.х Отчет

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

  1. TopicStarter Overlay
    ls600
    Offline

    ls600 Опытный в 1С

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

    Подскажите Что еще нужно добавить в код для вывода данных.
    1С:Предприятие 8.2 (8.2.15.301) Конфигурация Бухгалтерия для Казахстана, редакция 2.0


    Код:
    Процедура КнопкаСформироватьНажатие(Кнопка)
    ТабДок = Новый ТабличныйДокумент();
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    Макет = ПолучитьМакет("Макет"); [/size][/color][/font]
    [font="arial"][color="#000000"][size=3]Область = Макет.ПолучитьОбласть("Шапка");
    ТабДок.Вывести(Область);
    
    Область = Макет.ПолучитьОбласть("Дата");
    Область.Параметры.ДатаС = ПолеВвода1;
    Область.Параметры.ДатаПо = ПолеВвода2;
    ТабДок.Вывести(Область);
    
    Область = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ТабДок.Вывести(Область);
    
    ОбластьИтоги = Макет.ПолучитьОбласть("Итоги");
    
    Область1 = Макет.ПолучитьОбласть("СтрокаТаблицы");
    Область2 = Макет.ПолучитьОбласть("СтрокаТаблицы");
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | СчетФактураВыданный.Дата КАК ДатаСФ,
    | СчетФактураВыданный.Номер КАК Номер,
    | СчетФактураВыданный.Ссылка КАК Ссылка,
    | СчетФактураВыданный.Контрагент КАК Контрагент,
    | СчетФактураВыданный.Контрагент.РНН КАК РНН,
    | СчетФактураВыданный.Контрагент.СерияСвидетельстваПоНДС КАК Серия,
    | СчетФактураВыданный.Контрагент.НомерСвидетельстваПоНДС КАК НомерК,
    | СчетФактураВыданный.Дата КАК Дата,
    | СчетФактураВыданный.ДоговорКонтрагента.НомерДоговора КАК ДоговорН,
    | СчетФактураВыданный.ДоговорКонтрагента.ДатаДоговора КАК ДоговорД,
    | СчетФактураВыданный.ДокументОснование КАК ДО,
    | РЦ_РеализацияЦемента.СпособОтправки
    |ИЗ
    | Документ.СчетФактураВыданный КАК СчетФактураВыданный,
    | РегистрНакопления.РЦ_РеализацияЦемента КАК РЦ_РеализацияЦемента <- вот эта таблица
    |ГДЕ
    | СчетФактураВыданный.Дата МЕЖДУ &Дата1 И &Дата2
    | И РЦ_РеализацияЦемента.СпособОтправки = &СпособОтправки    <-какие данные получить нужно
    |
    |УПОРЯДОЧИТЬ ПО
    | Контрагент,
    | Номер
    |АВТОУПОРЯДОЧИВАНИЕ";
    
    Запрос.УстановитьПараметр("Дата1", НачалоДня(ПолеВвода1));
    Запрос.УстановитьПараметр("Дата2", КонецДня(ПолеВвода2));
    Запрос.УстановитьПараметр("Счет",ПолеВвода3);
    
    Тригер = 0; ФактДобавления = 0; ОбластьНужноВывести = 0; НуженВывод = 0;
    Результат = Запрос.Выполнить();[/size][/color][/font]
    [font="arial"][color="#000000"][size=3]Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    
    Попытка
    Если (Выборка.ДО.СчетУчетаРасчетовСКонтрагентом=ПолеВВода3) ИЛИ
    (СтрДлина(ПолеВВода3)<2) Тогда
    
    Область1.Параметры.Заполнить(Выборка);
    Область1.Параметры.ДатаСФ = Выборка.ДатаСФ;
    Область1.Параметры.Номер = Выборка.Номер;
    Область1.Параметры.Дата = Выборка.Дата;
    
    Область2.Параметры.Заполнить(Выборка);
    Область2.Параметры.ДатаСФ = Выборка.ДатаСФ;
    Область2.Параметры.Номер = Выборка.Номер;
    Область2.Параметры.Дата = Выборка.Дата;
    Область2.Параметры.КолВо = 0;
    Область2.Параметры.Сумма = 0;
    Область2.Параметры.НДС = 0;
    
    
    ВыводОбщих = 0; НуженВывод = 0;
    Для Каждого Стр ИЗ Выборка.Ссылка.Товары Цикл
    Вывел = 0;
    
    Область1.Параметры.КодТНВЭД = Стр.Номенклатура.Код;
    Область1.Параметры.Номенклатура = Стр.Номенклатура.Наименование;
    Область1.Параметры.КолВо = Стр.Количество;
    Область1.Параметры.Ед = Стр.ЕдиницаИзмерения;
    Область1.Параметры.Сумма = Стр.Сумма;
    Область1.Параметры.НДС = Стр.СуммаНДС;
    Область1.Параметры.Цена = Стр.Цена/1.12;
    
    Если (Область1.Параметры.КодТНВЭД=Область2.Параметры.КодТНВЭД) Тогда
    Область2.Параметры.Ед = Область1.Параметры.Ед;
    Область2.Параметры.КодТНВЭД = Область1.Параметры.КодТНВЭД;
    Область2.Параметры.Номенклатура = Область1.Параметры.Номенклатура;
    Область2.Параметры.КолВо = Область2.Параметры.КолВо + Область1.Параметры.КолВо;
    Область2.Параметры.Сумма = Область2.Параметры.Сумма + Область1.Параметры.Сумма;
    Область2.Параметры.НДС = Область2.Параметры.НДС + Область1.Параметры.НДС;
    Область2.Параметры.Цена = (Область2.Параметры.Сумма/Область2.Параметры.КолВо)/1.12;
    НуженВывод = 0; ВыводОбщих = 1;
    Иначе
    Если ВыводОбщих = 1 Тогда
    Область2.Параметры.Сумма = Область2.Параметры.Сумма-Область2.Параметры.НДС;
    ТабДок.Вывести(Область2);НуженВывод = 0;
    КонецЕсли;
    Если (НуженВывод=1) Тогда
    Область2.Параметры.Сумма = Область2.Параметры.Сумма-Область2.Параметры.НДС;
    ТабДок.Вывести(Область2); Вывел = 1; НуженВывод = 0;
    КонецЕсли;
    Область2.Параметры.Ед = Область1.Параметры.Ед;
    Область2.Параметры.КодТНВЭД = Область1.Параметры.КодТНВЭД;
    Область2.Параметры.Номенклатура = Область1.Параметры.Номенклатура;
    Область2.Параметры.КолВо = Область1.Параметры.КолВо;
    Область2.Параметры.Сумма =  Область1.Параметры.Сумма;
    Область2.Параметры.НДС = Область1.Параметры.НДС;
    Область2.Параметры.Цена = Область1.Параметры.Цена/1.12;
    НуженВывод = 1; Вывел = 0;
    КонецЕсли;
    
    КонецЦикла;
    Если (Вывел=0) Тогда
    Область2.Параметры.Сумма = Область2.Параметры.Сумма-Область2.Параметры.НДС;
    ТабДок.Вывести(Область2); Вывел = 1;
    КонецЕсли;
    
    
    Для Каждого Стр ИЗ Выборка.Ссылка.Услуги Цикл
    Область1.Параметры.КодТНВЭД = Стр.Номенклатура.Код;
    Область1.Параметры.Номенклатура = Стр.Номенклатура;
    Область1.Параметры.КолВо = Стр.Количество;
    Область1.Параметры.Ед = "";
    Область1.Параметры.Цена = Стр.Цена/1.12;
    Область1.Параметры.Сумма = Стр.Сумма;
    Область1.Параметры.НДС = Стр.СуммаНДС;
    ТабДок.Вывести(Область1);
    КонецЦикла;
    
    Для Каждого Стр ИЗ Выборка.Ссылка.ОС Цикл
    Область1.Параметры.КодТНВЭД = Стр.ОсновноеСредство.Код;
    Область1.Параметры.Номенклатура = Стр.ОсновноеСредство.Наименование;
    Область1.Параметры.КолВо = "";
    Область1.Параметры.Ед = "";
    Область1.Параметры.Цена = "";
    Область1.Параметры.Сумма = Стр.Сумма;
    Область1.Параметры.НДС = Стр.СуммаНДС;
    ТабДок.Вывести(Область1);
    КонецЦикла;
    
    Для Каждого Стр ИЗ Выборка.Ссылка.НМА Цикл
    Область1.Параметры.КодТНВЭД = Стр.НематериальныйАктив.Код;
    Область1.Параметры.Номенклатура = Стр.НематериальныйАктив.Наименование;
    Область1.Параметры.КолВо = "";
    Область1.Параметры.Ед = "";
    Область1.Параметры.Цена = "";
    Область1.Параметры.Сумма = Стр.Сумма;
    Область1.Параметры.НДС = Стр.СуммаНДС;
    ТабДок.Вывести(Область1);
    КонецЦикла;
    
    КонецЕсли;
    Исключение
    КонецПопытки;
    КонецЦикла;
    
    КонецПроцедуры
    
  2. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ну как минимум надо в макет добавить соответствующую колонку с параметром для вывода значения, а дальше по аналогии с остальными данными выводите

    а вообще запрос у вас странный, вы таблицы то между собой как то наверное связать должны, иначе сумбур какой-то получится....
  3. TopicStarter Overlay
    ls600
    Offline

    ls600 Опытный в 1С

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

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    это не важно кто делал... посмотрите в консоли результат вашего запроса, я не думаю, что он вас устроит...
  5. TopicStarter Overlay
    ls600
    Offline

    ls600 Опытный в 1С

    Регистрация:
    14 май 2012
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    и к какому решению можно прийти лучше всего
  6. TopicStarter Overlay
    ls600
    Offline

    ls600 Опытный в 1С

    Регистрация:
    14 май 2012
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    попытаюсь разобраться сам, будут вопросы напишу!
  7. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    если вы ждете ответа, то попытайтесь описать задачу, зачем вы регистр в запрос добавили, ведь без знаний структуры помочь вам его соединить с уже имеющимися данными нереально. А уж добавить поле в макет - это полбеды...
  8. TopicStarter Overlay
    ls600
    Offline

    ls600 Опытный в 1С

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

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