Вход | Регистрация

1С:Предприятие ::

Метки: 

сравнить таблицы значений

Я
   unbred
 
02.11.17 - 18:55
зап2=новый запрос;
 зап2.текст=
     "ВЫБРАТЬ
     |    таблица2вт.артикул КАК артикул,
     |    таблица2вт.размер КАК размер
     |ПОМЕСТИТЬ таблица2вт
     |ИЗ
     |    &таблица2вт КАК таблица2вт
     |;
     |
     ////////////////////////////////////////////////////////////////////////////////

     |ВЫБРАТЬ
     |    таблицаВТ.артикул КАК артикул,
     |    таблицаВТ.размер КАК размер
     |ПОМЕСТИТЬ таблицаВТ
     |ИЗ
     |    &таблицаВТ КАК таблицаВТ
     |;
     |
     ////////////////////////////////////////////////////////////////////////////////

     |ВЫБРАТЬ
     |    таблицаВТ.артикул,
     |    таблицаВТ.размер,
     |    таблица2вт.артикул КАК артикул1,
     |    таблица2вт.размер КАК размер1
     |ИЗ
     |    таблица2вт КАК таблица2вт
     |        ЛЕВОЕ СОЕДИНЕНИЕ таблицаВТ КАК таблицаВТ
     |        ПО таблица2вт.артикул <> таблицаВТ.артикул
     |            И таблица2вт.размер <> таблицаВТ.размер"
    ;
    зап2.УстановитьПараметр("таблицаВТ",таблица);
    зап2.УстановитьПараметр("таблица2вт",таблица2);

    рез2=зап2.Выполнить().Выгрузить();

для таблица и таблица2 написаны такие штуки


    таблица=новый ТаблицаЗначений;
    таблица.Колонки.Добавить("артикул",новый ОписаниеТипов("строка"));
    таблица.Колонки.Добавить("размер",новый ОписаниеТипов("строка"));
    
     Для каждого СтрокаТЗ Из РЕЗ1 Цикл 
      
     ЗаполнитьЗначенияСвойств(таблица.Добавить(), СтрокаТЗ) 
      

 КонецЦикла;

при выполнении запроса ошибка о несоответствии типов

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(203)}: Ошибка при вызове метода контекста (Выполнить)
    рез2=зап2.Выполнить().Выгрузить();
по причине:
{(27, 25)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
 неограниченной длины и поля несовместимых типов.
ПО таблица2вт.артикул <<?>><> таблицаВТ.артикул

подскажите пожалуйста ,где ошибка?
 
 
   Cyberhawk
 
1 - 02.11.17 - 18:56
Нельзя сравнивать поля 
неограниченной длины
   unbred
 
2 - 02.11.17 - 18:57
(1) тоесть квалификатор обязателен?
   Cyberhawk
 
3 - 02.11.17 - 18:57
ВЫРАЗИТЬ КАК Строка(1024)
   Филиал-msk
 
4 - 02.11.17 - 18:58
Неограниченный размер. Что-то в этом есть.
   unbred
 
5 - 02.11.17 - 19:13
(1) спасибо. не знаю,получил ли я данные,но ошибки нет. теперь "недостаточно памяти")))   (файловый вариант)
   Cyberhawk
 
6 - 02.11.17 - 21:22
(5) Плохой запрос
   novichok79
 
7 - 02.11.17 - 21:57
упорядочи все колонки каждой таблицы а потом эбни это дело в значениевстрокувнутр, а потом сравни как строки, не?
   novichok79
 
8 - 02.11.17 - 21:59
и соединять надо полным соединением, а не лошевым левым

ВЫБРАТЬ
    таблицаВТ.артикул,
    таблицаВТ.размер,
    таблица2вт.артикул КАК артикул1,
    таблица2вт.размер КАК размер1
ИЗ
    таблица2вт КАК таблица2вт
        ПОЛНОЕ СОЕДИНЕНИЕ таблицаВТ КАК таблицаВТ
        ПО таблица2вт.артикул = таблицаВТ.артикул
            И таблица2вт.размер = таблицаВТ.размер
Где таблицаВТ.артикул есть null или таблица2вт.артикул есть null

есть запрос не пустой, то значит сасяо, то есть таблицы не равны. ну и конечно таблицы должны быть без дублирующихся строк


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует