Зачем это нужно
Типовая «замена ссылок» рассчитана на одну ссылку «по всей базе». На практике обычно иначе:
- заменить контрагента А на Б и одновременно номенклатуру X на Y;
- пройти только реализацию и поступления за квартал, а не все 400 документов конфигурации;
- сначала увидеть масштаб (сколько объектов), и только потом писать;
- не трогать устаревшие объекты
Удалить*.
Полный перебор информационной базы для этого избыточен. Обработка ищет совпадения запросом по реквизитам, измерениям и ресурсам, в тип которых входит выбранный тип значения (в том числе через определяемые типы).
Что умеет
- Правила: тип значения → вид объекта (справочник, документ, перечисление, ПВХ) или строка → искомое / новое. Пока тип не выбран, поля значений недоступны.
- Несколько правил за один прогон, в том числе одного типа (А→X и B→Y в одном поле).
- Режим только подсчёт: ничего не записывается, в протоколе — число кандидатов по каждому объекту метаданных. Кнопка при этом называется «Подсчитать».
- Области: документы, справочники, регистры сведений, регистры накопления. На отдельных страницах отмечаются конкретные виды. По умолчанию отмечены все; «Снять все» и отметить нужные — чтобы не обходить всю конфигурацию.
- Период (дата документа / период регистра), табличные части, пропуск объектов и реквизитов
Удалить*. - Запись пачками в транзакции. Если пачка упала — откат и повтор по одному объекту.
- Привилегированный режим (без RLS) и запись с
ОбменДанными.Загрузка = Истина. - Перед запуском — вопрос со списком правил (тип, что ищется, на что меняется) и кратким составом выбранных видов.
Форма в конфигураторе пустая: реквизиты, команды и элементы создаются программно при открытии.
Как пользоваться
- Сделайте копию базы.
- В таблице правил выберите тип (например, «Справочник»), вид («Контрагенты»), затем искомое и новое.
- Включите нужные области и на страницах видов оставьте только те объекты, которые надо обойти.
- При необходимости задайте период.
- Оставьте Только подсчёт, нажмите Подсчитать, проверьте протокол.
- Снимите подсчёт и выполните замену.
Примеры
- Контрагент А → Б: тип «Справочник», вид «Контрагенты».
- Заполнить пустую ставку НДС: вид справочника или перечисления, флаг «Искать пустые», новое = нужная ставка.
- Очистить реквизит: искомое заполнено, новое пустое.
Тип Строка затронет все строковые реквизиты выбранных объектов. Его лучше сначала прогонять в режиме подсчёта.
Как это устроено
Для каждого выбранного объекта метаданных собираются поля, в ОписаниеТипов которых входит тип правила.
Кандидаты выбираются одним запросом: подзапросы по шапке и табличным частям объединяются через ОБЪЕДИНИТЬ ВСЕ, уникальность считает СУБД. Выборка идёт потоком, без сбора всех ссылок в массив.
Независимые регистры сведений пишутся наборами по измерениям (и периоду, если регистр периодический). Подчинённые регистратору — набором по регистратору. Непериодические РС без поля Период в отбор по периоду не попадают.
Если у независимого РС совпало только измерение (ключ записи), регистр пропускается: смену ключа автоматически делать нельзя.
Ограничения
- Запись в режиме загрузки: нет перепроведения, типовых проверок и регистрации в планах обмена. Шапка документа и движения совпадут, только если в том же прогоне включены и документы, и регистры.
- Не обрабатываются стандартные реквизиты (
Родитель,Владелец), общие реквизиты, константы, бухгалтерия, задачи, бизнес-процессы. - У регистра по регистратору читается весь набор. При ограниченном периоде в набор могут попасть и строки вне периода.
- Правила выполняются по порядку строк. Если первое делает А→B, а второе B→C, в этом поле А станет C.
- Если на странице видов ничего не отмечено, эта область не обрабатывается.
- Запускать лучше без других пользователей: пачки удерживают блокировки.
Для кого
Администраторы и внедренцы 1С 8.3, которым нужна контролируемая массовая замена в оперативном контуре — с отбором по видам объектов и подсчётом «до», а не сюрпризом «после».
1.0.1 - Релиз
1.0.2 - Доработан интерфейс и добавлен выбор метаданных где искать и заменять значения
Обработка универсальная для управляемых форм
Проверено на следующих конфигурациях и релизах:
- 1С:ERP Управление предприятием 2, релизы 2.6.1.61
- 1С:Комплексная автоматизация 2, релизы 2.6.1.61
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.206.19
Вступайте в нашу телеграмм-группу Инфостарт