Имя: Пароль:
1C
1С v8
Не сравниваются значения в запросе из списка значений
0 DJZT
 
02.10.13
15:13
Делаю такую штуку

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

Заполнение Кодов ВОТ

ТекЛист = Книга.WorkSheets(ЛистКонтрагентов);
    ТекЛист.Activate();        
    
    Список = Новый СписокЗначений;
    
    Строка     = НачальнаяСтрокаКонтрагента;
    
    Пока ТекЛист.Cells(Строка, 1).Value <> Неопределено  Цикл
        Значен = ТекЛист.Cells(Строка, 2).Value;
        Список.Добавить(Значен);
        Сообщить("<--Лист " + ЛистКонтрагентов + ": B" + Строка + "  Значение: |" + Значен + "|");
        Строка = Строка + 1;
    КонецЦикла;
    Сообщить("Всего кодов ЕГРПОУ " + Список.Количество() + "шт");
    
    Возврат Список;


Всё дело в том, что в список заполняется, а при сравнении в результате запроса ничего нет. В консоли работает. Коды контрагентов соответствуют
1 shuhard
 
02.10.13
15:13
(0) используй не список, а массив
2 DJZT
 
02.10.13
15:15
пробывал. и ТЗ пробывал. не работатет
3 SeraFim
 
02.10.13
15:19
В ИЕРАРХИИ ????

У тебя в списке - строки, причем тут "В ИЕРАРХИИ"?
4 SeraFim
 
02.10.13
15:20
и вообще - научись работать с временными таблицами
5 DJZT
 
02.10.13
15:27
(4) разбил запрос на 2 что бы контролировать ситуацию. Для отладки.
(3) ни "В" ни "В ИЕРАРХИИ" НЕ РАБОТАЕТ. SQLу почти пофиг, что там написано