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