Проверено на платформе: 1С: Предприятие 8.3 (8.3.11.2954) с конфигурацией "Комплексная автоматизация для Казахстана, редакция 2" релиз (2.1.3.11). Будет работать на конфигурациях 1С (УТ, КА, ERP) в управляемых формах
За основу взяты: infostart.ru/public/306865/ и infostart.ru/public/405368/
Подключается (должны быть соответствующие права у пользователя) через:
НСИ и администрирование —> Настройка параметров системы —> Печатные формы, отчеты и обработки —> Отчеты и обработки —> Дополнительные отчеты и обработки —> Создать —> (выбрать файл) —> Записать и закрыть.
После подключения нужно открыть данную обработку через меню "Файл" —> "Открыть" в клиентском приложении. И в поле "Дополнительная обработка ссылка: " выбрать обработку "Выполнение произвольного кода в 10 потоков".
Принцип работы:
При нажатии кнопки "Старт" происходит выполнение кода текст которого указан в поле "Текст запроса" в результате выполнения должна получаться таблица с ссылками на объекты. Синтаксис как в конфигураторе!
Поле получения данной таблицы происходит выполнение действий над данными объектами, данные действия описываются в поле "Исполняемый код:" Объект над которым будет производиться действие использовать так как в примера "ОбъектДействия". Синтаксис как в конфигураторе.
В новой версии учел замечания, добавил функционал, убрал ограничение на использование в 10 ядер.
Update: Добавил конструктор запроса в обработку (работает под толстым клиентом), оставил возможность использования произвольных параметров запроса.
Сомнительная ценность обработки за такую цену….
Идея не нова, реализации более полезные в наличии на форуме за 1 стартмани…
Да даже фиксированное количество потоков — непонятка
Взаимоблокировки не будут при таком подходе?
(2) А нет никакого метода — 10 потоков ПРОИЗВОЛЬНОГО кода , то есть чего напишете то и будет выполняться…
От вас и будут зависеть блокировки.
Вот обработка с конкретным функционалом -успешно используется уже давно
https://infostart.ru/public/804563/
(2) блокировки, если они будут, обходит с помошью паузы на 1 секунду на данном потоке и повторными попытками пока не выполнит. Они обычно возникают если паралельно работают другие фоновые задания.
Через фоновое задание распараллеливать проще простого. Гораздо интереснее распараллеливать на стороне клиента, что бы можно было разрабатывать, например, обработки по шаблонам проектирования модель-представление.
Вообще не понятно почему разработчики так плохо используют параллельное программирование, первые многоядерные пользовательские процессоры появились более 10 лет назад. Игры более менее многопоточными стали делать более менее активно 3-4 года назад. Компания 1С вроде пытается все больше и больше делать конфигуратор по шаблонам проектирования, но все равно очень медленно этот процесс идет.
(1) Убрал фиксированное количество потоков, и увеличил их до 64. Как видно из картинок прирост скорости обработки, при увеличении с 6 до 40 потоков, составляет 143%.
(4) не совсем такая, даже совсем не такая.
(6) Задумка была в использовании именно внешней обработки как универсального механизма для быстрого изменения каких либо объектов в базе 1с.
(9) Обработка нужная, но не могу понять работает она или нет Тестировал в отладчике. Не останавливается на точке останова в процедуре перед записью в объекте Документе из списка сформированном в консоле запроса хотя опция debug на сервере у меня добавлена. Т е запрос формируется , фоновое задание запускаеся, индикатор и сообщения работают, но никаких операций с объектом действия не производится. Также писал для теста на табличном поле объекта действия проц с ошибками. Тестовых сообщений об ошибках не последовало.
(4) Отсутствует консоль запросов и возможность фильтрации ограничена. Весьма ограниченная вещь , а регистрацию я и сам успешно делаю.
(11) Обработка моя была приведена исключительно как пример мнгогопоточности — не более того — у каждого продукта можно найти недостатки, типа а на балалайке играть не умеет…
И приведена была тут , поскольку за совершенно другую цену предлагалось что-то менее функциональное.
Сейчас то автор поставил адекватную цену и вполне можно тестировать и дорабатывать под себя….
Единственное проценты ускорения он рассчитывает на мой взгляд предвзято…
На увеличение потоков не приводит к кратному увеличению скорости для простых операций, то есть достичь даже 100% не очень-то верится…
10 потоков при проведении документов на 4 процессорном или 48 ядерном сервере давало прирост всего 30-40%
при этом дальнейшее увеличение количества потоков давало прирост вообще не значительный , то есть 100% я по любому не достиг.
С удовольствием протестирую сейчас предлагаемую обработку!
Уберите в своей обработке при открытии формы первичный запрос…
Во первых не везде есть справочник Партнеры и возникает ошибка,
во вторых если их очень много, а пользователю нужны не партнеры — куча потерянного времени…
Ни выбрать количества используемых потоков, ни выполнить тот запрос , что в конструкторе создан …
Обработка неимоверно сырая!!!
Пока не вижу ни малейшей возможности ее использовать, ибо не работает вообще в БП3…
А уж куда как не стандарт — Бухгалтерия Предприятия…
(9) Вы сами попробуйте выполнить свою обработку вот с таким запросом
ВЫБРАТЬ ПЕРВЫЕ 1000
РеализацияТоваровУслуг.Ссылка КАК Ссылка
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
РеализацияТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода
При том в параметрах выберите любой месяц, где есть документы…
Ощущение , что вы ее ну очень рано выложили…
Либо хотите чтобы ее пользователи отлаживали?
(10) Вы как определили , что она нужная, извините?
Вы ее хоть каким-то образом смогли полезно применить в своей базе?
Да она вообще ничего не делает, и пишет , что все прекрасно 5000 документов обработала за 1 сек.
При этом даже не прикоснулась ни к одному!
Да я большей лажи вообще не видел никогда на этом сайте!
Вот оригинальный текст из обработки , выполняемый по команде СТАРТ
Показать
(14) Коллега я не автор этой обработки и даже не стал тратить время на поиск ее ошибок . Нужная потому что мне нужна обработка с произвольным запросом, а не с фиксированными параметрами и запросом. Вот если бы в Вашу обработку добавить консоль запросов и не для толстого а для тонкого клиента она во многом бы выйграла . Еще конечно неплохо бы не только записывать а выполнять кое какие экспортные процедуры документов из списка, формируемого запросом.
Впрочем напишу как нибудь сам просто мало времени. Кстати обратите внимание на блокировки. При работе В Вашей многопоточной обработке возникают ошибки взаимоблокировки. Работал один в базе и запускал многопоточную обработку. Потоки что ли не поделили записываемые объекты.
С уважением Виктор
(17) да я безусловно знаю что вы не автор того что тут выложено и что трудно назвать обработкой вообще…
https://infostart.ru/public/635478/
моя же выполняет тот функционал, который нужен нашим бухам…
Вам же могу посоветовать вот эту.
По крайней мере очень универсальный инструмент…
Спасибо. У Вас хорошая обработка просто мне нужно несколько больше функционала..
(19)
Доброго дня, ну и понаписали Вы тут, обработка была проверена на КА и ЕРП, для успешной ее работы необходима регистрация ее как внешней обработки, а потом уже файл открыть внешнюю обработку. После этого нужно вверху указать подключенную в базу внешнюю обработку. после этого она начинает использовать потоки и вообще работать. Написано же было в описании:
Подключается (должны быть соответствующие права у пользователя) через:
НСИ и администрирование —> Настройка параметров системы —> Печатные формы, отчеты и обработки —> Отчеты и обработки —> Дополнительные отчеты и обработки —> Создать —> (выбрать файл) —> Записать и закрыть.
После подключения нужно открыть данную обработку через меню «Файл» —> «Открыть» в клиентском приложении. И в поле «Дополнительная обработка ссылка: » выбрать обработку «Выполнение произвольного кода в 10 потоков».
(13)
После изменения текста на ваш запрос обработка его запомнит.
Подключается (должны быть соответствующие права у пользователя) через:
НСИ и администрирование —> Настройка параметров системы —> Печатные формы, отчеты и обработки —> Отчеты и обработки —> Дополнительные отчеты и обработки —> Создать —> (выбрать файл) —> Записать и закрыть.
После подключения нужно открыть данную обработку через меню «Файл» —> «Открыть» в клиентском приложении. И в поле «Дополнительная обработка ссылка: » выбрать обработку «Выполнение произвольного кода в 10 потоков».
(21) Вот и не надо изначально там ничего писать!
Ну если нет в принципе Справочника Партнеры.
Обработка так же в принципе не откроется…