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

1С:Предприятие :: 1С:Предприятие 8 общая

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

сравнить таблицы значений
Я
   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 человек.
Рекламное место пустует