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