Администрирование · 10 мин
Как сделать групповую обработку в 1С
Как выполнить групповую обработку в 1С: типовая обработка изменения реквизитов, универсальные подборы, написание своей обработки. Ограничения, риски и проверка результата.
Групповая обработка в 1С — это изменение данных сразу у множества объектов: справочников, документов, элементов планов счетов. Она нужна, когда требуется массово поменять реквизит, перепровести документы за период, пометить объекты на удаление или заполнить пропущенные значения. Вручную такая работа на сотнях записей занимает часы, а обработка выполняет её за минуты.
В типовых конфигурациях (1С:Бухгалтерия, Управление торговлей, ERP, ЗУП) уже есть встроенные инструменты группового изменения, а для нестандартных задач используют универсальные обработки или пишут собственные на встроенном языке. Выбор способа зависит от задачи: сменить один реквизит у отобранных элементов можно штатным механизмом, а сложную логику с условиями и расчётами — только кодом.
Главный риск групповой обработки — массовая порча данных без возможности «отката». Поэтому перед любым запуском делают резервную копию и сначала проверяют обработку на маленькой выборке из двух-трёх объектов.
Когда нужна групповая обработка и какой способ выбрать
Типичные задачи: изменить ставку НДС у группы товаров, проставить ответственного в документах за период, перепровести все реализации после исправления учётной политики, пометить на удаление дубли контрагентов, заполнить пустой реквизит значением по умолчанию. Все они объединяются одним признаком — одно и то же действие нужно применить к множеству объектов по понятному условию отбора.
Способ выбирается по сложности логики. Если нужно просто присвоить реквизиту новое значение — достаточно типовой обработки. Если требуется отбор по сложному условию, изменение табличных частей или расчёт значения по формуле — понадобится универсальная обработка или код. Если операция повторяется регулярно, её имеет смысл оформить как внешнюю обработку и подключить через механизм дополнительных отчётов и обработок.
Сравнение вариантов
Подходит для массовой замены значений реквизитов и пометки на удаление. Не умеет произвольные алгоритмы и сложные условия.
Отборы, произвольные алгоритмы, работа с табличными частями. Требует аккуратности: легко ошибиться в отборе.
Полная свобода логики и контроль транзакций. Требует навыков программирования и тестирования.
Типовая обработка «Групповое изменение реквизитов»
В конфигурациях на Библиотеке стандартных подсистем (БСП) — то есть почти во всех современных типовых решениях — есть штатный инструмент. Откройте раздел «Администрирование» → «Обслуживание» → «Корректировка данных» → «Групповое изменение реквизитов». В некоторых конфигурациях путь выглядит как «Администрирование» → «Обслуживание» → «Групповое изменение объектов».
Порядок работы: выберите тип объектов (например, «Номенклатура» или «Реализация товаров и услуг»), задайте отбор — например, все элементы из конкретной папки или документы за период. Затем в списке реквизитов отметьте те, которые нужно изменить, и укажите новые значения. Нажмите «Изменить реквизиты» — обработка покажет ход выполнения и количество обработанных объектов.
Полезная возможность — отбор по произвольному условию. В настройке отбора доступны сравнения по любым реквизитам, включая «в списке», «не заполнено», «содержит». Это позволяет точно сузить выборку: например, выбрать только товары с пустой ставкой НДС, а не все подряд.
- 1Сделайте резервную копию базы или выгрузку в файл
- 2Откройте Администрирование → Обслуживание → Групповое изменение реквизитов
- 3Выберите тип объектов и настройте отбор по условию
- 4Проверьте количество найденных объектов — оно должно соответствовать ожиданию
- 5Отметьте изменяемые реквизиты и задайте новые значения
- 6Запустите обработку и дождитесь отчёта о результате
- 7Выборочно откройте несколько объектов и убедитесь, что значения изменены корректно
Универсальная обработка «Групповая обработка справочников и документов»
Для конфигураций без БСП и для задач с произвольной логикой применяется универсальная обработка, входящая в поставку на диске ИТС, а также широко распространённая среди специалистов. Она открывается через «Файл» → «Открыть» и работает в обычном и управляемом приложении.
Обработка позволяет выбрать вид справочника или документа, построить отбор запросом, а затем выполнить одно из действий: изменить реквизиты, перепровести документы, пометить на удаление, снять пометку, выполнить произвольный алгоритм на встроенном языке. Режим произвольного алгоритма — самый мощный: в нём доступна переменная «Объект», и можно писать любую логику, включая обход табличных частей.
Пример задачи для произвольного алгоритма: у всех документов поступления за квартал заполнить договор по контрагенту, если он не указан. В типовой обработке такую логику не реализовать, а здесь достаточно нескольких строк кода с запросом к справочнику договоров.
Собственная обработка на встроенном языке
Когда штатных средств не хватает, обработку пишут в конфигураторе. Минимальный каркас: запрос для отбора объектов, цикл обхода выборки, изменение и запись каждого объекта. Для документов важно выбирать режим записи — просто «Записать» или «Проведение».
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Реализация.Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
|ГДЕ
| Реализация.Дата МЕЖДУ &Начало И &Конец
| И Реализация.Проведен");
Запрос.УстановитьПараметр("Начало", НачалоМесяца(ТекущаяДатаСеанса()));
Запрос.УстановитьПараметр("Конец", КонецМесяца(ТекущаяДатаСеанса()));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ДокОбъект = Выборка.Ссылка.ПолучитьОбъект();
ДокОбъект.Комментарий = "Пакетная обработка";
ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
КонецЦикла;
Для больших объёмов (десятки тысяч объектов) фиксируйте транзакцию порциями, а не одной транзакцией на всю выборку: иначе при сбое откатится всё, а при успехе база надолго заблокируется для пользователей. Практичный подход — записывать по 500–1000 объектов в транзакции и выводить прогресс.
Готовую обработку оформляют как внешнюю (файл .epf) и подключают через «Администрирование» → «Печатные формы, отчеты и обработки» → «Дополнительные отчеты и обработки». Тогда ею смогут пользоваться сотрудники без доступа к конфигуратору.
Риски, ограничения и защита данных
Групповая обработка обходит привычные «тормоза» интерактивной работы: пользователь не видит каждый объект и не подтверждает изменения. Поэтому ошибка в условии отбора или в значении реквизита мгновенно распространяется на всю выборку. Восстановить данные можно только из резервной копии — штатной кнопки «отменить» у таких операций нет.
Учитывайте ограничения прав: обработка изменит только те объекты, к которым у пользователя есть доступ. В распределённых базах (РИБ) массовые изменения будут реплицироваться в узлы — это создаст большой объём обмена. Проведение документов «задним числом» сдвинет последовательность и может изменить итоги прошлых периодов, что критично для закрытых отчётных периодов.
Проверка результата после обработки
После выполнения сверьте количество обработанных объектов с количеством отобранных — они должны совпадать. Типовая обработка показывает список объектов, которые не удалось изменить, с причинами (обычно это блокировки или ошибки проверки заполнения). Такие объекты обрабатывают повторно после устранения причины.
Дополнительно откройте вручную три-пять объектов из выборки и проверьте не только целевой реквизит, но и смежные данные: не сбились ли итоги документа, корректно ли отображаются связанные отчёты. Для документов имеет смысл сформировать оборотно-сальдовую ведомость или отчёт по регистру до и после — и сравнить итоги.
Как проверить результат
Совпадает с количеством отобранных
Часть объектов пропущена с ошибками
Реквизит изменён, связанные данные корректны
Значение не то, или нарушены связанные данные
Итоги соответствуют ожиданиям после изменений
Итоги изменились неожиданно — возможно, затронуты лишние документы
FAQ
Можно ли отменить групповую обработку после выполнения?
Штатной функции отмены нет. Единственный надёжный способ — восстановление из резервной копии, сделанной до запуска. Поэтому копия обязательна, даже если обработка кажется простой.
Почему «Групповое изменение реквизитов» не видна в меню?
Обработка доступна пользователям с правами администратора или с ролью на изменение данных. Также проверьте, что в «Администрирование» → «Обслуживание» не скрыт раздел корректировки данных настройками интерфейса.
Можно ли групповой обработкой изменить табличную часть документов?
Типовая обработка «Групповое изменение реквизитов» работает в основном с шапками объектов. Для изменения табличных частей используйте универсальную обработку с произвольным алгоритмом или собственный код с обходом строк табличной части.
Что делать, если часть объектов не обработалась из-за блокировок?
Это значит, что объекты были открыты другими пользователями. Дождитесь завершения их работы или запустите обработку в нерабочее время, затем повторите её — уже изменённые объекты можно исключить отбором по новому значению реквизита.
Безопасно ли перепроводить документы прошлого закрытого периода?
Нет, это рискованно: итоги могут измениться из-за изменившихся цен, курсов или настроек учёта. Если перепроведение необходимо, сначала зафиксируйте итоги отчётами, выполните операцию в копии базы и сравните результат, и только потом повторяйте в рабочей базе.
Как дать обработку пользователю без прав программиста?
Сохраните её как внешнюю обработку (.epf) и подключите через «Администрирование» → «Печатные формы, отчеты и обработки» → «Дополнительные отчеты и обработки», указав разделы и роли, которым она доступна.
Что важно запомнить
Для простых замен используйте типовую обработку «Групповое изменение реквизитов», для сложной логики — универсальную или собственную. Всегда делайте резервную копию, проверяйте отбор по количеству объектов и тестируйте на малой выборке. После выполнения сверяйте результат выборочно и по итогам отчётов.