Версия для печати темы (https://pro1c.org.ua/index.php?s=abdab278eec029a04341b195490100cc&showtopic=40476)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.1 (8.0) _ Сравнение 2-х ТЗ

Автор: lensky 22.09.17, 10:33

Доброго времени суток!
Сравниваю 2 ТЗ по двум колонкам. Вот запрос

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


В условии всегда выскакивает в "иначе". условие НК = НР почему то ЛОЖЬ, хотя должна быть ИСТИНА, а условие КК > КР выдаёт: {(1)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата).

Где я накосячил? Подскажите

Автор: Petre 22.09.17, 10:50

lensky @ Сегодня, 11:33 * ,
1. Колонка одной тз не может быть равной колонке другой тз, т. к. тз разные.
2. Колонки нельзя сравнивать на больше/меньше.

Автор: lensky 22.09.17, 10:53

Petre @ Сегодня, 11:50 * ,
А как сравнить тогда их содержимое?

Автор: Petre 22.09.17, 10:58

lensky @ Сегодня, 11:53 * ,
Если вы хотите сравнить содержимое, то оно берется из текущей строки, например:

Для Каждого Стр1 Из ТЗР Цикл
    НР = Стр1.Номенклатура;
    КР = Стр1.Количество;

Автор: lensky 22.09.17, 10:59

Petre @ Сегодня, 11:58 * ,
Точно, вот я балбес
Спасибо

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua