Имя: Пароль:
1C
1С v8
Сравнение 2 таблиц
,
0 r_p
 
10.10.13
12:58
Добрый день. Что-то туплю. Есть 2 ТЗ с данными. Надо сравнить их и получить результирующую таблицу с объединением. В БСП не нашел нужной процедуры. Таблицы должны связываться по числовому полю "Ключ". Проблема в том, что если появляется дублирующая строка в какой-либо таблице,то все равно идет объединение.
Запрос:
ВЫБРАТЬ
    ДанныеИЗ77.НомерДокумента,
    ДанныеИЗ77.ДатаДокумента,
    ДанныеИЗ77.СтатусДокумента,
    ДанныеИЗ77.Ключ,
    ДанныеИЗ77.НомерПоКаталогу,
    ДанныеИЗ77.НаименованиеТовара,
    ДанныеИЗ77.Количество,
    ДанныеИЗ77.Сумма
ПОМЕСТИТЬ ВТ_ДанныеИз77
ИЗ
    &ДанныеИЗ77 КАК ДанныеИЗ77
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ДанныеИз82.НомерДокумента,
    ДанныеИз82.ДатаДокумента,
    ДанныеИз82.СтатусДокумента,
    ДанныеИз82.Ключ,
    ДанныеИз82.НоменклатураКаталожныйНомер,
    ДанныеИз82.НоменклатураНаименование,
    ДанныеИз82.Количество,
    ДанныеИз82.Сумма
ПОМЕСТИТЬ ВТ_ДанныеИЗ82
ИЗ
    &ДанныеИз82 КАК ДанныеИз82
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ДанныеИз77.НомерДокумента КАК НомерДокумента77,
    ВТ_ДанныеИЗ82.НомерДокумента КАК НомерДокумента82,
    ВТ_ДанныеИз77.ДатаДокумента КАК ДатаДокумента77,
    ВТ_ДанныеИЗ82.ДатаДокумента КАК ДатаДокумента82,
    ВТ_ДанныеИз77.СтатусДокумента КАК СтатусДокумента77,
    ВТ_ДанныеИЗ82.СтатусДокумента КАК СтатусДокумента82,
    ВТ_ДанныеИз77.Ключ КАК Ключ77,
    ВТ_ДанныеИЗ82.Ключ КАК Ключ82,
    ВТ_ДанныеИз77.НомерПоКаталогу КАК НомерПоКаталогу77,
    ВТ_ДанныеИЗ82.НоменклатураКаталожныйНомер КАК НомерПоКаталогу82,
    ВТ_ДанныеИз77.НаименованиеТовара КАК НаименованиеТовара77,
    ВТ_ДанныеИЗ82.НоменклатураНаименование КАК НаименованиеТовара82,
    ВТ_ДанныеИз77.Количество КАК Количество77,
    ВТ_ДанныеИЗ82.Количество КАК Количество82,
    ВТ_ДанныеИз77.Сумма КАК Сумма77,
    ВТ_ДанныеИЗ82.Сумма КАК Сумма82
ИЗ
    ВТ_ДанныеИз77 КАК ВТ_ДанныеИз77
        ПОЛНОЕ СОЕДИНЕНИЕ ВТ_ДанныеИЗ82 КАК ВТ_ДанныеИЗ82
        ПО ВТ_ДанныеИз77.Ключ = ВТ_ДанныеИЗ82.Ключ
1 1Сергей
 
10.10.13
12:59
>>Проблема в том, что если появляется дублирующая строка в какой-либо таблице,то все равно идет объединение

А не должно?
2 r_p
 
10.10.13
13:00
Нет. Надо как раз понять в какой базе задвоение.
3 Euguln
 
10.10.13
13:01
ВЫБРАТЬ РАЗЛИЧНЫЕ не помогает?
4 r_p
 
10.10.13
13:03
(3) Нет
5 Rie
 
10.10.13
13:04
(4) А СГРУППИРОВАТЬ?
6 Euguln
 
10.10.13
13:05
Попробуй через соединение
7 sgt_koretsky
 
10.10.13
13:08
1. сгруппировать и ловить не то количество в группировке
2. добавить колонку с единицей и свернуть с суммой по этой колонке
3. вставить в Эксель, удалить дубли, залить обратно в источник
4. пробежаться глазами и найти
выбирай.
8 r_p
 
10.10.13
13:18
(7) 4 вариант нравится больше всего )
9 sgt_koretsky
 
10.10.13
13:26
(8) но самые практичные - 1 и 2 :)
10 r_p
 
10.10.13
13:37
(9) Согласен, но надо еще получить поля НомерДокумента82,НомерДокумента77, а при свертке они уйдут. Придется отказаться от них в результате.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший