Массовое изменение справочников и документов в 1С: от поиска команды до своей обработки
Содержание
Групповую обработку в 1С 8.3 найти проще всего по пути Администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов. Это штатная обработка типовых конфигураций на БСП: Бухгалтерии 3.0, ЗУП 3.1, УТ 11, КА и ERP. Второй путь короче: выделите строки в любом списке справочника или журнала и выберите в меню Ещё команду Изменить выделенные.
Какой способ выбрать? Если объекты уже на экране и их пара десятков, удобнее команда из списка. Если нужно отобрать сотни элементов по условию («вся номенклатура без страны происхождения»), откройте обработку из раздела администрирования и настройте отбор в ней. Когда стандартных возможностей не хватает, пишут внешнюю обработку на встроенном языке.
Где находится групповая обработка в 1С 8.3
В типовых конфигурациях на управляемых формах есть три точки входа. Все ведут в одну и ту же обработку «Групповое изменение реквизитов».
| Где искать | Путь | Когда удобно |
|---|---|---|
| Раздел администрирования | Администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов | Нужен отбор по условию, объектов много |
| Форма списка | Выделить строки → Ещё → Изменить выделенные | Объекты уже найдены и выделены |
| Все объекты конфигурации | ≡ → Функции для технического специалиста → Обработки → Групповое изменение реквизитов | Раздел скрыт или обрезан настройками |
В УТ 11, КА и ERP администрирование вынесено в раздел НСИ и администрирование. Дальше путь тот же: группа Обслуживание, затем Корректировка данных.
Как выделить несколько строк в списке
Команда Изменить выделенные работает только с выделенными строками. Выделяют так:
- 🖱️
Ctrl+ щелчок — добавить строку к выделению; - ⇧
Shift+ щелчок — выделить диапазон от первой до последней строки; - ⌨️
Ctrl+A— выделить весь список с учётом текущего отбора.
Сначала отфильтруйте список (поиск, отбор по колонке), затем нажмите Ctrl+A. Так в обработку попадут только нужные объекты.
Что умеет обработка
- ✏️ менять реквизиты шапки: склад, подразделение, ответственного, комментарий, вид номенклатуры;
- 📂 переносить элементы справочника в другую группу (реквизит «Родитель»);
- 📋 менять реквизиты в табличных частях, если это разрешено для объекта;
- 🏷️ заполнять дополнительные реквизиты и сведения, которые пользователи завели сами;
- 🔍 отбирать объекты по любым полям с условиями «равно», «не заполнено», «в списке».
Изменение запускают кнопкой Изменить реквизиты. После обработки программа показывает итог: сколько объектов изменено и на каких записях возникли ошибки.
Почему групповой обработки нет в меню
Пользователь открывает раздел, а пункта «Групповое изменение реквизитов» нет. Причин немного, и проверяют их по порядку.
1. Не хватает прав
Обработка доступна не всем ролям. Рядовому бухгалтеру или кладовщику её обычно не выдают: массовая правка в чужих руках опасна. Право даёт администратор базы через Администрирование → Настройки пользователей и прав → Профили групп доступа. Быстрая проверка: зайдите в базу под пользователем с полными правами. Если у него команда есть, а у сотрудника нет, дело в профиле. Добавьте в профиль сотрудника роль на групповое изменение объектов или поручите правку тому, у кого права уже есть.
2. Команда скрыта настройкой панели
Любой пользователь может убрать команду из раздела сам, нажав шестерёнку в правом верхнем углу и выбрав настройку навигации. Проверьте, не перенесена ли команда в список скрытых. Вернуть её можно там же или кнопкой «Стандартные настройки».
3. Конфигурация без БСП или устаревшая
Обработка входит в Библиотеку стандартных подсистем. В нетиповых, отраслевых и сильно доработанных конфигурациях её может не быть. То же касается старых решений на обычных формах. Тогда помогут внешние обработки, о них ниже.
4. Нет пункта «Функции для технического специалиста»
Этот пункт появляется в главном меню ≡ только после настройки. Откройте ≡ → Сервис → Параметры и поставьте флажок Режим технического специалиста. После перезапуска клиента пункт станет доступен. Учтите, что этот режим показывает объекты, но не расширяет права.
Другие способы запустить групповую обработку данных
Штатная обработка — не единственный инструмент. Для части задач в 1С есть более подходящие средства.
Групповое перепроведение документов
Если цель — заново сформировать движения документов, а не поменять реквизиты, нужна отдельная обработка. В Бухгалтерии 3.0 она находится в разделе Операции, в группе Сервис: «Групповое перепроведение документов
». Задаёте период, при необходимости отбор по видам документов, и запускаете.
Массовая пометка на удаление
Пометить сразу много объектов можно прямо в списке: выделите строки и нажмите Delete или выберите в меню Ещё команду пометки на удаление. Окончательно удаляют помеченное через Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов.
Внешняя «Универсальный подбор и обработка объектов»
Это известная обработка для специалистов. Она отбирает объекты запросом или отбором и применяет к ним набор действий: изменить реквизит, перенумеровать, пометить, выполнить произвольный код. Есть варианты для обычных и для управляемых форм. Подключают через Файл → Открыть или добавляют как дополнительную обработку в разделе администрирования.
Внешние обработки из случайных источников могут содержать любой код. Запускайте только проверенные файлы и только на копии базы до первого применения в рабочей.
Поиск и удаление дублей
Частая «групповая» задача — два одинаковых контрагента или товара, и в документах встречаются оба. Менять реквизит в сотне документов вручную не нужно. Обработка Администрирование → Обслуживание → Корректировка данных → Поиск и удаление дублей находит похожие элементы, а затем заменяет ссылки на дубль ссылкой на оригинал во всех документах и справочниках.
Замена ссылок затрагивает проведённые документы. Делайте её вне рабочего времени и после копии базы.
Сценарии, ради которых используют групповую обработку в 1С
Ниже реальные задачи, которые без групповой обработки превращаются в часы ручной работы.
| Задача | Что выбрать в обработке | На что смотреть |
|---|---|---|
| Перенести 300 позиций номенклатуры в новую группу | Справочник «Номенклатура», реквизит «Родитель» | Отбор по наименованию или старой группе |
| Проставить ответственного в документах за квартал | Нужный вид документа, реквизит «Ответственный» | Отбор по дате и организации |
| Заполнить страну происхождения у импортных товаров | Номенклатура, реквизит страны | Отбор «Страна не заполнена» |
| Заменить склад в черновиках реализаций | Документ реализации, реквизит «Склад» | Отбор «Проведён = Нет» |
| Дописать пометку в комментарий | Любой документ, реквизит «Комментарий» | Значение заменяет старое целиком |
Поле «Комментарий» обработка перезаписывает, а не дополняет. Старый текст пропадёт. Для дописывания нужна внешняя обработка или ручная правка.
Пример: перенос номенклатуры в другую группу
- Откройте
Администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов. - В поле выбора объектов укажите справочник «Номенклатура».
- Нажмите ссылку с отбором и задайте условие, например «Наименование содержит “кабель”».
- Проверьте счётчик: сколько элементов попало под отбор. Если цифра неожиданная, уточните условие.
- В таблице реквизитов отметьте «Родитель» и выберите новую группу.
- Нажмите
Изменить реквизитыи дождитесь итогового сообщения.
Пример: ответственный в документах за квартал
- В той же обработке выберите вид документа, например «Реализация (акт, накладная, УПД)».
- В отборе задайте период по дате и организацию.
- Отметьте реквизит «Ответственный» и выберите сотрудника.
- Запустите изменение и просмотрите список сообщений. Документы из закрытого периода попадут туда с отказом — это нормально, остальные изменятся.
Ошибки при групповой обработке и как их избежать
Массовое изменение не откатывается кнопкой «Отменить». Поэтому ошибки дешевле предупредить, чем исправлять.
Дата запрета изменения
Самая частая причина отказа при изменении документов — закрытый период. Обработка выдаёт по каждому документу сообщение о том, что данные за этот период изменять запрещено. Даты запрета задают в разделе Администрирование, в настройке «Даты запрета изменения». Открывать период ради правки можно временно, а потом вернуть дату обратно. Меняйте их только по согласованию с главным бухгалтером.
Объект заблокирован
Если документ в этот момент открыт у другого пользователя, записать его не получится. Обработка пропустит такой объект и сообщит о нём. Повторите запуск позже с тем же отбором — уже изменённые объекты просто запишутся ещё раз с тем же значением.
Проведённые документы и их движения
Смена реквизита в шапке проведённого документа не обязательно пересчитывает его движения. Поменяли склад в двадцати проведённых накладных — остатки по складам могут не совпасть с документами. После такой правки перепроведите документы за период.
Неверный отбор
Ошибка в одном условии — и обработка изменит не 40, а 4000 объектов. Перед запуском всегда смотрите количество отобранных элементов.
Собственная обработка для массового изменения
Когда штатная обработка не справляется, пишут внешнюю. Типичные причины: нужно вычислить новое значение по формуле, дописать текст к существующему, обработать табличную часть по сложному правилу.
Схема простая: запрос отбирает ссылки, затем каждый объект получают, меняют и записывают. Ниже пример серверной процедуры внешней обработки. Она проставляет единицу измерения тем позициям выбранной группы, у которых она не заполнена.
&НаСервере
Процедура ЗаполнитьЕдиницыНаСервере(Группа, Единица)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка В ИЕРАРХИИ(&Группа)
| И НЕ Номенклатура.ЭтоГруппа
| И Номенклатура.ЕдиницаИзмерения = ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.ПустаяСсылка)";
Запрос.УстановитьПараметр("Группа", Группа);
Выборка = Запрос.Выполнить().Выбрать();
Изменено = 0;
Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
Объект.ЕдиницаИзмерения = Единица;
Попытка
Объект.Записать();
Изменено = Изменено + 1;
Исключение
Сообщить(СтрШаблон("Не записан %1: %2", Выборка.Ссылка, КраткоеПредставлениеОшибки(ИнформацияОбОшибке())));
КонецПопытки;
КонецЦикла;
Сообщить(СтрШаблон("Изменено элементов: %1", Формат(Изменено, "ЧГ=0")));
КонецПроцедуры
Имена реквизитов здесь взяты из Бухгалтерии 3.0. В другой конфигурации сверьте их в Конфигураторе.
Почему не стоит включать режим загрузки
В интернете часто советуют перед записью ставить Объект.ОбменДанными.Загрузка = Истина. Запись ускоряется, но пропускаются проверки и обработчики объекта. Это значит: не заполнятся служебные поля, не сработает контроль, могут не зарегистрироваться изменения для обменов. Режим загрузки оправдан только тогда, когда разработчик точно знает, какие обработчики он обходит.
Как ускорить массовые операции в 1С
Пока изменяют 50 объектов, скорость не важна. При 50 000 тот же запуск может занять час и мешать работе всем остальным.
- ⏰ Запускайте вне рабочего времени. Каждая запись ставит блокировки. Днём это приводит к ожиданиям и ошибкам у коллег.
- 📦 Дробите на части. Перепроведение за год лучше делать по месяцам. Так проще найти сбой и не нужно начинать сначала.
- 🔎 Сужайте отбор. Условие «реквизит не заполнен» избавит от перезаписи объектов, которые и так в порядке.
- 🖥️ В своей обработке выполняйте цикл на сервере. Не перебирайте объекты на клиенте с вызовом сервера на каждый объект — это сотни лишних обращений.
- 🧩 Для очень больших объёмов — фоновое задание. Обработка не блокирует экран, а прогресс можно контролировать по журналу регистрации.
Групповое перепроведение задним числом пересчитывает себестоимость и партии. Чем шире период, тем больше перезапишется. Начните с самого раннего месяца, где нашли ошибку, и не захватывайте лишнее.