Однажды потребовалось неоднократно помечать на удаление 3500 документов. Процедура долгая, выполнялась примерно 1 час.
Такой результат меня не устроил, решил написать обработку, где в пользовательском режиме можно будет написать выборку и обработку данных и она выполнится в многопоточном режиме. Аналогов найти не смог.
За основу взята бесплатно распространяемая обработка //infostart.ru/1c/tools/1808052/.
Обработка позволяет написать коды процедур выборки данных и обработки данных прямо в пользовательском режиме, без использования конфигуратора.
Обработкой можно пользоваться как внешней, так и встроить в доп обработки. В любом варианте запуска фоновое выполнение будет работать.
Для удобства добавлены:
- Возможность оставить комментарий в отдельном поле.
- Конструктор запроса в "Код выборки данных". Можно выделить существующий текст запроса и в конструкторе он сразу подтянется. Либо не выделять текст и создать новый текст запроса.
- Возможность сохранять и загружать настройки обработки. В файл TXT будет записана структура со свойствами "КоличествоПотоков, КодВыборкиДанных, КодОбработкиДанных, Комментарий" в формате XML (ОбщегоНазначения.ЗначениеВСтрокуXML)
Небольшое пояснение:
Поле "Код выборки данных" должно содержать код, который в переменную "ТаблицаДляОбработки" поместит таблицу значений с данными, которые нужно будет обработать процедурой "Код обработки данных".
*После выполнения кода обработки в таблицу значений будут добавлены служебные колонки "ИД, (Пометка) Обработать, Результат, Описание ошибки".
Поле "Код обработки данных" должно содержать код, который будет выполнять операции с данными. Обход производится построчно. В переменной "ЭлементКоллекции" содержится данные текущей строки таблицы значений.
С помощью данной обработки я пометил на удаление 3500 документов за 5 минут (использовал 50 потоков).
Для функционирования обработки требуется БСП.
Тестировалось на ЗУП КОРП 3.1.29.
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.10.191
- Зарплата и управление персоналом, редакция 3.1, релизы 3.1.29.38