Заполнение обработки "Поиск и замена значений" из консоли запросов

15.09.11

Разработка - Запросы

Зачастую возникают задачи по поиску и замене ссылок в базе. Конечно же все пользуется не заменимым инструментом - обработкой "Поиск и замена значений".
Но, также, довольно часто, объем заменяемых данных велик и обработкой проблематично пользоваться вручную.

 

Зачастую возникают задачи по поиску и замене ссылок в базе. Конечно же все пользуется не заменимым инструментом - обработкой "Поиск и замена значений".

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

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

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

 

Функция ВыбратьФайл()

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

Похожие материалы по обработке "Поиск и замена значений":

 

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

12000 руб.

02.09.2020    171778    962    403    

924

Запросы Программист Бесплатно (free)

Увидел cheatsheet по SQL и захотелось нарисовать подобное, но про запросы.

18.10.2024    11720    sergey279    18    

65

Запросы Программист Платформа 1С v8.3 Запросы 1C:Бухгалтерия Бесплатно (free)

Столкнулся с интересной ситуацией, которую хотел бы разобрать, ввиду её неочевидности. Речь пойдёт про использование функции запроса АВТОНОМЕРЗАПИСИ() и проблемы, которые могут возникнуть.

11.10.2024    6674    XilDen    36    

83

Запросы Программист Запросы Бесплатно (free)

Отлаживая взаимодействие с базой данных, мы регулярно сталкиваемся с зависающими или подозрительно долго выполняющимися обращениями, негативно влияющими на производительность. О том, как в PostgreSQL выявить подозрительные запросы, основываясь на доступной о них информации, расскажем в статье.

16.08.2024    9364    user1840182    5    

28

Математика и алгоритмы Запросы Программист Платформа 1С v8.3 Запросы Бесплатно (free)

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

08.07.2024    2805    ivanov660    9    

22

Запросы СКД Программист Стажер Система компоновки данных Россия Бесплатно (free)

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

15.05.2024    10669    implecs_team    6    

48

Запросы Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Часто поступают задачи по произвольному распределению общих сумм. После распределения иногда пропадают копейки. Суть решения добавить АвтоНомерЗаписи() в ВТ распределения, и далее используя функции МАКСИМУМ или МИНИМУМ можем положить разницу копеек в первую или последнюю строку знаменателя распределения.

11.04.2024    3673    andrey_sag    10    

38
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. _also 490 15.09.11 21:58 Сейчас в теме
(1)German,
Клево конечно. Но я так и не дорос до использования Вашего "монстра" :)
В смысле начинал конечно пользоваться, но бесплатная версия не очень функциональна(
7. iov 407 16.09.11 12:32 Сейчас в теме
(2) Полная платная версия - у меня 50% доступа- только терминалом а ключик только локально. Так что альтернатива таки нужна.
8. _also 490 16.09.11 12:35 Сейчас в теме
(7) iov, Ничего не понял если честно :)
9. iov 407 16.09.11 12:36 Сейчас в теме
(8) пардон не туда
(1) Полная платная версия - у меня 50% доступа- только терминалом а ключик только локально. Так что альтернатива таки нужна.
10. _also 490 16.09.11 12:38 Сейчас в теме
(9) А я и так ничего не понял :)
11. iov 407 16.09.11 12:57 Сейчас в теме
(10) платная версия IE - привязана к ключику HASP. То есть чтобы полноценно работать его надо воткнуть в комп...
а очень многие не дают ставить софт проброса или иной софт чтобы мой ключик у них на серваке подцепить...
12. _also 490 16.09.11 13:00 Сейчас в теме
(11) Понятно. Действительно наверное тяжко, если работаешь с разными клиентами.
13. iov 407 16.09.11 13:05 Сейчас в теме
(12) О да на вас жилетка - я немного поплачусь?
А теперь добавьте к этому невозможность примапить диски свои + реакция админа минимум через час. + перезагрузки и прочие работы без предупреждения... Вот приходится фиксировать время начала (письмом) и также время окончания.
14. _also 490 16.09.11 13:06 Сейчас в теме
15. iov 407 16.09.11 13:12 Сейчас в теме
(14) Это ладно тут один админ "по вызову" рассказывал историю своей жизни. Вот где "белый бим черное ухо"- плакали все ... Сошлись на мнении что рееркарнация существует и в прошлой жизни он был массовым убийцей раз так сейчас мучается...
3. Поручик 4661 15.09.11 22:06 Сейчас в теме
(1) Ну как вариант.
А здесь описан простой и быстрый способ добавить функциональности своей любимой консоли запросов.

(0) Вместо
            НоваяСтрока.ЧтоЗаменять   = СтрокаТЧ[0];
            НоваяСтрока.НаЧтоЗаменять = СтрокаТЧ[1];

лучше написать
             ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЧ);

так как в запросе поля могут располагаться в произвольном порядке.
4. _also 490 15.09.11 22:09 Сейчас в теме
(3) тогда надо будет поля в запросе обязательно обзывать ЧтоЗаменять, НаЧтоЗаменять..
Я же для себя сделал просто: попадают первые 2 поля. Естественно, можно сделать и по другому, но мне так удобнее :)
5. Angeros 16.09.11 09:49 Сейчас в теме
А что это за консоль запросов. Где такую найти посмотреть?!
6. _also 490 16.09.11 09:55 Сейчас в теме
17. Поручик 4661 16.09.11 17:20 Сейчас в теме
(5) Консолей запросов на этом сайте как грязи как перенумераторов.
16. sinichkas 16.09.11 16:45 Сейчас в теме
очень удобная весч,спасибо
18. jjinn 21.09.11 10:26 Сейчас в теме
19. Eldarion999 21.09.11 13:20 Сейчас в теме
Спасибо! Пригодилась.
20. zhleonid8 21.09.11 14:46 Сейчас в теме
21. tormozit 7250 11.12.11 18:21 Сейчас в теме
Внес похожую возможность в "Инструменты разработчика" http://devtool1c.ucoz.ru/
Отличие в том, что в моем случае используется обработка поиска и замены дублей, где не допускается замены ссылок разных типов. Т.е. у меня все ссылки должны быть однотипными. Зато есть возможность сразу много групп дублей создать через дерево.
22. _also 490 12.12.11 10:13 Сейчас в теме
(21) tormozit, тебе огромный респект за консоль запросов. Я в нее уже подабавлял кое-чего. Могу поделиться, если надо.
23. tormozit 7250 12.12.11 10:19 Сейчас в теме
(22) Я был бы благодарен за хорошие идеи и тем более с реализацией. Желательно их описать в комментариях к подсистеме или на форуме http://devtool1c.ucoz.ru/forum
24. _also 490 12.12.11 10:20 Сейчас в теме
25. AlexO 136 30.03.12 10:46 Сейчас в теме
что-то я сразу не въехал:
т.е. сначала выбирается запросом в консоли некие соответствия друг другу (например, все контрагенты с "неправильным" ИНН в первой колонке, соответствующие им "правильные" ИНН во второй), и уже этой таблицей (запуск из консоли другой обработки) построчно заполняются поля обработки "ПосикИЗамена"? Или я что-то недопонял?
____________________________
(21) tormozit,
т.е. здесь нет контроля типов при составлении таблицы замен? А у вас контроль реализован?
(23) идеи уже поступили и реализованы в ИР? :)))
26. _also 490 30.03.12 10:59 Сейчас в теме
(25) все правильно понял. А зачем контроль типов? Ты же сам будешь пользоваться. В ИР уже есть.
27. AlexO 136 30.03.12 11:28 Сейчас в теме
(26)
просто у меня таких задач еще не было ))
И пока даже не могу придумать.
28. _also 490 30.03.12 11:32 Сейчас в теме
(27) видимо у тебя бухи нормальные)))
29. AlexO 136 30.03.12 12:03 Сейчас в теме
(28)
бухи качественные, но хотел бы узнать про конкретные косяки, которые исправляет данная обработка - может, мы что упускаем в своей с ними работе....
30. tormozit 7250 31.05.12 20:41 Сейчас в теме
(25) Реализованы пока частично.
31. пользователь 14.10.14 15:40
Сообщение было скрыто модератором.
...
32. _also 490 14.10.14 16:54 Сейчас в теме
(31) husky, я эту свою внешнюю консоль уже забросил давно. Теперь только инструменты разработчика, а там это есть ))
Оставьте свое сообщение