Имя: Пароль:
1C
1С v8
не определен параметр внешний отчет
0 kintevy
 
04.10.22
10:01
ВЫБРАТЬ
    ПриходныйКассовыйОрдер.Дата КАК Дата,
    ПриходныйКассовыйОрдер.Номер КАК Номер,
    ПриходныйКассовыйОрдер.СуммаДокумента КАК СуммаДокумента,
    ПриходныйКассовыйОрдер.лПодразделение КАК лПодразделение,
    ПриходныйКассовыйОрдер.Контрагент КАК Контрагент,
    ПриходныйКассовыйОрдер.ДоговорКонтрагента КАК ДоговорКонтрагента,
    ПриходныйКассовыйОрдер.Ссылка КАК Документ,
    "ПКО" КАК ВидОперации
ПОМЕСТИТЬ ВТ_Документы
ИЗ
    Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
ГДЕ
    ПриходныйКассовыйОрдер.Дата МЕЖДУ &ДатаНач И &ДатаКон
    И ПриходныйКассовыйОрдер.Проведен <> &Проведен
    И ПриходныйКассовыйОрдер.ПометкаУдаления = &ПометкаУдаления

ОБЪЕДИНИТЬ ВСЕ

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Документы.Дата КАК Дата,
    ВТ_Документы.Номер КАК Номер,
    ВТ_Документы.СуммаДокумента КАК СуммаДокумента,
    ВТ_Документы.лПодразделение КАК лПодразделение,
    ВТ_Документы.Контрагент КАК Контрагент,
    ВТ_Документы.ДоговорКонтрагента КАК ДоговорКонтрагента,
    ВТ_Документы.Документ КАК Документ,
    ВТ_Документы.ВидОперации КАК ВидОперации
ИЗ
    ВТ_Документы КАК ВТ_Документы
ГДЕ
    ВЫБОР
            КОГДА &ВидОперации <> НЕОПРЕДЕЛЕНО
                ТОГДА ВТ_Документы.ВидОперации = &ВидОперации
            ИНАЧЕ ИСТИНА
        КОНЕЦ = ИСТИНА

есть такой код, на вид операции ставится галочка и выбираются 2 позиции, все работает. если галочка не ставится, то пишет что не задано значение параметра. как это исправить?
1 vicof
 
04.10.22
10:14
Сделать параметр обязательным
2 Kassern
 
04.10.22
10:15
(0) "как это исправить?" - задать параметр. Можно и при компоновке программно это сделать.
Когда вы пишите в самом запросе условие с параметром, то этот параметр нужно указывать всегда.
Только я одного не понимаю, что вам мешает использовать пользовательские отборы?
3 kintevy
 
04.10.22
10:16
(1) может потребоваться так, чтобы выходил целый список без отбора
4 Гипервизор
 
04.10.22
10:17
А такое вообще может быть, что ВидОперации не указан в этих документах?
"ГДЕ ВТ_Документы.ВидОперации = &ВидОперации ИЛИ &ВидОперацииНеЗаполнен".
Соответствующий параметр заполнять в зависимости от параметра &ВидОперации.
5 kintevy
 
04.10.22
10:19
(4) да, может. более того, в одном из документов вообще нет этого реквизита
6 kintevy
 
04.10.22
10:19
(2) можно подробнее?
7 Kassern
 
04.10.22
10:21
(6) Уберите вообще условие с видом операции из запроса и перенесите его в СКД на вкладку Настройки->Отбор. Потом по этому отбору ПКМ ->Свойство элемента пользовательских настроек->Включать в пользовательские настройки.
8 Kassern
 
04.10.22
10:22
Можете по умолчанию сделать не активным отбор. Можно вообще его не переносить, а юзверы сами этот отбор добавят.
9 kintevy
 
04.10.22
10:30
(8) он не может быть добавлен в отбор, так как нет соответствующего поля в доступных полях. реквизит вид операции присутствует только в одном из документов. идея с отбором звучит более чем логично, но нужно задать параметр если галки нет
10 Kassern
 
04.10.22
10:34
(9) Тогда полезайте в событие ПриКомпоновке и явно задавайте значение параметра, когда он не выбран.
11 kintevy
 
04.10.22
10:44
(10) Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
ПараметрРасчета = Новый ПараметрКомпоновкиДанных("ВидОперации");
ЗначениеРасчета = Ложь;    
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(ПараметрРасчета, ЗначениеРасчета);
    
КонецПроцедуры


Пишу что-то вроде этого и не работает
12 Kassern
 
04.10.22
10:54
(11) Раз на булево перешли, то и условие в запросе поправьте:
Вместо: КОГДА &ВидОперации <> НЕОПРЕДЕЛЕНО
Сделать типа: КОГДА &ИспользоватьОтборПоВидуОперации Тогда
Т_Документы.ВидОперации = &ВидОперации
Иначе Истина Конец

Параметр ИспользоватьОтборПоВидуОперации скройте и делайте Истина, если заполнен параметр &ВидОперации и Ложь, если не заполнен.
13 kintevy
 
04.10.22
13:09
(12) не получается решить проблему он пишет не задано значение параметра "вид операции" когда вид операции<> неопределено
14 Kassern
 
04.10.22
13:13
(13) Я же вам написал поменять конструкцию в запросе, зачем вы оставили "вид операции<> неопределено"?
В общем у вас должно быть 2 параметра, первый как флаг (булево) определяет, используется отбор или нет. Вы его программно задаете При компоновке, когда анализируете параметр "ВидОперации".
15 kintevy
 
04.10.22
13:18
(14) и соответственно условие проверки на галочку нужно проверять в компоновке?
16 Kassern
 
04.10.22
13:21
(15) Именно, смотрите, заполнен ли параметр с видом операции, если нет, то и отбор делать не надо (указываете ложь к примеру)