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

Автор Тема: Отбор в Отчете  (Прочитано 1678 раз)

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

Онлайн ls600

  • ****
  • Сообщений: 322
  • РЕПУТАЦИЯ: 20
  • КПД: 6%
  • Регистрация: 2012-05-14
  • Сайт: 
  • Профессия: Программист 1С
Доброго времени суток. 
Изменяю отчет столкнулся с такой задачей. Простой отчет который берет данные из регистра накопления.
Нужно сделать отбор по Реквизиту у которого тип Строка.  В самом отчете добавил Реквизит "НомерЗаявки" .
Если на форме отчета поле пустое то отчет формирует весь список заявок, а если ввели номер заявки то сформировался отчет по конкретной заявке.

P.S Обычное приложение

Процедура КнопкаСформироватьНажатие(Кнопка)
Макет  = ПолучитьМакет("Макет");
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.ФиксацияСверху = ТабДок.Область("R5C1:R6C23").Низ;
ТабДок.ТолькоПросмотр   = Истина;
ТабДок.АвтоМасштаб = Истина;


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

                       | И ВЫБОР
               | КОГДА &НомерЗаявки          <===== Вот сюда что дописать?????
               | ТОГДА АнализДвиженияЗаявок.Участок = &НомерЗаявки
               | ИНАЧЕ ИСТИНА
               | КОНЕЦ
               |ИТОГИ ПО
               | Номер";    
   
   
запрос.УстановитьПараметр("ДатаНач" ,НачалоДня(ДатаНач));
запрос.УстановитьПараметр("ДатаКон",КонецДня(ДатаКон));
запрос.УстановитьПараметр("КемПоданаЗаявка",КемПоданаЗаявка);
запрос.УстановитьПараметр("Участок",Участок);
запрос.УстановитьПараметр("НомерЗаявки",НомерЗаявки);

ОбластьЗаголовок  = Макет.ПолучитьОбласть("Заголовок");
ОбластьШапка   = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьНомер   = Макет.ПолучитьОбласть("Номер");
ОбластьДетали     = Макет.ПолучитьОбласть("Детали");

Результат = запрос.Выполнить();           

ТабДок.Очистить();
ТабДок.НачатьАвтогруппировкуСтрок();

ОбластьЗаголовок.Параметры.Текст = СоставитьЗаголовок();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапка);

ВыборкаНомера = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаНомера.Следующий() Цикл;
ОбластьНомер.Параметры.Заполнить(ВыборкаНомера);
ТабДок.Вывести(ОбластьНомер, ВыборкаНомера.Уровень());
   ВыборкаДетали = ВыборкаНомера.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Пока ВыборкаДетали.Следующий() Цикл
   ОбластьДетали.Параметры.Заполнить(ВыборкаДетали);
   ТабДок.Вывести(ОбластьДетали,ВыборкаДетали.Уровень());
   КонецЦикла;    
КонецЦикла;

ТабДок.Показать();
ТабДок.ЗакончитьАвтогруппировкуСтрок();

КонецПроцедуры


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Re: Отбор в Отчете
« Ответ #1: 01 Окт 2014, 15:19 »
можно вместо

 |ГДЕ
                   |    АнализДвиженияЗаявок.Регистратор.Дата МЕЖДУ &ДатаНач И &ДатаКон
                   |    И ВЫБОР
                   |            КОГДА &КемПоданаЗаявка <> ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка)
                   |                ТОГДА АнализДвиженияЗаявок.КемПоданаЗаявка = &КемПоданаЗаявка
                   |            ИНАЧЕ ИСТИНА
                   |        КОНЕЦ
                   |    И ВЫБОР
                   |            КОГДА &Участок <> ЗНАЧЕНИЕ(Справочник.Участок.ПустаяСсылка)
                   |                ТОГДА АнализДвиженияЗаявок.Участок = &Участок
                   |            ИНАЧЕ ИСТИНА
                   |        КОНЕЦ

                       |    И ВЫБОР
                   |            КОГДА &НомерЗаявки          <===== Вот сюда что дописать?????
                   |                ТОГДА АнализДвиженияЗаявок.Участок = &НомерЗаявки
                   |            ИНАЧЕ ИСТИНА
                   |        КОНЕЦ

написать так

|ГДЕ
                   |    АнализДвиженияЗаявок.Регистратор.Дата МЕЖДУ &ДатаНач И &ДатаКон
                   |    "+?(ЗначениеЗаполнено(КемПоданаЗаявка),"И АнализДвиженияЗаявок.КемПоданаЗаявка = &КемПоданаЗаявка","")+"
                   |    "+?(ЗначениеЗаполнено(Участок),"АнализДвиженияЗаявок.Участок = &Участок","")+"
                   |    "+?(ПустаяСтрока(НомерЗаявки),"","АнализДвиженияЗаявок.Участок = &НомерЗаявки")+"
                   |ИТОГИ ПО
                   |    Номер
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Re: Отбор в Отчете
« Ответ #2: 01 Окт 2014, 15:22 »
Мысли вслух...

Запрос к таблице движений регистра? Он (регистр) точно вообще нужен?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Онлайн ls600

  • ****
  • Сообщений: 322
  • РЕПУТАЦИЯ: 20
  • КПД: 6%
  • Регистрация: 2012-05-14
  • Сайт: 
  • Профессия: Программист 1С
Re: Отбор в Отчете
« Ответ #3: 02 Окт 2014, 07:12 »
если отбор не делать отчет формирует.
как только одно из полей заполняю то вылетает ошибка

{Отчет.АнализДвиженияЗаявок.Форма.ФормаОтчета.Форма(94)}: Ошибка при вызове метода контекста (Выполнить)
      Результат = запрос.Выполнить();           
по причине:
{(32, 5)}: Синтаксическая ошибка "АнализДвиженияЗаявок.Участок"
<<?>>АнализДвиженияЗаявок.Участок = &НомерЗаявки

Добавлено: 02 Окт 2014, 07:29

добавил "И", только отбор по заявкам не идет:( по КемПодано и Участку отбор без проблем
        |    АнализДвиженияЗаявок.Регистратор.Дата МЕЖДУ &ДатаНач И &ДатаКон
   |    "+?(ЗначениеЗаполнено(КемПоданаЗаявка),"И АнализДвиженияЗаявок.КемПоданаЗаявка = &КемПоданаЗаявка","")+"
   |    "+?(ЗначениеЗаполнено(Участок)," И АнализДвиженияЗаявок.Участок = &Участок","")+"
   |    "+?(ПустаяСтрока(НомерЗаявки),""," И АнализДвиженияЗаявок.Участок = &НомерЗаявки")+"

Последний раз редактировалось: ls600; 02 Окт 2014, 07:29. Причина: Объединение сообщений

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Re: Отбор в Отчете
« Ответ #4: 02 Окт 2014, 07:36 »
да, забыл про "И" )

может быть тут:
И АнализДвиженияЗаявок.Участок = &НомерЗаявки"

не участок а что-то другое?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Онлайн ls600

  • ****
  • Сообщений: 322
  • РЕПУТАЦИЯ: 20
  • КПД: 6%
  • Регистрация: 2012-05-14
  • Сайт: 
  • Профессия: Программист 1С
Re: Отбор в Отчете
« Ответ #5: 02 Окт 2014, 07:40 »
+?(ПустаяСтрока(НомерЗаявки),""," И АнализДвиженияЗаявок.НомерЗаявки = &НомерЗаявки")

вот так работает.)))
Участок это измерение в регистре!!!
С меня пиво:D


Теги:
 

"Зебра" во внешнем отчете"

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

Ответов: 0
Просмотров: 358
Последний ответ 23 Дек 2016, 22:01
от AK11
как в отчете "Главная книга" отображать для счетов столбцы не только "С кредита", но и "На дебет"

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

Ответов: 1
Просмотров: 1123
Последний ответ 13 Мар 2016, 00:55
от дфтын
Не заполняются колонки "Цена" и "Сумма" в отчете "Остатки товаров принятых на комиссию". УТ11

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

Ответов: 0
Просмотров: 467
Последний ответ 18 Янв 2017, 11:42
от VladimirMelnychenko
"Задваивание" данных в отчете

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

Ответов: 13
Просмотров: 7319
Последний ответ 15 Окт 2015, 11:21
от Mari_beginner
Программный отбор в "Документы"

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

Ответов: 3
Просмотров: 4243
Последний ответ 06 Окт 2012, 18:08
от Seolkin

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
167 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
46 Сообщений
andron81_81
42 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
BuhRust
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal