Имя: Пароль:
1C
1C 7.7
v7: запросы на чудном встроенном языке.
0 botman4
 
07.11.15
20:45
Помогите с запросом
ТекстЗапроса = "         
        |спр1 = справочник.Номенклатура.Наименование;
        |спр2 = справочник.Номенклатура.Наименование;
        |код1 = справочник.Номенклатура.код;
        |код2 = справочник.Номенклатура.код;
        |группировка спр1;
        |группировка спр2;
        |группировка код1;
        |группировка код2;
        |условие(код1 <> код2);
        |условие(спр1 = спр2);"; // (условие(спр1 в спр2);

нифига не показывает. Вообще неплохо знаком с SQl запросами, делал по анологии, но ничего не показывает.
Подскажите, что не так?
Спасибо!
1 zak555
 
07.11.15
20:46
Cловами расскажи, что хочешь получить
2 Остап Сулейманович
 
07.11.15
20:49
(0) "условие(код1 <> код2)".
При том, что код у одного и того же элемента всегда одинаковый сам с собой.
ЗЫ. Чудной запрос на чудном языке.
3 oslokot
 
07.11.15
20:51
Не хватает хотя бы одной функции в клюшечном запросе, как то так
4 botman4
 
07.11.15
20:54
в справочнике Номенклатура найти одинаковое наименование, но разные коды.
напишу на sql

Select table1.cod, table1.name from nomenklatura table1, nomenklatura table2

where table1.cod <> table2.cod
and table1.name = table2.name

Я обращаюсь к одной таблице дважды, и ищу в ней совпадения по Name и различия по cod(PRIMARY KEY)
5 Garykom
 
гуру
07.11.15
21:06
(4) хыхы
эта задачка вообще не так делается на 1С ))

табличку строишь... Наименование-Количество
в Наименования все наименования суешь
а в Количество 1 пишешь

далее лТЗ.Свернуть("Наименование", "Количество");

далее сортируешь по "Количество" и вот если кол-во >1 то искомые дубли список ))
6 Злопчинский
 
07.11.15
21:07
(3) для справочников функции не нужны
7 botman4
 
07.11.15
21:12
(5) Спасибо! я решил эту задачу сравнивая две ТЗ ,но блин, на sql все просто, вот и думаю может тут запросом будет просто, ааа нет!
спасибо еще раз.
8 viktor_vv
 
07.11.15
21:33
(7) Запросом все просто :).

Двумя запросами

ТекстЗапроса = "        
        |спр1 = справочник.Номенклатура.Наименование;
        |группировка спр1;
        |Функция Кол = Счётчик() ; //
        |условие(Запрос.Кол > 1); // не совсем уверен в этом условии
Получаем список задвоенных наименований , загоняем в списокЗначений, в следущем запросе используем в условии получаем список элементов.

Одноим запросом

ТекстЗапроса = "        
        |спр1 = справочник.Номенклатура.Наименование;
        |Эл = справочник.Номенклатура.ТекущийЭлемент();
       |Функция Кол = Счётчик() ; //
        |группировка спр1;
        |группировка Эл;
        |Функция Кол = Счётчик() ; //

Обходим группировки, там где по верхней группировке Кол больше 1 и выводим элементы.
9 viktor_vv
 
07.11.15
21:38
(8) + ТВместо

        |Эл = справочник.Номенклатура.ТекущийЭлемент();

надо

        |Эл = справочник.Номенклатура.ТекущийЭлемент;
Независимо от того, куда вы едете — это в гору и против ветра!