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

03.10.23

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

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

Файлы

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

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

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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

 

 

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

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

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

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

См. также

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5. Работает на возможностях платформы, внешние компоненты не используются.

6000 руб.

25.02.2026    6748    23    1    

25

Файловый обмен (TXT, XML, DBF), FTP Поиск данных Инструменты администратора БД Корректировка данных Системный администратор Разработчик 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)

24400 руб.

27.10.2017    47916    33    15    

51

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

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

6100 руб.

29.06.2015    48705    96    18    

110

Поиск данных Закрытие периода Учет документов Аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С:Бухгалтерия 3.0 Россия Платные (руб)

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

6100 руб.

20.07.2026    566    1    0    

2

НДС 22% Поиск данных Регламентированный учет и отчетность Взаиморасчеты Учет доходов и расходов Анализ учета Учет документов Аналитик Бухгалтер Пользователь 1С 8.3 1С:Бухгалтерия 3.0 Россия Налоговый учет НДС Платные (руб)

🔍 Обработка предназначена для быстрого анализа входящего НДС по документам поступления. Она позволяет увидеть, какие ставки НДС применены в каждом документе, выявить ошибки в их использовании и проконтролировать корректность учета.

6100 руб.

06.07.2026    579    1    0    

2

Поиск данных Аналитик Бухгалтер Пользователь Руководитель проекта Стажер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Беларусь Россия Казахстан Платные (руб)

Встройте искусственный интеллект прямо в вашу 1С за один вечер. «Цифровой сотрудник» - это чат с нейросетью внутри привычного интерфейса 1С, который умеет отвечать не «в общем», а по вашим данным: обучите его на регламентах, инструкциях и прайсах компании, подключите к данным информационной базы - и получите ассистента, который консультирует бухгалтера по учёту, отвечает менеджеру по прайсу и достаёт цифры из базы по запросу на обычном русском языке. Поддерживаются OpenAI, DeepSeek, Qwen и локальные LLM - включая вариант, когда данные вообще не покидают ваш контур.

3660 руб.

03.08.2026    2003    1    0    

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

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

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

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

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

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

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

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