Имя: Пароль:
1C
1С v8
Запрос. Ошибка "Неверные параметры"
0 redding
 
31.10.13
10:20
ВЫБРАТЬ
                                             |    ДоговорыКонтрагентов.Ссылка КАК Ссылка,
                                             |    ДоговорыКонтрагентов.Код КАК ДоговорКод,
                                             |    ДоговорыКонтрагентов.Наименование КАК ДоговорНаименование,
                                             |    ДоговорыКонтрагентов.ВалютаВзаиморасчетов.Код КАК ВалютаВзаиморасчетовКод,
                                             |    ДоговорыКонтрагентов.Организация.ИНН КАК ОрганизацияИНН,
                                             |    ДоговорыКонтрагентов.Организация.КПП КАК ОрганизацияКПП,
                                             |    ДоговорыКонтрагентов.Организация.Наименование КАК ОрганизацияНаименование,
                                             |    ДоговорыКонтрагентов.Владелец.Наименование КАК Владелец,
                                             |    ДоговорыКонтрагентов.Дата КАК ДоговорДата,
                                             |    ДоговорыКонтрагентов.Номер КАК ДоговорНомер,
                                             |    ДоговорыКонтрагентов.ВидДоговора КАК ВидДоговора,
                                             |    &П КАК ТипБазы,
                                             |    ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК СКО,
                                             |    ПРЕДСТАВЛЕНИЕ(ДоговорыКонтрагентов.ВидДоговора) КАК ВидДоговора1
                                             |ИЗ
                                             |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, &ДС, , , , , ) КАК ХозрасчетныйОстаткиИОбороты
                                             |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
                                             |        ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = ДоговорыКонтрагентов.Владелец
                                             |            И ХозрасчетныйОстаткиИОбороты.Субконто2 = ДоговорыКонтрагентов.Ссылка
                                             |            И ХозрасчетныйОстаткиИОбороты.Организация = ДоговорыКонтрагентов.Организация
                                             |ГДЕ
                                             |    ДоговорыКонтрагентов.ЭтоГруппа = ЛОЖЬ
                                             |    И ДоговорыКонтрагентов.Владелец = &Владелец2
                                             |    И ДоговорыКонтрагентов.Организация.Код В (&ОргОтб1)
                                             |    И ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток <> 0

СписокКодовКонтрагентов3=Соединение.NewObject("СписокЗначений");
        Для Номер = 0 По СписокКонтр.Количество()-1 Цикл
            ЗначениеКонтр1 = СписокКонтр.Получить(Номер).Значение.Код;
            ОргВыбрать1=Выбор_Орг_По_Контр(СокрЛП(ЗначениеКонтр1));
            СписокКодовКонтрагентов3.Добавить(ОргВыбрать1);
        КонецЦикла;
        ЗапросПП.УстановитьПараметр("ОргОтб1",СписокКодовКонтрагентов3);
        РЗ2 = ЗапросПП.Execute().Unload();

Скрыть


Вываливается вот с такой ошибкой:

{Отчет.Выяв_договоров.Форма.ФормаОтчета.Форма(634)}: Ошибка при вызове метода контекста (Выполнить)
РЗ2 = ЗапросПП.Execute().Unload();
по причине:
{(25, 41)}: Неверные параметры
И ДоговорыКонтрагентов.Организация.Код <<?>>В (&ОргОтб1)

Несколько аналогичных запросов к той же базе с передачей в качестве параметра спискаска значений нормально отрабатывают.
1 1dvd
 
31.10.13
10:22
А какой смысл отбирать именно по коду? Почему не хотите пользоваться ссылками?
2 Рэйв
 
31.10.13
10:25
(0)наверное у тебя в ОргОтб1 не коллекция
3 1dvd
 
31.10.13
10:26
ЗЫ
Вон не впадлу же кому-то постоянно язык переключать при кодинге...
4 AllJoke
 
31.10.13
10:28
Выбор_Орг_По_Контр(СокрЛП(ЗначениеКонтр1)) - а это что за фугкция? Чего она там творит?

И ещё: ДоговорыКонтрагентов.Организация.Код - Число, а ОргОтб1 массив строк, не?
5 redding
 
31.10.13
10:30
(2) Коллекция, смотрел отладчиком.
6 Рэйв
 
31.10.13
10:31
(5) Тогда возможно в
ДоговорыКонтрагентов.Организация у тебя пустая ссылка.
Тогда  .Код даст NULL
7 Рэйв
 
31.10.13
10:32
хотя...Может и не даст.
8 redding
 
31.10.13
10:32
(4) Строки в список записываются. Вот отрывок функции:
Функция Выбор_Орг_По_Контр(Кодд)

    Если СокрЛП(Кодд) = "ЦО0001700" Тогда
        Контр = "ЦО0000024";
        
    ИначеЕсли СокрЛП(Кодд) = "Б00003250" Тогда
        Контр = "МХ0000003";
Возврат Контр

ДоговорыКонтрагентов.Организация.Код - Строка
9 1dvd
 
31.10.13
10:34
(8) оперируй ссылками
10 Wobland
 
31.10.13
10:35
(8) легко вернёт неопределену
11 redding
 
31.10.13
10:37
(9) Отчет уже сделан, переписывать смысла не имеет. (10)Возвращает нужны значения, в Списокзначений тоже все нормально записывается.
12 Рэйв
 
31.10.13
10:39
(11)"Лучше день потерять- потом за 5 минут долететь"(С)Крылья,ноги,хвосты

Переделал бы лучше и не мучился .А то потом будет каждый раз что-нить всплывать, а ты будешь голову ломать и заплатки клепать.
13 Wobland
 
31.10.13
10:40
ДоговорыКонтрагентов.Организация является нуллом, не?
14 AllJoke
 
31.10.13
10:44
А коды чтоли одинаковыми могут быть????

Тогда лучше сделать списко организаций - ОргОтб1
И в запросе установить параметр:
ДоговорыКонт рагентов.Организация В ОргОтб1
15 AllJoke
 
31.10.13
10:44
Нафига по кодам то?
16 AllJoke
 
31.10.13
10:44
Если код отечает за уникальность, то можно и по ссылкам организаций. Ну и правильно Wobland говорит - проверка на NULL
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший