Поиск и замена значений многопоточно

03.10.23

Задачи пользователя - Поиск данных

Обработка для конфигураций на БСП, выполняет замену в несколько потоков. Только клиент-серверный вариант

Скачать исходный код

Наименование Файл Версия Размер
Поиск и замена значений многопоточно
.epf 26,51Kb
141
.epf 2023.10.03 26,51Kb 141 Скачать

Еще один поиск и замена значений, только работает в несколько потоков

Разработано на основе Пример многопоточной обработки (БСП)

 

 

За основу взята обработка из этой статьи 

Тестировалось на платформе 8.3.18.1957

Конфигурации: КА 2.5.7.402.

См. также

Быстрый поиск дублей в 1С с четким/нечетким поиском по любому сочетанию реквизитов/реквизитов таб. частей с отбором и быстрой заменой значений в ЛЮБЫХ базах 8.1-8.3 (УТ 10.3, БП 2, ЗУП 2.5, КА 1.1, УТ 11, БП 3, УНФ 1.6/3.0, КА 2, ЗУП 3 и т.д.)

Поиск данных Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработки помогут Вам легко и, главное, быстро (в 5 раз и быстрее штатной обработки 1С), выполнить поиск дублирующих данных в Ваших базах 1С на платформах 8.1-8.3. Это позволит уменьшить объем лишней информации в справочниках и документах, планах видов характеристик и др., упростит работу с данными пользователям. А так же можно, одним нажатием, узнать в каких ссылочных объектах есть вообще дубли! Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А так же обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! (Обновление от 27.11.2023, версия 6.12)

10800 руб.

14.05.2012    156725    328    252    

560

Универсальная обработка регистров сведений: удаление и обработка записей по фильтрам - все конфигурации

Подбор и обработка объектов Пользователь Платформа 1С v8.3 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:CRM ПРОФ, КОРП 1С:Управление нашей фирмой 3.0 Абонемент ($m)

Обработка позволяет выполнить удаление записей в регистре сведений по фильтрам и выполнить замену измерений / ресурсов / реквизитов на новые произвольные значения. Присутствует возможность фильтрации по периодам или по любому измерению / ресурсу / реквизиту.

10 стартмани

13.04.2024    1009    13    user1527257    0    

13

Кто такая Мантикора?

Поиск данных Системный администратор Программист Платформа 1С v8.3 Россия Абонемент ($m)

Статья об опыте развертывания и интеграции с базой данных Manticore Search для быстрого полнотекстового поиска.

1 стартмани

30.11.2023    3505    andreysidor4uk    16    

48

PowerOffice

Поиск данных Корректировка данных Пользователь Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

PowerOffice - обработка для поиска, просмотра и обработки данных для пользователей. Доступ к объектам на просмотр и редактирование данных определяется правами пользователя.

1 стартмани

05.06.2023    2068    23    PowerBoy    1    

16

Групповая обработка справочников и документов через таблицу v 1.1

Подбор и обработка объектов Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Абонемент ($m)

Думаю, что многим знакома ситуация: пользователь что-то посчитал в Excel и просит разработчика подгрузить из таблички изменения в базу. Я долго мучался, писал какие-то разовые загрузки и в итоге родил представленную в публикации идею. Проверял на платформе версии 8.3.10.2309.

2 стартмани

12.04.2023    7513    23    kser87    17    

55

Пример многопоточной обработки (БСП)

HighLoad оптимизация БСП (Библиотека стандартных подсистем) Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка-шаблон, на основе которой можно делать свои многопоточные обработки данных для конфигураций на БСП.

13.02.2023    9746    6    echo77    8    

93

Групповое создание актов сверок и рассылка на электронную почту

Email рассылки Акт сверки Подбор и обработка объектов Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Абонемент ($m)

Внешняя обработка формирует реестр контрагентов с дальнейшим созданием документов акт сверки расчетов с контрагентом и рассылки их печатной формы на электронную почту. Позволяет формировать акты сверок сводно (по всем договорам), а также в разрезе договоров. Имеется возможность задать отбор по Контрагентам, Договорам, Валюте. Доступно указания внешней печатной формы акта сверки, а также может быть назначена в качестве регламентного задания.

8 стартмани

07.08.2022    9477    31    LamerSoft    0    

24
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. apatyukov 908 14.02.23 10:47 Сейчас в теме
Привет. Для старой УТ 10.3 Если ее запустить в управляемых формах будет работать? Или что то надо допилить?
8. echo77 1892 14.02.23 12:20 Сейчас в теме
(1) скорее всего не будет работать - обработка для современных конфигураций на БСП
apatyukov; +1 Ответить
16. apatyukov 908 16.02.23 06:38 Сейчас в теме
(8) Что будет стоить доработать ее до последних бсп?
17. echo77 1892 16.02.23 06:42 Сейчас в теме
(16) Тогда будет работать в режиме управляемого приложения. Но я бы пошел другим путём - разработал подобную для УТ10 на обычных формах. Придется немного доработать типовую.
2. Бэнни 207 14.02.23 11:07 Сейчас в теме
Спасибо, то что нужно!
3. RustIG 1643 14.02.23 11:27 Сейчас в теме
(0) Привет!
Идея крутая.
В БП Базовая валюту Руб* не заменяет на Руб. Ничего не происходит.
Прикрепленные файлы:
4. RustIG 1643 14.02.23 11:31 Сейчас в теме
(3) Сорри! Не сразу понял, что значит фраза
Только клиент-серверный вариант

Для файловых значит не работает.
5. RustIG 1643 14.02.23 11:51 Сейчас в теме
(0) Я думал, ты разработал обработку "Поиск и замена". Стал разбираться, оказалось, что ты только добавил потоковое выполнение в уже готовую обработку.
Но ты не указал первоисточник, откуда скачать "Поиск и замену".
Стал искать на ИТС - такой обработки на ИТС нет.
Стал искать на Инфостарт - нашел вот публикацию https://infostart.ru/public/1786080/
Стал искать в яндекс - вышел на сайт БухЭксперт - обработка от ноября 2020г.
Я в апреле 2020 г оказывается уже использовал обработку с первоисточника, но с тех пор забыл что у меня есть подобная обработка. Она кстати для файловой базы сработала - валюту заменила.
По ходу дела - это мое предположение, фирма 1С ранее на ИТС выкладывала, сейчас убрала - заменила на "Поиск и удаление дублей".
7. echo77 1892 14.02.23 12:19 Сейчас в теме
(5) в описании указано За основу взята обработка из этой статьи (ссылка)
9. RustIG 1643 14.02.23 12:31 Сейчас в теме
(7) теперь-то ясно, я же на днях видел твою другую статью - решил, что эта ссылка про многопоток . Не стал перепроверять.
твоя ссылка на статью от ноября 2020г, а я уже в апреле 2020г использовал ее
ДУмаю, 1с-ники ее разработали, найти ФИО разработчика не смог - наверное теперь она считается "общей". Не думаю, что БухЭксперт автор обработки.
6. SerVer1C 779 14.02.23 12:13 Сейчас в теме
Вот ещё бы вы привели замеры, чтобы понять, насколько (количественно) такая многопоточная замена будет быстрее стандартной замены.
semagin@gmail.com; +1 Ответить
13. starik-2005 3046 15.02.23 08:04 Сейчас в теме
(6) Так это от конкретного железа зависит. На пентиуме первом очень долго будет, и в один поток, т.к. у него одно ядро. Остальные варианты упрутся в i/o. Ну и чем больше потоков, тем быстрее (от количества ядер и нагрузки на систему). Но тот же гикбенч показывает, что многопоточная производительность процессора - это далеко не производительность потока, умноженная на их количество. Например, у меня I5-13600kf. Так вот однопоточная производительность у него в гикбенче с отрубленным HT 2165, а многопоточная (14 ядер, 6P/8E) - 14400. При том 2165 * 14 = 30310, что в два с лишним раза больше, чем на самом деле. Ну и дальше попытайтесь обнаружить связь между этими фактами и тем, о чем Ваш вопрос.
14. SerVer1C 779 15.02.23 09:00 Сейчас в теме
(13) Хотел бы я посмотреть на тех, у кого сервер 1с на первом пне. Синтетика - это понятно, тут вопрос именно на практике как будет, т.к. тут задействована СУБД.
15. starik-2005 3046 15.02.23 12:27 Сейчас в теме
(14)
т.к. тут задействована СУБД
Ну вот Вам кейс: я на прошлой работе рассказывал сотрудникам про многопоточность. Мы запилили конфу, сделали в ней документ, провели в один поток - 60 секунд с чем-то. Провели в 10 потоков - 4 секунды.
SQL рассчитан на многопоточную нагрузку. Именно поэтому рекомендация фирмы 1С в части параллельности касается установки в ЕДИНИЦУ параметра, который отвечает за количество потоков для выполнения запроса. Это связано с тем, что для каждого пользователя свой запрос, и каждому запросу свой поток. Ну и потом добрые и мягкие даже люди говорят, что вот, панимаешь, не тянет сервер - ядер не хватает на сто пользователей (по ядру на 10 штук, а ядер, например, всего 8, на 80 хватает, на 20 - мимо)))).

С другой стороны, вот еще один кейс: есть такая штука, как список недействительных паспортов, который добрый ФМС до сих пор выгружает в CSV, а ленивые 1С-неги, которые не умеют в алгоритмы, ничего лучше не придумали, как засунуть это все в таблицу SQL (ага, регистр сведений) и каждый божЫй день грузить это все барахло туда, предварительно регистр очищая. Ну и вот если грузить по 50к, то от многопоточности сразу же пропадает хоть какой-то смысл, ибо паспортов таких 120кк++, а после 20кк уже SQL в эскалации блокировок валится. Но если писать по 100 строк, то все работает, но если писать по сто, то даже в двадцать потоков это проигрывает записи по 50к однопоточно. Фактически, 120кк++ паспортов в регистр пишутся в один поток (по 50к) всего лишь в 2 раза медленнее, чем в 10, но деградация начинается с 20кк - одна из 10-ти записей валится из-за ожидания спинлока SQL. К 100кк+ 9 из 10-ти записей валятся на ожидании. Так что все зависит от железа и задачи, порции данных и т.д.

С третьей стороны, есть алгоритм, который за 10 минут это все в 1С грузит без всякого SQL с поиском с эффективностью О(1), но это же надо в алгоритмы немного хоть вдупливать, а из 1с-негов таких мало, ибо для обычного 1С двух алгоритмов хватает - обход коллекции и поиск значения.

Но соглашусь, что средний 1С-нег ничего этого не умеет. Но ведь тут как? Не умеешь - учись! Это ведь никто у человека не может отобрать, кроме его самого. Так что учись, студент, а то всю жизнь ключи будешь подавать!
18. echo77 1892 16.02.23 07:10 Сейчас в теме
(6) Замеры

Выполнялось с отключенным контролем записи. Обработка каждого объекта выполнялась в транзакции. В конце обработки транзакция отменялась.

Исходные данные: 4984 строки данных для замены (состав по метаданным на скрине)
Замеры замены значений этой обработкой:
потоков 1 - 4:44
потоков 2 - 2:17
потоков 5 - 1:05
Прикрепленные файлы:
triviumfan; SerVer1C; +2 Ответить
10. Evg-Lylyk 4665 14.02.23 12:59 Сейчас в теме
Поиск ссылок наверное производится через НайтиСсылки без многопоточности? Многопоточно только замена?
11. echo77 1892 14.02.23 17:22 Сейчас в теме
(10) да, только замена многопоточно
12. RustIG 1643 14.02.23 22:08 Сейчас в теме
(11) так-то и поиск можно разбить на потоки - при желании
19. TMV 14 17.02.23 15:06 Сейчас в теме
(12) там метод платформы. сооружать свой предлагаете?
20. RustIG 1643 17.02.23 19:43 Сейчас в теме
21. triviumfan 94 20.02.23 17:24 Сейчас в теме
22. RustIG 1643 20.02.23 20:38 Сейчас в теме
(21) в октябре 2020 г выложил вот это Поиск ссылок на справочник в документах и в справочниках на УФ - почти никто не оценил.
при должном упорстве можно все объекты метаданных запрограммировать для прохождения анализа ( проанализировать) - то есть не только справочники и документы, но и регистры и все остальное.
также надо учесть, что никогда никому не надо в моменте универсальную обработку - всегда нужно под конкретную задачу - найти и заменить договора или еще что-то - под это дело можно реализовать супер быстрый поиск:
В этих обработках п.п.1)-3) дополнительно включена оптимизация алгоритма - подобного ни у кого не видел в публикациях - заранее указаны документы и в каких реквизитах и табличных частях искать конкретные справочники. Поэтому для больших баз подобная оптимизация будет существенно ускорять процесс поиска документов (но это в обработках п.1-3 - смотрите по ссылкам).
23. triviumfan 94 21.02.23 09:16 Сейчас в теме
(22)
при должном упорстве можно все объекты метаданных запрограммировать для прохождения анализа

Ну, можно и на луну улететь. Я думал у вас уже есть универсальное решение, а по факту запрос поиска по документам - локальная задача, такой динамический запрос кодится за 5 минут. Я такое обычно делаю в ИР Сергея: нашёл произвольным запросом все ссылки, далее передаю в работку замены.
Поэтому я и обошёл сию тему.
Evg-Lylyk; +1 Ответить
24. RustIG 1643 21.02.23 10:50 Сейчас в теме
(23) очень рад, что вы тоже такой умный.
если посмотрите картинку здесь http://forum.infostart.ru/forum9/topic293982/message2937143/#message2937143
то увидите поиск идет только по справочникам и документам - поиск шел 4 минуты (!!!)
из-за 4х минут надо было полдня-день потратить чтобы разобраться в многопотоке БСП, написать статью, максимально ее понятно оформив.
поиск 5000 объектов? у меня кажется за секунды это делается...
Потом, вы же не разобрались ни в моей обработке, ни в логике типовой замены (типовая - которая тут в статье используется) - при типовом алгоритме замены происходит перебор реквизитов и табличных частей в документе или справочнике, объект которого возвращает платформенная функция НайтиСсылки(). Происходит очередная потеря времени при поиске нужного реквизита.

В моем алгоритме поиск сразу выдает Объект + Реквизит (реквизит объекта или реквизит табл. части), то есть надо лишь чуть-чуть дописать алгоритм замены: ПолучитьОбъект, заменить значение реквизита - уже известного какого - и записать объект. Как раз из-за того, что такой код пишется в 5 минут я пока не дописал замену - ведь ядро уже готово - каждый сам допишет что ему нужно - кому-то замена нужна, кому-то поиск для анализа (без замены) - примеры я предоставил.

А вообще, вы дали обратную связь. Это бесценно.

Данный пост я писал более 5 минут.... Для информации... Тут некая философия возникает , куда утекает безвозвратно время и насколько ценно время и собственное внимание.... Иногда думаю об этом....
25. triviumfan 94 21.02.23 12:20 Сейчас в теме
(24) Вместо того, чтобы смотреть речь вождя, я зашёл на ИС, а тут опять пахнет токсичностью...
1. На картинке не поиск, а замеры замены.
2. Автор не использует многопоточность БСП (это я понял из предыдущей его статьи).
3. Да, я бегло ознакомился с твоей обработкой, Рустем. Но статья автора меня зацепила, а твоя нет.
На сей ноте давай закончим.
26. RustIG 1643 21.02.23 12:44 Сейчас в теме
(25) хорошо, нет так нет, сами спросили - а теперь мой ответ не понравился
27. niip 10.04.24 16:25 Сейчас в теме
Премного благодарен, обработка очень пригодилась!
Оставьте свое сообщение