Имя: Пароль:
1C
 
Найти Дубли в ТЧ
0 myr4ik07
 
11.11.14
14:44
Найти хочу дубли в ТЧ по колонке Номенклатура

Запрос.Текст =
        "ВЫБРАТЬ
        |    РасходнаяТовары.Номенклатура
        |ИЗ
        |    Документ.Расходная.Товары КАК РасходнаяТовары
        |ГДЕ
        |    РасходнаяТовары.Ссылка = &Ссылка
        |
        |СГРУППИРОВАТЬ ПО
        |    РасходнаяТовары.Номенклатура";

    Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка.Товары);

получил ТЧ, сгруппировал Колонку, далее что?
1 Галахад
 
гуру
11.11.14
14:46
ВЫБРАТЬ
РасходнаяТовары.Номенклатура,
Сумма(1)
ИЗ
Документ.Расходная.Товары КАК РасходнаяТовары
...
2 Wobland
 
11.11.14
14:46
дальше найти в ТЧ реквизит про единицу измерения
3 myr4ik07
 
11.11.14
14:49
(1) пожалуйста, подробней
4 myr4ik07
 
11.11.14
14:49
(2) зачем?
5 butterbean
 
11.11.14
14:49
(0) добавь ИМЕЮЩИЕ СУММА(1) > 1
6 Wobland
 
11.11.14
14:50
(4) для размышлений
7 Wobland
 
11.11.14
14:51
а вообще учётная система, которой мешают дубли в ТЧ - плохая, негодная система
8 myr4ik07
 
11.11.14
14:51
(5) а для далее как проверить есть ли повт. строки?
9 kosts
 
11.11.14
14:51
Вот так можно. Удобно, что сразу видно будет и номенклатуру и номера строк где идет задвоение. (Если запрос конечно корректный, но вроеде так).

ВЫБРАТЬ РАЗЛИЧНЫЕ
    РеализацияТоваровУслугТовары.НомерСтроки КАК НомерСтроки,
    РеализацияТоваровУслугТовары.Номенклатура
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары1
        ПО РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслугТовары1.Ссылка
            И РеализацияТоваровУслугТовары.НомерСтроки <> РеализацияТоваровУслугТовары1.НомерСтроки
            И РеализацияТоваровУслугТовары.Номенклатура = РеализацияТоваровУслугТовары1.Номенклатура
ГДЕ
    РеализацияТоваровУслугТовары.Ссылка = &Ссылка

УПОРЯДОЧИТЬ ПО
    НомерСтроки
10 myr4ik07
 
11.11.14
14:51
(7) мне для себя
11 butterbean
 
11.11.14
14:52
(7) может он цены устанавливает, или планы делает.. мало-ли чего еще
12 myr4ik07
 
11.11.14
14:52
(9) ну выборка выборкой, а условие по чему делать ?! :S
13 butterbean
 
11.11.14
14:53
(8) что??
14 Крошка Ру
 
11.11.14
14:53
(9) Соединение табчасти документа саму на себя - не лучший вариант. Мягко говоря.
15 kosts
 
11.11.14
14:54
(14) Чем это хуже чем соединение одних таблиц с другими?...
16 Крошка Ру
 
11.11.14
14:54
(12) А головой немного подумать?
17 Крошка Ру
 
11.11.14
14:55
(15) Временем выполнения
18 kosts
 
11.11.14
14:56
(17) Не убедительно
19 myr4ik07
 
11.11.14
14:56
(18) та что то до кучи не могу собрать код, думал уже
20 Крошка Ру
 
11.11.14
14:56
(18) "А я тебя ... не убеждаю. Это факт." (с) Snatch
21 kosts
 
11.11.14
14:58
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка.Товары); => Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
22 ssh2QQ6
 
11.11.14
15:00
(0)

ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Номенклатура,
    КОЛИЧЕСТВО(РеализацияТоваровУслугТовары.Номенклатура) КАК КоличествоСтрок
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
    РеализацияТоваровУслугТовары.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
    РеализацияТоваровУслугТовары.Номенклатура

ИМЕЮЩИЕ
    КОЛИЧЕСТВО(РеализацияТоваровУслугТовары.Номенклатура) > 1
23 Злопчинский
 
11.11.14
15:02
"Не пускайте детей в интернет, интернет от этого тупеет"...
24 hhhh
 
11.11.14
15:04
(20) думаете если соединим таблицы РеализацияТОваровУСлуг и ПоступлениеТоваровУслуг, это быстрее будет чем Реализация с Реализацией? ИМХО медленнее.
25 Мыш
 
11.11.14
15:11
(24) Так понимаю, Крошка говорит что сначала надо выбрать табличную часть во временную таблицу
26 Maniac
 
11.11.14
15:16
1) Выгрузить в ТЗ
2) Свернуть по полю номенклатура
3) Бежим по этой ТЗ и по кажлдой строке ТЗ применяем НайтиСтроки в табличноой части.

Методж найти строки - получает массив найденных строк.

4) если Массив больше 1 значит дубли по этой позиции.
Можем вывести сообщения.
27 Мыш
 
11.11.14
15:28
(26) Ты всегда таким методом пишешь?
28 butterbean
 
11.11.14
15:28
(26) пздц
29 Maniac
 
11.11.14
15:29
(27) очень простой метод и гибкий, сразу можно выпошлнить какие то действия, так как эти строки доступны
30 Мыш
 
11.11.14
15:30
(9) Аааа. Глянул внимательнее. Ужаснулся )))
31 Maniac
 
11.11.14
15:30
И так как это документов, явно там не миллиард строк. Будет работать по скорости очень приемлемо. даже глазом не успеете моргнуть.
32 Мыш
 
11.11.14
15:31
(29) Эмм. Простой - вряд ли. Гибкий - да. А ещё - пожиратель ресурсов. )
33 Maniac
 
11.11.14
15:32
(32) простой очень. как два пальца.
И не пождиратель. с ТЗ 1С летает на всю катушку.
34 тшл
 
11.11.14
15:32
(26) 1 и 2 пункты лишние в остальном даже 5000 строк нормально отрабатывают.
35 Мыш
 
11.11.14
15:32
(31) Скорость зависит не только от количества строк, но и от количества колонок.
36 Maniac
 
11.11.14
15:33
ну можно если хотите без свертки и запрос сделать, чтобы запрос возвращал номенклатуру табличной части.
37 Maniac
 
11.11.14
15:33
(35) ок. договорились. Выгрузить колонку.
38 Мыш
 
11.11.14
15:33
(33) Смотря с чем сравнивать. Запросом проще и короче.
39 Мыш
 
11.11.14
15:34
(37) Кого-то кто-то уговаривал?
40 kosts
 
11.11.14
15:38
(30) Спасибо. Я еще и крестиком могу вышивать.
41 Мыш
 
11.11.14
15:41
(40) Не за что. У вас же там соединение идет по всем документам. План запроса посмотрите, загрузку сервера на приличном объеме данных.
42 kosts
 
11.11.14
17:14
(41) Завтра уже попробую
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.