К статье
Практический материал

Администрирование · 10 мин

Как сделать групповую обработку в 1С

Как выполнить групповую обработку в 1С: типовая обработка изменения реквизитов, универсальные подборы, написание своей обработки. Ограничения, риски и проверка результата.

Групповая обработка в 1С — это изменение данных сразу у множества объектов: справочников, документов, элементов планов счетов. Она нужна, когда требуется массово поменять реквизит, перепровести документы за период, пометить объекты на удаление или заполнить пропущенные значения. Вручную такая работа на сотнях записей занимает часы, а обработка выполняет её за минуты.

В типовых конфигурациях (1С:Бухгалтерия, Управление торговлей, ERP, ЗУП) уже есть встроенные инструменты группового изменения, а для нестандартных задач используют универсальные обработки или пишут собственные на встроенном языке. Выбор способа зависит от задачи: сменить один реквизит у отобранных элементов можно штатным механизмом, а сложную логику с условиями и расчётами — только кодом.

Главный риск групповой обработки — массовая порча данных без возможности «отката». Поэтому перед любым запуском делают резервную копию и сначала проверяют обработку на маленькой выборке из двух-трёх объектов.

Когда нужна групповая обработка и какой способ выбрать

Типичные задачи: изменить ставку НДС у группы товаров, проставить ответственного в документах за период, перепровести все реализации после исправления учётной политики, пометить на удаление дубли контрагентов, заполнить пустой реквизит значением по умолчанию. Все они объединяются одним признаком — одно и то же действие нужно применить к множеству объектов по понятному условию отбора.

Способ выбирается по сложности логики. Если нужно просто присвоить реквизиту новое значение — достаточно типовой обработки. Если требуется отбор по сложному условию, изменение табличных частей или расчёт значения по формуле — понадобится универсальная обработка или код. Если операция повторяется регулярно, её имеет смысл оформить как внешнюю обработку и подключить через механизм дополнительных отчётов и обработок.

Сравнение вариантов

Групповое изменение реквизитов (типовая)

Подходит для массовой замены значений реквизитов и пометки на удаление. Не умеет произвольные алгоритмы и сложные условия.

Универсальная обработка (ИТС)

Отборы, произвольные алгоритмы, работа с табличными частями. Требует аккуратности: легко ошибиться в отборе.

Собственная обработка на встроенном языке

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

Типовая обработка «Групповое изменение реквизитов»

В конфигурациях на Библиотеке стандартных подсистем (БСП) — то есть почти во всех современных типовых решениях — есть штатный инструмент. Откройте раздел «Администрирование» → «Обслуживание» → «Корректировка данных» → «Групповое изменение реквизитов». В некоторых конфигурациях путь выглядит как «Администрирование» → «Обслуживание» → «Групповое изменение объектов».

Порядок работы: выберите тип объектов (например, «Номенклатура» или «Реализация товаров и услуг»), задайте отбор — например, все элементы из конкретной папки или документы за период. Затем в списке реквизитов отметьте те, которые нужно изменить, и укажите новые значения. Нажмите «Изменить реквизиты» — обработка покажет ход выполнения и количество обработанных объектов.

Полезная возможность — отбор по произвольному условию. В настройке отбора доступны сравнения по любым реквизитам, включая «в списке», «не заполнено», «содержит». Это позволяет точно сузить выборку: например, выбрать только товары с пустой ставкой НДС, а не все подряд.

Порядок действий в типовой обработке
  1. 1
    Сделайте резервную копию базы или выгрузку в файл
  2. 2
    Откройте Администрирование → Обслуживание → Групповое изменение реквизитов
  3. 3
    Выберите тип объектов и настройте отбор по условию
  4. 4
    Проверьте количество найденных объектов — оно должно соответствовать ожиданию
  5. 5
    Отметьте изменяемые реквизиты и задайте новые значения
  6. 6
    Запустите обработку и дождитесь отчёта о результате
  7. 7
    Выборочно откройте несколько объектов и убедитесь, что значения изменены корректно

Универсальная обработка «Групповая обработка справочников и документов»

Для конфигураций без БСП и для задач с произвольной логикой применяется универсальная обработка, входящая в поставку на диске ИТС, а также широко распространённая среди специалистов. Она открывается через «Файл» → «Открыть» и работает в обычном и управляемом приложении.

Обработка позволяет выбрать вид справочника или документа, построить отбор запросом, а затем выполнить одно из действий: изменить реквизиты, перепровести документы, пометить на удаление, снять пометку, выполнить произвольный алгоритм на встроенном языке. Режим произвольного алгоритма — самый мощный: в нём доступна переменная «Объект», и можно писать любую логику, включая обход табличных частей.

Пример задачи для произвольного алгоритма: у всех документов поступления за квартал заполнить договор по контрагенту, если он не указан. В типовой обработке такую логику не реализовать, а здесь достаточно нескольких строк кода с запросом к справочнику договоров.

Собственная обработка на встроенном языке

Когда штатных средств не хватает, обработку пишут в конфигураторе. Минимальный каркас: запрос для отбора объектов, цикл обхода выборки, изменение и запись каждого объекта. Для документов важно выбирать режим записи — просто «Записать» или «Проведение».

Запрос = Новый Запрос(

"ВЫБРАТЬ

| Реализация.Ссылка

|ИЗ

| Документ.РеализацияТоваровУслуг КАК Реализация

|ГДЕ

| Реализация.Дата МЕЖДУ &Начало И &Конец

| И Реализация.Проведен");

Запрос.УстановитьПараметр("Начало", НачалоМесяца(ТекущаяДатаСеанса()));

Запрос.УстановитьПараметр("Конец", КонецМесяца(ТекущаяДатаСеанса()));

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

ДокОбъект = Выборка.Ссылка.ПолучитьОбъект();

ДокОбъект.Комментарий = "Пакетная обработка";

ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);

КонецЦикла;

Для больших объёмов (десятки тысяч объектов) фиксируйте транзакцию порциями, а не одной транзакцией на всю выборку: иначе при сбое откатится всё, а при успехе база надолго заблокируется для пользователей. Практичный подход — записывать по 500–1000 объектов в транзакции и выводить прогресс.

Готовую обработку оформляют как внешнюю (файл .epf) и подключают через «Администрирование» → «Печатные формы, отчеты и обработки» → «Дополнительные отчеты и обработки». Тогда ею смогут пользоваться сотрудники без доступа к конфигуратору.

Риски, ограничения и защита данных

Групповая обработка обходит привычные «тормоза» интерактивной работы: пользователь не видит каждый объект и не подтверждает изменения. Поэтому ошибка в условии отбора или в значении реквизита мгновенно распространяется на всю выборку. Восстановить данные можно только из резервной копии — штатной кнопки «отменить» у таких операций нет.

Учитывайте ограничения прав: обработка изменит только те объекты, к которым у пользователя есть доступ. В распределённых базах (РИБ) массовые изменения будут реплицироваться в узлы — это создаст большой объём обмена. Проведение документов «задним числом» сдвинет последовательность и может изменить итоги прошлых периодов, что критично для закрытых отчётных периодов.

Типичные ошибки
01
Запуск без резервной копии — при ошибке данные восстановить нечем
02
Отбор без проверки количества — изменяются лишние объекты
03
Перепроведение закрытого периода — меняются итоги и сданная отчётность
04
Запуск в рабочее время на большой базе — блокировки и жалобы пользователей
05
Изменение реквизита без учёта связанных данных — например, смена единицы измерения без пересчёта количества

Проверка результата после обработки

После выполнения сверьте количество обработанных объектов с количеством отобранных — они должны совпадать. Типовая обработка показывает список объектов, которые не удалось изменить, с причинами (обычно это блокировки или ошибки проверки заполнения). Такие объекты обрабатывают повторно после устранения причины.

Дополнительно откройте вручную три-пять объектов из выборки и проверьте не только целевой реквизит, но и смежные данные: не сбились ли итоги документа, корректно ли отображаются связанные отчёты. Для документов имеет смысл сформировать оборотно-сальдовую ведомость или отчёт по регистру до и после — и сравнить итоги.

Контрольные точки

Как проверить результат

Количество изменённых объектов
Норма

Совпадает с количеством отобранных

Тревожный признак

Часть объектов пропущена с ошибками

Случайный объект из выборки
Норма

Реквизит изменён, связанные данные корректны

Тревожный признак

Значение не то, или нарушены связанные данные

Итоги отчётов за период
Норма

Итоги соответствуют ожиданиям после изменений

Тревожный признак

Итоги изменились неожиданно — возможно, затронуты лишние документы

FAQ

Можно ли отменить групповую обработку после выполнения?

Штатной функции отмены нет. Единственный надёжный способ — восстановление из резервной копии, сделанной до запуска. Поэтому копия обязательна, даже если обработка кажется простой.

Почему «Групповое изменение реквизитов» не видна в меню?

Обработка доступна пользователям с правами администратора или с ролью на изменение данных. Также проверьте, что в «Администрирование» → «Обслуживание» не скрыт раздел корректировки данных настройками интерфейса.

Можно ли групповой обработкой изменить табличную часть документов?

Типовая обработка «Групповое изменение реквизитов» работает в основном с шапками объектов. Для изменения табличных частей используйте универсальную обработку с произвольным алгоритмом или собственный код с обходом строк табличной части.

Что делать, если часть объектов не обработалась из-за блокировок?

Это значит, что объекты были открыты другими пользователями. Дождитесь завершения их работы или запустите обработку в нерабочее время, затем повторите её — уже изменённые объекты можно исключить отбором по новому значению реквизита.

Безопасно ли перепроводить документы прошлого закрытого периода?

Нет, это рискованно: итоги могут измениться из-за изменившихся цен, курсов или настроек учёта. Если перепроведение необходимо, сначала зафиксируйте итоги отчётами, выполните операцию в копии базы и сравните результат, и только потом повторяйте в рабочей базе.

Как дать обработку пользователю без прав программиста?

Сохраните её как внешнюю обработку (.epf) и подключите через «Администрирование» → «Печатные формы, отчеты и обработки» → «Дополнительные отчеты и обработки», указав разделы и роли, которым она доступна.

Итог

Что важно запомнить

Для простых замен используйте типовую обработку «Групповое изменение реквизитов», для сложной логики — универсальную или собственную. Всегда делайте резервную копию, проверяйте отбор по количеству объектов и тестируйте на малой выборке. После выполнения сверяйте результат выборочно и по итогам отчётов.