Имя: Пароль:
1C
1C 7.7
v7: Быстрое сравнение справочника и ТЗ
, , ,
0 CoffeMan
 
01.12.14
12:38
Привет народ. Подскажите , есть справочник в нем больше 3-х тыс. записей. Есть ТЗ, необходимо сравнить каждую строку справочника со строками ТЗ на наличие одинаковых. Есть ли способ быстрого перебора (кроме цикла) ?
1 butterbean
 
01.12.14
12:40
запрос
2 ДенисЧ
 
01.12.14
12:40
(1) в клюшках?
3 Жан Пердежон
 
01.12.14
12:46
ппц, когда ж допилят отображение подраздела в самой ветке
4 Cube
 
01.12.14
12:46
(0) А если в ТЗ добавить колонку "Количество" и заполнить её единичками.
Потом дополнить эту ТЗ элементами справочника, заполняя "Количество" числом 10000.
Свернуть ТЗ по колонке "Номенклатура" и суммируя "Количество"...
И получим ТЗ в которой:
- Если количество меньше 10000, то этой номенклатуры в справочнике нет.
- Если количество равно 10000, то этой номенклатуры в ТЗ нет.
- Если количество больше 10000, то эта номенклатура есть и в ТЗ и в справочнике.
5 Cube
 
01.12.14
12:47
+(4) Э=э! Если не клюшки, то запрос!
6 butterbean
 
01.12.14
12:48
(2) пля.... ну хотели как лучше, получилось как обычно
7 Лодырь
 
01.12.14
12:50
(5) А если в справочнике есть табличная часть. Как будет выглядеть запрос? У человека задающего вопросы аля ТС запрос вызовет взрыв мозга )))
8 ДенисЧ
 
01.12.14
12:50
(7) в 77? Табличная часть?
9 Cube
 
01.12.14
12:51
(7) При чем здесь ТЧ?
10 dk
 
01.12.14
12:52
сравнение по скольки полям?
1с++ могет ТЗ во временную таблицу грузить и потом в запросе сравнивай
11 Classic
 
01.12.14
12:53
Чем цикл то не нравится?
12 Лодырь
 
01.12.14
12:53
(9) А что, в снеговиках в справочнике у нас нет ТЧ?
13 CoffeMan
 
01.12.14
12:54
(1) Примеров запросов по задачи, я не нашел. Если есть что-то похоже буду рад изучить.
(10) По двум полям.
(11) Работает почти час.
14 Cube
 
01.12.14
12:58
(13) Проверни мой вариант...
Тебе в результате, что получить-то надо?
15 H A D G E H O G s
 
01.12.14
12:59
(13) Работает почти час.
Херово написал.
16 Гёдза
 
01.12.14
13:00
Мердж джойн
17 dk
 
01.12.14
13:00
больше часа это капец
----
выгружай эти 2 поля из справочника в ТЗ2
составное поле
ТЗ2.Колонка3 = ""+ТЗ2.Колонка1+"#"+ТЗ2.Колонка3;
потом

тз.ВыбратьсТСроки
пока тз.получитьстроку
   стр=0
   Если тз2.найти(""+ТЗ.Колонка1+"#"+ТЗ.Колонка3, Стр, "Колонка3") = 1 тогда
      сообщить(есть дубль)
18 H A D G E H O G s
 
01.12.14
13:01
А ТаблицаЗначений большая?
19 Злопчинский
 
01.12.14
13:01
(14) потому что каждую сравниваешь с каждой итого 3 на 10 в степени 8 сравнений
20 ДенисЧ
 
01.12.14
13:01
3 тыщи записей час? О_о
21 Classic
 
01.12.14
13:02
(13)
в тз коды или ссылки?
22 Злопчинский
 
01.12.14
13:04
Мы боимся предложить показать код
23 antoneus
 
01.12.14
13:04
(13) а покажи код, который работает час.
24 CoffeMan
 
01.12.14
13:05
(20) 3 тыс. запсей только в справочнике, а еще нужно их сравнить с ТЗ в которой от 300 записей.
(21) Коды
Нашел пример запроса, буду пробовать.
25 dk
 
01.12.14
13:10
видимо выбратьэлементы 300 раз запускаешь?
26 Classic
 
01.12.14
13:13
(25)
Он НайтиПоКоду скорее всего 300 раз запускает :)

(24)
Сортируешь ТЗ, выбраешь элементы справочника по коду и в одном цикле сравниваешь. Года два назад такая тема была здесь же на мисте. Поищи. Там кода на 10 строк.
27 ДенисЧ
 
01.12.14
13:14
(22) (23) Может, лучше не надо? В понедельник-то?
28 Svetka
 
01.12.14
13:16
(24) Так ты ТЗ пребирай, раз она меньше справочника, и ищи по коду в справочнике.
Если найден - дубли.
2 + 2 = 3.9999999999999999999999999999999...