|
Супер-уникальный поиск дублей в любой ТЗ по любым критериям | ☑ | ||
---|---|---|---|---|
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
|
(91)
>временные таблицы хранятся на диске. Внезапно, да? Не всегда https://xn----1-bedvffifm4g.xn--p1ai/articles/временные-таблицы-3-вопроса/#:~:text=Действительно%2C%20все%20временные%20таблицы%20относятся,обязательно%20будут%20записываться%20на%20диск. |
|||
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
|
(145) Нет. Это?
https://ru.wikipedia.org/wiki/Merge_(SQL) |
|||
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) Маня, ну не позорься уже вконец что ли
ТЧ ссылки вообще простейшим образом выбирается в запросе ТЧ объекта - это уже ТЗ Так что речь именно про ТЗ и только про ТЗ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |