Имя: Пароль:
1C
 
Супер-уникальный поиск дублей в любой ТЗ по любым критериям
0 Eugeneer
 
06.09.22
22:10
Мой ге... не .... мой Маня дарит вам. Так как и вы помогаете мне на форуме, хотя тут нормальных то людей способных дельно ответить - единицы. Остальные обычно пос.. приходят в тему.

Конкурс на лучший алгоритм. Из любой, абсолютной любой ТЗ получить список дублей.
Определить, вычленить, убрать - да что угодно то и делайте. Главное что это их очень быстро определит и не каким то выборками, переборками таблицы. Никаких там НайтиСтроки, Свернуть и прочая тормознутая фигня.

Заявляю что я сделал это первым. Все что в интернете - отстой. Все что то сворачивают, бегают по циклам, Найти...НайтиСтроки.. жесть жестяная. Все тормоза ужасные.
Итак все очень и очень просто!!!

Берется любая ТЧ / ТЗ (в которой есть колонка Номер строки). Кидаем в запрос.

В запросе перечень каких то полей - критериев. Например - номенклатура, но могут быть абсолютно любые.

А чтобы впоймать дубли все что нужно сделать это

|    МИНИМУМ(ВременнаяТаблица.НомерСтроки) КАК НомерСтрокиМин,
|    МАКСИМУМ(ВременнаяТаблица.НомерСтроки) КАК НомерСтрокиМакс

Так вот. Там где НомерСтрокиМин = НомерСтрокиМакс - это не дубли.
А все где <> дубли! Согласно указанным критериям выборки.

Далее вы можете использовать это полученное знание по своему усмотрению.

А если хотите сразу мгновенно получить в результате из всей огромной таблицы - в 100 000 строк только дубли, то в запросе добавляется

|ИМЕЮЩИЕ
|    НЕ МИНИМУМ(ВременнаяТаблица.НомерСтроки) = МАКСИМУМ(ВременнаяТаблица.НомерСтроки)";  

И готово. Работает с бешанной скоростью. В тестил на 100к, 1 миллионе позиций. Все работает секунды.
1 mikecool
 
06.09.22
22:12
ээээээ...
2 Злопчинский
 
06.09.22
22:12
по заглавию угадал автора
3 mikecool
 
06.09.22
22:13
Колумб Америку открыл, прекрасный был моряк
4 mikecool
 
06.09.22
22:16
а Женя подарил нам какой то чики-бряк ))
5 timurhv
 
06.09.22
22:30
(0) Что за номер строки? Это нужно сперва пронумеровать? Т.е. перебрать таблицу?

>не каким то выборками, переборками таблицы
...
>А все где <> дубли! Согласно указанным критериям выборки.

Уже было, п.1
https://webcache.googleusercontent.com/search?q=cache:Nj6G3ucgRr0J:https://is1c.ru/about/pc/article/proverka-na-nalichie-dubliruyushchikhsya-strok-v-tablichnykh-chastyakh/&cd=1&hl=ru&ct=clnk&gl=ru
6 TormozIT
 
гуру
06.09.22
22:33
А таким способом можно найти супер дубли?
7 Злопчинский
 
06.09.22
22:34
а что есть "супердубли"..?
8 Eugeneer
 
06.09.22
22:36
(5) отлично тоже. жалко такой сайт нифига не выдается в поиске
9 timurhv
 
06.09.22
22:37
Добавьте 2 строчки в таблицу, в 1-ой будет текст "ААА", во второй "ААа", потом выполните ваш запрос, сильно удивитесь. Жду 2-ой сезон сериала
10 RomanYS
 
06.09.22
22:38
(0) часто удобнее использовать количество() чтобы видеть количество дублей. Но мин и Макс тоже не супер ноу-хау)
11 Eugeneer
 
06.09.22
22:42
(10) количество класс чтобы увидеть количество. Мин-Макс как минимум первый и последний дубль. и диапазон.

Мне нужно было выводить отчет. С сортировкой по номерам строк. Так как без Мин - вообщевсе было хаотично. А нужно было оставить порядок.

А Мин-макс позволил и сортировку вывести - и заодно я в колонку с номером строки вывел номера строки Мин / Макс.
Количество кстати тоже хорошая штука. Добавлю.
12 Eugeneer
 
06.09.22
22:54
Ну и хорошо что собрали (0) и (5). Различные варианты. И то и то на все случаи.
13 H A D G E H O G s
 
06.09.22
23:50
Лучшие мотивационные курсы - это ветки Осипова и Шекина на Мисте.
14 Krendel
 
07.09.22
04:02
(0) Дарю бесплатно сортировку по столбцу и оператора
15 Конструктор1С
 
07.09.22
06:15
Вот что происходит, когда толком программировать не научился. Сначала насоздает МегаСуперТаблицыЗначенийСМиллиономКолонок, а потом доблестно решает проблемы, порожденные своим кривым поделием

https://ru.wikipedia.org/wiki/Божественный_объект
16 Eugeneer
 
07.09.22
07:25
(15) не завидуй
17 forforumandspam
 
07.09.22
07:26
(3) Женя переплюнул Колумба.
19 НафНаф
 
07.09.22
07:38
вот что бывает, когда нет LINQ
20 Eugeneer
 
07.09.22
07:44
(19) небось побежал переписывать свой код с Свернуть и НайтиСтроки.
21 Конструктор1С
 
07.09.22
07:46
(16) тебе надо с Г1Сом объединится. Вы с ним два сапога пара) Гениальный и ещё гениальнее)
22 Eugeneer
 
07.09.22
07:48
(21) а тебе видимо с НуфНуфом и НафНафом.
23 НафНаф
 
07.09.22
07:49
(20) ой, всё...
24 Гений 1С
 
гуру
07.09.22
08:57
(9) вот кстате, да. Количество надежнее. HAVING(Количество()>1)
25 НафНаф
 
07.09.22
09:31
(24) "надежнее" почему? Максимум<>Минимум - может дать другой результат?
26 Святой Нос
 
07.09.22
10:31
(0) > тестил на 100к, 1 миллионе позиций.
Кто-то тут не так давно ныл, что мерзкая 1С не дает номер строки больше чем 99999...

Я так, уточнить какие еще предварительные приседания надо сделать с миллионом записей, чтобы применить твой подарок.
27 timurhv
 
07.09.22
11:15
(24) Запрос сгруппирует в 1 строку "ААА" + "ААа" + "Ааа" и тд.
Обход таблицы - нет.
28 mistеr
 
07.09.22
11:19
(0) Маня открыл для себя ИМЕЮЩИЕ. Что ж, поздравляем!
29 mistеr
 
07.09.22
11:21
(27) +1

Также, на файловой Свернуть() будет быстрее.

>есть колонка Номер строки

Иногда это существенное ограничение.
30 DGorgoN
 
07.09.22
11:26
(28) Тупой вопрос возможно, а как с помощью оператора ИМЕЮЩИЕ найти дубли? Примерчик пжста.
31 DGorgoN
 
07.09.22
11:27
Хотя дошло
32 DGorgoN
 
07.09.22
11:32
Люди тут дублями страдают, а я обмены всякие пишу и сальдо разбираю. Пойти что ли к сишникам. Достало всё.
33 Злопчинский
 
07.09.22
11:33
(32) а есть еще и бульдо
34 mistеr
 
07.09.22
11:35
(33) И питбульдо
35 mistеr
 
07.09.22
11:38
(32) К AI-шникам иди. Сейчас появилась возможность вкатиться без матана. Prompt engineer называется. Как во франче разносильщик ИТС раньше. :)
36 Eugeneer
 
08.09.22
09:16
Кстати я только что прогонял запрос на выдачу дублей. Сгенерировал ТЧ где каждый пятый товар дубль.

на 100 000 к позиций счетчик 0 секунд. те.е выполняется мгновенно.
37 СеменовСемен
 
08.09.22
09:19
(36) файловая или скуль?
38 Eugeneer
 
08.09.22
09:25
(37) пофигу. потому что это в форме обработки.
39 RomanYS
 
08.09.22
09:25
(36) ничего удивительного, в данные формы только не пихай и всё будет хорошо ;)
40 RomanYS
 
08.09.22
09:27
(38) разница будет (возможно несущественная): ВТ всё-таки физически будет создана в темпБД
41 rsv
 
08.09.22
09:30
(0) sql придумали в в 70 х …
42 rsv
 
08.09.22
09:31
и живее всех живых
43 TormozIT
 
гуру
08.09.22
09:42
Уже придумали, как в запросе найти дубли с учетом регистра букв?
44 Eugeneer
 
08.09.22
09:50
(43) а в запросе нельзя чтоли все перевести в регистр?
45 Eugeneer
 
08.09.22
09:50
я например артикулы еще до формирования ТЗ обрабатываю - убираю мусор, привожу в порядок.
46 rsv
 
08.09.22
09:51
UPPER()
47 Eugeneer
 
08.09.22
09:54
Мало того у меня 0 секунд выполняется не просто запрос. А вся процедура.

А там еще и выборка есть, чтобы по результату запроса отметить эти дубли.
48 DTX 4th
 
08.09.22
10:06
(43) гыгы
предварительно справочник уникальный создать) и туда все пихать перед поиском дублей xD
не мешай наслаждаться своей поделкой)
49 Eugeneer
 
08.09.22
10:14
(48) нафига? делает запрос - выгружает в ТЗ колонку с наименованием (или артикулом). Поменял в ТЗ в регистр все.

И далее запрос по дублям.
50 Eugeneer
 
08.09.22
10:14
а если в запросе можно сводить в регистр, ну так и вообще будет один запрос на все целиком.
51 Eugeneer
 
08.09.22
10:15
Потом кнопку повесит на форму справочника. и получит отчет.
52 Eugeneer
 
08.09.22
10:16
Я даже сейчас скорее всего такой отчет сделаю для любой типовой. Поиск дублей в справочнике.

С чисткой мусора в артикулах, приведением в регистр. Потом запрос на дубли. и вывод отчета
53 Eugeneer
 
08.09.22
10:21
Напишу новый отчет (для всех конфигураций) Поиск дублей номенклатуры в справочнике. Без мегапрайса.
Будет делать отчет и выводить все дубли.
Выбор критерия дублей.
Виртуальное приведение артикулов и наименований в нормальный вид (убрать мусор всякий) - если дубли отличаются дефисами, кавычками и прочее. Виртуальное - значит не изменит справочник, но изменит для отчета.
Потом по дублям можно будет добавить инфо - были ли движения товара и прочее.
54 СеменовСемен
 
08.09.22
10:23
(53) таких отчетов миллион. даже типовой есть
55 DTX 4th
 
08.09.22
10:42
(49) Ты, видимо, не понял.
Для запроса "ААА" и "ааа" будут считаться дублями.
56 Новиков
 
08.09.22
11:22
(43) >>Уже придумали, как в запросе найти дубли с учетом регистра букв?

C 8.3.20.1549

ВРег(Upper) – преобразует все символы строки в верхний регистр.
НРег(Lower) – преобразует все символы строки в нижний регистр.

Супер-дубли для меня не это. А примерно это:

Иванов Иван Иванович
Иванов Иван Иванович (алименты)

или

Иванов Иван Иванович
Иванов И.И.

При помощи имеющихся конструкций в языке запросов 1С, можно разложить исходную строку на отдельные слова по разделителю, и внутренним соединением описать эвристические склейки, которые покажут дубли.
57 Eugeneer
 
08.09.22
11:24
(56) составить список слов вредителей или комбинаций. и проставить замену или чистку вредителей
58 Новиков
 
08.09.22
11:35
(57) А если слова вредителя нет, а есть сокрашения? Дальше что, проверять на длину строки каждое слово? Но тот же Иванов И.И., запросто может быть в единичном экзмемляре и это не будет уже дублем.

В принципе, пути которые ты описал, уже мною пройдены. Все это возня. Проще и надежнее сделать так, как я описал. Но не думаю, что это можно сделать именно универсально т.к. надо смотреть на данные всегда.
59 ASU_Diamond
 
08.09.22
11:49
(56) а у тебя
Иванов Иван Иваныч
Иванов И.И.
Иванов Иван Игоревич
Иванов Игорь Иванович

это всё дубли?
60 DTX 4th
 
08.09.22
11:52
(56) Ты предлагаешь схему без учета регистра

(57) Так что ты думаешь по поводу (55)?
61 DGorgoN
 
08.09.22
11:55
(49) Перебор в цикле с ВРЕГ или НРЕГ убьет все оптимизации
62 DGorgoN
 
08.09.22
11:56
(56) Даешь ИИ и санкционные ускорители на NVIDEA
63 Eugeneer
 
08.09.22
12:01
(61) перебор не так страшен как НайтиСтроки.

Убивает все именно НайтиСтроки. Все остальное просто тьфу по сравнению с одним методом. все из за него.
64 Eugeneer
 
08.09.22
12:04
Даже с нуля таблицу в 100 000 строк будет создавать пару секунд.

А НайтиСтроки если например будет использовано хотя бы 1000 раз - будет фигачить минуты.
65 Eugeneer
 
08.09.22
12:05
Самое медленно что только есть в работе с ТЗ/ТЧ это Найти и НайтиСтроки. это просто жесть.

Второй так вообще херачит память. так как возвращает массивы строк.
66 DGorgoN
 
08.09.22
12:06
Кстати казалось бы почему, ведь должна же быть оптимизация, да и тз она же в памяти а не на диске.
67 Garykom
 
гуру
08.09.22
12:10
(0) На файловой уже тестил?
А когда файловая через веб-сервер?
68 Eugeneer
 
08.09.22
12:17
(67) пофигу. речь идет о ТЧ и ТЗ. а запрос по любому на сервере.

Но у клиентов вижу логи. Работает мгновенно.
Плюс у меня Тест-нагрузка есть кнопка - я там количество строк задаю и получаю любого размера таблицу. Добавил генератор там дублей каждые пять строк.

На 100 000 - работает все меньше секунды.
69 Garykom
 
гуру
08.09.22
12:18
(68) Ты понимаешь что есть разница между настоящим многопоточным sql сервером типа mssql или pgsql и файловой?
70 Eugeneer
 
08.09.22
12:18
И у меня два вида.

Есть получение таблицы целиком - с убором дублей, но подсветкой у позиций которые свернулись - что у них были дубли.

И еще есть процедура где чисто дубли отбираются.
71 Eugeneer
 
08.09.22
12:18
Все работает мгновенно.
72 Eugeneer
 
08.09.22
12:20
(69) причем тут SQL есди все это никак к базе не имеет отношения. ТЧ и ТЗ. это у тебя память а не база. Так что пофигу что там за СУБД.
СУБД это если ты из базы будешь грести что то.
73 Eugeneer
 
08.09.22
12:21
У меня I9 12900К ) и DDR5)
74 Garykom
 
гуру
08.09.22
12:21
Маня ты зачем эти недоделанные полурешения изобретаешь?
Когда уже поймешь что надо просто тупо данные из 1С через JSON выкинуть в sqlite и там крутить шустро и универсально.

Да и в целом твою мегаподелку давным давно пора с 1С переписывать на большом ЯП целиком, чтобы оно как внешнее решения аля http (микро)сервис работало...
75 Garykom
 
гуру
08.09.22
12:21
(72) Ээээ...
Маня ты че?
76 Eugeneer
 
08.09.22
12:22
но я уже отправил разработку 30 клиентам. и по логам вижу что все заипись...

КОгда сделаю обмена логами и тестами тогда буду видеть у кого что и какие параметры как и Гилева.
77 Конструктор1С
 
08.09.22
12:25
(72) где же по-твоему временные таблицы живут?
78 Garykom
 
гуру
08.09.22
12:25
(75)+
"Берется любая ТЧ / ТЗ (в которой есть колонка Номер строки). Кидаем в запрос."

Если ты ТЗ засовываешь в запрос как ВТ то это передается на SQL СУБД и там крутится.
В случае серверной 1С с внешним sql-сервером снаружи 1С.
79 Garykom
 
гуру
08.09.22
12:26
(77) вот я тоже прифигел с подобной безграмотности
80 Garykom
 
гуру
08.09.22
12:32
(78)+ и если ты один хрен крутишь sql запросы снаружи с предварительной передачей туда больших данных
то возьми уже https://habr.com/ru/post/547448/
81 kauksi
 
08.09.22
12:33
а теперь напиши быстрый поиск дублей по нескольким полям типа Наименование + Артикул (Характеристика, ИНН, КПП, Код и т.п.)
82 Gantosha
 
08.09.22
12:37
поясните тугому что он делает ?
83 Garykom
 
гуру
08.09.22
12:37
(82) дурью мается
84 Gantosha
 
08.09.22
12:39
не, я просто пытаюсь понять он чо там пишет про групировку по полям поиска что ли ? или что то другое ?
85 Garykom
 
гуру
08.09.22
12:42
(80)+ для удобства юзания из 1С есть https://github.com/rqlite/rqlite
все через http запросы по api
перед этим из макета в темп сохранил и запустил
и юзай
как не нужен shut down ноду(ы)
86 Eugeneer
 
08.09.22
13:51
(81) все тоже самое. не увеличивает расход
87 Eugeneer
 
08.09.22
13:52
(78) ну и что с этого? записи и чтения и работы с базой нет. Поэтому какая пофиг разница СКЛ или не СКЛ для этой задачи. Один хрен тут работа профессора и оперативки.
88 Eugeneer
 
08.09.22
13:53
Да и 1С однопоточная.
89 Eugeneer
 
08.09.22
13:55
Я еще понимаю вопрос если бы был - что многотысячную запись в регисры или чтение. А тут вообще работа с ТЗ в запросе.. На уровне повторов значений в разных количествах строк)

Еще раз напишу - тесты показали ошуительные результаты!!! МИЛЛИСЕКУНДЫ. Что тут еще надо мосх ипать не понимаю.
90 H A D G E H O G s
 
08.09.22
14:22
Веселые истории экран покажет наш
91 Конструктор1С
 
08.09.22
14:30
(87) временные таблицы хранятся на диске. Внезапно, да?

(89) >>Я еще понимаю вопрос если бы был - что многотысячную запись в регисры или чтение

Считай что создаётся временный регистр, в него заливаются все твои многотысячные записи, а потом выполняется запрос по этому регистру
92 Eugeneer
 
08.09.22
14:37
(91) какой еще нафиг регистр... только что меня дураком назвали, а сам такую хрень пишешь.
93 timurhv
 
08.09.22
14:38
94 Гений 1С
 
гуру
08.09.22
14:38
(91) могут и в памяти храниться, внезапно. Это тебе не Navision
95 Eugeneer
 
08.09.22
14:42
Запросы так вообще чистейшая оперативка. А обсуждаемая тут задача это и есть запрос и скорость результата.
А не источник.
96 H A D G E H O G s
 
08.09.22
14:52
Все нормально, автор работает с ларьками, там продуктива даже на 50 пользователей не найти, пусть развлекается с ВТ
97 Конструктор1С
 
08.09.22
14:54
(93) блиин... Вот куда тебя понесло? У нас тут ларёчная ситуация, файловые базы. А так-то и вся БД может in-memory распологаться
98 Конструктор1С
 
08.09.22
14:56
(94) тебе-то откуда знать? Ты документацию отродясь не читал. Тем более по таким тонкостям
99 unenu
 
08.09.22
15:05
(0) наличие колонки "номер строки" - не обязательно.

уже давно можно таблицу пронумемеровать в запросе
100 Arbuz
 
08.09.22
15:06
После маниакальной фазы обязательно наступает депрессивная. Причём чем ярче, интенсивнее маниакальная, тем длительней и глубже депрессивная. После особенно ярких маниакальных эпизодов, выход из депрессивной фазы может занять годы или не состоятся вовсе никогда...
101 Fynjy
 
08.09.22
15:16
Ребят ну будьте снисходительны слесарь из Мариуполя. Высшего образования нет. Потуг обучения нет. 40+ лет. И так "Доступно и всерьез" человек оправдывает.
102 Eugeneer
 
08.09.22
16:35
Вот народ же))) Сами хрен кому помогут и ответят)

А тут с добром пришел) Так сказать хорошую тему обозначил, решения нашлись сразу несколько. Тесты провел. Сказал о результатах.

А вам лишь бы желчь лить))) Завидуете просто мне да и все)
В тоже мог бы сказать что вы все неудачники! Потому что я зарабатываю миллион в месяц. а вы нищеброды жалкие. Но этого делать не стану)
103 Eugeneer
 
08.09.22
16:36
Я не обидчивый) А вот у вас зависть что я слесарем был, а вы нет))
104 leonidk
 
08.09.22
16:38
Пятнично
105 H A D G E H O G s
 
08.09.22
16:42
Добродетель не упадет на колени перед неумолимой поступью прогресса.
106 Eugeneer
 
08.09.22
16:45
Вы на лекциях сисьски старой училки рассматривали и подрачивали двумя пальцами. А я на заводе трудовые мазоли натирал)
107 АгентБезопасной Нацио
 
08.09.22
16:48
(101) "доступно и всерьез - мордой и в навоз!"©pit
108 Конструктор1С
 
08.09.22
17:15
:)
Маньяк может уйти из слесарей, но слесарь из Манька не уйдёт никогда
109 Гений 1С
 
гуру
08.09.22
19:23
(106) да ладно, че там в каптерке девочек не было?
110 БигБаг
 
08.09.22
19:40
(100) У некоторых, после маниакальной фазы не наступает депрессивная. Для них после маниакальной наступает другая маниакальная. Посмотри например на Гений1С.
111 Eugeneer
 
08.09.22
19:46
(109) я в цеху по производству газовых котлов работал) Малярши были) Целый участок.
112 Fynjy
 
08.09.22
19:55
Жень у тебя масса времени страдать х.ней. Вот реально возьми курсы не обязательно 1С, а лучше совсем не 1С. Java - самое то. Они на все твои умения наложат знания нормального программирования. Они доступны и в возрасте 40+. Как раз на этих курсах дают, что почему то не дают на курсах 1С - на них учат программировать, а не применять в задачах.
Такие курсы дадут тебе нормальный базис, парень ты не глупый, ну не повезло в молодости догоняй в возрасте.
113 СеменовСемен
 
08.09.22
20:00
(112) курсы учат программировать?
114 Eugeneer
 
08.09.22
20:03
(112) у меня два студента) уже вторые курсы проходят за полгода. Думаю не последние)
115 Eugeneer
 
08.09.22
20:04
Мне нафига эти курсы)) Ты знаешь что даже на курсах 1С ничего толкового не учат. Они там до сих пор по старинке сидят одну и туже базовую фигню молотят.
А на специалиста очень много и частно отвлекаются.
Но у меня ребята молодые) таланты. Я им много разных курсов куплю.
116 Eugeneer
 
08.09.22
20:09
Это первое. А второе - раз ты меня считаешь что у меня знания не ахти по 1С. То какого фигли тут бывает вопросы заводишь и ноль толковых ответов. Хотя лица все теже мелькают.

Вот товарищ Ежов - постоянно в ветках отмечается, но кроме какого то высера ничего больше не делает. При этом якобы он себя всезнайкой показывает, но по факту ничего по теме  сказать не может.
такое поведение смахивает на то что все такие "из себя" тут специалисты, что сами в теме вопроса не разбираются.

И даже в этой теме уже разжеванной чуть ли не сразу и понятной, после того как я объявил тесты и скорость что это все работает 0-1 секунду, кто то усомнился что на СКЛ оно так работать не будет....

Запомните - если что то работает 0-1 секунду, оно не станет вдруг иначе работать в 50 раз хуже.
117 Eugeneer
 
08.09.22
20:10
Как будто в файловой базе не временные файлы... ну уморы.
Уже кто то ляпнул что это регистр создается с временной таблицей...
118 Eugeneer
 
08.09.22
20:10
Судя по всему - регистр сведений))) бугага.
119 Eugeneer
 
08.09.22
20:11
Ато смотри умник на умнике сидит. Слесаря решили учить)
120 СеменовСемен
 
08.09.22
20:12
(117) в файловой не нужно тз на скуль передавать и обратно. все на месте происходит.
а если скуль еще и на другом серваке ...
121 Eugeneer
 
08.09.22
20:13
(120) у тебяф запросы где делаются? их на клиенте даже создать невозможно. Любые запросы это сервер.
А файловая не файловая - какая пофиг разница.
122 Eugeneer
 
08.09.22
20:16
И мы тут не про передачу говорим с клиента на сервер или с сервера на клиент. Это вообще отдельная песня.
Что такое для СКЛ передача 100-200 мегабайт. тьфу.
123 Eugeneer
 
08.09.22
20:18
Другое дело что у большинства сервера допотопные. У Гилева даже там процентов 50 тестов на каком то овне 15 летней давности. И я часто вижу у клиентов сервера .... дешевле какого нибудь айфона.
Печатный станок.
124 Eugeneer
 
08.09.22
20:20
Но один хрен оптимизированный запрос. если на 100к ТЗ работает на 2000 дублей меньше секунды. То оно даже на овне никак не станет работать в 50 раз хуже. Ну станет 3 секунды.
125 Eugeneer
 
08.09.22
20:21
(120) и ты тут дико ошибашся что в файлово все на месте происходит. Если какие то данные на форме. То хрена два! Там передача идет и еще какая. с формы в модуль и обратно!
126 Eugeneer
 
08.09.22
20:24
физиечски то да) все на одном ПК, но данные во временных файлах забиваются все также. Ибо ясень пень что никаких таблиц в самой базе не создается, и никаких регистров.....
127 Eugeneer
 
08.09.22
20:25
А вот кстати если делать переборку дублей. типа свернуть и потом НайтиСтроки и прочая хрень... то это не секунды и даже не 1-2 минуты.
128 Eugeneer
 
08.09.22
20:26
Сень петь что НайтиСтроки это по сути запрос и ничем не отличается от запроса. По факту запрос запихнутый в метод.
И если он где то в цикле - то получаем главную ошибку программирования. цикличные запросы.
129 Eugeneer
 
08.09.22
20:30
Каюсь я нашел пару мест где я так делал. ибо иногда в процессе работы и каких то задач программируешь чтобы быстрее решить задачу. когда шквал.

И также ничего страшного если сама задача никогда не коснется каких то больших данных. Ну фигли там поставить НайтиСтроки где никогда не будет больше 100 строк.
Какая нибудь таблица настроек. Нафига к ней запрос писать.

А вот если серьезные данные то только запросы и запросы.


Вот видите я отлично знаю курсы 1С. там именно так поясняют. Что все нужно использовать от предметной задачи и ситуации. не всегда нужно лепить запрос там где нафиг не надо. но всегда когда мы понимаем что тут будет обьем данных.
130 Eugeneer
 
08.09.22
20:32
А по поводу передачи между формой и сервером и прочее ТЗ и ТЧ уже тема была. Эта хрень мне покоя не дает ужасно.
131 H A D G E H O G s
 
08.09.22
20:51
(116) "Товарищ" Ежов вам не товарищ и смотрит на вас, как манул на репортера.
132 Eugeneer
 
08.09.22
20:53
(131) Репортер Ежов с места событий)
133 H A D G E H O G s
 
08.09.22
21:01
Я иду, куда требует Высшее Благо.
134 Конструктор1С
 
08.09.22
21:03
(116) >>Запомните - если что то работает 0-1 секунду, оно не станет вдруг иначе работать в 50 раз хуже

Ну-ну. Я такое сотни раз видел. Написан небрежный запрос, вроде работает нормально, и написан давно. А потом накапливается большой объем данных, и запрос начинает люто тормозить
135 Eugeneer
 
08.09.22
21:06
(134) и что с того что ты видел) Как будто я не видел) или кто то другой тут что то не видел)))

Ты в теме где школьник запрос напишет этот и тест проведет. на чем угодно что у него есть.
136 Eugeneer
 
08.09.22
21:07
Мы тут больше болтаем, чем просто ты мог за 2 минуты накидать обработку с ТЧ и таким запросом. и проверить на чем хочешь. Сложность обработки уровень школота.
137 Eugeneer
 
08.09.22
21:09
Было бы тут прикрепление файлов я бы сам скинул) мне не жалко.
Вошбнику на заметку - что было бы здорово файлы выкладывать 1С формата
138 Eugeneer
 
08.09.22
21:09
Уже бы давно конкуренцию ИС сделал.
139 H A D G E H O G s
 
08.09.22
21:19
(136) Давно бы уже выложил бы на гугл-диск.
140 RomanYS
 
08.09.22
21:43
(127)
1. Чтобы найти дубли в отсортированной ТЗ ничего сворачивать не надо, делается в один обход цикла.
2. В ТЗ можно тоже индексы и тогда множественный поиск не будет занимать минуты...
141 H A D G E H O G s
 
08.09.22
21:44
(140) действительно множественный поиск нужно делать через merge.
142 H A D G E H O G s
 
08.09.22
21:45
(141) Но я ни разу этого ни у кого не видел. И не увижу.
143 СеменовСемен
 
08.09.22
21:46
(141) для поиска дублей не нужен мердж, достаточно обычного прохода
144 RomanYS
 
08.09.22
21:47
(141)(143) Расшифруйте
145 СеменовСемен
 
08.09.22
21:48
(144) не знаешь что такое мердж?
146 H A D G E H O G s
 
08.09.22
21:50
(143) Я в целом, понятно, что дубли складываем в hashmap
147 RomanYS
 
08.09.22
21:51
148 RomanYS
 
08.09.22
21:52
(146) Кстати да, тогда и сортировка не нужна
149 СеменовСемен
 
08.09.22
21:53
(147) merge - это алгоритм, как из 2 отсортированных массивов сделать 1 отсортированный
150 H A D G E H O G s
 
08.09.22
21:54
(147) Сортируем 2 таблицы по полям поиска (или берем уже отсортированные) и проходим их в одном цикле, сравнивая по полям поиска и сдвигая указатель по отставшей.
151 RomanYS
 
08.09.22
21:54
(149) (150) Понятно "сортировка слиянием". Спасибо.
152 Eugeneer
 
08.09.22
21:54
(149) как ты смеешь магистру такое говорить
153 СеменовСемен
 
08.09.22
21:56
(151) сортировка слиянием - это уже применение слияния для сортировки. само слияние - оно само по себе
154 H A D G E H O G s
 
08.09.22
21:56
(151) Нет
155 RomanYS
 
08.09.22
22:07
(154) ну принцип (слияния) вроде тот же. Смысла погружаться в терминологию не вижу, для себя по крайней мере.
156 RomanYS
 
08.09.22
22:11
(146) Кстати можно Маньяка потроллить)
Женя, это по идее будет быстрее твоих запросов на любых объемах при любых ключах. Для отсортированных ТЗ правда всё горазда проще
157 H A D G E H O G s
 
08.09.22
22:17
(156) Это... скучно.
158 СеменовСемен
 
08.09.22
22:25
(156) с хэшмапом не удобно, если несколько полей. нужно как-то составной ключ придумывать
159 H A D G E H O G s
 
08.09.22
22:27
(158) Новый ХэшированиеДанных.
160 СеменовСемен
 
08.09.22
22:28
(159) может статься, что сортировка то побыстрее будет, чем хэширование полей по всей таблице
161 H A D G E H O G s
 
08.09.22
22:32
(160) Может. Я хеширование 5+к MD5 строковых полей выносил в ВК. Даже с учетом конвертаций UTF-BSRT-UTF выходило на порядок быстрее, чем встроенным механизмом.
162 Eugeneer
 
08.09.22
22:38
(156) прикол в том что не нужна сортировка. Нужно сохранить порядок.
163 Eugeneer
 
08.09.22
22:40
и второй прикол в том что куда быстрее если миллисекунды работает все, включая даже выборку и перебор строк. А там у меня из 100к - 40к дублей.
164 Eugeneer
 
08.09.22
22:45
Я думаю сортировка ТЗ будет тормознее. Кстати в 1С они тоже тормозной метод.
165 СеменовСемен
 
08.09.22
22:47
(162) порядок восстанавливается второй сортировкой
166 Eugeneer
 
08.09.22
22:48
заканчивайте эту тему)
167 Eugeneer
 
08.09.22
22:48
Не нужно страдать там где в этом уже нет необходимости. Из курсов 1С.
168 СеменовСемен
 
08.09.22
22:49
на скл попробуй повторить. хотелось понять сколько времени тратится на передачу данных между серверами
169 Eugeneer
 
08.09.22
22:51
Вот другая есть задача)))

Как зная теперь дубли и даже номера дублей.

В уникальные дубли ТЗ (зная что это дубли) проставить нужное значение.
170 Eugeneer
 
08.09.22
22:52
а стоп. отмет знаю
171 RomanYS
 
08.09.22
23:08
(160) на простой ТЗ из одной числовой колонки
При 100к записей сортировка в 3 раза медленней чем вставка+поиск в соответствии.
На 1М записей в 5 раз медленнее.
Это без всяких сериализаций и хешей
172 Сергиус
 
08.09.22
23:56
(121)[у тебяф запросы где делаются? их на клиенте даже создать невозможно. Любые запросы это сервер.
А файловая не файловая - какая пофиг разница.]

Ну как бы есть разница, какой "движок" это всё обрабатывает - тот, что в скуле, или тот, что в платформе 1с зашит.
173 Гений 1С
 
гуру
10.09.22
20:46
(0) выгружаешь в ТЗ, добавляешь колонку Счетчик.
туда пишеть 1000000 + номер строки.
Сворачиваешь по полям, по которым ищешь дубли и суммируешь по Счетчик.
Где счетчик > 1000000 там значит есть дубль, берешь остаток от деления на 1000000, получаешь номер строки.
174 Злопчинский
 
10.09.22
20:51
Возьмем ТЗ, в которой всего две строки
строки являются дублями.
счетчик-1 = 1'000'001
счетчик-2 = 1'000'002
свернули. получили одну строку с "дублем"
счетчик = 2'000'003
берем остаток от деления 1'000'000 = 3
и что нам говорит "номер строки 3"...?
что пора идти в лес..?
175 RomanYS
 
10.09.22
20:51
(173) в остатке получишь СУММУ номеров строк. Сергей пытается в математику - неожиданно
176 Злопчинский
 
10.09.22
20:53
слово с одной гласной... взбзднуть... ;-)
177 RomanYS
 
10.09.22
20:54
(174) ну 3 - как раз один из двух вариантов, которые дают конкретные номера строк.
178 Злопчинский
 
10.09.22
21:04
(177) и дальше что?
179 RomanYS
 
10.09.22
22:12
(178) да ничего
>> и что нам говорит "номер строки 3"...?
Говорит, что нам очень повезло, и дубли в 1й и 2й строке. А вот во всех остальных случаях (кроме 3 и 4) - да, идти в лес.
180 Конструктор1С
 
11.09.22
07:04
(174) типичный генизм. Некогда думать, надо хениальные мысли в эфир вываливать
181 PR
 
11.09.22
21:08
Как-то раз Маня выяснил, что в запрос можно передавать ТЗ...
182 Eugeneer
 
11.09.22
21:20
(181) ТЧ. и то не всегда. если это будет ТЧ объекта то хрен.
183 PR
 
11.09.22
21:33
(182) Маня, ну не позорься уже вконец что ли
ТЧ ссылки вообще простейшим образом выбирается в запросе
ТЧ объекта - это уже ТЗ
Так что речь именно про ТЗ и только про ТЗ
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший