Замена дублей средствами SQL (MS SQL, УФ, 8.2, 8.3)

06.03.20

База данных - Чистка данных

Универсальная подсистема из 2-х справочников для выполнения замены дублей справочников средствами MS SQL (реализация на управляемых формах).

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Dubli_new.cf
.cf 81,84Kb
102 3 400 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Замена дублей выполняется для справочников.

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

Замена выполняется:

  • во всех основных таблицах 1С (справочники, документы, регистры, константы, ...).
  • в виртуальных таблицах итогов и оборотов регистров накопления.
  • в таблицах "значения субконто" и "итоги по счетам с субконто" регистров бухгалтерии.
  • в виртуальных таблицах "итоги срез первых/последних" регистров сведений.
  • в виртуальных таблицах Перерасчет регистра расчета.

В составе cf включена универсальная обработка "поиска ссылок на объекты SQL" из этой публикации //infostart.ru/public/446929/ 

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

Установка

При сравнении и объединении с cf необходимо убрать галку у свойств конфигурации.

Если в вашей базе уже есть настройки подключения к MS SQL, константу переносить не надо. Настройки подключения к серверу SQL необходимо указать в функции ПолучитьНастройкиСоединения() модуля менеджера справочника зд_ЗаменаДублей.

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

Настройка подключения к SQL

Если в вашей базе нет настроек подключения к MS SQL и константу из cf перенесли, то в форме списка справочника зд_ЗаменаДублей будет доступна кнопка "Настройка подключения". В открывшейся форме необходимо указать сервер SLQ, имя базы и настройки аутентификации.

 Настройка подключения к MS SQL

Использование

Для выполнения замены необходимо добавить новый элемент справочника "Замена дублей".

  • В типе объекта необходимо указать вид метаданных, для которых будет выполняться замена.
  • Основной элемент - ссылка на элемент справочника, на которую будут заменяться ссылки на дубли.
  • Таблица дублей - необходимо указать список дублей "основного элемента".

Элемент справочника "Замена дублей"

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

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

Просмотр результата

С закладки истории можно открыть элемент справочника истории выполнения замены. В истории отображаются дата и время начала и окончания выполнения замены.

 История выполнения замены

В табличной части "выполненные запросы" отображаются все таблицы, для которых выполнялся запрос замены. При выборе любой строки таблицы отображается:

  • Выполняемый текст запроса и текст ошибки, если при выполнении она возникла.
  • Время запуска запроса и время окончания.
  • В колонке "Обработано записей" отображается количество строк таблицы, в которых была выполнена замена значений.
  • В колонке "ош" отображается галка, если были ошибки при выполнении запроса.
  • Строка таблицы подсвечивается зеленым, если были замены и красным, если были ошибки.
На картинке результата видно что замена дубля валюты выполнилось в 3 140 844 строках таблиц за 27 секунд. При этом было выполнено более 500 запросов.

Дополнительно

Если у вас распределенная база, выполненные изменения не зарегистрируются в обмен с другими базами.

 

06.03.2020:

Добавлена обработка журналов документов.

Вступайте в нашу телеграмм-группу Инфостарт

Поиск данных Универсальные обработки Управляемые формы SQL Замена дублей

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.

24900 руб.

20.08.2024    76604    385    171    

330

Информационная безопасность Поиск данных ServiceDesk, HelpDesk Журналы и реестры данных 1С 8.3 Россия Бухгалтерский учет Бюджетный учет Налоговый учет Управленческий учет Платные (руб)

Полный контроль над изменениями в 1С без нагрузки на вашу базу. Мгновенный доступ к истории изменений, удобное сравнение и откат данных в один клик. Простой отчет с визуальным отображением изменений Откат на любую версию объекта в два клика История изменения данных хранится во внешней базе

180000 руб.

05.09.2025    5261    2    1    

4

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

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

14640 руб.

29.04.2020    51626    141    162    

96

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5. Работает на возможностях платформы, внешние компоненты не используются.

6000 руб.

25.02.2026    5329    17    1    

20

Чистка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Update 2026: добавили многопоточное удаление данных по организациям. Ускорение х6 по сравнению с однопоточным алгоритмом! Позволяет удалить организации из любых из информационных баз 1С на управляемых формах (БП 3.0, УТ 11, КА 2, ERP 2, ЗУП 3, УНФ, Розница 3.0 и пр.). Главное требование - программа должна содержать справочник "Организации". Реализован самый быстрый алгоритм непосредственного удаления объектов. Работает даже на базах большого размера. Для ускорения работы алгоритма не запускается проверка контроля ссылочной целостности. Проверку учета можно запустить отдельно с помощью дополнительной обработки. Необходимо перед удалением самостоятельно проверить базу на наличие перекрестных ссылок разных организаций в одном документе. Эту дополнительную обработку проверки перекрестных ссылок по запросу предоставляем бесплатно нашим покупателям.

12139 руб.

16.03.2015    281900    265    84    

297

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

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

6100 руб.

10.02.2017    121937    735    177    

770

Корректировка данных Программист Пользователь 1С:Предприятие 8 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Представьте, что есть система QR - кодирования, которая НЕ ТРЕБУЕТ изменения конфигурации, НЕ ТРЕБУЕТ изменения ни одной печатной формы для добавления QR-кода, включая внешние, НЕ ХРАНИТ данные штрихкодов и их связь, от чего база не "пухнет", ИМЕЕТ возможность закодировать в QR-коде произвольные данные параметров для последующей обработки полученных данных, УМЕЕТ прикреплять сканы, УМЕЕТ обработать считанный QR-код как ВЫ захотите. А также ХРАНИТ историю операций в обход базы для каждого пользователя в отдельности и УМЕЕТ работать с 2D - сканерами. А также автоматически распознавать отсканированные печатные формы (картинки или pdf-файлы) и выполнять заданные произвольные алгоритмы, в том числе прикрепление их к документам! Обновление 3.3 от 24.06.2025!

26840 руб.

26.08.2018    57067    19    65    

58
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. V.Nikonov 130 04.02.16 18:20 Сейчас в теме
Для распределенок нужен Справочник или Регистр сведений с описанием Замен. Этот Справочник или РегистрСведений должен реплицироваться перед проведением замен в текущей базе. На основе Справочника или РегистраСведений можно инициировать синхронные замены...
3. v.krivenko 52 05.02.16 10:06 Сейчас в теме
(1) V.Nikonov,
Разработка и есть справочник. Для распределенки его надо включить в обмен и выполнить замену в каждой базе.
2. V.Nikonov 130 04.02.16 18:21 Сейчас в теме
Вот только прямое обращение к SQL = нарушение Лицензионного соглашения с 1С. Выполняется на "свой страх и риск".
4. Aleksey81 1195 15.03.16 19:29 Сейчас в теме
Хорошая обработка, но без исправления досадной ошибки использовать ее нельзя.
Вы несколько раз применили корректное присвоение
НоваяСтрока.СтруктураТипОбъекта = Новый Структура;
Для Каждого КлючИЗначение Из СтруктураТипОбъекта Цикл
НоваяСтрока.СтруктураТипОбъекта.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЦикла;

но один раз оставили НЕКОРРЕКТНОЕ
НоваяСтрока.СтруктураТипОбъекта = СтруктураТипОбъекта;

Из за чего не могут обрабатываться константы....
Пожалуйста исправьте.
5. v.krivenko 52 15.03.16 21:03 Сейчас в теме
(4) Aleksey81, это единственное место, где на каждую добавленную НоваяСтрока создается отдельная структура СтруктураТипОбъекта поэтому она присваевается.

У Вас в константе значение не поменялось?
6. lunjio 67 24.08.17 09:41 Сейчас в теме
Спасибо за публикацию, столкнулся со следующей проблемой, на 2005 sql сервере функция Convert(type, data, style) отрабатывает некорректно, преобразует в текст хотя должна вернуть строковую представление, обошел применение функции sys.fn_varbintohexstr(data) вместо convert
7. nvv1970 26.08.17 10:46 Сейчас в теме
Интересно, вы обрабатываете в sql вставку неуникальных значений в регистры/индексы)? Как делаете пересчёты итогов, например, хозрасчетного? В скуле?)
Вообще наличие дублей предполагает, что дублированных данных в базе немного. Поэтому с этим замечательно справится и встроенная обработка за минуту. Если они накапливались пять лет - то замену делать поздно, нужно делать переносы остатков с одного элемента, на другой. Т.е. замена - методически неверный подход.
8. v.krivenko 52 28.08.17 11:43 Сейчас в теме
(7) на третьем скриншоте видно, что не обрабатывает. В таблицах остатков дубль заменяется на оригинал, ничего не пересчитывается.

(7)
Вообще наличие дублей предполагает, что дублированных данных в базе немного. Поэтому с этим замечательно справится и встроенная обработка за минуту. Если они накапливались пять лет - то замену делать поздно,

Ситуации у клиентов разные бывают, что бы так однозначно заявлять. Я ее делал изначально для клиента, у которого база большая и "встроенная" работала вечность даже на небольшом количестве дублей.
9. lunjio 67 29.08.17 11:26 Сейчас в теме
Так же была найдена ошибка, которая увеличивала в разы обработку, в модуле объекта справочника "здЗаменаДублей" проверялось на неравенство пустой строке переменных и свойств, которые имели значение неопределено, вследствии шло обращение к функции Метаданные.НайтиПоПолномуИмени, которая при замере сьедала 60% всего использование, решилось заменой условия <> "" на НЕ ПустаяСтрока(). Время выполнения ускорилось в 2.5 раза.
10. Wadus161 40 11.10.17 08:27 Сейчас в теме
Добрый день, не хватает обработки журнала документов (в нем остаются старые значения), приходится запускать тестирование и исправление с проверкой логической целостности.
11. v.krivenko 52 06.03.20 16:16 Сейчас в теме
(10) обработку журналов добавил.
Если актуально обновленную cf могу отправить.
12. mikukrnet 182 02.06.20 11:36 Сейчас в теме
Подскажите, на какой версии платформы работает данная подсистема? 8.3.10 не выдает все поля в методе ПолучитьСтруктуруХраненияБазыДанных() которые у вас используются, соотв. вылетает по ошибке
13. v.krivenko 52 02.06.20 15:26 Сейчас в теме
(12) Какая именно ошибка и какая версия совместимости?
Проверялось и на 8.2 и на 8.3
14. MaximYakimov 14.04.23 14:27 Сейчас в теме
в обработке багов больше чем функциональности. два вылечил - все равно падает. Как можно такие глючные вещи вообще выкладывать? в топку
15. a.babenko 19.04.23 09:58 Сейчас в теме
Для отправки сообщения требуется регистрация/авторизация