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

03.10.23

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Поиск и замена значений многопоточно
.epf 26,51Kb ver:2023.10.03
147 2 150 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

 

 

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

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

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Информационная безопасность Поиск данных ServiceDesk, HelpDesk Журналы и реестры данных 8.3.14 Россия Бухгалтерский учет Бюджетный учет Налоговый учет Управленческий учет Платные (руб)

Полный контроль над изменениями в 1С без нагрузки на вашу базу. Мгновенный доступ к истории изменений, удобное сравнение и откат данных в один клик. Простой отчет с визуальным отображением изменений Откат на любую версию объекта в два клика История изменения данных хранится во внешней базе

180000 руб.

05.09.2025    1684    1    1    

3

Поиск данных Системный администратор Программист 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 Платные (руб)

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

13200 руб.

14.05.2012    164961    352    253    

585

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

Обработка «Сравнение документов» — это мощный инструмент для синхронизации и контроля данных между базами 1С:УНФ – 1С:БП, 1С:УТ – 1С:БП. Она позволяет сравнивать документы в двух базах, выявлять расхождения и загружать недостающие документы из одной базы в другую.

12000 руб.

06.08.2025    1310    4    0    

3

Подбор и обработка объектов Бухгалтер 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Очень часто бывает, что документы одного периода повторяются в следующем. Поэтому приходится выполнять рутинную работу по их повторению, а именно копировать каждый документ по отдельности. Чтобы этого избежать, была написана обработка группового копирования документов для конфигурации 1С Бухгалтерия версии 3.0.

6000 руб.

29.06.2015    47129    92    18    

107

Поиск данных 1С v8.3 1С:Библиотека стандартных подсистем Абонемент ($m)

Расширение добавляет возможность в 1С в любых полях и отборах выбирать значения не только Код, Наименование или Номер, но и Уникальный идентификатор, Навигационную ссылку, Объект не найден, Представление документа.

2 стартмани

18.08.2025    6196    34    sapervodichka    14    

75

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

Горыныч - универсальная внешняя обработка группового многопоточного проведения. Работает в одном потоке в любой конфигурации, многопоточный режим доступен при наличии справочника «Склады».

10 стартмани

29.04.2025    4416    7    DmitryKSL    12    

17

Поиск данных ЭДО и ОФД Подбор и обработка объектов 1С v8.3 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Поиск номенклатуры при сопоставлении в ЭДО не интуитивный, не настраиваемый и просто неудобный. Данное решение - это альтернативный вариант расширенного поиска и сопоставления номенклатуры для 1С, который подключается в качестве расширения и решает эту проблему.

10000 руб.

10.04.2025    1479    1    1    

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

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

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

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

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

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

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

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