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

03.10.23

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

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

Файлы

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

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

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

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

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

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

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

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

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

 

 

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

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

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

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

См. также

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

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

180000 руб.

05.09.2025    5451    2    1    

4

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

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

6000 руб.

25.02.2026    5712    19    1    

21

Поиск данных Системный администратор Программист 1С:Предприятие 8 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)

13420 руб.

14.05.2012    172794    360    253    

591

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

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

3660 руб.

03.08.2026    880    1    0    

3

Поиск данных 1С:Управление торговлей 11 Россия Платные (руб)

Возможность по ИНН контрагента быстро найти Партнера с которым связан контрагент.

7015 руб.

11.09.2025    1190    1    0    

3

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

Данная обработка предлагается для случаев, когда бывает необходимо изменить какой-либо реквизит в группе проводок, отобранных по определенному набору полей, за определенный период, с определенным типом документа-регистратора. Предлагается четыре варианта обработки для конфигураций: БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0.

2400 руб.

30.05.2016    30635    32    1    

52

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

1.обработка позволяет автоматически вычислить дубли и привести их к единому наименованию во всех документах. 2.так же есть возможность в документах поменять счета учета для номенклатуры. Например разные бухгалтера оформляют поступление одного и того же товара - один занес на 10.01, второй на 41.01 в результате в ОСВ у нас минусы. В обработке есть возможность наглядно увидеть такие ошибки и тут же их поправить не бегая по всем документам. Достаточно поставить галочку у номенклатуры и указать счет учета который надо найти и счет учета на который надо его заменить. Обработка сама вычислит документы в которых номенклатура с галочкой была задействована и заменит счета учета. Что бы не было излишнего изменения документов, в обработке указываются типы документов, где операция замены счета разрешена (например Поступление ТМЦ, Реализация, Отчет о розничных продажах, возврат покупателю итд.)

7320 руб.

05.06.2026    688    2    0    

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

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

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

Исходные данные: 4984 строки данных для замены (состав по метаданным на скрине)
Замеры замены значений этой обработкой:
потоков 1 - 4:44
потоков 2 - 2:17
потоков 5 - 1:05
Прикрепленные файлы:
triviumfan; SerVer1C; +2 Ответить
10. Evg-Lylyk 5492 14.02.23 12:59 Сейчас в теме
Поиск ссылок наверное производится через НайтиСсылки без многопоточности? Многопоточно только замена?
11. echo77 1943 14.02.23 17:22 Сейчас в теме
(10) да, только замена многопоточно
12. RustIG 1980 14.02.23 22:08 Сейчас в теме
(11) так-то и поиск можно разбить на потоки - при желании
19. TMV 1 17.02.23 15:06 Сейчас в теме
(12) там метод платформы. сооружать свой предлагаете?
20. RustIG 1980 17.02.23 19:43 Сейчас в теме
21. triviumfan 103 20.02.23 17:24 Сейчас в теме
(20) Поделишься?:)
Evg-Lylyk; +1 Ответить
22. RustIG 1980 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 1980 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 1980 21.02.23 12:44 Сейчас в теме
(25) хорошо, нет так нет, сами спросили - а теперь мой ответ не понравился
27. niip 10.04.24 16:25 Сейчас в теме
Премного благодарен, обработка очень пригодилась!
Для отправки сообщения требуется регистрация/авторизация