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

15.09.11

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

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

 

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

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

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

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

 

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

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

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

 

См. также

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

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

15500 руб.

02.09.2020    183527    1023    403    

966

Обновление 1С Запросы Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

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

2 стартмани

06.02.2025    2137    17    XilDen    26    

36

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

В статье приведена удобная возможность отладки исполняемого запроса динамического списка.

03.12.2024    5598    artemusII    11    

23

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

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

18.10.2024    13014    sergey279    18    

65

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

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

11.10.2024    8112    XilDen    36    

90

СКД Механизмы типовых конфигураций Запросы Программист Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    3112    PROSTO-1C    0    

23

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

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

16.08.2024    10692    user1840182    5    

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

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

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

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