Но, также, довольно часто, объем заменяемых данных велик и обработкой проблематично пользоваться вручную.
Зачастую возникают задачи по поиску и замене ссылок в базе. Конечно же все пользуется не заменимым инструментом — обработкой «Поиск и замена значений».
Но, также, довольно часто, объем заменяемых данных велик и обработкой проблематично пользоваться вручную. Раньше, я обычно в таких случаях писал нашлепку над поиском и заменой и заполнял ее программно. Но тут в голову пришла идея, что почти всегда данные для замены можно получить с помощью запроса.
В общем, я добавил в свою консоль простейшую кнопочку, которая заполняет обработку поиска и замены по первым двум колонкам результат запроса из консоли. Не буду выкладывать сюда консоль, т.к все пользуются разными, выложу просто код. Кому надо без проблем добавят в свою консоль запросов.
Итак, в консоль запросов добавляем кнопку. По кажатии на кнопку, будет открываться диалог выбора обработки поиска и замены значений. Собственно код:
Функция ВыбратьФайл()
ДиалогФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогФайла.Фильтр = "Внешняя обработка(*.epf)|*.epf"; ДиалогФайла.Заголовок = "Выберете файл обработки Поиска и замены значений"; ВнешняяОбработка = Неопределено; Если ДиалогФайла.Выбрать() Тогда ПолноеИмяФайлаОбработки = ДиалогФайла.ПолноеИмяФайла; Попытка СообщениеОшибки = "Выбранный файл не является внешней обработкой. |Либо, данная обработка не предназначена для |запуска в этой конфигурации."; ВнешняяОбработка = ВнешниеОбработки.Создать(ПолноеИмяФайлаОбработки); Исключение Сообщить(ОписаниеОшибки()); Предупреждение(СообщениеОшибки); ПолноеИмяФайлаОбработки = ""; Возврат Неопределено; КонецПопытки; Иначе Возврат Неопределено; КонецЕсли; Возврат ВнешняяОбработка; КонецФункции Процедура КоманднаяПанельТаблицаПоискИЗамена(Кнопка) Если РезультатТаблица.Колонки.Количество() < 2 Тогда Предупреждение("В таблице должно быть не меньше двух колонок!",6); Возврат; КонецЕсли; ЗначениеВозврата = ВыбратьФайл(); Если ЗначениеВозврата = Неопределено Тогда Возврат; КонецЕсли; ОбработкаОбъект = ЗначениеВозврата; Попытка ФормаОбработки = ОбработкаОбъект.ПолучитьФорму("Форма"); Для каждого СтрокаТЧ Из РезультатТаблица Цикл НоваяСтрока = ФормаОбработки.ЗаменяемыеЗначения.Добавить(); НоваяСтрока.ЧтоЗаменять = СтрокаТЧ[0]; НоваяСтрока.НаЧтоЗаменять = СтрокаТЧ[1]; НоваяСтрока.Пометка = Истина; КонецЦикла; ФормаОбработки.Открыть(); Исключение Сообщить("Данная обработка не подходит"); КонецПопытки; КонецПроцедуры
Похожие материалы по обработке «Поиск и замена значений»:
- Поиск и замена значений с плюшками для 8.1
- Поиск и замена значений расширенная с задачами
- Поиск и замена значений посредством SQL-запросов