Имя: Пароль:
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у почти пофиг, что там написано
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn