1С замена значений

Нередки случаи когда пользователи конфигураций 1С сталкиваются с проблемой возникновения дублей объектов информационной базы.

Причины их возникновения мы рассматривать не будем,а рассмотрим как исправить данную проблему с помощью универсальной обработки с диска ИТС Поиск и замена значений (ПоискИЗаменаЗначений.epf). Данная обработка позволит вам сэкономить много времени если с дублирующимися объектами связано большое количество документов.

Немного об обработке из справки 1С:

ВНИМАНИЕ!!!

Обработка выполняет замену значений в объектах информационной базы универсальным образом. При этом не учитываются особенности конкретной конфигурации. Использование обработки может нарушить логическую взаимосвязь значений объектов, которая поддерживается конфигурацией при ручной корректировке значений.

Рекомендуется перед использованием обработки сделать архивную копию информационной базы. После использования обработки следует убедиться в том, что изменения произведены корректно и не вызвали логических нарушений в данных тех объектов, в которых производилась замена значений. При необходимости следует вручную изменить те данные, значения которых, зависят от измененных обработкой значений.

Копирование обработки Поиск и замена значений с диска ИТС.

Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.
Связаться с нами можно по телефону +7 499 350 29 00.
Услуги и цены можно увидеть по .
Будем рады помочь Вам!

Для начала перепишем обработку ПоискИЗаменаЗначений.epf с диска ИТС. Для этого на диске заходим Технологическая поддержка =>1С Предприятие 8:

Диск ИТС методическая поддержка

Далее Универсальные отчеты и обработки => Поиск и замена значений => Описание и установка внешней обработки «Поиск и замена значений”:

Универсальная обработка поиск и замена значений

Нажимаем Копировать:

Копирование обработки с диска ИТС

Выбираем директорию для копирования кнопкой Искать… и нажимаем Копировать:

Путь к обработке на жестком диске

После завершения копирования жмем ОК:

Файлы скопированы

Теперь обработка Поиск и замена значений находится на вашем жестком диске, ИТС можно закрыть, нам он больше не понадобится.

Как пользоваться обработкой Поиск и замена значений (ПоискИЗаменаЗначений.epf)

Рассмотрим использование обработки на примере конфигурации 1С Управление торговлей 10.3, в которой образовались дубли контрагента. Подробнее о том как добавить внешнюю обработку, отчет или печатную форму написано здесь.Запускаем конфигурацию в режиме Предприятие и нажимаем Файл => Открыть:

Открытие обработки из конфигурации

Выбираем ранее сохраненную обработку и жмем Открыть:

ПоискИЗаменаЗначений.epf

Открывается окно обработки ПоискИЗаменаЗначений.epf:

Окно обработки

В моем случае в конфигурации необходимо устранить дубль контрагента Монолит НПО:

Дубль контрагента

В окне обработки нажимаем добавить:

Добавить элементы

Далее в появившейся строке нажимаем Т для выбора типа значения:

Тип значения объекта для замены

Выбираем нужный тип данных, в моем случае контрагенты, и нажимаем ОК:

Тип Данных

Теперь нажатием выбрать для выбора нужного контрагента:

Выбор контрагента

Выбираем контрагента, ссылки на которого будут заменены. В моем случае это контрагент Монолит с кодом 20:

Выбор контрагента который будет заменен

Видим что выбранный контрагент появился в столбце Что заменять. Далее таким же образом выбираем второго контрагента, того который должен остаться после удаления дубля:

На что заменять контрагента

После того как мы выбрали контрагента для замены,нам необходимо заменить договоры созданные для дубля контрагента на договоры действующего контрагента. Для этого нажимаем добавить и выбираем тип данных:

Выбор типа данных для замены договоров контрагентов

Выбираем тип данных Договоры контрагентов и нажимаем ОК:

Договоры контрагентов

Теперь снова нажимаем Выбрать, выбираем контрагента чей договор надо заменить, в моем случае Монолит с кодом 20 и далее договор который будет заменен:

Выбор договора для замены

Аналогичным образом в столбце На что заменять выбираем тот договор на который будут заменены значения из столбца Что заменять.

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

Найти ссылки на объекты

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

Выполнить замену значений

Ожидаем завершения обработки:

Выполняется замена значений

После завершения обработки в окне служебных сообщений появится отчет по работе обработки. Если в процессе выполнения были ошибки, вы сможете увидеть их именно там.

ПоискИЗаменаЗначений – это обработка 1С позволяющая заменять ссылочные значения во всех объектах конфигурации, которые ссылаются на заменяемый объект.

Перед тем как рассмотреть саму обработку, давайте разберемся, для решения каких прикладных задач применяется эта обработка. Допустим, мы пометили на удаление какой-то справочник, но при удалении (обработкой Удаление помеченных объектов) выясняется, что на удаляемый элемент есть ссылающиеся объекты. При таких условиях обработка «Удаление помеченных объектов» не позволит удалить элемент, т.к. это нарушит референтность базы данных. Если ссылающийся объект один или два, тогда можно ссылки заменить вручную, а если таких объектов 100, 1000? Вот в этом случае нам понадобится обработка ПоискИЗаменаЗначений. Данная обработка заменит удаляемый объект другой ссылкой, тем самым удалит связанность объектов, что позволит, в свою очередь, удалить помеченный на удаление объект.

Еще один из распространенных примеров – когда по ошибке в системе заводится дубль контрагента (номенклатуры, чего угодно), по которому уже успели ввести документы. Обработка ПоискИЗаменаЗначений в этом случае также поможет. Однако для решения второго примера больше подойдет обработка «Поиск и удаление дублей», которая также поставляется на диске ИТС и в составе БСП в одноименной подсистеме «Поиск и удаление дублей».

Рассмотрим работу с обработкой.

GUI обработки выглядит так:

Рис.1 GUI обработки
Рис.1 GUI обработки

Верхняя табличная часть предназначается для добавления исходных ссылок и ссылок, на которые необходимо произвести замену. Нижняя табличная часть содержит список ссылающихся объектов.

Давайте по шагам разберем, как пользоваться обработкой:

  • Добавляем в верхнюю табличную часть строку кнопкой «Добавить» (добавлять можно несколько строк);
Рис.2 Добавляем в верхнюю табличную часть строку кнопкой
Рис.2 Добавляем в верхнюю табличную часть строку кнопкой «Добавить»
  • Выбираем заменяемое значение в колонке «Что заменять», в этой же строке заполняем также значение, на что необходимо произвести замену;
Рис.3 Выбираем заменяемое значение в колонке
Рис.3 Выбираем заменяемое значение в колонке «Что заменять», в этой же строке заполняем также значение, на что необходимо произвести замену
  • Жмем кнопку «Найти ссылки». Все найденные объекты, которые ссылаются на элемент из колонки «Что заменять», будут выведены в нижнюю табличную часть;
Рис.4 Жмем кнопку
Рис.4 Жмем кнопку «Найти ссылки»
  • В табличной части также можно производить поиск в таблице значений для поиска определенных строк;
Рис.5 В табличной части также можно производить поиск в таблице значений для поиска определенных строк
Рис.5 В табличной части также можно производить поиск в таблице значений для поиска определенных строк
  • Мы может выбрать все или выбрать вручную определенные строки (воспользовавшись поиском описанным пунктом выше);
Рис.6 Мы может выбрать все или выбрать вручную определенные строки
Рис.6 Мы может выбрать все или выбрать вручную определенные строки
  • После чего жмем «Выполнить замену значений».
Рис.7 Выполнить замену значений
Рис.7 Выполнить замену значений

Стоить упомянуть также о дополнительных настройках:

Выполнять в транзакции – включив данную опцию, процесс удаления будет происходить в одной общей транзакции. Наличие общей транзакции означает, что если в процессе удаления произойдет какая-либо ошибка, вся транзакция откатится, и изменения в базе не будут зафиксированы. Для примера можно рассмотреть ситуацию, когда мы обрабатываем 1000 элементов: если при обработке 999 элемента произойдет ошибка, все сделанные до этого изменения в базе данных отменятся. Эта опция позволяет нам поддерживать консистентность базы данных.

Отключить контроль записи – данная опция отвечает за факт включения флага:

 ОбменДанными.Загрузка = Истина;

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

 Если ОбменДанными.Загрузка ТогдаВозврат; КонецЕсли;

Т.е. если есть данный флаг, выходим из процедуры. За счет этого достигается минимальный контроль при записи объектов.

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

 ОбщегоНазначенияКлиентСервер.СообщитьПользователю().

Данную обработку можно найти на диске ИТС по пути:

Добавить комментарий