Поиск и замена дублей + v0.99

Опубликовал tormozit в раздел Администрирование - Чистка базы

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

За основу была взята типовая обработка из УПП 1.2 со сходным названием.

Основные изменения.

Можно выполнять поиск дублей не только в справочниках, но и в планах видов характеристик. Сделан удобный выбор объекта метаданных.

Сопоставление дублей можно выполнять по любому количеству строгих критериев и одному нестрогому для строкового реквизита (по похожим словам). При выборе объекта метаданных автоматически добавляются рекомендуемые критерии сравнения (для подчиненных справочников равенство владельцев) и элементы отбора (для объектов с группами исключаются группы).

Реализовано удобное представление найденных групп дублей.

Можно задавать произвольный порядок сортировки результатов.

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

Перед замещением в независимых регистрах сведений в случае склеивания записей по новым ключам открывается диалог настройки замещения, где отображаются отличия в ресурсах конфликтующих записей и можно выбрать какую именно оставить. Это очень актуально, когда производится замена дублей объектов, у которых много свойств хранится в независимых непериодических регистрах сведений. В качестве примеров можно привести регистры из типовых конфигураций "Права доступа пользователей", "Значения свойств объектов", "Настройки пользователей". Если выполнять замену в них с помощью типовой обработки, то это может привести к потерям правильных данных в этих регистрах.

Выполнение замен с отключенными проверками регистрируется в журнале регистрации (событие - "Запись с флагом Загрузка").

Эта полностью мобильная версия обработки больше не обновляется.

Актуальная версия теперь в Подсистема "Инструменты разработчика"


Файлы

Наименование Файл Версия Размер Кол. Скачив.
Обработка (8.1.8+) v0.99
.1186121235 63,25Kb
24.10.12
4508
.1186121235 63,25Kb 4508 Бесплатно

См. также

Лучшие комментарии

1. tormozit 04.08.2007 16:09
Переделал справку в соответствии с выполненными доработками.
Устранил ошибку при поиске зависимых, которую сам же и сделал.
Добавил полноценный сохраняемый отбор.
Сделал более интеллектуальное обновление зависимых настроек. Теперь не очищаются поля настроек поиска без необходимости.
# Ответить
100. Gringj 19.03.2010 19:09
(99) Скриншоты прикрепил как файлы, как делать, чтобы скриншоты прямо в комментах показывались - не знаю.
Обработку скачивал 14 марта - может за эти дни версия поменялась. Написал собственно потому, что хотел поделиться алгоритмом восстановления: Значит я сделал в копии базы и в рабочей базе регистр сведений "Восстановление", туда записал всю таблицу ссылок из копии. Перекачал из копии в рабочую базу справочник статьи затрат и регистр "Восстановление". В рабочей базе запустил обработку по восстановлению. Вроде получилось, хотел через планы обмена, да не смог пока разобраться. Все сделал путем настройки обработки автора. Вроде работает. До настроенную обработку прикрепил, может кому пригодиться. :)
Ответили: (101) (102)
+ 2 [ Dimly; cehuma; ]
# Ответить
2. tormozit 06.08.2007 00:44
Выпустил v0.90
- расширены возможности по настройке критериев сравнения (теперь можно задавать любое количество строгих критериев сравнения и один нестрогий)
- заметно переработан интерфейс
- ускорен поиск
Эта версия позволяет в частности выполнять поиск в пределах владельца, что позволяет эффективно устранять дубли в подчиненных справочниках!

Справку по обработке пока не обновил, а также скриншоты. Позже сделаю.
+ 1 [ kovalev_andrey; ]
# Ответить
3. tormozit 06.08.2007 07:26
v0.91
- исправлены мелкие недочеты в интерфейсе
+ 1 [ kovalev_andrey; ]
# Ответить
4. tormozit 09.08.2007 23:52
v0.93
- исправлены незначительные ошибки
- из доступных полей теперь исключаются хранилища значений и строки неограниченной длинны
- значительно ускорен поиск в режиме без сравнения по похожим словам за счет новых возможностей свежего релиза платформы 8.1.8.76
- актуализировал справку
+ 1 [ kovalev_andrey; ]
# Ответить
18. tormozit 23.03.2008 12:15
(13 - 17) Сделал.
+ 1 [ larisab; ]
# Ответить
34. tormozit 30.12.2008 21:50
(33) Ждем, ждем. А пока ты продолжаешь пользоваться ею =)
Ответили: (36)
+ 1 [ akmid1; ]
# Ответить
64. acsent 18.08.2009 12:52
Ошибка: Индекс выходит за границы (Форма, 561)
Исправление:

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

// ++
Если НаборЗаписи.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
// --
Ответили: (66) (65)
+ 1 [ tormozit; ]
# Ответить
211. tormozit 15.01.2014 11:34
Обработка не может подходить или не подходить под управляемые формы. Правильно спрашивать про управляемое приложение. Она не запустится в режиме управляемого приложения. Она больше не поддерживается в независимом варианте. Также замечу, что ты исказил название инструмента.
+ 1 [ &rew; ]
# Ответить
101. Gringj 19.03.2010 19:13
(100) Скриншоты :)
+ 1 [ eduardoff; ]
# Ответить

Комментарии

1. tormozit 04.08.2007 16:09
Переделал справку в соответствии с выполненными доработками.
Устранил ошибку при поиске зависимых, которую сам же и сделал.
Добавил полноценный сохраняемый отбор.
Сделал более интеллектуальное обновление зависимых настроек. Теперь не очищаются поля настроек поиска без необходимости.
# Ответить
2. tormozit 06.08.2007 00:44
Выпустил v0.90
- расширены возможности по настройке критериев сравнения (теперь можно задавать любое количество строгих критериев сравнения и один нестрогий)
- заметно переработан интерфейс
- ускорен поиск
Эта версия позволяет в частности выполнять поиск в пределах владельца, что позволяет эффективно устранять дубли в подчиненных справочниках!

Справку по обработке пока не обновил, а также скриншоты. Позже сделаю.
+ 1 [ kovalev_andrey; ]
# Ответить
3. tormozit 06.08.2007 07:26
v0.91
- исправлены мелкие недочеты в интерфейсе
+ 1 [ kovalev_andrey; ]
# Ответить
4. tormozit 09.08.2007 23:52
v0.93
- исправлены незначительные ошибки
- из доступных полей теперь исключаются хранилища значений и строки неограниченной длинны
- значительно ускорен поиск в режиме без сравнения по похожим словам за счет новых возможностей свежего релиза платформы 8.1.8.76
- актуализировал справку
+ 1 [ kovalev_andrey; ]
# Ответить
5. tormozit 15.08.2007 01:07
v0.94
- исправлены ошибки, связанные с ручным вводом состава группы
- исправлено обновление групп после автоматической замены во всех группах
- добавлен режим ручного ввода групп
- теперь по умолчанию отображается номер группы в списке групп
# Ответить
6. tormozit 15.08.2007 12:41
v0.95
- исправлена ошибка в поиске зависимых элементов, которую сам же и сделал, оптимизируя типовой код
- исправлены мелкие ошибки с ручным вводом групп
# Ответить
7. tormozit 16.08.2007 23:54
v0.96
- предоставлена возможность открытия ссылок на закладке зависимых элеметнов
Ответили: (81)
# Ответить
8. tormozit 22.08.2007 10:48
v0.97
- добавлен вывод сообщений об ошибках записи
# Ответить
9. azernot 28.09.2007 10:06
Вот пытаюсь найти дубли по полному совпадению ИНН и КПП в справочнике контрагенты..
Выдаёт
Код
 
Форма.Форма(171)}: Ошибка при вызове метода контекста (Выполнить): {(8, 16)}: Ожидается выражение ")"
ИСТИНА И ( ИНН<<?>>, КПП)
   мРезультатыПоиска = ЗапросПоиска.Выполнить().Выгрузить();
по причине:
{(8, 16)}: Ожидается выражение ")"
ИСТИНА И ( ИНН<<?>>, КПП)
Показать полностью
Ответили: (10)
# Ответить
10. tormozit 29.09.2007 21:50
(9) Какой релиз платформы?
Ответили: (11)
# Ответить
11. azernot 01.10.2007 10:56
(10) 8.1.7.37 Надо 8.1.8?
Ответили: (12)
# Ответить
12. tormozit 01.10.2007 11:20
(11)
Ну я же не зря пишу "Обработка (8.1.8+) v0.97".
Это означает совместимость с версией платформы 8.1.8 и выше.
# Ответить
13. artbear 21.01.2008 17:38
При использовании "Подсистемы для разработчика" открытие данной обработки выдает кучу ошибок синтаксиса типа
{ВнешняяОбработка.ПоискИЗаменаДублирующихсяЭлементов(1424,11)}: Процедура или функция с указанным именем уже определена (ЛксСкопироватьЭлементОтбора)
Процедура <<?>>ЛксСкопироватьЭлементОтбора(пЭлементОтбораПриемник, пЭлементОтбораИсточник) Экспорт
Ответили: (14)
# Ответить
14. tormozit 21.01.2008 18:09
(13) Логично. Многие функции из общих модулей подсистемы были перенесены в модуль данной обработки для того, чтобы она стала мобильной. Их придется вручную удалять из модуля обработки, т.к. они дублируются.
Ответили: (15)
# Ответить
15. artbear 23.01.2008 09:17
(14) Что логично, согласен.
Но тогда хотелось бы видеть один из двух вариантов
1) или выложить здесь второй файлик для работы с подсистемой
2) или включить данную разработку в подсистему :)
.
Мне больше импонирует второе решение :)

Что скажешь?
Ответили: (16)
# Ответить
16. tormozit 23.01.2008 10:51
(15) В подсистему ее включать тематически неверно. Над озвученной проблемой я бился в свое время, но так и не нашел хорошего решения.

Возможно будет все таки принято решение о включении обработки в подсистему "Инструменты разработчика".
# Ответить
17. artbear 24.01.2008 07:36
Вот еще один аргумент в пользу включения в подсистему :
ИМХО подобные обработки по замене значений нельзя доверять конечному слабому пользователю типа обычных бухов/менеджеров.
Они должны быть инструментов для опытных внедренцев/разработчиков, что входит в предметную область твоей подсистемы :) !
# Ответить
18. tormozit 23.03.2008 12:15
(13 - 17) Сделал.
+ 1 [ larisab; ]
# Ответить
19. ks_83 16.05.2008 11:41
Платформа 8.1.11.67.

При выборе некоторых справочников выдает ошибку:

Ошибка при установке значения атрибута контекста (Текст): {(5, 2)}: Неоднозначное поле "Объект.Код"
<<?>>Объект.Код.* КАК Код,
ПостроительОтчетаОтбора.Текст = "
по причине:
{(5, 2)}: Неоднозначное поле "Объект.Код"
<<?>>Объект.Код.* КАК Код,
Ответили: (20)
# Ответить
20. tormozit 16.05.2008 11:57
(19) Это известная проблема. Она была устранена в более новой немобильной версии в составе http://infostart.ru/projects/1274. Если все же нужна мобильная исправленная версия, постараюсь сделать в ближайшие дни.
# Ответить
21. Serj1C 22.09.2008 10:51
+1.

Только вот еще http://infostart.ru/blogs/594/
Было сделано при помощи этой обработки.

Попросим учесть в след. версиях!!!
Ответили: (22)
# Ответить
22. tormozit 22.09.2008 11:10
(21) Не совсем понял, с какой именно проблемой ты столкнулся.
# Ответить
23. karina1409 24.09.2008 23:51
Спасибо.
Обработка попалась вовремя, когда напортачили с переносом из 7-ки.
# Ответить
24. e.kogan 29.09.2008 12:42
Спасибо. Думали сами дорихтовать напильником типовую, но нашли эту.
# Ответить
25. e.kogan 27.11.2008 19:10
Замечание: для подчинённого справочника устанавливаю режим "совпадение" по владельцу и ещё одному реквизиту и "нестрогое совпадение" по наименованию. В результате выдаёт группы с разными владельцами. Чем лечить?
Ответили: (26)
# Ответить
26. tormozit 28.11.2008 10:07
v0.98
- исправлено (25)
# Ответить
27. Djagernaut 08.12.2008 09:48
А для 8.0 обработку можно использовать если воссоздать код в конфигурации?
Ответили: (28)
# Ответить
28. tormozit 08.12.2008 10:14
(27) Нет. Здесь используются временные таблицы.
# Ответить
29. Djagernaut 08.12.2008 10:29
А есть старый вариант для 8 или что то отдаленно напоминающие?
Ответили: (30)
# Ответить
30. tormozit 08.12.2008 10:43
34. tormozit 30.12.2008 21:50
(33) Ждем, ждем. А пока ты продолжаешь пользоваться ею =)
Ответили: (36)
+ 1 [ akmid1; ]
# Ответить
35. larisab 31.12.2008 00:28
Прекрасная, наиполезнейшая обработка, скачала еще весной, пользуюсь постоянно, после переносов со всяких нестандартных конфигураций имеется куча дублей, особенно когда несколько организаций в одну сливаются. Спасибо автору и за другие обработки (http://infostart.ru/projects/1274) - все нужные! С наступающим НГ!
# Ответить
36. artbear 31.12.2008 09:19
(34) Напомни, плиз, аналогичная обработка в подсистеме "Инструменты разработчика" одновременно с данной обновляется?
Или я что-то путаю?
Ответили: (37)
# Ответить
37. tormozit 06.01.2009 13:52
(36) Нет. Там обновляется чаще. А это - мобильная версия. Она обновляется реже.
# Ответить
38. Gaffer 10.02.2009 20:33
эээ... может, я чего-то просмотрел, но где возможность обработки "Планов видов расчетов"??
Ответили: (39)
# Ответить
39. tormozit 10.02.2009 21:06
(38) Процитирую "
Обработка позволяет выполнять гибкий поиск, замену и удаление дублирующихся элементов любого справочника или плана видов характеристик." - Это первые строки описания.

Принципиальных препятствий нет. Добавлю в следующей версии все ссылочные типы.
Ответили: (41)
# Ответить
40. tormozit 10.02.2009 21:09
Кстати, здесь версия намного новее http://infostart.ru/projects/1274/
# Ответить
41. tormozit 10.02.2009 21:09
И в ней уже реализовано (39)
# Ответить
42. Buxxter 20.02.2009 17:52
Хотелось бы видеть в ней изменение реквизитов правильного элемента (ну скажем, случился косяк с добавлением дублей, а при создании этого дубля изменился реквизит, обозначающий дату прекращения действия этого элемента)
Ответили: (43)
# Ответить
43. tormozit 20.02.2009 18:43
(42) Не понял. Попробуй переформулировать. Кто нибудь понял, что имеется ввиду?
# Ответить
44. likoily 24.02.2009 15:07
Автор, Вы умничка! Спасибо огромное за обработку! Очень выручила...
# Ответить
45. Armando 26.02.2009 20:39
Ништяк! Сегодня в ЗУП`е с физлицами боролся, обработка очень помогла.
# Ответить
46. efrida 25.03.2009 12:12
Спасибо
# Ответить
47. Requiem 30.04.2009 10:03
Еще было бы неплохо задавать какие то условия, по которым будет определяться правильный элемент. Например, если не помечен на удаление. Либо если какой то реквизит равен чему то.
# Ответить
48. shard 13.05.2009 11:47
хорошая вещь, очень помогла при поиске по нескольким одинаковым реквизитам
# Ответить
49. e.kogan 20.05.2009 13:09
На v.0.97 для себя дописала:

возможность пометки на удаление "лишних" кроме возможности их непосредственного удаления;
поиск и показ реквизитов типа Строка неограниченной длины;
очистку текущей группы по щелчку на колонке;
показ текущей группы по активизации строки (если активная колонка - "Вывести группу");
открытие значения реквизита ссылочного типа из таблицы состава текущей группы.

Могу скинуть, изменений мало. Если они будут включены в свежий релиз - буду рада.
Ответили: (57) (51)
# Ответить
50. e.kogan 20.05.2009 13:12
Да, ещё писала "интеллектуальную" заменялку в регистрах сведений, но потёрла. Вкратце: если отличается только один ресурс типа строка и замена содержит оригинал, то флаг ставится автоматически. Ну и установка таймаута для формы замены в регистрах (потому как 3000 групп тяжеловато вручную океить, а там замены как раз как вышеприведённые были).
# Ответить
51. tormozit 20.05.2009 14:24
(49) Нельзя по-подробнее про "по щелчку на колонке"? Я не понял, что это за действие.
# Ответить
52. e.kogan 20.05.2009 14:30
Процедура ОчиститьГруппу(НоваяТекущаяГруппа = Неопределено)
Если НоваяТекущаяГруппа=Неопределено Тогда Отказ=Истина; Возврат; КонецЕсли;
ы=мРезультатыПоиска;
Для й=(-(мРезультатыПоиска.Количество()-1)) по 0 Цикл
Если мРезультатыПоиска[-й].НомерГруппы=НоваяТекущаяГруппа.НомерГруппы Тогда мРезультатыПоиска.Удалить(-й); КонецЕсли;
КонецЦикла;
КонецПроцедуры

Процедура КоманднаяПанельНастройкиОтчетаПоиск(Кнопка)
....
КолонкаОчиститьГруппу = ЭлементыФормы.НайденныеГруппы.Колонки.Вставить(1, "Очистить группу");
КолонкаОчиститьГруппу.Имя = "ОчиститьГруппу";
КолонкаОчиститьГруппу.ТолькоПросмотр = Истина;
...
КонецПроцедуры

Процедура НайденныеГруппыВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
...
ИначеЕсли Колонка.Имя = "ОчиститьГруппу" Тогда
ОчиститьГруппу(Элемент.ТекущаяСтрока);
ВывестиГруппу(Элемент.ТекущаяСтрока);
ОбновитьТекущуюГруппуРезультатовПоиска();
...
КонецПроцедуры
# Ответить
53. e.kogan 20.05.2009 20:03
Да, и сохранение отборов нормальное прикрутила.
# Ответить
54. HiAndrew 25.05.2009 12:15
Скажите пожалуйста, а в регистрах накопления данная обработка умеет менять значения?
# Ответить
55. HiAndrew 25.05.2009 12:29
...и в регистрах бухгалтерии
# Ответить
56. tormozit 25.05.2009 12:35
(54,55) Умеет.
# Ответить
57. floodprog 17.06.2009 12:59
(49) можно подробнее подробнее про пометку на удаление ? Проблемы с РБД. надо чтоб везде пометились... заранее спасибо
# Ответить
58. tormozit 21.06.2009 01:34
Обработка была доработана, но в составе подсистемы ИР http://infostart.ru/projects/1274/ .
# Ответить
59. acsent 30.06.2009 13:46
При выборе справочника "Хранилище доп. информации" БП
{Форма.Форма(1036)}: Ошибка при установке значения атрибута контекста (Текст): {(5, 2)}: Неоднозначное поле "Объект.Наименование"
<<?>>Объект.Наименование.* КАК Наименование,
ПостроительОтчетаОтбора.Текст = "
по причине:
{(5, 2)}: Неоднозначное поле "Объект.Наименование"
<<?>>Объект.Наименование.* КАК Наименование,
Ответили: (60)
# Ответить
60. tormozit 30.06.2009 14:08
(59) Давай полный текст запроса
# Ответить
61. acsent 30.06.2009 14:17
ВЫБРАТЬ 0
ИЗ Справочник.ХранилищеДополнительнойИнформации КАК Объект
{ГДЕ
Объект.Наименование.* КАК Наименование,
Объект.Предопределенный.* КАК Предопределенный,
Объект.ПометкаУдаления.* КАК ПометкаУдаления,
Объект.Ссылка.* КАК Ссылка,
Объект.ВидДанных.* КАК ВидДанных,
Объект.Объект.* КАК Объект,
Объект.ИДФайлаПочтовогоПисьма.* КАК ИДФайлаПочтовогоПисьма,
Объект.ЗначениеРазделенияДоступа.* КАК ЗначениеРазделенияДоступа}
{УПОРЯДОЧИТЬ ПО
0 КоличествоЭлементовВГруппе
,
Объект.Наименование.* КАК Наименование,
Объект.Предопределенный.* КАК Предопределенный,
Объект.ПометкаУдаления.* КАК ПометкаУдаления,
Объект.Ссылка.* КАК Ссылка,
Объект.ВидДанных.* КАК ВидДанных,
Объект.Объект.* КАК Объект,
Объект.ИДФайлаПочтовогоПисьма.* КАК ИДФайлаПочтовогоПисьма,
Объект.ЗначениеРазделенияДоступа.* КАК ЗначениеРазделенияДоступа}
Ответили: (63) (62)
# Ответить
62. tormozit 30.06.2009 16:20
(61) Посыпаю голову пеплом. Не доходили руки решить эту проблему принципиально. Но теперь это придется сделать, чтобы смыть позор =)
# Ответить
63. tormozit 30.06.2009 17:04
(61) Посмотрел в последней версии в составе ИР. Там проблема решена, хотя и не принципиально. Обновлять мобильную версию пока не знаю, когда буду.
# Ответить
64. acsent 18.08.2009 12:52
Ошибка: Индекс выходит за границы (Форма, 561)
Исправление:

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

// ++
Если НаборЗаписи.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
// --
Ответили: (66) (65)
+ 1 [ tormozit; ]
# Ответить
65. tormozit 18.08.2009 13:10
(64) Спасибо.
# Ответить
66. tormozit 18.08.2009 13:49
0.99
- исправлено (64)
# Ответить
67. romanovkv 10.09.2009 14:19
Еще как пожелание возможность обрабатывть группы поодиночке. А то "Автозамена" сразу обрабатывает все. А иногда надо обработать выборочно.
Ответили: (68)
# Ответить
68. tormozit 10.09.2009 14:39
а что мешает (67)?
Ответили: (70)
# Ответить
69. romanovkv 10.09.2009 14:50
А как это сделат? Чтобы не удалять не нужные группы.
# Ответить
70. romanovkv 10.09.2009 14:50
(68)
Ответили: (71)
# Ответить
71. tormozit 10.09.2009 15:10
(70) Теперь понятно. Что речь идет о групповой выборочной автозамене. Пожелание понятно.
Ответили: (72)
# Ответить
72. romanovkv 10.09.2009 15:13
(71) Лучше как мне кажеться добавить на против каждой найденной группы возможность ставить "галочку", те что не помечены не попадают в "Автозамену".
Но вобще решать вам.
# Ответить
73. ALagutin 10.09.2009 16:58
Возникает ошибочка при попытке сделать отбор по полю глубина которого больше 1, например хочу отобрать все одинаковые по наименованию договора + одинаковые по наименованию владельца ...ошибка выскакивает...когда пытаюсь выбрать Владелец.Наименование
Ответили: (74)
# Ответить
74. tormozit 10.09.2009 17:02
(73) Для начала неплохо ошибку показать. Воспроизводится ли ошибка в немобильной (более новой) версии из состава подсистемы ИР?
# Ответить
75. romanovkv 11.09.2009 16:04
Еще есть пожелание к разработчику. можно чтобы была возможность выгрузки в Excel дерева с дублями:
- 1 Группа
- Первый обект
- Второй обект
- 2 Группа
- Первый обект
- Второй обект
- Третий объект

Зачем это нужно. А для того чтоьбы потом предоставить этот список двойников людям которые его могли создать и определить "человеком" какой элемент являеться правильный.
# Ответить
76. vabue 11.09.2009 18:47
Возможно ли пропускать определённые регистры при поиске ссылок?
Актуально для конфигурации с коммерческими закрытыми модулями, которые 100% не ссылаются на обрабатыавемый справочник.
Ответили: (77)
# Ответить
77. tormozit 11.09.2009 21:31
(76) Возможно, но такая возможность не реализована.
Ответили: (78)
# Ответить
78. romanovkv 21.09.2009 09:37
(77)
А когда Можно будет увидеть пожелания?
Ответили: (79)
# Ответить
79. tormozit 21.09.2009 10:33
(78) Пока не готов ответить о сроках реализации.
# Ответить
80. elizarovs 25.11.2009 11:06
Достойно! +
# Ответить
81. NeuroN 18.12.2009 11:47
Среди справочника АЗС эта (7) обработка не дала ни одного результата.
Количество элементов = 57. Есть даже такие:
1) АЗС ООО "УРЕНГОЙРЕСУРС"
2) ООО"Уренгойресурс"

Настройку менял. Анализ длится всего секунду.
В чем секрет?
И еще - как исключить префиксы (ООО ОАО и т.д.)?
# Ответить
82. miksla 21.12.2009 14:52
Спасибо за обработку!
Вылезла ошибка, когда в строковом поле есть строки состоящие из пробелов, их обрезало до пустой строки функция СокрП.

Текст ошибки:
{Форма.Форма(182)}: Индекс находится за границами массива
СтрокаПоиска.НомерГруппы = НайденныеГруппы.НайтиСтроки(мСтруктураКлючаПоиска)[0].НомерГруппы;

Мои исправления:

Для Каждого СтрокаПоиска ИЗ мРезультатыПоиска Цикл
		ЗаполнитьЗначенияСвойств(мСтруктураКлючаПоиска, СтрокаПоиска);
		Для Каждого СтроковоеПоле Из МассивСтроковыхПолейСравнения Цикл
			//Начало исправление
			//мСтруктураКлючаПоиска[СтроковоеПоле] = Нрег(СокрП(мСтруктураКлючаПоиска[СтроковоеПоле]));
			мСтруктураКлючаПоиска[СтроковоеПоле] = Нрег(мСтруктураКлючаПоиска[СтроковоеПоле]);
			//Конец исправления
		КонецЦикла;
		СтрокаПоиска.НомерГруппы = НайденныеГруппы.НайтиСтроки(мСтруктураКлючаПоиска)[0].НомерГруппы;
		ЗаполнитьЗначенияСвойств(СтрокаПоиска, мСтруктураКлючаПоиска);
	КонецЦикла;
...Показать Скрыть
Ответили: (83)
# Ответить
83. tormozit 21.12.2009 15:54
(82) В мобильной (этой) версии данная ошибка пока не устранена. Но она уже давно устранена в немобильной версии http://infostart.ru/public/15126/
Ответили: (84)
# Ответить
84. miksla 21.12.2009 16:18
(83) Ех, нет возможности добавлять подсистему в большинстве проектов. Там функции внешние используются? Можно легко выгрузить во внешнюю обработку?
# Ответить
85. Alexei_fox 29.12.2009 04:38
Непонятно как после замены ссылок как удалить освободившиеся не нужные элементы справочника ?
Работаю со справочником Контрагенты 1С БП ...
# Ответить
86. Sergey K 21.01.2010 13:00
(0)
Почитал комментарии, у меня осталось 2 вопроса:
1. при замене Номенклатуры, что произойдет с подчиненными реквизитами такими как Ед., Серия? т.е. если в документе была указана номенклатура и ее ЕдИзм, то после замены что будет с ЕдИзм?

2. Как происходит замена в документах? после замены идет запись и перепроведение? (просто у меня есть старые документы, у которых я изменил перепроведение) = > если их перепровести, то пойдут косяки...

Спасибо!
Ответили: (87)
# Ответить
87. tormozit 21.01.2010 13:18
(86)
2. Перепроведение документов данной обработкой не выполняется. После замены в объекте документа выполняется только его запись.
Ответили: (88) (89)
# Ответить
88. Sergey K 22.01.2010 10:10
(87) а что тогда будет после замены с данными регистров, по которым делает движение документ, в котором мы заменяем значения, если он не проводится? т.е. записи регистров будут ссылаться на не существующий элемент?
# Ответить
89. tormozit 22.01.2010 10:16
(87) Замены производятся во всех изменяемых прикладным кодом таблицах БД, в т.ч. и в регистрах.
# Ответить
90. Sergey K 22.01.2010 10:35
ок. Спасибо!
тогда +
# Ответить
91. fedor40 15.02.2010 09:54
Жаль, что в "Результате поиска" нельзя увидеть другие реквизиты. Например, ищем по ИНН, а основной контрагент определяется по наличию КПП. Если бы справочно выводить КПП, то можно было бы быстро определить кто основной контрагент.
Ответили: (94) (95)
# Ответить
92. Tishu 20.02.2010 20:19
Не находит элементы при сравнении по похожим словам в БП 1.16.6.6 Платформа 8.1.15.14
Обработка незаменимая вещь пр переносе нескольких баз 7.7 в одну базу 8.1.
Год назад очень помогла. Караул!
# Ответить
93. buy_sale 11.03.2010 20:33
Очень полезная разработка. Я ее немножко доработал :

- добавлено сохранение отборов и порядка в схеме (настроек отчета)
- добавлена возможность проверки зависимых элементов на полную идентичность по всем реквизитам ( оригинал - только по наименованию)
- добавленв возможность создания зависимого от правильного элемента, если он не найден ( например для замены договора при замене контрагентов)

Хочу еще сделать печать групп и их состава, а так же удаление групп из таблицы...
# Ответить
94. buy_sale 11.03.2010 20:36
(91) Как это нельзя, если можно. Жмешь правую кнопу мышки на составе текущей группы, выбираешь настройку колонок и ставишь там флажок КПП.
Ответили: (95)
# Ответить
95. lama100 17.03.2010 22:04
(94) ..."Как это нельзя, если можно. Жмешь правую кнопу мышки на составе текущей группы, выбираешь настройку колонок и ставишь там флажок КПП."...

А там нет такого флажка. Поля появляются только если по ним идет сравнение на первой закладке :(.
Поддерживаю (91), очень хочется выводить доп. поля в Результатах поиска, а не кликать по элементам на просмотр - поля всех реквизитов справочника.
Ответили: (97)
# Ответить
96. buy_sale 17.03.2010 23:46
Усоверщенствованная мной версия здесь http://infostart.ru/public/67047/
# Ответить
97. buy_sale 17.03.2010 23:48
(95) я же сказал на СОСТАВЕ текущей группы, а не на группе.
# Ответить
98. Gringj 19.03.2010 16:08
Обработка супер, но есть одно НО.
Предупреждать надо чайников, таких как я, что если поставить нестрогое соответствие по одному из реквизитов то остальные не проверяются на равенство. Я таким образом после слияния двух баз, стал чистить дубли. Дошел до справочника "Статьи затрат", поставил нестрогое соответствие по наименованию и строгое по "Вид Расходов НУ" и "Отнесение расходов к деятельности... ЕНВД чего-то там". Элементов нашлось порядка 100, на глаз вроде все правильно. Ну обработка и объединила мне, например, ЕСН по виду расходов "ЕСН", "Оплата труда", "Налоги и сборы из 3-ех в один. Пришлось писать обработку по отмене изменений, что не есть гуд.
Ответили: (99)
# Ответить
99. tormozit 19.03.2010 16:40
(98) Можете ли привести скриншоты, демонстрирующие первую и вторую закладку формы в вашем случае? Были ли колонки "Вид расходов НУ" и "Отнесение расходов ..." в таблице "Надейнные группы"?
Ответили: (100)
# Ответить
100. Gringj 19.03.2010 19:09
(99) Скриншоты прикрепил как файлы, как делать, чтобы скриншоты прямо в комментах показывались - не знаю.
Обработку скачивал 14 марта - может за эти дни версия поменялась. Написал собственно потому, что хотел поделиться алгоритмом восстановления: Значит я сделал в копии базы и в рабочей базе регистр сведений "Восстановление", туда записал всю таблицу ссылок из копии. Перекачал из копии в рабочую базу справочник статьи затрат и регистр "Восстановление". В рабочей базе запустил обработку по восстановлению. Вроде получилось, хотел через планы обмена, да не смог пока разобраться. Все сделал путем настройки обработки автора. Вроде работает. До настроенную обработку прикрепил, может кому пригодиться. :)
Ответили: (101) (102)

Прикрепленные файлы:

Закладка 1.jpg
Закладка 2.jpg
ПоискИЗаменаДублирующихсяЭлементов+ - vvdem.epf
Скриншоты.zip
+ 2 [ Dimly; cehuma; ]
# Ответить
101. Gringj 19.03.2010 19:13
(100) Скриншоты :)

Прикрепленные файлы:

Скриншоты.zip
+ 1 [ eduardoff; ]
# Ответить
102. tormozit 22.03.2010 18:09
(100) Скриншот закладки 2 сделай пожалуйста с теми включенными колонками в табличном поле состава группы, по которым строгое сравнение задано.
# Ответить
103. NtS 16.04.2010 23:44
почему может не искать по похожим словам? выбираю справочник контрагенты по наименованию, по равному значению реквизита находит дубли. а по похожим словам нет
Ответили: (104) (180)
# Ответить
104. ntsm 16.04.2010 23:55
(103) и в поиске по равному значению реквизита находит только абсолютно одинаковые значения, если отличаются наименования хотя бы запятой, уже дубли не находятся
# Ответить
105. Iris-ocean 30.06.2010 14:11
почему не удаляются строчки из таблицы найденных групп?
# Ответить
106. tormozit 30.06.2010 14:14
Цитирую описание "Самая свежая (немобильная) версия всегда здесь http://infostart.ru/public/15126/. А эта мобильная обновляется редко."
Таким образом нужно сделать вывод, что здесь (в этой мобильной версии) могут лишь исправляться существенные ошибки
# Ответить
107. Рамзес 29.12.2010 10:51
Под 8.2 будет работать?
Ответили: (108)
# Ответить
108. -null- 19.04.2011 17:35
(107) А что мешает конвертнуть? У меня отработала.
# Ответить
109. Pavel666 25.07.2011 13:32
не нашел где можно установить организовать поиск так - дубли по артикулу кроме тех у которых артикул пустой
# Ответить
110. tormozit 25.07.2011 14:13
(109) Внизу отбор. Там добавляй элемент "Артикул = ".
А сверху добавляй элемент "Артикул, строгое совпадение".
# Ответить
111. Tota 15.09.2011 22:13
Огромное спасибо автору за проделанную работу. Сэкономил кучу времени.
# Ответить
112. AndreyBlin 16.09.2011 10:45
Спасибо, отличная весщ.
# Ответить
113. reg-aleks 16.09.2011 11:15
Воспользовался обработкой. В ней нет, как мне кажется, интересно вещи - допустим в справочнике есть два именнованных по-разному контрагента. НАдо из них двоих слепить один. Было бы интересно сделать так, чтоб я интерактивно задал контрагентов кого на кого заменяю и обработка это сделала. Такое есть?
Ответили: (114)
# Ответить
114. tormozit 16.09.2011 11:38
(113) Такая возможность есть в немобильной версии обработки внутри подсистемы ИР http://infostart.ru/public/15126/.
# Ответить
115. plotn 19.09.2011 07:59
Отличная обработки, очень помогает при чистке базы
# Ответить
116. altar 03.10.2011 12:51
Спасибо,очеь помогло
# Ответить
117. fwa 07.10.2011 11:09
Хороший шаблон
Спасибо
# Ответить
118. Gosh02 14.10.2011 08:02
А на 8.2.14.537 будет обработка работатьв в Бухгалтерии 2.0.28.3? Очень нужная вещь в бухгалтерии. И почему ее нет в стандартной конфиге, хотя в Управлении Торговлей - она есть.
# Ответить
119. Lyuda_Iv 18.10.2011 06:53
Использовала программу после конвертации из Зарплата 7.7. Отлично!
# Ответить
120. itit 26.10.2011 11:55
постоянно пользуюсь этой обработкой когда бухи навводят одного и того же. спасибо
# Ответить
121. Nex@ 26.10.2011 12:19
Пользуюсь постоянно после переноса данных из УТ в БП. Проблемы только с Контрагентами, т.к. не меняет владельца Договоров. Но там сама подчищаю.
# Ответить
122. wonder_boy 27.10.2011 15:15
Автору "Пять" за планы видов характеристик. Но в УТ, в схожей обработке, удобство и логика работы на мой взгляд гораздо выше чем в УПП. Надо все переделать на основе обработки из УТ :).
# Ответить
123. Acasta 30.10.2011 21:01
Очень пригодилась обработка, спасибо
# Ответить
124. a3a 03.11.2011 14:05
Обработка просто крутая ! Спс большое пользуюсь и радуюсь
# Ответить
125. Coollerok 08.11.2011 01:21
Отличная обработка! Спасибо!
# Ответить
126. Coollerok 08.11.2011 12:01
Спасибо огромное.
# Ответить
127. nord87 17.11.2011 11:44
Мощный инструмент, частенько приходится пользоваться
# Ответить
128. Bezukladnikova 17.11.2011 15:00
Спасибо большое за обработку! а то думала 2000 договоров перебирать вручную Поиском и заменой значений!
# Ответить
129. zdrastvyitejorj 17.11.2011 15:37
Большое спасибо за обработку. Конечно есть некоторое пожелание. Хотелось бы еще увидиеть, если возможно, чтобы вместе с контрагентом, менялись ссылки и на договора привязанные к контрагенту. Например если договор с таким-же наименованием у контрагента на который заменяем уже есть, тогда обработка меняла бы ссылки на этот договор, а если такого договора нет, тогда создавала бы новый. Думаю очень облегчило бы работу в чистке справочника тем у кого по 500 дублей в справочнике контрагентов и везде договора привязанные к сотням документов.
# Ответить
130. Tristania 25.11.2011 08:06
Спасибо!
# Ответить
131. pvlunegov 30.11.2011 12:20
Извините за возможный спам...
Просто нету времени читать ВСЕ комментарии...

Вопрос к автору - У меня необычная ситуация:

1). есть справочник "Договоры Контрагентов" в конфигурации 1С 8.2 "Комплексная автоматизация"
2). аналогичный справочник в 1С 7.7 "Бухгалтерия"
Оба справочника заполнены, ведутся параллельно в обоих конфигурациях в одной и той-же организации.
Причем наименования одних и тех-же договоров в конфигурациях отличаются.
Кроме того, в 1С 8.2 некоторые реквизиты заполнялись вручную кривыми руками менеджеров, частично незаполнены.
В один прекрасный момент организация отказалась вести учет в 1С 7, перешла на учет в 1С 8.2
Справочник был перенесен в 1С 8.2 криво, по наименованиям (это делали другие программисты, не знаю, как и зачем).\
Таким образом, на данный момент в 1с 8.2 В СПРАВОЧНИКЕ хаос (множество элементов справочника с
отличающимися наименованиями (или с совпадающими), являющимися по сути одним и тем-же).
Необходимо удалить дубли.
Для этого в обработке необходимо отбирать элементы по правилу:
1). Владелец договора (контрагент) у дублей совпадает
2). наименования ПОДОБНЫ ("умный поиск похожих наименований")

Как это можно сделать в вашей обработке?
# Ответить
132. pvlunegov 30.11.2011 12:31
Автору спасибо за качественную обработку. Искал подобное.
В принципе много аналогичных разработок.
Ваша понравилась удобным интерфейсом, наличием необходимого мне функционала для сложного поиска по нескольким критериям.
Интерфейс достаточно удобный.
Посмотреть другие подобные публикации времени, к сожалению, нету.
Если ваша меня устроит в моей ситуации, отлично.

Хотел попросить автора добавить версию для 1С 8.2
Я умею конвентировать под 1С 8.2. Эта просьба ради начинающих программистов, которые с этим не сталкивались.
Люди на данном сайте почему то забывают сделать простейшую операцию конвертации под 8.2 и 8.1
Хотя, если бы они это не забывали, спрос на разработку увеличился бы.
Потому что большинство людей идет по пути наименьшего сопротивления, если ваша обработка под 1С 8.2 не сконвектирована, они скачают другую, пусть и похуже, зато точно работающую на 8.2
# Ответить
133. pvlunegov 30.11.2011 13:06
Автор, все норм работает.
Было бы полезно добавить функцию помечать на удаление, после замены дублей.
Сейчас этой функции нету, ОЧЕНЬ ЖАЛЬ!
Мне пришлось вручную колбасить (помечать на удаление после замены ссылок в документах) справочник.
Ответили: (134)
# Ответить
134. tormozit 30.11.2011 13:17
(133) Вы уверены, что ее нет? Может быть просто остались ссылки на дубли? В таком случае с ними ничего не происходит.
Также замечу, что здесь несколько устаревшая версия обработки. Актуальная находится внутри подсистемы ИР http://infostart.ru/public/15126/ . А эта мобильная давно не обновлялась.
# Ответить
135. pvlunegov 30.11.2011 13:29
В коде посмотрел, что при замене ссылок в проведенных документах, обработка заменят ссылки в движениях документа.
Интересно реализовано...
Встречный вопрос - а если документ нестандартный, при проведении не делаются кроме движений, какие-либо дополнительные операции с БД?
В нестандартных конфах сталкивался с такими криворукими творениями всяких "умельцев".

В этом случае без перепроведения документов не обойтись.
Поэтому просьба добавить такую возможность в виде кнопки на закладке "Замена"!
На мой взгляд, такая кнопка совершенно необходима.
В описание обработки можно по этому вопросу пару слов черкнуть - дескать, замена ссылок в движениях проведенных документов есть, но добавлена кнопочка на всякий пожарный, кому нужна...
Ответили: (136)
# Ответить
136. tormozit 30.11.2011 13:46
(135) Согласен что в некоторых случаях в умелых руках такая возможность принесет пользу. Однако в большинстве случаев она будет приносить вред.

Можете привести реальный пример, где она бы потребовалась?
# Ответить
137. pvlunegov 30.11.2011 14:15
к сообщению 131:
хочу добавить, что пробовал сделать следующий отбор:
1). Владелец договора (контрагент) у дублей совпадает
2). наименования ПОДОБНЫ

При этом в группах попадаются элементы справочника с ПОХОЖИМИ наименованиями, но разными владельцами!
Значит отбор неправильно работает, или я туплю?

Что касается сообщения 134:
большое спасибо за ссылку! Не знал, что есть такая полезная разработка, где все в одном...
Не было времени искать, еще раз спасибо!Скачаю, заценю!

Что касается сообщения 136:
К сожалению, не сейчас не смогу привести конкретный пример. Ранее работал в компании "СпецАвтобаза". Там есть сильно модифицированная конфигурация. Есть тяжелый документ "Путевой Лист", он при проведении очень много чего делает, в том числе выгружает данные в сторонние программы (в БД при этом изменений нету, но например изменяется информация в .DBF файле, предназначенном для системы автодозвона должников). Таким образом, если данный документ не перепроводить, то информация в этом внешнем файле перестанет быть актуальной, система автодозвона неправильно будет отрабатывать, за что программисту по шапке надает директор...
Вопрос не в том, что полезна или нет кнопочка проведения, просто должна быть возможность ее нажать. Нажимать ее будут на свой страх и риск. Ведь данная разработка для продвинутых пользователей, которые знают, зачем и что они делают.
Ответили: (138)
# Ответить
138. tormozit 30.11.2011 14:46
(137) По проблеме с попаданием в одну группу элементов с разными владельцами прошу проверить актуальную версию обработки. Если проблема есть и в ней, сообщи дополнительно. Будем разбираться.

По примеру когда при проведении документ подключается к другой базе и что то там меняет действительно не самый хороший прием, т.к. транзакция записи и проведения документа может получиться очень долгой. Из легких доработок могу предложить открытие списка обработанных документов в отдельной форме с кнопкой Провести.
# Ответить
139. shaera 30.11.2011 15:05
Хорошая обработка. Пользуюсь периодически. Один раз очень помогла исправить косяк.
# Ответить
140. pvlunegov 01.12.2011 11:12
Что касается сообщения 138:
Обработку скачал отсюда, проверял несколько раз, проблема с попаданием в группу элементов с разными владельцами остается.
Просьба выложить тут актуальную (или хотя бы рабочую) версию..., чтобы отбор по владельцам работал.

Что касается обработки, находящейся в рамках подсистемы ИР http://infostart.ru/public/15126/. Скачал, но не смог запустить обработку. Возникают ошибки с работой подсистемы - не хватает общих модулей. К сожалению, пока нет времени разбираться с причинами, читать сообщения. Подсистему загружал объединением-сравнением к конфе "Комплексная автоматизация".
Ответили: (141)
# Ответить
141. tormozit 01.12.2011 23:48
(140) К сожалению в ближайшее время не смогу удовлетворить твою просьбу, т.к. обновление мобильной версии обработки очень затратно. Сейчас смоделировал твою ситуацию в подсистеме ИР и не обнаружил проблемы. Встречная повторная большая просьба проверить проблему именно в ИР.
# Ответить
142. fff666 09.12.2011 14:21
Спасибо, обработка спасает от бессмысленной ручной работы.
# Ответить
143. Shmell 16.12.2011 08:12
Очень полезная обработка. Было бы замечательно иметь автоматический поиск дублей ПВХ
Ответили: (144)
# Ответить
144. tormozit 16.12.2011 08:48
(143) А разве обработка не позволяет делать "автоматический поиск дублей ПВХ"?
# Ответить
145. Shmell 18.12.2011 09:25
Сорри, не к той обработке описал комментарий! По этой обработке скажу - что достаточно все удобно сделано.
# Ответить
146. nkvg_a 20.12.2011 09:13
Спасибо.
За Обработка исправлял последствие переноса с торговли в бухгалтерию немного подработал.
# Ответить
148. Foxux 22.12.2011 12:17
При использовании "Подсистемы для разработчика" открытие данной обработки выдает кучу ошибок синтаксиса типа
{ВнешняяОбработка.ПоискИЗаменаДублирующихсяЭлементов(1424,11)}: Процедура или функция с указанным именем уже определена (ЛксСкопироватьЭлементОтбора)
Процедура <<?>>ЛксСкопироватьЭлементОтбора(пЭлементОтбораПриемник, пЭлементОтбораИсточник) Экспорт

+++
Ответили: (149)
# Ответить
149. tormozit 24.12.2011 22:12
(148) Это задуманное поведение. Исправлять его пока не планируется.
Опишите ситуацию, в которой потребовалось использовать старую мобильную версию этой обработки в базе с конфигурацией, содержащей более новую версию в составе подсистемы ИР.
Пока такая ситуация кажется очень искусственной.
# Ответить
150. altar 27.12.2011 18:24
вполне рабочая обработка
# Ответить
151. mr.Kot 28.12.2011 10:06
Обработок подобных мильён в сети, но, судя по количесту плюсов, Ваша - одна из самых-самых. ;)
# Ответить
152. fordes 12.01.2012 10:13
Спасибо +!
# Ответить
153. eduardoff 18.01.2012 15:21
а если попробовать синхронизировать из зуп в бух , справочники и документы, стандартными методами
# Ответить
155. eduardoff 18.01.2012 15:22
упс забыл спросить, она работает в 8.2
# Ответить
156. eduardoff 18.01.2012 15:30
попробовыл неработает с 8.2, а типа такой имеется но для 8.2
# Ответить
157. serpisal 21.01.2012 14:15
Супер обработка, решает проблему задвоенных(дубли) элементов и групп просто "на ура".
# Ответить
158. yar555 25.01.2012 12:02
спасибо с экономил время, отличная обработка
# Ответить
159. baralgin1003 26.01.2012 13:52
Ошибка: Индекс выходит за границы (Форма, 561)
Исправление:

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


Если НаборЗаписи.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
Ответили: (160)
# Ответить
160. tormozit 26.01.2012 14:12
(159) Эта ошибка давно исправлена в подсистеме ИР.
# Ответить
161. baralgin1003 26.01.2012 14:17
прошу прощения, наверно старую обработку запустил
# Ответить
162. zhleonid8 28.01.2012 22:48
добавь откат изменений, обработка пока лучшая из предложенных на сайте
Ответили: (164)
# Ответить
163. zhleonid8 28.01.2012 22:49
но к обраотке приложение надо, чтоб впредь не разрешала делать дубликаты
# Ответить
164. tormozit 28.01.2012 22:57
(162) Допускаю, что под откатом ты имел ввиду что то безобидное. Поэтому прошу уточнить, что есть "откат"?
# Ответить
165. AlekseiLeit 21.02.2012 12:52
спасибо, хорошая обработка
# Ответить
166. hansolo686 29.02.2012 15:30
Спасибо, полезная обработка!
Но с небольшой проблемой — вылетает:
{Форма.Форма.Форма(179)}: Индекс находится за границами массива
		СтрокаПоиска.НомерГруппы = НайденныеГруппы.НайтиСтроки(мСтруктураКлючаПоиска)[0].НомерГруппы;

Происходит это, когда в мСтруктураКлючаПоиска есть значение отбитой пробелами пустой строки, тогда в найденных группах оно идёт без сокращения пробелов, а в мСтруктураКлючаПоиска сворачивается в "" на строке 177:
мСтруктураКлючаПоиска[СтроковоеПоле] = Нрег(СокрП(мСтруктураКлючаПоиска[СтроковоеПоле]));

Для воспроизведения ошибки можно запустить поиск дублей по справочнику Банков по полю Корр. счет

Если убрать СокрП в строке 177 то ошибка исчезает, но это неграмотное решение проблемы.

Пробовал на версии 0.99
Ответили: (169)
# Ответить
167. zxc768 29.02.2012 15:32
Такую бы штуку да под 8.2.. Ээх
Ответили: (168)
# Ответить
168. hansolo686 29.02.2012 15:36
(167) zxc768, просто открой в конфигураторе обработку, она под 8.2 сконвертируется.
# Ответить
169. hansolo686 15.03.2012 07:29
(166) Глупость сказал. В Подсистеме разработчика, оказывается, уже 100 лет как исправлено.
# Ответить
170. wowkai 31.03.2012 13:05
обработка старенькая но очень помогла найти дублирующиеся контингенты, номенклатуру! Спасибо автору, если есть свежее версия киньте ссылку плз!
# Ответить
171. &rew 12.04.2012 12:06
Очень полезная вещь! Давно хотел почистить справочник Единицы измерения, даже писал что-то на основе стандартной обработки, но до ума довести как то не довелось. Сейчас я ей всю базу почищу!
# Ответить
172. 1C_tradeomsk 19.04.2012 09:22
А как насчет гибкой настройки при сравнении по строке?
Ответили: (173)
# Ответить
173. tormozit 19.04.2012 09:27
(172) Вопрос не понятен.
Ответили: (174)
# Ответить
174. 1C_tradeomsk 19.04.2012 17:48
(173) tormozit, Хочется сравнения по шаблону типа

Если <Исходник> + "2323232" Тогда
попадает в объединение по дублю
Иначе
НЕТ


Ситуация надо объединять не все.
Вручную долго
Ответили: (175)
# Ответить
175. tormozit 19.04.2012 18:03
(174) 1C_tradeomsk, теперь понятно. Пожелание записал.
Отмечу, что в подсистеме ИР есть возможность из дерева результата запроса или дерева результата компоновки передать колонку в обработку "поиск дублей и замена ссылок" для заполнения групп дублей. Т.е. если нужен промежуточный уровень отношения универсальность/удобство, то это как раз он и есть сейчас.
# Ответить
176. onlyone777 25.04.2012 17:43
Огромное спасибо за обработку!
А нельзя ли автоматизировать процесс замены и удаления?
Например я использую обработку для замены и удаления дублей номенклатуры в УТ 10.3.
Как я понял поиск и удаление зависимых элементов, в моем случае это единицы измерения, необходимо делать в ручном режиме, не в ручном у меня не получилось - если делаю автозамену, то единица измерения удаляемой номенклатуры просто добавляется в номенклатуру которую я указал как правильную.

В моем случае нужно обработать около 5000 позиций, которые идеально точно определяются дублями, сделать это в ручную очень сложно. Если бы еще можно было задавать алгоритм "Автоопределения правильных", например, для меня правильные, это позиции зарегистрированные позже (сам определяю по коду номенклатуры, если он выше, то правильный), то было бы здорово!
# Ответить
177. denklu 25.04.2012 18:00
спасибо, давно пользуюсь, много раз выручала, но вот полный справочник контрагентов в бух 8, исправить не смогла. сделали новую базу из 7-ки, выгрузили стандартно справочники без кодов, а потом сделали выгрузку из торговли по кодам, все задвоилось. практически все исправила кроме контрагентов, пришлось коды руками перебивать и выгрузку из торговли повторять
# Ответить
178. OleGazz 14.05.2012 17:41
спасибо большое надеюсь для бП 2.0 подойдёт...
# Ответить
179. Psylocibine 22.05.2012 11:39
Шикарная обработка, спасибо! Не раз выручала
# Ответить
180. sbv2005 21.06.2012 10:58
(103) Автору: сейчас не работает сравнение по похожим словам (работает только в версии в ИР). Проанализировав вашу полную версию предлагаю корректировки, чтобы этот режим работал:
1) Заменить Процедуру НайтиПоСовпадающимСловам(ОтборПоиска):

Процедура НайтиПоСовпадающимСловам(ОтборПоиска)

ЕСли мФормаИндикатора <> Неопределено Тогда
мФормаИндикатора.КомментарийОбработкиДанных = "Поиск элементов";
мФормаИндикатора.КомментарийЗначения = "Получение элементов объекта";
мФормаИндикатора.ВладелецФормы = ЭтаФорма;
мФормаИндикатора.Открыть();
КонецЕсли;

ТекстВЫБРАТЬ = "";
ТекстИдексов = "";
ТаблицаСлов = Новый ТаблицаЗначений;
мРезультатыПоиска = Новый ТаблицаЗначений;
мСтруктураКлючаПоиска = Новый Структура;
Для Каждого ПолеСравнения Из ПостроительОтчетаОтбора.Порядок Цикл
Если ПолеСравнения.ПутьКДанным = "КоличествоЭлементовВГруппе" Тогда
Продолжить;
КонецЕсли;
ИмяПоля = ПолучитьИдентификаторИзПредставления(ПолеСравнения.ПутьКДанным);
Если ПолеСравнения.ПутьКДанным = мПутьКДаннымПоляНечеткогоСравнения Тогда
ИмяПоляНечеткогоСравнения = ИмяПоля;
Иначе
мСтруктураКлючаПоиска.Вставить(ИмяПоля);
ТекстИдексов = ТекстИдексов + ", " + ИмяПоля;
КонецЕсли;
мСтруктураПредставлений.Вставить(ИмяПоля, ПолеСравнения.Представление);

ПсевдонимОсновнойТаблицы = "_" + ПолучитьИдентификаторИзПредставления(Новый УникальныйИдентификатор);

ТекстВЫБРАТЬ = ТекстВЫБРАТЬ + ", " + ПсевдонимОсновнойТаблицы + "." + ПолеСравнения.ПутьКДанным;
ТаблицаСлов.Колонки.Добавить(ИмяПоля);
мРезультатыПоиска.Колонки.Добавить(ИмяПоля);
НайденныеГруппы.Колонки.Добавить(ИмяПоля);
КонецЦикла;
ТекстИдексов = Сред(ТекстИдексов, 2);

ПостроительОтчетаПоиска = Новый ПостроительОтчета;
ТекстЗапроса = "
|ВЫБРАТЬ " + ПсевдонимОсновнойТаблицы + ".Ссылка" + ТекстВЫБРАТЬ + ", NULL КАК КоличествоЭлементовВГруппе
|Из " + ПолноеИмяОбъекта + " КАК " + ПсевдонимОсновнойТаблицы + "
|";

ПостроительОтчетаПоиска.Текст = ТекстЗапроса;
ПостроительОтчетаПоиска.ЗаполнитьНастройки();

ЛксСкопироватьОтбор(ПостроительОтчетаПоиска.Отбор, ОтборПоиска, Истина);
ЛксСкопироватьПорядок(ПостроительОтчетаПоиска.Порядок, ПостроительОтчетаОтбора.Порядок);
ПостроительОтчетаПоиска.Выполнить();
ТаблицаОбъекта = ПостроительОтчетаПоиска.Результат.Выгрузить();
ТаблицаОбъекта.Индексы.Добавить(ТекстИдексов);

ТаблицаСлов.Колонки.Добавить("Ссылка");
ТаблицаСлов.Колонки.Добавить("СписокСлов");

СписокСлов = Новый СписокЗначений;

ЕСли мФормаИндикатора <> Неопределено Тогда
мФормаИндикатора.КомментарийОбработкиДанных = "Разбивка значения на отдельные слова";
мФормаИндикатора.МаксимальноеЗначение = ТаблицаОбъекта.Количество();
КонецЕсли;

Для Каждого СтрокаСсылки ИЗ ТаблицаОбъекта Цикл
ЕСли мФормаИндикатора <> Неопределено Тогда
мФормаИндикатора.Значение = ТаблицаОбъекта.Индекс(СтрокаСсылки) + 1;
КонецЕсли;

ЗначениеРеквизита = СтрокаСсылки[ИмяПоляНечеткогоСравнения];
СписокСлов = ПолучитьСписокСлов(ЗначениеРеквизита);

НовСтр = ТаблицаСлов.Добавить();
ЗаполнитьЗначенияСвойств(НовСтр, СтрокаСсылки);
НовСтр.СписокСлов = СписокСлов.Скопировать();
КонецЦикла;

ЕСли мФормаИндикатора <> Неопределено Тогда
мФормаИндикатора.КомментарийОбработкиДанных = "Выполняется анализ значений реквизита";
мФормаИндикатора.Значение = 0;
мФормаИндикатора.МаксимальноеЗначение = ТаблицаСлов.Количество();
КонецЕсли;

ТаблицаОбъекта = 0;

мРезультатыПоиска.Колонки.Добавить("Ссылка");
мРезультатыПоиска.Колонки.Добавить("НомерГруппы");
мРезультатыПоиска.Колонки.Добавить("Правильный", Новый ОписаниеТипов("Булево"));
мРезультатыПоиска.Колонки.Добавить("КоличествоСсылок");

НомерГруппы = 1;

Пока ТаблицаСлов.Количество() > 0 Цикл
ЕСли мФормаИндикатора <> Неопределено Тогда
мФормаИндикатора.Значение = мФормаИндикатора.ЭлементыФормы.Индикатор.МаксимальноеЗначение - ТаблицаСлов.Количество();
КонецЕсли;
ОбработкаПрерыванияПользователя();

ОбрабатываемаяСтрока = ТаблицаСлов[0];
ФильтрГруппыРавенства = Новый Структура(ТекстИдексов);
ЗаполнитьЗначенияСвойств(ФильтрГруппыРавенства, ОбрабатываемаяСтрока);
Если ФильтрГруппыРавенства.Количество() > 0 Тогда
СтрокиГруппыРавенства = ТаблицаСлов.НайтиСтроки(ФильтрГруппыРавенства);
Иначе
СтрокиГруппыРавенства = ТаблицаСлов;
КонецЕсли;
КоличествоСтрок = СтрокиГруппыРавенства.Количество();
СписокСтрок = Новый СписокЗначений;
СписокСтрок.Добавить(ОбрабатываемаяСтрока);
ТекущийСписокСлов = ОбрабатываемаяСтрока.СписокСлов.Скопировать();

Для индекс = 1 по КоличествоСтрок - 1 Цикл
СтрокаСравнения = СтрокиГруппыРавенства[индекс];
Если СтрокаСравнения = ОбрабатываемаяСтрока Тогда
Продолжить;
КонецЕсли;

СписокСловСравнения = СтрокаСравнения.СписокСлов.Скопировать();
СписокНеНайденных = Новый СписокЗначений;

ОдинаковыхСлов = 0;
Для Каждого Слово Из ТекущийСписокСлов Цикл
ЭлементСпискаСравнения = СписокСловСравнения.НайтиПоЗначению(Слово.Значение);
Если ЭлементСпискаСравнения = Неопределено Тогда
СписокНеНайденных.Добавить(Слово.Значение);
Иначе
СписокСловСравнения.Удалить(ЭлементСпискаСравнения);
ОдинаковыхСлов = ОдинаковыхСлов + 1;
КонецЕсли;
КонецЦикла;

Если СписокНеНайденных.Количество()=0 И СписокСловСравнения.Количество()=0 Тогда
ЕстьОтличия = Ложь;
Иначе
ЕСли ОдинаковыхСлов > 0 Тогда
ЕстьОтличия = АнализРазличийВСловах(СписокНеНайденных, СписокСловСравнения, ТекущийСписокСлов, ОдинаковыхСлов, ДопустимоеРазличиеСлов);
Иначе
ЕстьОтличия = Истина;
КонецЕсли;
КонецЕсли;

Если НЕ ЕстьОтличия Тогда
СписокСтрок.Добавить(СтрокаСравнения);
КонецЕсли;

КонецЦикла;

Для Каждого СтрокаИзСписка ИЗ СписокСтрок Цикл
Если СписокСтрок.Количество() > 1 Тогда
СтрокаРезультата = мРезультатыПоиска.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаРезультата, СтрокаИзСписка.Значение);
СтрокаРезультата.НомерГруппы = НомерГруппы;
Иначе
НомерГруппы = НомерГруппы - 1;
КонецЕсли;
ТаблицаСлов.Удалить(СтрокаИзСписка.Значение);
КонецЦикла;
НомерГруппы = НомерГруппы + 1;

КонецЦикла;

ЕСли мФормаИндикатора<>Неопределено Тогда
мФормаИндикатора.КомментарийОбработкиДанных = "Обработка результатов";
КонецЕсли;

НайденныеГруппы.Колонки.Добавить("КоличествоЭлементовВГруппе");
НайденныеГруппы.Колонки.Добавить("НомерГруппы");
НайденныеГруппы.Колонки.Добавить("ПравильныйЭлемент");
Если мРезультатыПоиска.Количество() > 0 Тогда

мРезультатыПоиска.Сортировать("НомерГруппы УБЫВ");
СтруктураПоиска = Новый Структура;
ВсегоГрупп = мРезультатыПоиска[0].НомерГруппы;
Для Индекс = 1 по ВсегоГрупп Цикл
СтруктураПоиска.Вставить("НомерГруппы", ВсегоГрупп - Индекс + 1);
МассивСтрок = мРезультатыПоиска.НайтиСтроки(СтруктураПоиска);
СтрокаГруппы = НайденныеГруппы.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаГруппы, МассивСтрок[0]);
СтрокаГруппы.КоличествоЭлементовВГруппе = МассивСтрок.Количество();
КонецЦикла;

НайденныеГруппы.Сортировать(ЛксПолучитьСтрокуПорядка(ПостроительОтчетаОтбора.Порядок));

Если мРезультатыПоиска.Количество() > 0 Тогда
ВывестиГруппу(НайденныеГруппы[0]);
КонецЕсли;

КонецЕсли;
ЕСли мФормаИндикатора<>Неопределено Тогда
мФормаИндикатора.Закрыть();
КонецЕсли;


КонецПроцедуры

2) Добавить 2 процедуры:

Функция ПолучитьИдентификаторИзПредставления(Представление)

Попытка
Пустышка = Новый Структура(Представление);
Возврат Представление;
Исключение КонецПопытки;

RegExp = Новый COMОбъект("VBScript.RegExp");
RegExp.IgnoreCase = Истина;
RegExp.MultiLine = Ложь;

шБуква = "А-Яа-я_A-Za-z";

RegExp.Pattern = "\d";
НовоеПредставление = Представление;
ПервыйСимвол = Сред(Представление, 1, 1);
Если RegExp.Test(ПервыйСимвол) Тогда
// Первый символ - цифра
НовоеПредставление = "_" + НовоеПредставление;
КонецЕсли;
ПредыдущийСимвол = " ";
ТекущаяСтрока = "";
Для Счетчик = 1 По СтрДлина(НовоеПредставление) Цикл
ТекущийСимвол = Сред(НовоеПредставление, Счетчик, 1);
RegExp.Pattern = "\s";
Если RegExp.Test(ПредыдущийСимвол) Тогда
// Предыдущий символ - непечатаемый
ТекущийСимвол = ВРег(ТекущийСимвол);
КонецЕсли;
RegExp.Pattern = "[" + шБуква + "\d]";
Если RegExp.Test(ТекущийСимвол) Тогда
// Предыдущий символ - непечатаемый
ТекущаяСтрока = ТекущаяСтрока + ТекущийСимвол;
Иначе
RegExp.Pattern = "[\S]";
Если RegExp.Test(ТекущийСимвол) Тогда
ТекущаяСтрока = ТекущаяСтрока + "_";
КонецЕсли;
КонецЕсли;
ПредыдущийСимвол = ТекущийСимвол;
КонецЦикла;
Результат = ТекущаяСтрока;
Возврат ТекущаяСтрока;

КонецФункции // ПолучитьИдентификаторИзПредставления()

Процедура ЛксСкопироватьОтбор(пОтборПриемник, пОтборИсточник, пСоздаватьОтсутствующие = Ложь, ТолькоИспользуемые = Ложь)

//Если пСоздаватьОтсутствующие Тогда
// ДоступныеПоля = пОтборПриемник.ПолучитьДоступныеПоля();
//КонецЕсли;
Для Каждого ЭлементОтбораИсточника Из пОтборИсточник Цикл
Если Истина
И ТолькоИспользуемые
И Не ЭлементОтбораИсточника.Использование
Тогда
Продолжить;
КонецЕсли;
Если ТипЗнч(ЭлементОтбораИсточника) = Тип("КлючИЗначение") Тогда
ЭлементОтбораИсточника = ЭлементОтбораИсточника.Значение;
КонецЕсли;
//Если ЭлементОтбораИсточника.Имя = "" Тогда
// Сообщить("Невозможно определить элемент отбора приемника при копировании отбора.",
// СтатусСообщения.Внимание);
// Продолжить;
//КонецЕсли;
ЭлементОтбораПриемника = пОтборПриемник.Найти(ЭлементОтбораИсточника.Имя);
Если ЭлементОтбораПриемника = Неопределено Тогда
Если Истина
И пСоздаватьОтсутствующие
//И ЛксНайтиПолеНастройкиПоПутиКДанным(ДоступныеПоля, ЭлементОтбораИсточника.ПутьКДанным) <> Неопределено
Тогда
Попытка
ЭлементОтбораПриемника = пОтборПриемник.Добавить(ЭлементОтбораИсточника.ПутьКДанным, ЭлементОтбораИсточника.Имя);
Исключение
Продолжить;
КонецПопытки;
Иначе
Продолжить;
КонецЕсли;
КонецЕсли;
ЛксСкопироватьЭлементОтбора(ЭлементОтбораПриемника, ЭлементОтбораИсточника);
КонецЦикла;

КонецПроцедуры // ЛксСкопироватьОтбор()
# Ответить
181. Shturman88 07.08.2012 15:49
Спасибо! помогло в трудную минуту!
# Ответить
182. alcoholic 11.09.2012 12:28
спасибо очень помогла
# Ответить
183. SuperSpade 18.10.2012 12:52
Спасибо за обработку - полезная штука.

Заметил косячок в версии 0.99 (под платформой 8.2.16.352) пропадают отборы после обновления группы. То есть изначально ставил отбор на элементы справочника ЭтоГруппа=Истина - по нему отобралось 2 группы, в каждой по 2 элемента.
После обновления группы двойным тычком, в первой группе появилось 8 элементов, из которых 2 Группы и 6 НЕГруппы.
Где-то тут Текст ЗапросаПоиска меняется таким образом, что из него исчезают отборы:
ТекстЗапросаЭлементы = "
	|ВЫБРАТЬ Объект.Ссылка КАК Ссылка" + ТекстВЫБРАТЬ + "
	|ИЗ " + ПолноеИмяОбъекта  + " КАК Объект
	|ГДЕ ИСТИНА
	|";
    //Тут слетают Параметры отборов!!!:
	МенеджерВременныхТаблиц = ЗапросПоиска.МенеджерВременныхТаблиц;
	ПостроительЗапросаПоиска.Текст = ТекстЗапросаЭлементы;
	ПостроительЗапросаПоиска.ЗаполнитьНастройки();
	ЛксСкопироватьОтборСтатический(ПостроительЗапросаПоиска.Отбор, ОтборПоиска, Истина);
	ЗапросПоиска = ПостроительЗапросаПоиска.ПолучитьЗапрос();
	ЗапросПоиска.Текст = ЗапросПоиска.Текст + " И (" + Сред(ТекстСГРУППИРОВАТЬ, 2) + ")
	|В (ВЫБРАТЬ " + Сред(ТекстИдексов, 2) + " ИЗ НайденныеГруппы)";
	ЗапросПоиска.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
	мРезультатыПоиска = ЗапросПоиска.Выполнить().Выгрузить();
...Показать Скрыть


Изначально текст запроса был:
ВЫБРАТЬ
	Объект.Наименование КАК Наименование,
	КОЛИЧЕСТВО(Объект.Ссылка) КАК КоличествоЭлементовВГруппе
 ПОМЕСТИТЬ НайденныеГруппы ИЗ
	Справочник.ТорговаяМарка КАК Объект
ГДЕ
	ИСТИНА
	И Объект.Наименование ЕСТЬ НЕ NULL 
	И Объект.ЭтоГруппа = &Параметр1

СГРУППИРОВАТЬ ПО
	Объект.Наименование

ИМЕЮЩИЕ
	КОЛИЧЕСТВО(Объект.Ссылка) > 1
...Показать Скрыть

После обновления группы тест запроса стал:
ВЫБРАТЬ
	Объект.Ссылка КАК Ссылка,
	Объект.Наименование КАК Наименование
ИЗ
	Справочник.ТорговаяМарка КАК Объект
ГДЕ
	ИСТИНА И ( Наименование)
В (ВЫБРАТЬ  Наименование ИЗ НайденныеГруппы)
...Показать Скрыть
# Ответить
184. SuperSpade 23.10.2012 17:44
Поправил один запрос со строки 154 в модуле формы с такого:

	ТекстЗапросаЭлементы = "
	|ВЫБРАТЬ Объект.Ссылка КАК Ссылка" + ТекстВЫБРАТЬ + "
	|ИЗ " + ПолноеИмяОбъекта  + " КАК Объект
	|ГДЕ ИСТИНА "+"
	|";
...Показать Скрыть

На такой (по аналогии с предыдущим текстом):
	ТекстЗапросаЭлементы = "
	|ВЫБРАТЬ Объект.Ссылка КАК Ссылка" + ТекстВЫБРАТЬ + "
	|ИЗ " + ПолноеИмяОбъекта  + " КАК Объект
	|ГДЕ ИСТИНА "+"

   	|{ГДЕ "  + Сред(мСтрокаРеквизитов, 2) + "}

	|";
...Показать Скрыть

Осталось проверить корректность работы такого исправления в разных случаях - с моим одним отбором вроде бы работает :)
# Ответить
185. SuperSpade 24.10.2012 10:40
Почему-то не работает поиск ссылок. На закладке "Результаты поиска" показывает кол-во ссылок 22, нажимаю "Поиск ссылок" - переходит на закладку "Замена" где пустая таблица. Однако встроенная обработка Поиск дублирующихся элементов показывает все эти ссылки.
Ответили: (186)
# Ответить
186. tormozit 24.10.2012 10:50
(185) Какая версия подсистемы ИР используется?
# Ответить
187. SuperSpade 24.10.2012 11:02
Какой подсистемы?
Ответили: (188)
# Ответить
188. tormozit 24.10.2012 11:19
(187) В описании написано
Самая свежая (немобильная) версия всегда здесь http://infostart.ru/public/15126/. А эта мобильная обновляется редко.
# Ответить
189. SSP2011 30.11.2012 01:06
жму руку за обработку удаления дублей по планам видов расчета! очень полезная вещь! (пользовался актуальной из инструментария)
# Ответить
190. serge_focus 01.12.2012 18:33
Добрый день всем.
Прочитал обсуждение, но так и не понял в чем отличия от ИТС и других обработок, представленных здесь.
А главный вопрос : стандартная обработка после замены в справочниках меняет дату последовательности документов. И чтобы ее восстановить - необходимо перепроведение...
МОЖНО ЗАМЕНИТЬ елементы справочников не нарушив последовательность документов?
Как в этой обработке обстоят дела с этим?
# Ответить
191. eugen91 04.12.2012 20:13
Встречали ли вы обработку по замене дублей в свойсвтах справочника номенклатуры? очень ищу!
# Ответить
192. zigomodo 27.12.2012 12:30
Очень нужно,постоянно в бухгалтерии задваиваются справочники.
# Ответить
193. fixin 22.01.2013 14:52
табличку со ссылками нужно сделать с галочкой "изменять состав строк" и с "множественным выделением".
иногда надо некоторые ссылки отсавить, если случайно заменили клиента на сотрудника, например с одинаковыми ФИО.

И вообще - хотелось бы такую обработку - выбираешь что менять и на что менять и чтобы она меняла (без поиска, иногда список заранее известен). Хотя такая типовая есть "Поиск и замена значений называется". Туплю.
Ответили: (194)
# Ответить
194. tormozit 22.01.2013 15:16
(193) Уже давно реализовано в подсистеме "Инструменты разработчика".
Ответили: (195)
# Ответить
195. fixin 22.01.2013 15:30
(194) мне надо отдельно запустить, в отдельной базе.
# Ответить
196. internetname 08.02.2013 14:55
Спасибо, хорошая вещь.
# Ответить
197. 00alenka00 22.02.2013 15:51
обработка замечательная, и все таки не работает отбор по владельцу. Собираетесь это исправлять или нет.
Ответили: (198)
# Ответить
198. tormozit 22.02.2013 16:03
(197) Пока таких планов нет. Замечу что ошибка эта исправлена в актуальной версии обработки в составе ИР.
# Ответить
199. 00alenka00 25.02.2013 17:14
в составе ИР неинтересно, т.к. добавлять какие-либо объекты в типовую базу не хочется. Эта обработка всем и нравится за счет того, что она внешняя.
Ответили: (200)
# Ответить
200. tormozit 25.02.2013 17:43
(199) ИР имеет мобильную версию.
# Ответить
201. OrenLiTo 28.03.2013 06:51
Спасибо!!!
# Ответить
202. l-Rain 08.05.2013 10:11
Спасибо, полезная обработка.
# Ответить
203. Lukich66 20.05.2013 15:41
Добрый день. В данной версии при поиске дублей по "коду",если код справа имеет пробелы, то обработка еррорит.
В Процедура НайтиПоРавенствуРеквизитов(ОтборПоиска)
//...
Для Каждого СтрокаПоиска ИЗ мРезультатыПоиска Цикл
ЗаполнитьЗначенияСвойств(мСтруктураКлючаПоиска, СтрокаПоиска);
Для Каждого СтроковоеПоле Из МассивСтроковыхПолейСравнения Цикл
если СтроковоеПоле<>"Код" тогда //20130520 ЛВЛ изменил
мСтруктураКлючаПоиска[СтроковоеПоле] = Нрег(СокрП(мСтруктураКлючаПоиска[СтроковоеПоле]));
иначе
//ничего справа сокращать не нужно
конецесли;
КонецЦикла;
//...
Не понравился вывод результата найденных дублей и процедуры действий с ними, сбит с толку Вашей системой логики, дубли нашел но вот что с ними сделать не получилось.
Ответили: (204)
# Ответить
204. tormozit 20.05.2013 15:53
(203) Попробуй актуальную версию (из подсистемы или мобильного варианта инструментов разработчика). Если там остались плохо понятные интерфейсные приемы, то просьба описать их четче. Скорее всего ошибка с обработкой строк там давно исправлена.
# Ответить
205. Nikola178 19.08.2013 11:17
Доброго времени суток всем. Прекрасная, наиполезнейшая обработка, скачала,теперь пользуюсь постоянно, после переносов со всяких нестандартных конфигураций имеется куча дублей, особенно когда несколько организаций в одну сливаются. Большое спасибо автору!!!!!!!
# Ответить
206. alika 02.10.2013 09:30
Большое спасибо, очегт нужная обработка!
# Ответить
207. gala2009 19.12.2013 17:57
полезная обработка, спасибо
# Ответить
208. CaSH_2004 13.01.2014 16:42
Недавно изучал алгоритм поиска дублей в данной обработке (в достаточно старом варианте) и вот что выяснил интересного которое ОЧЕНЬ СОВЕТУЮ всем прочитать кого интересует скорость и качество работы:
1. алгоритм поиска отличается от типовой обработке как например в 10.3
2. по причине в п.1 и непонятного глюка платформы 1С дубли находятся не все если запрос строится без использования УПОРЯДОЧИТЬ, а чтобы его использовать нужно использовать метод ПЕРВЫЕ с достаточно большим числом, например 999999999, думаю этого хватит :) если переборщить с числом то может и не заработать
Вобщем метод СГРУППИРОВАТЬ просто не работает корректно и все,
3. как и в типовой обработке поиск выполняется без буфферизации т.е. повторным обращением к базе, кстати интересно чей вариант быстрее в таком варианте, и после оптимизации обеих обработок, я до этого не дошел еще, может кто-то замерял?
4. исходя из п.3 происходит проблема что в состав групп попадают элементы которые отброшены фильтром, у меня например при условии ЭтоГруппа = Ложь в состав группы все равно попадает группа, а поиск производится только по элементам, т.к. фильтр накладывается на поиск дублей, а состав группы делается оттдельным запросом

Возможно это уже и исправлено, но это к размышлению чем пользоватся... я во всяком случае пользуюсь этой обработкой но сильно пришлось ее оптимизировать.
Ответили: (209)
# Ответить
209. tormozit 13.01.2014 17:14
(208) Судя по всему, ты анализировал старый вариант обработки. Непонятно зачем, когда есть новый в ИР подсистеме или мобильных, где уже давно нет таких проблем.
# Ответить
210. Ionmuerto 15.01.2014 08:39
Данная обработка Поиск и замена дублирующихся элементов справочников подходит под управляемые формы 1с Управление Торговлей 11.1?
# Ответить
211. tormozit 15.01.2014 11:34
Обработка не может подходить или не подходить под управляемые формы. Правильно спрашивать про управляемое приложение. Она не запустится в режиме управляемого приложения. Она больше не поддерживается в независимом варианте. Также замечу, что ты исказил название инструмента.
+ 1 [ &rew; ]
# Ответить
212. dufrein 17.01.2014 14:05
Спасибо, иногда крайне необходимая обработка.
# Ответить
213. alcoholic 08.02.2014 12:23
отличная обработка, пригодилась
# Ответить
214. Andrey@ 16.03.2014 13:06
Спасибо автору за обработку! Нам в старой базе как раз надо убрать задвоенную номенклатуру.
# Ответить
215. buy_sale 26.02.2015 21:29
После применения этой обработки появляются проблемы. У записей регистров появляются пустые ссылки вместо NULL, что потом ведет к невозможности работы с базой, так как разъезжаются итоги регистра (2 строки вместо 1 : + и - ). Конкретно я столкнулся с измерением Подразделение : часть записей NULL, часть с пустая ссылка.

Пришлось долго делать Проверку логической целостности и пересчет итогов.
Ответили: (216)
# Ответить
216. tormozit 26.02.2015 22:33
(215)
1) Использовалась ли актуальная версия обработки из инструментов разработчика?
2) О каком именно регистре речь и какие поля в нем предположительно имели значение NULL и потом стали иметь значение пустой ссылки?

Я так понимаю речь о регистре бухгалтерии и полях субконто?
Ответили: (217)
# Ответить
217. buy_sale 01.05.2015 15:37
(216) tormozit, да. Во некоторых обработках авторы исправили этот момент, а у вас ?
# Ответить
218. buy_sale 01.05.2015 15:38
Вот, что пишет другой автор : "При записи набора регистра бухгалтрерии в режиме обмена данных (ОбменДанными.Загрузка = Истина) есть фича:

если не ведется учет по измерению ("по подразделению"), но в записи установить значение (например, Подразделение.ПустаяСсылка), то не смотря на то, что учет по подразделению не ведется, записывается значение установленное в наборе.

Напротив, если ОбменДанными.Загрузка = Ложь, то в таком случае значение автоматически обNULLяется.

В результате такого поведения при заменах ссылок в регистрах бухгалтерии могли возникать ошибки, если замена велась с отключенным режимом записи (ОбменДанным.Загрузка = Истина).

Исправляется перезаписью записей регистра в режиме ОбменДанными.Загрузка = Ложь."
Ответили: (219) (220)
# Ответить
219. tormozit 01.05.2015 15:50
(218) Запись в режиме ОбменДанными.Загрузка = Ложь во многих конфигурациях будет невозможна в закрытом периоде. Поэтому такой метод решения проблемы ощутимо не универсальный. Я готов рассмотреть проблему, если будет предоставлен готовый пример для ее воспроизведения. Желательно опубликовать его в форуме на офсайте подсистемы ИР.
# Ответить
220. tormozit 14.06.2015 23:06
(218) Исправлено в ИР 3.34
# Ответить
221. Nex@ 22.06.2016 16:08
Пользуюсь довольно старой версией обработки, так как при переносе данных дубли возникают часто. Почти всем устраивает, только не запоминаются настройки обработки. Приходится каждый раз заново устанавливать отборы для каждого вида справочников.
Ответили: (222)
# Ответить
222. fixin 23.06.2016 19:52
(221) ты ж программист. Напиши заполнялку реквизитов.
Ответили: (223)
# Ответить
223. tormozit 23.06.2016 23:14
(222) Кажется в этом нет смысла, т.к. инструмент в составе ИР уже ушел далеко вперед. Мне сложно понять причины, по которым пользуются этим устаревшим вариантом.
Ответили: (224)
# Ответить
224. fixin 24.06.2016 03:28
(223) потому что внешняя обработка удобнее чем конфа.
Ответили: (225)
# Ответить
225. tormozit 24.06.2016 07:03
(224) Сочувствую, что не можешь запомнить, что есть портативный вариант подсистемы. Уже не раз тебе сообщал об этом. Ты многое потерял, не запоминая важный факт.
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл