Обработка для замены ссылок (дублей) без перепроведения в "1С:Предприятие 8" для любых конфигураций (обычное приложение)

16.01.20

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

Замена ссылок (дублей) любых справочников (Номенклатура, Контрагенты, Договора и другие) без перепроведения: все числовые значения в регистрах останутся неизменными Основное отличие нашей обработки в том, что сперва генерируется и выполняется запрос по всем метаданным с получением всех нужных объектов и необходимых реквизитов (добавление в текст запроса только реквизитов заданного типа с отбором по значениям). Далее выполняется замена ссылок по заранее полученным именам таблиц, табличным частям и реквизитам, без излишних проверок в циклах по объектам.

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

Наименование Файл Версия Размер
Обработка для замены ссылок (дублей) в "1С:Предприятие 8" для любых конфигураций (обычное приложение, модуль закрыт паролем)
.epf 31,94Kb
91
.epf 31,94Kb 91 Скачать
Обработка для замены ссылок (дублей) без перепроведения в "1С:Предприятие 8" для любых конфигураций (обычное приложение, текстовый модуль открыт)
.epf 21,69Kb
15
.epf 21,69Kb 15 Скачать

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

Данная обработка была создана более двух лет назад, оттестирована, отлажена и многократно успешно применялась для замены ссылок.

Поиск и замена дублей (обычное приложение)

Основное отличие нашей обработки в том, что сперва генерируется и выполняется запрос по всем метаданным с получением всех нужных объектов и необходимых реквизитов (добавление в текст запроса только реквизитов заданного типа с отбором по значениям). Далее выполняется замена ссылок по заранее полученным именам таблиц, табличным частям и реквизитам, без излишних проверок в циклах по объектам.

Ссылки в каждой таблице заменяются отдельно.

Поиск и замена дублей (обычное приложение)

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

Регистры сведений без регистратора через менеджер записи.

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

Поиск и замена дублей (обычное приложение)
 
Поиск и замена дублей (обычное приложение)

Информация по всем заменам фиксируется в стандартном журнале регистрации 1С с указанием внутреннего идентификатора и имени таблицы.

Поиск и замена дублей(обычное приложение)

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

Список ссылок можно сохранить в файл и позднее загрузить, и продолжить замену.

Тип ссылок для всех строк устанавливается из первой строки реквизита "Источник".

Кнопка "Отчет по объектам" позволяет получить полный перечень объектов с указанием таблиц, табличных частей и реквизитов, в которых будет выполнена замена ссылок.

Изображения к публикации содержат дополнительную информацию по использованию обработки.

замена ссылок дублей контрагентов без перепроведения

См. также

Исправление в 1С:ЗУП/ЗКГУ ошибок по НДФЛ и взаиморасчетам с сотрудниками на начало расчетного года.

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

Обработка исправляет технические ошибки по НДФЛ, взаиморасчетам с сотрудниками в 1С:ЗУП (1С:ЗКГУ) на начало года. Фактически все ошибки, которые проявляются в ведомостях на выплату, расчетных листках, при заполнении ведомостей на выплату и отчетах 6-НДФЛ и т.д. нужно начинать исправлять с начала расчетного года. Это позволит быть уверенными, что после завершения расчетов предыдущего года, начали работать с «чистого листа» без ошибочных остатков.

4800 руб.

06.10.2023    2322    29    15    

33

Тестирование и исправление ключей аналитики ERP, УТ11, КА

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

Незаменимая обработка для сопровождения конфигураций: ERP, УТ, КА. Позволяет вычистить многие ошибки в ключах аналитики, в ключевых справочниках конфигурации.

3600 руб.

10.02.2017    106807    633    173    

676

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27380    79    146    

59

Исправление ошибки закрытия месяца "Обнаружены ненулевые остатки по суммам при нулевом остатке по количеству в регистре себестоимости по организации". УТ 11.4,УТ 11.5, КА 2.4,КА 2.5, ERP 2.4, ERP 2.5, КА 2 Казахстан, Управление торговлей 3 для Казахстана

Закрытие периода Корректировка данных Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Закрытие месяца - важный процесс в современных конфигурациях, таких как УТ 11.4, УТ 11.5, КА 2.4, КА 2.5 ERP 2.4,ERP 2.5, КА 2 Казахстан, УТ 3 Казахстан регламентные операции влияют на расчет себестоимости, и ошибки в данном расчете не дают картины деятельности организации.

2400 руб.

27.10.2021    22321    299    35    

71

SALE! 20%

Заполнение документа "Корректировка регистров" произвольными данными

Закрытие периода Корректировка данных Платформа 1С v8.3 Система компоновки данных 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Внешняя обработка, позволяющая произвольным образом заполнять документ "Корректировка регистров" Предназначена для использования в конфигурациях "Управление торговлей 11", "Управление небольшой фирмой", "ERP Управление предприятием", а также в других конфигурациях, в состав которых входит библиотека стандартных подсистем (БСП) версии 2.2+ и указанный выше документ.

2400 1920 руб.

13.07.2015    50166    171    29    

121
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. pepe 62 13.11.15 17:06 Сейчас в теме
А каким образом происходит поиск ссылок?
2. TuneSoft 247 13.11.15 17:36 Сейчас в теме
(1) pepe, генерируется текст запроса 1С по всем метаданным только по реквизитам, содержащим тип ссылки и отбором по значениям "Источник".
Фрагмент этой функции видно на скрине:
3. karpik666 3760 13.11.15 18:29 Сейчас в теме
(2) так, а чем стандартный поиск дублей не угодил или из инструментов разработчики, да и на худой конец "Поиск и замена значений" , что на диске ИТС? Все это работает без перепроведения документов.
5. TuneSoft 247 13.11.15 22:18 Сейчас в теме
(3) karpik666, согласен, варианты есть, но они не совсем подходят для наших задач.

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

Ещё в типовой обработке "ПоискИЗаменаЗначений.epf" с диска ИТС выполняется поиск объектов через стандартную функцию "НайтиПоСсылкам", и далее в цикле выполняется перебор всех реквизитов объектов с проверкой на тип и содержание:
...
Для Каждого Реквизит Из СтрокаТаблицы.Метаданные.Реквизиты Цикл
Если Реквизит.Тип.СодержитТип(ТипЗнч(Ссылка)) И Параметры.Объект[Реквизит.Имя] = Ссылка Тогда

...
Для Каждого ТЧ ИЗ СтрокаТаблицы.Метаданные.ТабличныеЧасти Цикл
Для Каждого Реквизит Из ТЧ.Реквизиты Цикл
Если Реквизит.Тип.СодержитТип(ТипЗнч(Ссылка)) Тогда

...

это будет медленно при большом количестве объектов для замены.

Основное отличие нашей обработки в том, что сперва генерируется и выполняется запрос по всем метаданным с получением всех нужных объектов и необходимых реквизитов (добавление в текст запроса только реквизитов заданного типа с отбором по значениям).
Далее выполняется замена ссылок уже по заранее полученным именам таблиц, табличным частям и реквизитам, без излишних проверок в циклах.
16. gulchitai 28.01.16 05:10 Сейчас в теме
(5) tunesoft. Вы пишите про обработку "Поиск дублей", который готовит список замен, она есть на инфостарте? Как ее можно получить?
17. TuneSoft 247 28.01.16 13:15 Сейчас в теме
(16) gulchitai, какие-то были, можете через поиск найти.
18. gulchitai 29.01.16 03:35 Сейчас в теме
4. insurgut 207 13.11.15 21:27 Сейчас в теме
Так это же стандартная обработка с диска ИТС поиска и замены значений, которая точно так же напрямую в движениях заменяет ссылки без перепроведения документов. Куда смотрят модераторы?
6. TuneSoft 247 13.11.15 22:19 Сейчас в теме
(4) insurgut, совсем не стандартная, основные отличия описаны в предыдущем комментарии.

ещё избыточные циклы и проверки в типовой обработке "ПоискИЗаменаЗначений.epf":

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


(3) karpik666,
>"или из инструментов разработчики"

внутрь кода не смотрел, но в описании публикации указано "основано на обработке "ПоискИЗаменаДублирующихсяЭлементов" с ИТС"
7. TuneSoft 247 13.11.15 22:56 Сейчас в теме
На двух одинаковых тестовых БД "Бухгалтерия 2" запустил разные обработки, в одной типовую "ПоискИЗаменаЗначений", в другой нашу, настроил одинаковые элементы для замены.

Через несколько секунд "ПоискИЗаменаЗначений" выдала сообщение и прервалась:
Существуют документы, оформленные по договору "Договор №... от 01.01.15г.".
Контрагент договора не может быть изменен, элемент не записан.
Не удалось записать "Договор №... от 01.01.15г. (Договоры контрагентов)"!


Наша обработка успешно завершила выполнение за несколько минут, при этом в журнал регистрации добавлены сообщения вида "Замена <Справочник.Контрагенты;Почта;005;7cba181e-335b-11e4-a84f-001f29081c26> на <Справочник.Контрагенты;Почта России;000011;4a9b2d6c-26b0-11df-97a9-001d7d9bbaae> в таблице <Справочники.ДоговорыКонтрагентов>", данные "Договор №... от 01.01.15г.".
8. insurgut 207 14.11.15 07:04 Сейчас в теме
(7) ОбменДанными.Загрузка = Истина, вот и все отличие... Поиск и замена дублирующих использует замены в режиме загрузки данных, поиск и замена значений просто записывает элемент (в итоге выполняются проверки).
9. TuneSoft 247 14.11.15 11:28 Сейчас в теме
(8) insurgut, это знаю, с 1С работаю более 15 лет, смысл в том, что в исходном варианте обработка "ПоискИЗаменаЗначений" не заменяет ссылки и нет флажка на форме чтобы включить режим "ОбменДанными.Загрузка = Истина"
10. karpik666 3760 14.11.15 17:11 Сейчас в теме
(9) что то непонятно, с 1С более 15 лет, так зачем тогда приводите такое сравнение, или вы думаете, что квалификация посетителей сайта не позволит сказать в чем различия таких данных? Стандартная "поиск и замена значений" предусматривает обмен данными загрузка, просто почему то разработчики не удосужились просто вывести параметр на форму, переделывается это в течении 5 минут, достаточно в функцию замены передавать параметр, что выполнять без проверок. Вам говорят вы изобрели велосипед, притом, что есть уже точно работающие инструменты, и не для одних справочников, а также ПВР, ПВХ, планов счетов, Задач и т.д. А по поводу инструментов, это очень сильно переработанная обработка с ИТС, так как заменяет не только ссылки, но и позволяет оценивать регистры сведений, чтобы не было ошибки на уникальность строк.
11. TuneSoft 247 14.11.15 18:16 Сейчас в теме
(10) karpik666,
>и не для одних справочников, а также ПВР, ПВХ, планов счетов, Задач и т.д.

В нашей обработке тоже есть аналогичная возможность, сейчас в форме в типе элемента явно указано "Справочник", раньше было "Любая ссылка", можно снова выбрать мышкой "Любая ссылка"

>А по поводу инструментов, это очень сильно переработанная обработка с ИТС, так как заменяет не только ссылки, но и позволяет оценивать регистры сведений, чтобы не было ошибки на уникальность строк.

Отлично.
Тоже заменяем в регистре сведений.

>Вам говорят вы изобрели велосипед

Ну и замечательно.
Обработки разные, работают по-разному, и вообще изобретать "велосипеды" полезно :)
12. karpik666 3760 14.11.15 18:36 Сейчас в теме
(11) ладно будь по вашему, может кому то пригодится.
13. pepe 62 16.11.15 11:02 Сейчас в теме
(12) karpik666, Нужно проверить эту обработку, думаю она быстрее работает. Стандартной обработка на моей базе тупо виснет. Через запросы более эффективнее, только сложность, что нужно разбирать метаданные.
14. TuneSoft 247 16.11.15 15:08 Сейчас в теме
(13) pepe,
>Стандартной обработка на моей базе тупо виснет.

Не должна зависать.
В другой сессии 1С в журнале регистрации смотрели запись транзакций фиксируется ?
База файловая или SQL ? Какой размер БД ?
Пробовали выполнить в конфигураторе "Администрирование - Тестирование и исправление" ?
15. pepe 62 17.11.15 12:06 Сейчас в теме
Это проблема размера базы, база уже 600 гбайт. Тестирование и исправление делали относительно не давно.
19. gulchitai 05.02.16 05:05 Сейчас в теме
Замена ссылок происходит не в режиме ОбменДанными.Загрузка = Истина? При замене появляются сообщения об ошибках, которые у нас вставлены в подписки на события, в них есть такая проверка
Если Отказ ИЛИ Источник.ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;
Но кажется мы в нее не попадаем... В коде посмотреть не могу, т.к. обработка защищена паролем
20. TuneSoft 247 05.02.16 09:50 Сейчас в теме
(19) gulchitai, запись выполняется в режиме ".ОбменДанными.Загрузка = Истина", но в случае изменения регистра сведений без регистратора используется менеджер записи, у которого нет "ОбменДанными". Почему используется "МенеджерЗаписи", а не "НаборЗаписей" уже не помню :)
21. gragden 54 03.08.17 09:59 Сейчас в теме
Ожидал что можно будет любой тип объекта искать, а тут только можно справочники выбирать ))), очень похожа на ИТС версию, и 6 стартмани за это жирно
минус
22. TuneSoft 247 03.08.17 11:23 Сейчас в теме
(21)
Добрый день, Денис.

В обработке можно использовать любые ссылочные типы.
Для этого нужно в конфигураторе у поля выбора присвоить тип "Любая ссылка".
Обычно замена ссылок выполняется для справочников, поэтому задан такой тип чтобы сузить список выбора.
23. gragden 54 03.08.17 14:47 Сейчас в теме
(22)
тому задан такой тип чтобы сузить с


Ваша обработка для "полного счастья" еще и запаролена (Введите пароль для работы с текстовым модулем).
минус
24. TuneSoft 247 03.08.17 15:27 Сейчас в теме
(23)
пароль подобрать не удалось :)
поищу в архивах и сообщу
25. alexey_t 23.11.18 13:33 Сейчас в теме
Отдать 4 стартмани за запароленную обработку!
В описании про это ни слова!
26. TuneSoft 247 23.11.18 14:11 Сейчас в теме
(25) постараюсь убрать пароль и обновить, давно это было
27. eeeio 123 16.01.20 06:41 Сейчас в теме
28. TuneSoft 247 16.01.20 08:50 Сейчас в теме
(27) Добрый день.

Да.
Добавил файл с открытым модулем.
Оставьте свое сообщение