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

Ошибка НеверныеПараметры постоянно

Автор Евгений_Sobolev, 04 июн 2012, 16:19

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

Евгений_Sobolev

Подскажите какие неверные параметры здесь???

РеализацияТоваровУслугТовары.Ссылка.Контрагент =
Выбор
Когда &Контрагент = Неопределено
Тогда &Контрагент = Значение(РеализацияТоваровУслугТовары.Ссылка.Контрагент)
КОНЕЦ

Или подскажите как сделать условие чтобы при пустом поле выбора группировки по контрагенту брались все контрагенты как было бы если бы условия не было совсем.   

cska-fanat-kz

РеализацияТоваровУслугТовары.Ссылка.Контрагент В ИЕРАРХИИ (&Контрагент)
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Евгений_Sobolev

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

cska-fanat-kz

вместо

РеализацияТоваровУслугТовары.Ссылка.Контрагент = &Контрагент
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Евгений_Sobolev

всё равно не работает

{(16, 62)}: Не задано значение параметра "Контрагент"
И РеализацияТоваровУслугТовары.Ссылка.Контрагент В ИЕРАРХИИ(<<?>>&Контрагент)

racushka

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

Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
Запрос.УстановитьПараметр("Контрагент", Контрагент);

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

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

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
//Дальнейшие действия с выбранными записями
КонецЦикла;

Если отбор строк табличных частей выполняется только по одному контрагенту, то так. Переменной Контрагент до запроса нужно присвоить необходимое значение (тип значения СправочникСсылка.Контрагенты).
Если Контрагентов много, то тогда переменную Контрагент объявить как массив или список значений и строчку
| И РеализацияТоваровУслугТовары.Ссылка.Контрагент = &Контрагент";
заменить на

| И РеализацияТоваровУслугТовары.Ссылка.Контрагент В(&Контрагент)";
По поводу строчки Тогда &Контрагент = Значение(РеализацияТоваровУслугТовары.Ссылка.Контрагент)
ЗНАЧЕНИЕ() можно использовать только по отношению к предопределенным элементам, т.е например к предопределенному элементу плана счетов, или справочника, или значение перечисления, которое задано в конфигураторе.

racushka

Да, что-то форматирование не корректно отработало...( Sorry

racushka

Хотя правильно писал cska-fanat-kz В ИЕРАРХИИ, если нужна группировка, при чем условие можно добавлять в текст запроса по условию, простите за тавтологию.
Например,
Условие1 = "|ГДЕ
        |   РеализацияТоваровУслугТовары.Ссылка.Дата >= &ДатаНачала
        |   И РеализацияТоваровУслугТовары.Ссылка.Дата <= &ДатаОкончания";
Условие2 = "|ГДЕ
      |   РеализацияТоваровУслугТовары.Ссылка.Дата >= &ДатаНачала
      |   И РеализацияТоваровУслугТовары.Ссылка.Дата <= &ДатаОкончания
      |   И РеализацияТоваровУслугТовары.Ссылка.Контрагент В ИЕРАРХИИ(&Контрагент)";


Если Контрагент.Количество<>0 Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, Условие1, Условие2)
КонецЕсли
Как-то так.

cska-fanat-kz

К тексту запроса это уже не относится.

Не хватает
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

Условие "ВИерархии" включает в себя одновременно 3 возможности:
1. Если в параметр передать пустую строку - получим отбор по всем
2. Если передать ссылку на элемент - получим отбор аналогичный " = "
3. Если передать ссылку на группу - получим отбор аналогичный " В "
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

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

Рейтинг@Mail.ru

Поиск