Супер-быстрый поиск и замена значений на УФ

03.06.15

Задачи пользователя - Поиск данных

Возможности:
1. Замена ссылок в объектах сгруппирована по самим объектам, что сильно ускоряет работу: объект 1 раз получается из БД, в нем производятся все необходимые замены после чего объект  1 раз записывается в БД.
2. Существует возможность отключения итогов во время выполнения замены ссылок, что также сильно ускоряет замену в движениях регистров.
3. Представлена возможность пометки на удаление заменяемых значений (для последующего удаления).
4. На форме расположен прогресс-бар, что позволяет оценить оставшееся время работы.
5. Предусмотрена запись объектов в режиме "Загрузка" (данная опция позволяет производить замены в некорректно введенных данных).
6. Предложена возможность отбора видов объектов, в которых будет произведен поиск ссылок. Документы (и их движения), бизнес- процессы, задачи и периодические регистры сведений также можно отобрать по периоду.
7. Реализована функциональность "точечных" замен, установкой флагов "Выбран".
8. Замена в движениях регистров происходит без перепроведения документов, что позволяет делать замены по "закрытым" периодам.

Скачать файлы

Наименование Файл Версия Размер
Супер- быстрая замена ссылок на объекты
.epf 26,72Kb
749
.epf 1.0 26,72Kb 749 Скачать

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

Для выполнения определенных работ я пробовал использовать кем-то ранее созданную обработку, но более чем за 8 часов в БД было выполнено около 10% замен значений. Моя обработка со всеми заменами значений справляется менее, чем за 1 час.

поиск замена

См. также

Быстрый поиск дублей с четким/нечетким поиском по любому сочетанию реквизитов/реквизитов таб. частей с отбором и быстрой заменой значений в ЛЮБЫХ базах 8.1-8.3 (УТ 10.3, БП 2, ЗУП 2.5, КА 1.1, УТ 11, БП 3, УНФ 1.6/3.0, КА 2, ЗУП 3 и т.д.)

Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработки помогут Вам легко и, главное, быстро (в 5 раз и быстрее штатной обработки 1С), выполнить поиск дублирующих данных в Ваших базах 1С на платформах 8.1-8.3. Это позволит уменьшить объем лишней информации в справочниках и документах, планах видов характеристик и др., упростит работу с данными пользователям. А так же можно, одним нажатием, узнать в каких ссылочных объектах есть вообще дубли! Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А так же обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! (Обновление от 27.11.2023, версия 6.12)

9600 руб.

14.05.2012    155051    324    252    

556

Журнал изменений с восстановлением состояния ссылочных объектов и архивацией по HTTP / COM (расширение + конфигурация, 8.3.14+, ЛЮБАЯ конфигурация)

Архивирование (backup) Журнал регистрации Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

База данных «сама» меняет данные в документах/справочниках? Тогда данный журнал изменений для Вас! Практически не влияет на скорость записи объектов за счет быстрого алгоритма! Скорость работы почти в 2 раза выше типового механизма "История изменений"! Позволяет следить за изменениями и удалением в любых ссылочных объектах конфигурации, с возможностью архивации по HTTP(!) или COM, и сверткой данных. А так же, может восстановить состояние реквизитов (значения) до момента изменения или удаления объекта из базы. Есть ДЕМО-база где можно самостоятельно протестировать часть функционала! Работает на любых платформах выше 8.3.14+ и любых конфигурациях! Версия 3.1 от 24.08.2023!

19200 руб.

15.05.2017    42470    10    24    

38

Поиск номенклатуры в интернете (Розница 2.3, Управление торговлей 11.4)

Розничная торговля WEB-интеграция Поиск данных Платформа 1С v8.3 Оперативный учет 1С:Розница 2 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Альтернатива сервису 1С Номенклатура, не требует подписки ИТС, ищет данные в открытых источниках. Для поиска товара по штрихкоду в сети интернет, полезно для первоначального заполнения базы.

1999 руб.

15.10.2020    18361    22    63    

23

Кто такая Мантикора?

Поиск данных Платформа 1С v8.3 Россия Абонемент ($m)

Статья об опыте развертывания и интеграции с базой данных Manticore Search для быстрого полнотекстового поиска.

1 стартмани

30.11.2023    2999    andreysidor4uk    14    

45

PowerOffice

Поиск данных Корректировка данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

PowerOffice - обработка для поиска, просмотра и обработки данных для пользователей. Доступ к объектам на просмотр и редактирование данных определяется правами пользователя.

1 стартмани

05.06.2023    1902    23    PowerBoy    1    

15

Получение ссылки по бинарной строке PostgreSQL или MSSQL

Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Получение ссылки в 1С по бинарной строке из PostgreSQL в виде строки формата bytea или из MSSQL в виде шестнадцатиричной строки. Кроме ссылочных объектов ссылки могут быть получены и для перечислений. Это может быть полезно при анализе логов журнала регистрации или СУБД.

1 стартмани

04.04.2023    2559    2    berserg    2    

12

Поиск документов с ошибками проведения, универсальный

Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

18.08.2022    2971    21    KVIKS    3    

10
Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. tormozit 7132 03.06.15 17:46 Сейчас в теме
Не пробовал, но описаны действительно эффективные улучшения.
2. IvanAlekseev 77 03.06.15 21:21 Сейчас в теме
(1) tormozit, главное в публикации не написано: в предыдущей обработке был код- лапша, который я практически весь удалил. Теперь там пушкинские строки- можно перед сном читать без особого напряжения. Главное на расплакаться от умиления :)

Кстати, предыдущая обработка выполняла не все замены в регистре бухгалтерии (автор сам запутался в своей лапше).
Drivingblind; wowik; GetNight; dj_serega; students; aexeel; MaximStav; bogdan_sukonnov; +8 Ответить
27. fixin 4252 14.05.16 00:42 Сейчас в теме
(2) да, типовой код в этой обработке был таким, что без слез не взглянешь. Если реально переписал, то красаучык. Сейчас скачаю, протестирую.

Да, поюзал, недурно-с. Молодец.
21. 1cmax 152 24.06.15 22:05 Сейчас в теме
(1) tormozit, ждем реализации алгоритма в инструментах разработчика.
22. tormozit 7132 25.06.15 23:58 Сейчас в теме
(21) Уже реализовано все, кроме отключения итогов (опасная операция, думаю над сглаживанием углов).
3. hakerxp 2976 03.06.15 23:09 Сейчас в теме
4. На форме расположен прогресс-бар, что позволяет оценить оставшееся время работы.

Если расположен прогресс-бар, то получается что обработка должна получать данные в фоне. А это значит что обработка должна использовать ранее прописанные экспортные процедуры общих модулей. Это сужает область использования.
Иначе, прогресс-бар каждый раз лазит с сервера на клиент для отображения состояния, что неэффективно и снижает скорость работы обработки. Обработчики ожиданий не работают для считывания состояния когда форма занята работой в управляемом режиме т.к. управление уходит на сервер.
4. h00k 50 04.06.15 04:59 Сейчас в теме
(3) hakerxp,
Если расположен прогресс-бар, то получается что обработка должна получать данные в фоне. А это значит что обработка должна использовать ранее прописанные экспортные процедуры общих модулей. Это сужает область использования.

ОМГ, изучите уже возможности БСП 2.2+, а то прям странно такое читать.

Подсказка: Стоит обратить внимание на ОМ ДлительныеОперации и в частности на функции ЗапуститьВыполнениеВФоне, СообщитьПрогресс, ПрочитатьПрогресс и т.д. ... ну и другие модули, с названием начинающимся с ДлительныеОперации, тоже достаточно полезны и содержат ряд интересных функций.
5. hakerxp 2976 04.06.15 08:31 Сейчас в теме
(4) h00k, эти модули где находятся? Как раз в общих модулях т.к. внешняя обработка не может запустить свой же код в фоне. Это уже много раз мной проверено. И модули "Длительные операции" так же использует запуск процесса в фоне, а потом при помощи обработчика ожидания считывают состояние. Все это справедливо для конфигураций с данными модулями.
6. IvanAlekseev 77 04.06.15 10:24 Сейчас в теме
(3) hakerxp, никаких фоновых заданий не используется. Обработка универсальная и не опирается ни на какие общие модули.
7. hakerxp 2976 04.06.15 13:11 Сейчас в теме
(6), я не смотрел код, но как же все таки Вы выкрутились с баром и его состоянием?
8. IvanAlekseev 77 04.06.15 13:15 Сейчас в теме
(7) hakerxp, на клиенте цикл по количеству шагов прогресс- бара. В цикле вызывается серверная процедура, выполняющая замены.
9. hakerxp 2976 04.06.15 16:12 Сейчас в теме
(8), я угадал) А вообще, я б в угоду скорости отказался от бара, если обработка внешняя. А так бы предусмотрел возможность использовать модули "Длительные операции", если обработка точно будет встроена в конфу.
28. fixin 4252 14.05.16 01:25 Сейчас в теме
(6) (3) Вместо кривых фоновых процессов можно просто тупо запустить в отдельном окне 1С, ;-)
главное, чтобы работала
10. Поручик 4670 04.06.15 16:50 Сейчас в теме
(0) Ты взял эту за основу - http://infostart.ru/public/91837/ ? В ней реализовано всё тоже самое, кроме п. 2., 3., 6.
11. IvanAlekseev 77 04.06.15 16:55 Сейчас в теме
(10) Поручик, да, и переписал 80% кода.

п.1 там нет.
12. CheBurator 3119 04.06.15 21:37 Сейчас в теме
некузяво.
где передовой "такси" ?
пишем вещи для устаревших вещей ;-)
13. Поручик 4670 05.06.15 07:34 Сейчас в теме
(12) Опять ляпнул не в ту степь. Практически все обработки для управляемого приложения, написанные ещё для 8.2., работают в поедем на таксо в интерфейсе "такси" без переделок.
14. hakerxp 2976 05.06.15 11:13 Сейчас в теме
(13), с учетом если режим модальности не стоит "Не использовать". А так в обработке нужно предусматривать варианты работы обработки в зависимости от модальности конфигурации. Иначе будет ошибка. А так же нужна адаптация интерфейса под компоновку элементов под "такси". Следовательно, работать возможно будут вещи с 8.2, но как - это уже вопрос.
15. IvanAlekseev 77 05.06.15 14:13 Сейчас в теме
(14) hakerxp, модальные окна не используются.
16. hakerxp 2976 05.06.15 15:34 Сейчас в теме
(15), режим модальности зависит от настройки конфы пользователя, а не от вашей обработки.
23. jk3 66 28.08.15 10:11 Сейчас в теме
При замене одной номенклатуры на другую, вывалилось в такую ошибку:


Платформа: 1С:Предприятие 8.3 (8.3.5.1596)
Конфигурация: Управление торговлей, редакция 11.1 (11.1.10.145) (http://v8.1c.ru/trade/)
--------------------------------------------------------------------------------
28.08.2015 0:31:07
{ВнешняяОбработка.ПоискИЗаменаЗначений.МодульОбъекта(13)}: Ошибка при вызове метода контекста (Содержит)
Если Метаданные.Константы.Содержит(МетаданныеГдеЗаменять) Тогда
по причине:
Несоответствие типов (параметр номер '1')
25. thelans 30 10.02.16 17:17 Сейчас в теме
(23) jk3, А ошибку последнюю исправили в этой обработке или она не воспроизводится?
34. ikm 42 25.09.16 12:53 Сейчас в теме
Получил ошибку, аналогичную (23).
Клиент-сервер, три строки поиска.
Попробовал в отладчике по одной строке... и всё отработало.
35. IvanAlekseev 77 30.09.16 10:26 Сейчас в теме
(34) ikm, (23) jk3,

Посмотрел код на возможность ошибки. Платформа получает таблицу значений при поиске ссылок и именно значение из этой таблицы не соответствует типу. Так что простым просмотром кода ошибки не вижу. Поэкспериментировал- все отлично заменяется.

Можете на какой- нибудь демке привести конкретный пример?
37. script 128 20.01.17 13:15 Сейчас в теме
У меня с константами какая-то проблема
{ВнешняяОбработка.ПоискИЗаменаЗначений.МодульОбъекта(13)}: Ошибка при вызове метода контекста (Содержит)
Если Метаданные.Константы.Содержит(МетаданныеГдеЗаменять) Тогда
по причине:
Несоответствие типов (параметр номер '1')

В комментах пишут про эту ошибку.
Я так понимаю что ее не исправили?
17. Aleanza 10.06.15 08:41 Сейчас в теме
Столько критики. А кто-то скачал и попробовал обработку в работе?
18. fvadim 9 10.06.15 15:53 Сейчас в теме
на счёт супер быстро это конечно не правда. просто в некоторых случаях немного быстрее.
делал тоже самое, кроме п.6. плюс возможность заполнения чтозаменять/начтозаменять запросом.
19. Kiber_ 10.06.15 17:19 Сейчас в теме
А что конкретно подразумевается под отключением итогов?

P.S. Очень порадовала информация:
>> в предыдущей обработке был код- лапша, который я практически весь удалил. Теперь там пушкинские строки- можно перед сном читать без особого напряжения.
Молодец!
20. vis_tmp 32 14.06.15 09:37 Сейчас в теме
Спасибо, отличная обработка!
24. СержТ 10.01.16 01:31 Сейчас в теме
Спасибо, обработка помогла исправить косяки 1с при переносе адресов из ЗУП 2, ЗиКБУ 1 в ЗУП 3 и ЗКГУ 3 на версиях от 30.12.15
26. anderson 230 19.04.16 23:17 Сейчас в теме
Понадобилась данная обработка, но для планов видов расчета. Чуть-чуть добавил в процедуру ВыполнитьЗаменуЗначений


	ИначеЕсли СтруктураОбъекта.ПланыВидовРасчета Тогда
		
		Для Каждого СтандартнаяТабличнаяЧасть Из МетаданныеГдеЗаменять.СтандартныеТабличныеЧасти Цикл
			ТабличнаяЧасть 			= ОбъектГдеЗаменять[СтандартнаяТабличнаяЧасть.Имя];
			СтрокиСЧтоЗаменять 		= ТабличнаяЧасть.НайтиСтроки(Новый Структура("ВидРасчета", ЧтоЗаменять));
			СтрокиСНаЧтоЗаменять 	= ТабличнаяЧасть.НайтиСтроки(Новый Структура("ВидРасчета", НаЧтоЗаменять));
			
			Если СтрокиСЧтоЗаменять.Количество() > 0 И СтрокиСНаЧтоЗаменять.Количество() = 0 Тогда 
				Для Каждого СтрокаСЧтоЗаменять Из СтрокиСЧтоЗаменять Цикл
					СтруктураОбъекта.ОбъектГдеЗаменятьНадоЗаписывать = Истина;
					СтрокаСЧтоЗаменять.ВидРасчета = НаЧтоЗаменять;
				КонецЦикла;
			ИначеЕсли СтрокиСЧтоЗаменять.Количество() > 0 И СтрокиСНаЧтоЗаменять.Количество() > 0 Тогда 
				Для Каждого СтрокаСЧтоЗаменять Из СтрокиСЧтоЗаменять Цикл
					СтруктураОбъекта.ОбъектГдеЗаменятьНадоЗаписывать = Истина;
					ТабличнаяЧасть.Удалить(СтрокаСЧтоЗаменять);
				КонецЦикла;
			КонецЕсли;
		КонецЦикла;
		
		ЗаменитьРеквизитыИТабличныеЧасти(ЧтоЗаменять, НаЧтоЗаменять, СтруктураОбъекта);

Показать


Автору спасибо
29. hakerxp 2976 14.05.16 11:34 Сейчас в теме
В 1 пункте про группировку по объектам при замене ссылок - не вижу смысл группировать т.к. при замене ссылок человек обычно выбирает ссылки одного типа. В объектах врядли будут дубли реквизитов с одинаковыми ссылками. Следовательно, скорость замены останеться прежней, верно?
32. IvanAlekseev 77 22.09.16 19:24 Сейчас в теме
(29) hakerxp, например, изменение номенклатуры в документах, где она используется в строках табличной части.
30. SurmachAU 20 04.09.16 22:20 Сейчас в теме
Запускаю обработку в 1С Розница 2.2.4.17 (платформа 8.3.8.1964) и не могу выбрать для замены Номенклатуру. Может я не правильно поняла суть обработки?
31. IvanAlekseev 77 22.09.16 19:22 Сейчас в теме
(30) SurmachAU, в Рознице у справочника "Номенклатура" установлено представление объекта "Позиция номенклатуры". Поэтому первоначальный выбор необходимо выполнять по этому представлению.
33. SurmachAU 20 23.09.16 20:38 Сейчас в теме
(31) Спасибо) проверила, все хорошо, очень нужна такая обработка для исправления с работой РИБ
36. Strange Device 307 25.11.16 19:57 Сейчас в теме
Спасибо. Сильно облегчили работу. Работает даже там, где не работают типовые обработки от 1С, в частности, видит и заменяет те реквизиты, которые просто не видны при отключенных функциональных опциях, что доставило мне немало геморроя.
38. IvanAlekseev 77 24.01.17 17:07 Сейчас в теме
Ребята, я решил больше не заниматься 1с. Сейчас изучаю С++, буду выполнять анализ сложных данных или что-то другое интересное (например, физическое моделирование). В 1с у меня нет ощущения первооткрывателя, познания истины, творчества в работе...

Поэтому если кто-то опубликует эту обработку с исправлением текущих ошибок, и возьмется за ее последующую поддержку, то я буду только благодарен этому человеку. В день с нее капает примерно полбакса :)
40. hakerxp 2976 24.01.17 17:50 Сейчас в теме
(38), я бы с вами поспорил по поводу
"
В 1с у меня нет ощущения первооткрывателя, познания истины, творчества в работе...
". Удачи вам в начинаниях!
39. v3rter 24.01.17 17:13 Сейчас в теме
То есть разрешаете форкать Вашу обработку?

Со временем компьютерство перестает дарить ощущения творчества-развития и становится ремеслом. Более того, оказывается, что технологии развиваются по принципу "приведи в дом козу - выведи из дома козу". Ходят по кругу. И чтобы "оставаться на месте, приходится бежать"(с), попутно изучая тонны безсмысленных и безпощадных обновлений, изменений и дополнений, без которых упадет общая сложность технологий капитализация отрасли, и которые через 3-5 лет обесцениваются до нуля. В каком-то смысле это можно считать инфляцией знаний. Будьте морально готовы. А пока есть время и развитие мотивирует - дерзайте )
41. juliacopper 15 17.09.17 22:16 Сейчас в теме
Очень хорошая обработка. Спасибо! Особенно для начислений
42. IFK 21.01.18 15:43 Сейчас в теме
Автор, скажите, Вы еще поддерживаете эту обработку?
43. IvanAlekseev 77 23.01.18 11:16 Сейчас в теме
(42) Нет, я больше не занимаюсь 1с.
Оставьте свое сообщение