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

06.03.20

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Dubli_new.cf
.cf 81,84Kb
97
97 Скачать (3 SM) Купить за 2 450 руб.

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

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

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

  • во всех основных таблицах 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 Замена дублей

См. также

SALE! 15%

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

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

8400 7140 руб.

20.08.2024    7777    57    22    

66

Поиск данных Внешние источники данных Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Если вам нужно автоматически генерировать представления (view) к вашей базе данных 1С (есть две версии - для СУБД MS SQL Server и для PostgreSQL) по структуре метаданных 1С, то вам необходима данная обработка. Наш "Генератор View", другими словами - это коннектор к данным 1С для Power BI - незаменимый помощник для бизнес-аналитиков, работающих с базами 1С из Yandex Datalens/Power BI и т.д. Работает для обычных и управляемых форм под 1С 8.3

230000 руб.

31.07.2020    13735    13    48    

25

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

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

14400 руб.

29.04.2020    32672    106    152    

73

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

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

3582 руб.

16.03.2015    171632    209    81    

244

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

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

9600 руб.

22.02.2013    138401    258    144    

429

SALE! 20%

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

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

3600 2880 руб.

10.02.2017    110509    662    174    

702

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

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

10800 руб.

14.05.2012    158943    336    253    

570

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

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

3350 руб.

28.11.2019    25856    59    16    

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

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

Из за чего не могут обрабатываться константы....
Пожалуйста исправьте.
5. v.krivenko 51 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 51 28.08.17 11:43 Сейчас в теме
(7) на третьем скриншоте видно, что не обрабатывает. В таблицах остатков дубль заменяется на оригинал, ничего не пересчитывается.

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

Ситуации у клиентов разные бывают, что бы так однозначно заявлять. Я ее делал изначально для клиента, у которого база большая и "встроенная" работала вечность даже на небольшом количестве дублей.
9. lunjio 67 29.08.17 11:26 Сейчас в теме
Так же была найдена ошибка, которая увеличивала в разы обработку, в модуле объекта справочника "здЗаменаДублей" проверялось на неравенство пустой строке переменных и свойств, которые имели значение неопределено, вследствии шло обращение к функции Метаданные.НайтиПоПолномуИмени, которая при замере сьедала 60% всего использование, решилось заменой условия <> "" на НЕ ПустаяСтрока(). Время выполнения ускорилось в 2.5 раза.
10. Wadus161 37 11.10.17 08:27 Сейчас в теме
Добрый день, не хватает обработки журнала документов (в нем остаются старые значения), приходится запускать тестирование и исправление с проверкой логической целостности.
11. v.krivenko 51 06.03.20 16:16 Сейчас в теме
(10) обработку журналов добавил.
Если актуально обновленную cf могу отправить.
12. mikukrnet 182 02.06.20 11:36 Сейчас в теме
Подскажите, на какой версии платформы работает данная подсистема? 8.3.10 не выдает все поля в методе ПолучитьСтруктуруХраненияБазыДанных() которые у вас используются, соотв. вылетает по ошибке
13. v.krivenko 51 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 Сейчас в теме
Оставьте свое сообщение