Очистка базы данных 1С от данных по организациям прямыми SQL-запросами к СУБД

Публикация № 1125435

Администрирование - Администрирование данных 1С - Чистка базы

Обработка SQL 1C MSSQL PostgreSQL

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

Преамбула:

Довелось мне как-то поддерживать БД 1С БП 2.0, в которой вели учет 100+(более СТА, КАРЛ!!!) организаций. Последующий перевод на 3.0 повлек за собой необходимость разделения этой БД на несколько. Разделение обуславливалось возможностью ведения учета ЗП в БП. В БП 2.0 система не ограничивала видимость объектов БД в зависимости от глобальной настройки ведения учета ЗП в БП, а тут - стала. Было принято решение о разделении БД.

База была клиент-серверной, на базе MS SQL.

Естественно, сразу было принято решение о том, что бы создать узел РИБ, и выгрузить в него данные по нужным организациям. Как оказалось, в данном случае появляются префиксы в номерах документов, чего категорически было делать нельзя + сам процесс формирования начального образа узла завершался ошибкой после 10-15 часов непонятных действий.

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

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

Не прерывая процесса удаление производилось в течении недели и скорость этого процесса была крайне низкая.

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

 

Амбула:

Обработка генерирует текст скрипта, соблюдая ссылочную целостность.

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

Другими словами:

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

 

С помощью сгенерированного скрипта весь процесс удаления длился 30-40 минут для каждой из баз.

Особенно актуально, если БД доступна в режиме 24/7.

 

Алгоритмы могут быть использованы более универсально, т.е. для удаления других объектов или в условиях других СУБД, но для этого придется доработать самостоятельно. 

Использование скрипта, естественно на свой страх и риск.

К версии платформы не чувствительна, т.е. должна и на 8.0 и на 8.3.16 работать одинаково.

 

P.S. я прекрасно знаю про лицензионные ограничения, но 1С не предоставляет никаких других типовых средств очистки БД сравнимой производительности.

UPD: Версия 1.5.1. Исправлена ошибка приводящая к конфликту типов в конструкции ВЫРАЗИТЬ() запроса наличия данных в БД. Добавлена возможность указать версию pgAdmin при формировании скрипта для PostgreSQL.

UPD: Версия 1.5.0. Добавлена возможность проверять наличие данных в таблицах, чтобы не обрабатывать все возможные комбинации. Добавлена возможность отключать вывод количества удаляемых записей в основных таблицах при выполнении скрипта - это сэкономит время выполнения скрипта в ~2 раза. Добавлено удаление данных из таблиц итогов. Исправлены недочеты/ошибки в формировании текста скрипта, а так же выполнены некоторые дополнительные оптимизации.

UPD: Версия 1.4.0. Добавил возможность указывать максимальный уровень вложенности проверки ссылочной целостности. Внесены некоторые оптимизации в текст скрипта.

UPD: Версия 1.3.0 Добавлена возможность формирования скрипта для PostgreSQL. Исправлены ошибки сформированного скрипта версии 1.2.0.

UPD: Версия 1.2.0 Существенно переработан и оптимизирован алгоритм формирования скрипта. Добавлена возможность сохранять скрипт сразу в файл *.sql.

UPD: Версия 1.1.0 позволяет сохранять структуру метаданных и хранения данных в файлы и читать из файлов. Сделано для возможности отладки формирования скрипта в условиях, когда нет доступа к конфигурации.

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

Наименование Файл Версия Размер
Очистка БД 1С от данных по организациям прямыми SQL-запросами к СУБД

.epf 31,55Kb
09.10.20
62
.epf 1.5.1 31,55Kb 62 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. triviumfan 24 20.09.19 15:50 Сейчас в теме

Обработка генерирует текст скрипта, соблюдая ссылочную целостность.

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

Другими словами:

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

Скрипт учитывает, когда в регистре имеется запись со складом/договором удаляемой организации?:)
2. nomad_irk 51 20.09.19 15:53 Сейчас в теме
(1)Да, чистится все, включая таблицы оборотов и остатков регистров.
Пересчет итогов после выполнить все же рекомендую, как и проверить на ссылочную/логическую целостность средствами конфигуратора 1С.
3. Indgo 20.09.19 16:18 Сейчас в теме
Классная обработка, может на пару дней скинете цену на одного шейкеля для бетатеста, я так сказать одним глазком гляну )
Плюс поставил.

Она только в Бух 2 работает? для бухи 2-ой не очень актуально, там можно через план обмена по организации обменяться - правда хвосты остаются.
4. nomad_irk 51 20.09.19 16:25 Сейчас в теме
Нет, работает для любой конфигурации вообще.
Лично тестировал на БП3.0, ЗУП2.5, ERP2.5, УТ10.3, УПП 1.3.

Даже в файловом варианте формирует скрипт, ессно применять его не к чему и негде :)
5. Indgo 20.09.19 16:29 Сейчас в теме
(4)
ЗУП2.5, ERP2.5, УТ10.3, УПП 1.3.

Круто, давай еще сделай восстановление последовательности в ERP на MSSQL
6. nomad_irk 51 20.09.19 16:31 Сейчас в теме
(5)это шибко круто в контексте изменения данных БД 1С прямыми запросами в СУБД :)
7. lunjio 65 20.09.19 18:27 Сейчас в теме
(5)
новление последовательности в ERP на MSSQL

На самом деле, когда база под > 200 ГБ, да что там 200, > 100-150 даже, другого выхода очистить быстро данные по определенным организациям не предоставляется возможным. Это трудно понять/осознать, пока не столкнешься. На этот случай обработку пришлось дорабатывать, которая покруче текущей.
8. nomad_irk 51 20.09.19 18:53 Сейчас в теме
(7)куда там еще может быть круче? :)
9. lunjio 65 20.09.19 19:11 Сейчас в теме
(8) Там далее нажимаешь удалить, он по отборам генерирует SQL скрипт на удаление, с учетом наложенных отборов, если галочка удалить движения документа, левым соединением соединяется по регистратору и удаляет из всех связаных регистров движения.
Прикрепленные файлы:
10. nomad_irk 51 20.09.19 19:15 Сейчас в теме
Дык моя обработка все тоже самое делает сразу, таблицы изменений/таблицы остатков и оборотов чистятся так же, т.е. выносится с базы вообще все, что связано с удаляемыми организациями.
Ваша обработка гибче, согласен, но у меня не было задачи частично вынести данные по организациям в БД.
11. lunjio 65 20.09.19 19:22 Сейчас в теме
(10) Все верно, только эта для очень тонкой очистки используется, я могу выбирать какие документы обрабатывать, удалять не удалять из журнала и доп отборы, допустим удалять только отраженные в упр учете данные. При помощи этой обработки так же осуществляется сборка, разработчик ozaycev, я же ее сильно доработал под свои нужды исправив ошибки.
Прикрепленные файлы:
12. nomad_irk 51 20.09.19 19:28 Сейчас в теме
(11)впринципе, я заложил универсальность, при необходимости можно распространить на любой тип объектов с отборами, но повторюсь - обработка написана под конкретную задачу - вынести все по организациям.
13. lunjio 65 20.09.19 20:03 Сейчас в теме
(12) А тут можно и свернуть и удалить данные только по упр учета, оставив бух и вынести по организациям и много чего ) Как правило, часто требуется и свертка данных, наряду с удалением других организаций. Ни в коем случае не принижаю вашу разработку, но есть разработка которая охватывает более широкий спектр задач, т.к вы спросили куда круче. Вы молодец что выложили, я время не найду текущую сделать универсальной и под УФ и под ОФ и выложить, предварительно конечно с разрешения автора исходной, хотя она сильно перелопачена.
14. nomad_irk 51 20.09.19 20:46 Сейчас в теме
(13)да, согласен, погорячился я на счет "куда круче", я просто это в контексте только тотальной зачистки имел ввиду, если говорить в общем, то конечно же можно творить чудеса круче :)
15. DrZombi 173 21.09.19 16:32 Сейчас в теме
10 стар мани? да вы жмот с большой буквы...
DimaP; mikele_bes; artfa; +3 Ответить
16. Fox-trot 117 21.09.19 20:35 Сейчас в теме
17. nomad_irk 51 22.09.19 10:37 Сейчас в теме
(16) Да вы прям вообще свои знания и умения не цените :)
acanta; YPermitin; +2 Ответить
18. Fox-trot 117 22.09.19 10:39 Сейчас в теме
делай добро и бросай его в воду (с)
19. nomad_irk 51 22.09.19 13:14 Сейчас в теме
(18)Если все добро бросать в воду, можно и без штанов остаться.....
20. DoctorRoza 23.09.19 08:53 Сейчас в теме
(19) Делай добро и бросай его в воду. Оно не пропадет — добром к тебе вернется (Ух ты, говорящая рыба!)
22. nomad_irk 51 23.09.19 09:06 Сейчас в теме
42. Andrewww_www 28.12.19 09:06 Сейчас в теме
Ещё есть ошибка. Для ERP 2.4 формируется вот такой кусок при удалении зависимых объектов для документов, являющихся регистраторами регистра накопления "ВыручкаИСебестоимостьПродаж":
DECLARE @n INT
SEL ECT _RecorderRRef AS Ref INTO #tt3 FR OM _AccumRgChngR59004 WHERE _RecorderRRef IN (SEL ECT Ref FR OM #tt2)
SET @n = (SEL ECT COUNT(*) FROM #tt3)
IF @n > 0 PRINT ' РегистрНакопления.ВыручкаИСебестоимостьПродаж. ЗАПИСЕЙ: ' + CAST(@n AS NVARCHAR(20))
BEGIN TRANSACTION
DELETE FROM _AccumRgChngR59004 WH ERE _RecorderRRef IN (SELECT Ref FR OM #tt3)
DELETE FR OM _AccumRg58937 WH ERE _RecorderRRef IN (SELECT Ref FR OM #tt3)
COMMIT
DR OP   TABLE #tt3
GO
Показать

Здесь выбираются регистраторы из таблицы изменений регистра, а не из основной таблицы. В итоге из основной таблицы записи не удалились.
23. zubanovpavel 23.09.19 15:44 Сейчас в теме
Добрый день.

Нетиповая УПП 125.1
Ошибка после нажатия кнопки "Сформировать скрипт SQL":

{ВнешняяОбработка.ОчисткаОтДанныхОрганизации.МодульОбъекта(541)}: Метод объекта не обнаружен (НайтиСтроки)
Массив = ТекСХД.НайтиСтроки(Отбор);

Что дальше делать?
24. nomad_irk 51 23.09.19 15:48 Сейчас в теме
Платформа 1С какой версии?
Предлагаю перевести общение в личные сообщения.
25. zubanovpavel 23.09.19 15:58 Сейчас в теме
26. nomad_irk 51 23.09.19 16:05 Сейчас в теме
(25)Ответил личным сообщением.
27. nomad_irk 51 19.10.19 15:49 Сейчас в теме
Результаты нагрузочного тестирования:

БД ERP 2.4, доработанная, размер файла БД - 175ГБ на момент начала очистки.
Удаление данных 1 организации из 7.
Размер сгенерированного скрипта SQL - 48МБ, время выполнения - 2 часа 30 минут.
Размер освобожденного пространства в файле БД - 63ГБ.
28. nomad_irk 51 22.10.19 15:34 Сейчас в теме
Обновил обработку. Скачавшим вышлю новую версию по запросу в личку с указанием e-mail.
29. vik80111 33 30.10.19 00:26 Сейчас в теме
1С:Предприятие 8.2 (8.2.19.130)
Комплексная автоматизация, редакция 1.1 (1.1.4.1)

Удаляю по Одной организации.

Сразу выдает:

Справочник.БанковскиеСчета. ЗАПИСЕЙ: 2
Сообщение 207, уровень 16, состояние 1, строка 10
Недопустимое имя столбца "Ref".
Сообщение 137, уровень 15, состояние 1, строка 19
Необходимо объявить скалярную переменную "@n".
Сообщение 137, уровень 15, состояние 2, строка 20
Необходимо объявить скалярную переменную "@n".
Сообщение 137, уровень 15, состояние 1, строка 22
Необходимо объявить скалярную переменную "@n".

... и т.д.

Сообщение 137, уровень 15, состояние 1, строка 124783
Необходимо объявить скалярную переменную "@n".
Сообщение 137, уровень 15, состояние 2, строка 124784
Необходимо объявить скалярную переменную "@n".
Сообщение 137, уровень 15, состояние 1, строка 124791
Необходимо объявить скалярную переменную "@n".
Сообщение 137, уровень 15, состояние 2, строка 124792
Необходимо объявить скалярную переменную "@n".

Файл скрипта прикрепил
Прикрепленные файлы:
Гес.sql
30. nomad_irk 51 30.10.19 14:00 Сейчас в теме
(29) Обновил обработку. Если не сможете бесплатно обновиться, сообщите личным сообщением с указанием е-mail.
32. vik80111 33 30.10.19 18:34 Сейчас в теме
(30) Продолжим отладку...

Сообщение 2714, уровень 16, состояние 1, строка 17
В базе данных уже существует объект с именем "#tt3".
Сообщение 2714, уровень 16, состояние 1, строка 30
В базе данных уже существует объект с именем "#tt5".
Сообщение 2714, уровень 16, состояние 1, строка 44
В базе данных уже существует объект с именем "#tt5".

и т.д.

Сообщение 2714, уровень 16, состояние 1, строка 109548
В базе данных уже существует объект с именем "#tt2".
Сообщение 2714, уровень 16, состояние 1, строка 109555
В базе данных уже существует объект с именем "#tt2".
Сообщение 2714, уровень 16, состояние 1, строка 109562
В базе данных уже существует объект с именем "#tt2".
Прикрепленные файлы:
Вариант3_Гес.sql
31. user1137549 30.10.19 18:15 Сейчас в теме
Конфигурация ЗУП 3.1.9. Ошибка при выполнении запроса:
Справочник.ВидыДокументовВводДанныхДляРасчетаЗарплаты. ЗАПИСЕЙ: 4
Msg 207, Level 16, State 1, Line 50
Invalid column name 'Ref'.
Msg 137, Level 15, State 1, Line 2
Must declare the scalar variable "@n".
Msg 137, Level 15, State 2, Line 3
Must declare the scalar variable "@n".
Msg 137, Level 15, State 1, Line 5
...........................
Прикрепил отрывок скрипта.
Прикрепленные файлы:
SQLQuery2.sql
33. nomad_irk 51 01.11.19 16:01 Сейчас в теме
34. Andrewww_www 06.12.19 04:16 Сейчас в теме
Купили обработку, в ней есть проблема: количество "BEGIN TRANSACTION" больше, чем "COMMIT".
35. Andrewww_www 06.12.19 05:13 Сейчас в теме
Исправил ошибку, если надо - могу выслать обработку. Только как? Написать личное сообщение на этом сайте не могу
36. nomad_irk 51 06.12.19 07:05 Сейчас в теме
(35) можете указать место исправления, я исправлю и обновлю обработку.
37. Andrewww_www 06.12.19 09:40 Сейчас в теме
(36) в процедуре "ОбработатьЭлементыРекурсивно" после первого блока, начинающегося с "Если ЗначениеЗаполнено(ТекСХД_1) Тогда" не хватает:"
Если ВывелиНачалоТранзакции И ЗначениеЗаполнено(ТекСХД_1) Тогда
Текст.ЗаписатьСтроку("COMMIT" + ?(ТипСУБД = 0, "", ";"));
КонецЕсли;

ВывелиНачалоТранзакции = Ложь;"
И далее в блоке "Если НЕ ТекЗависимыйОбъект.ВидОбъекта = "РегистрСведений" Тогда" два раза встречается "Текст.ЗаписатьСтроку("BEGIN TRANSACTION");", после них надо добавить "ВывелиНачалоТранзакции = Истина;".
38. nomad_irk 51 06.12.19 09:53 Сейчас в теме
(37) Спасибо. В ближайшее время обновлю обработку.
39. Wefast 27.12.19 03:40 Сейчас в теме
А куда нажать, чтобы скрипт применить?
41. Andrewww_www 28.12.19 06:52 Сейчас в теме
(39)
(40)
Это скрипт для Microsoft SQL Server, он не в 1С выполняется.
40. compaud 27.12.19 10:42 Сейчас в теме
Я думал данные именно удаляться а не пометятся на удаление.
51. nomad_irk 51 16.01.20 08:41 Сейчас в теме
(40) обработка вообще ничего не помечает на удаление......
43. Andrewww_www 28.12.19 09:19 Сейчас в теме
Моё сообщение прикрепилось к сообщению номер 20, там описание ошибки.
44. Andrewww_www 29.12.19 10:13 Сейчас в теме
Ещё ошибка. При удалении записей регистра бухгалтерии игнорируется таблица со значениями субконто.
45. Andrewww_www 29.12.19 10:38 Сейчас в теме
Еще одна.. На БП 3.0 воспроизводил, но будет еще на куче типовых с БСП. Когда обрабатывается любой документ или справочник, для регистра сведений "ВерсииОбъектов" не генерируется запрос на удаление записей данного регистра по полю "Объект" для текущего документа или справочника, потому что в этом поле могут быть ссылки и на справочник "Организации". Код пропускает этот зависимый регистр, потому что считает что он является объектом верхнего уровня. Надеюсь что понятно изложил.
46. nomad_irk 51 30.12.19 13:13 Сейчас в теме
47. suhoi 29 01.01.20 15:26 Сейчас в теме
(46) А будет возможность оперативно исправить - нужна обработка, хотелось бы скачать уже исправленную?
48. nomad_irk 51 02.01.20 13:35 Сейчас в теме
(47) Не раньше, как закончатся выходные.
49. Andrewww_www 10.01.20 10:38 Сейчас в теме
Табличные части справочника "Организации" не удаляются.
50. nomad_irk 51 10.01.20 17:03 Сейчас в теме
Ага, проблема более "глубокая", чем казалась с начала. Разбираюсь....
52. badrvic 11 27.01.20 07:52 Сейчас в теме
(50)
Разобрались с проблемой, можно скачивать с учетом всех исправлений?
53. nomad_irk 51 28.01.20 08:10 Сейчас в теме
Нет еще. Основная проблема - поиск циклических ссылок при наличии реквизитов объектов составного типа или еще хуже с типом ЛюбаяСсылка, никак не могу придумать более менее внятный механизм.
54. nomad_irk 51 29.01.20 11:16 Сейчас в теме
В общем ничего не придумал, кроме проверки наличия данных. Сейчас в процессе тестирования на УПП, по успешному завершению выложу обновление.
55. nomad_irk 51 28.02.20 09:01 Сейчас в теме
Выложил обновление. Тестим на копиях своих баз, сообщаем об ошибках.

Лично тестил на ЗУП 2.5, УПП 1.3, БУХ 3.0, поэтому, собссно так долго не выкладывал обновление.
56. Diversus 2114 23.07.20 11:12 Сейчас в теме
Добрый день. Скажите, а вы используете функцию ПолучитьСтруктуруХраненияБазыДанных или как-то по другому сопоставляете метаданные и данные СУБД?
Просто эта функция появилась только в 8.3.1, а у вас заявлено что все универсально и работает даже для 8.0
57. nomad_irk 51 23.07.20 11:26 Сейчас в теме
(56)Именно эту функцию использую. Эта функция работает если не с 8.0, то с 8.1 - точно.
Прямого доказательства не нашёл. Вот косвенное доказательство.
Прикрепленные файлы:
58. Diversus 2114 23.07.20 11:28 Сейчас в теме
(57) Понял, спасибо.
Похоже не верная информация в справке.
Прикрепленные файлы:
59. nomad_irk 51 23.07.20 11:29 Сейчас в теме
(58)ага, тоже глянул С-П, возможно там должно быть 8.1.3
60. biz-intel 769 02.10.20 17:14 Сейчас в теме
Платформа 8.3.17.15.49
Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.83.25)

{(6, 2)}: Несовместимые типы "ВЫРАЗИТЬ"
<<?>>ВЫРАЗИТЬ(Ссылка КАК Справочник.ПодразделенияОрганизаций) В(&Массив)
{ВнешняяОбработка.ОчисткаОтДанныхОрганизации.МодульОбъекта(1380)}:	Результат = Запрос.Выполнить();
{ВнешняяОбработка.ОчисткаОтДанныхОрганизации.МодульОбъекта(684)}:		Если КонтрольНаличияДанных И ЕстьДанные(ПараметрыТекущегоОбъекта, ТекЗависимыйОбъект, ТекущийЭлементДерева, ИмяФайлаХраненияОбъектов) Тогда
{ВнешняяОбработка.ОчисткаОтДанныхОрганизации.МодульОбъекта(747)}:					ОбработатьЭлементыРекурсивно(Текст, СтруктураОбъекта, ТекЗависимыеОбъекты, СтрокаДерева, НомерТаблицы + 1, Ложь);
{ВнешняяОбработка.ОчисткаОтДанныхОрганизации.МодульОбъекта(602)}:	ОбработатьЭлементыРекурсивно(Текст, СтруктураОбъекта, ЗависимыеОбъекты, ТекущийЭлементДерева, 1, Ложь);
{ВнешняяОбработка.ОчисткаОтДанныхОрганизации.Форма.ФормаУправляемая.Форма(6)}:	ОбработкаОбъект.СформироватьСкриптSQL(, "УП");
{ВнешняяОбработка.ОчисткаОтДанныхОрганизации.Форма.ФормаУправляемая.Форма(14)}:	СформироватьСкриптSQLНаСервере();

по причине:
{(6, 2)}: Несовместимые типы "ВЫРАЗИТЬ"
<<?>>ВЫРАЗИТЬ(Ссылка КАК Справочник.ПодразделенияОрганизаций) В(&Массив)
Показать


Я так понимаю, это где-то битые ссылки?
61. nomad_irk 51 02.10.20 22:03 Сейчас в теме
(60)Нет, это значит, что ссылка на элементы справочника ПодразделенияОрганизаций используется в каком-то другом объекте, но тип у реквизита - ОпределяемыйТип.

В таком случае Выразить() не нужно.
Я пока не устранял этот недочет, как будет время - обновлю версию обработки. Либо самостоятельно доработайте, если ждать не хотите.
62. biz-intel 769 05.10.20 10:17 Сейчас в теме
63. biz-intel 769 05.10.20 11:50 Сейчас в теме
Без Выразить() сработало. Только один момент: у Postgres нет инструкции "PRINT", соответственно скрипт будет кидать ошибки. Нужно использовать что-то такое:

do $$ BEGIN raise notice 'Справочник такой-то'; END; $$;
64. nomad_irk 51 05.10.20 12:01 Сейчас в теме
(63)ээээ...я проверял Postgres в PgAdmin - там было, если в новых версиях убрали, тогда переделать нужно.
65. biz-intel 769 05.10.20 12:13 Сейчас в теме
12-й постгрес, там уже на работает
66. nomad_irk 51 05.10.20 12:14 Сейчас в теме
(65)Хорошо. Учту при обновлении версии обработки.
68. nomad_irk 51 07.10.20 15:47 Сейчас в теме
(66)Че-т я плохо себе представляю, каким образом формировать скрипт, чтобы он начал работать в условиях pgAdmin4.х

с сообщением - понятно, не понятно, что со всем остальным делать :)
67. biz-intel 769 05.10.20 12:23 Сейчас в теме
Пришлось два раза прогонять, но это видимо у меня настройки Постгреса такие, что он чистит временные таблицы, кидало ошибку, что таблица tt2 не существует.

А в целом, все получилось, спасибо! Отличное решение!
nomad_irk; +1 Ответить
69. nomad_irk 51 09.10.20 11:29 Сейчас в теме
Обновил версию обработки.
Оставьте свое сообщение

См. также

Очистка регистрации обмена Промо

Чистка базы v8 v8::ОУ УТ10 Абонемент ($m)

Данная обработка предназначена для очистки узла. Для очистки необходимо указать период,организацию.

1 стартмани

19.09.2017    17262    5    serg-lom89    0    

Свертка базы и очистка таблиц

Свертка базы Чистка базы v8 1cv8.cf Россия Абонемент ($m)

Обработка написана с использованием БСП. Встраивается как внешняя. Работает в фоне. Позволяет средствами SQL очищать выборочно таблицы с настройками, заданными привычным образом через отбор СКД.

5 стартмани

05.03.2020    4259    21    YAGolova    5    

Свертка БД 1С: обрезка до выбранной даты средствами MS SQL

Свертка базы Чистка базы v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Внешняя обработка, позволяющая произвести анализ размера БД и грубую обрезку данных до выбранной даты средствами MS SQL. Управляемые формы, 1С:Предприятие 8.3 (8.3.9.1818).

1 стартмани

15.11.2019    12800    142    dmitrydemenew    32    

Универсальное удаление движений регистров накопления по всем непроведенным документам

Универсальные функции Чистка базы v8 1cv8.cf Абонемент ($m)

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

1 стартмани

27.09.2019    9343    14    John_d    16    

Очистка кэша 1С 8 (8.0, 8.1, 8.2, 8.3). Грамотная чистка кэша 1С с сохранением настроек. Промо

Чистка базы Сервисные утилиты Администрирование данных 1С v8 1cv8.cf Россия Абонемент ($m)

Эффективное средство для устранения ошибок, возникающих в локальном кэше 1С на клиенте, которым легко сможет воспользоваться пользователь с любым уровнем знаний. Wsf-скрипт, созданный на стандартном языке автоматизации Windows - "WSH JScript", очищает кэш 1С просто, быстро и безопасно. Кроме варианта, очищающего кэш текущего пользователя, имеется также вариант для чистки кэша 1С всех пользователей терминального-сервера.

1 стартмани

04.11.2018    38099    386    Eugen-S    34    

Быстрое удаление данных по организации, используя ADO

Чистка базы v8 1cv8.cf Абонемент ($m)

Время от времени возникают вопросы на форуме Инфостарта по сабжу. Данная обработка решает данную задачу.

1 стартмани

12.08.2019    6408    39    Fox-trot    26    

Универсальное удаление выбранного объекта 8.2 - 8.3 на управляемых формах

Чистка базы v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

17.06.2019    6107    21    AlexandrSmith    0    

Поиск и чистка битых ссылок в регистрах сведений и накоплений 8.3

Чистка базы Поиск данных v8 1cv8.cf Абонемент ($m)

Данная обработка позволяет чистить устаревшие битые записи в регистрах сведений и накоплений. Я не затрагиваю в ней регистр бухгалтерии, так как там удаление любой записи может быть критичным для баланса. Бухгалтеры иногда готовы терпеть любые ссылки на удаленные раннее из базы объекты, лишь бы баланс сходился, даже если битая ссылка не может пролить свет на её происхождение.

1 стартмани

04.05.2019    6571    49    AlexandrSmith    2    

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

Чистка базы v8 1cv8.cf Абонемент ($m)

Обработка удаления помеченных объектов с расширенным функционалом. Работает в обычном и управляемом приложении. Монопольный и разделенный режим работы. Отображение и отбор по структуре метаданных. Отборы данных произвольными запросами. Копирование и сохранение отборов. Удаление циклических ссылок (рекурсия). Представление циклических в виде дерева с отображением ключевых ссылок, не позволяющих удалить текущий объект информационной базы. Удаление записей связанных независимых регистров сведений. Групповая замена ссылок. Индикатор прогресса при поиске и контроле ссылочности.

10 стартмани

31.10.2016    52190    624    m..adm    217    

Удаление неиспользуемых элементов справочников в БП 3.0, УНФ 1.6, Розница 2.2, УТ 11.4, КА 2.4, 1С ERP 2.4

Обработка справочников Чистка базы v8 Розница УНФ БП3.0 Россия Абонемент ($m)

Данная обработка предназначена для удаления неиспользуемых элементов справочников в конфигурациях "1С: Бухгалтерия предприятия 3.0", "1С: Управление нашей фирмой 1.6", "1С: Розница 2.2", "1С: Управление торговлей 11.4", "1С: Комплексная автоматизация 2.4", "1С: ERP Управление предприятием 2.4"

1 стартмани

15.03.2019    7851    79    BurlakovIvan    0    

Восстановление настроек плана счетов и очистка некорректных рабочих счетов в БГУ 1.0

Универсальные обработки Чистка базы v8 v8::БУ БГУ Россия БУ Госбюджет Абонемент ($m)

В плане счетов в БГУ 1.0 есть возможность восстановить настройки по умолчанию. Но при наличии некорректных рабочих счетов, восстановление настроек не выполняется. При этом даже нет информации, в каком именно счете проблема. Данная обработка находит некорректные рабочие счета и удаляет их.

1 стартмани

04.03.2019    16856    197    Sashares    36    

Обнуление остатков регистров бухгалтерии и накопления

Универсальные обработки Чистка базы v8 v8::БУ v8::ОУ v8::УФ КА1 БП2.0 ЗУП2.5 УТ10 УПП1 УНФ БГУ ERP2 БП3.0 УТ11 УХ КА2 ЗУП3.x Россия Абонемент ($m)

Обработка позволяет обнулить остатки по регистру накопления или бухгалтерии на определенную дату. Поддерживается большинство типовых конфигураций (БП 3, БП 2, УТ 11, УТ 10, ЗУП 3, ЗУП 2, БГУ 2, БГУ 1, ERP, УПП, КА 2, КА 1, УХ 3, УХ 1, УНФ). Гибкая настройка (отборы, заполнение реквизитов и любых полей корр. счета, возможность обнулять ресурсы выборочно). Несколько режимов работы. Два интерфейса: простой и с расширенным набором настроек.

2 стартмани

19.11.2018    23173    298    morozov.sv    50    

Очистка периодических регистров посредством T-SQL (удаление записей, кроме среза последних) Промо

Чистка базы v8 Абонемент ($m)

Обработка для ленивых. Составит вместо Вас запрос для SQL, который удалит все не актуальные записи (т.е все, кроме среза последних)

5 стартмани

22.06.2018    16172    19    Alexander.Shvets    9    

Очистка замеров производительности - даешь больше места на диске (= меньше хлама в базе)

Чистка базы v8 Розница УНФ БП3.0 УТ11 ЗУП3.x Абонемент ($m)

Вы могли и не знать, но у Вас в базе может быть несколько сотен тысяч записей о производительности системы. А появились они там благодаря встроенной в БСП подсистеме "Оценка производительности". И думаю что далеко не каждый из Вас реально собирается оценивать производительность своей системы. Специально для тех кто, как и я считает, что ему абсолютно не нужны все эти записи в базах и была создана эта обработка.

1 стартмани

31.10.2018    17779    182    1c.pro.fun    17    

Перенос организации в отдельную базу, полная очистка базы от данных организации (версия от 25.07.2019)

Универсальные обработки Чистка базы v8 1cv8.cf Абонемент ($m)

Данная обработка позволяет удалить организацию и все связанные с ней данные – документы, элементы справочников, записи регистров сведений. Обработка полезна для выделения организации в отдельную базу. Доработано для ЗУП 3.1.

3 стартмани

14.08.2018    15738    303    serge_msk    45    

Удаление движений непроведенных документов. УФ.

Закрытие периода Чистка базы v8 v8::УФ ERP2 УТ11 КА2 Абонемент ($m)

Обработка помогает в закрытии отчетных периодов в программах 1С.

3 стартмани

02.07.2018    10752    72    PSMNN    1    

Корректировка остатков регистров накопления (обычные и управляемые формы) Промо

Закрытие периода Свертка базы Чистка базы Универсальные обработки v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка, предназначенная для удобного и быстрого исправления остатков регистров накопления (посредством автоматического ввода документов "Корректировки записей регистров", "Операция", содержащих движения, приводящие существующие остатки к желаемым). Позволяет корректировать и обнулять по аналитике и суммам остатки регистров учета товаров, партий, взаиморасчетов, налогового учета по НДС, РАУЗ, и др.

2 стартмани

14.01.2012    77768    595    stvorl    76    

Регламентное задание: Очистка регистра сведений "Версии объектов"

Свертка базы Чистка базы v8 УПП1 Россия Абонемент ($m)

У каждого была проблема «растущего» регистра "Версии объектов". Мы дорастили просто до чудовищных размеров(20 мил.) почистить обработкой очень трудоемко, плюс баз у нас много. Решили написать  регламентное задание.

1 стартмани

28.06.2018    10746    8    abadonna83    7    

Помощник удаления и очистки объектов

Чистка базы v8 Розница УНФ БП3.0 УТ11 КА2 Абонемент ($m)

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

2 стартмани

04.06.2018    13115    73    Kutuzov    12    

Удаление данных средствами SQL, теория и практика

Чистка базы v8 1cv8.cf Абонемент ($m)

Методика быстрого удаления данных через SQL. Выбираем документ в 1С, добавляем простые условия - получаем готовый скрипт, удаляющий сами документы, их табличные части и движения по регистрам.

5 стартмани

25.04.2018    17520    122    METAL    31    

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

Сервисные утилиты Чистка базы Свертка базы v8 1cv8.cf Абонемент ($m)

Очистка регистров накопления, сведений, расчета или бухгалтерии (обычная и управляемая форма)

2 стартмани

25.12.2009    61730    260    sebe    20    

Удаление справочников и документов без проверки ссылочной целостности

Чистка базы Обработка документов Обработка справочников v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

14.03.2018    10814    70    SPARTANIC    15    

Быстрое удаление помеченных на удаление документов прямыми SQL запросами (MS SQL)

Чистка базы v8 1cv8.cf Россия Абонемент ($m)

Быстрое удаление помеченных на удаление документов прямыми SQL запросами (MS SQL) с возможностью выбора вида документа и даты по.

1 стартмани

16.02.2018    13413    103    bubnov    17    

Очистка базы данных от данных по организации

Чистка базы v8 1cv8.cf Абонемент ($m)

Обработка генерирует SQL-скрипт, который очищает базу данных от документов выбранной организации. Проверялась на конфигурации Управление производственным предприятием на платформе 8.3. Но в принципе универсальная для стандартных конфигураций на платформе 8.3.

1 стартмани

23.01.2018    18047    113    mugr    26    

Удаление организаций из базы Промо

Чистка базы v8 БП2.0 ЗУП2.5 Абонемент ($m)

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

1 стартмани

19.06.2013    18512    54    IceEvgen    11    

Удалить "ненужную организацию" в БП 3.0 (+ доп.обработка для УТ 11.4, УПП ERP 2.4, ЗУП 3.1, КА 2.4, Розница 2.2, УНФ 1.6)

Чистка базы v8 v8::УФ Розница УНФ ERP2 БП3.0 КА2 ЗУП3.x Абонемент ($m)

Обработка, способная удалить все данные по выбранной организации из конфигурации Бухгалтерия предприятия 3.0. (+ обработка "Универсал" для УТ 11.4, УПП ERP 2.4, ЗУП 3.1, КА 2.4, Розница 2.2, УНФ 1.6)

1 стартмани

06.11.2017    32755    825    Ant10    0    

Удаление данных напрямую в SQL

Сервисные утилиты Чистка базы v8 v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

08.07.2017    15736    108    denacid    29    

Создание первоначального образа с файлами РИБ или быстрая очистка базы от документов и движений по регистрам

Свертка базы Распределенная БД (УРИБ, УРБД) Чистка базы v8 Розница Абонемент ($m)

В «большой» базе штатными средствами создать первоначальный образ узла не получается по причине «недостатка памяти на сервере»? А способы, описанные в статье https://its.1c.ru/db/metod8dev/content/2277/hdoc не подходят? ИЛИ Удаление всех документов или свёртка базы занимает продолжительное время?

1 стартмани

06.06.2017    21883    54    Dima_    7    

Универсальный редактор реквизитов объектов. Мультиобработчик Промо

Универсальные обработки Чистка базы Обработка документов Практика программирования Обработка справочников Сервисные утилиты v8 1cv8.cf Абонемент ($m)

Объекты: Справочник, Документ, ПланОбмена, ПВХ, Бизнес-процесс, Задача, ПланСчетов, ПВР. Мультиобработчик: -Проведение, перенумерация, движения, копирование, создание на основании, подчиненность, статистика, удаление документов. -Регистрация изменений объекта(ов) в планах обмена. -Установка/Отключение ГлавногоУзла РИБ. -Поиск и восстановление "Битых" ссылок. -Недопустимые символы XML/Дерево XML. -Поиск и замена ссылок. -Ошибки ИБ, в т.ч XML. -Множество обработок справочников. -GUID. Дата и время создания объектов ссылочного типа. -Аналитика предопределенных, блокируемых реквизитов, ХранилищаЗначений. -История изменений объекта. -Активные пользователи. -Подписки на события, функциональные опции. -Загрузка пользователей ИБ из Windows, Active Directory. -Выгрузка/Загрузка пользователей ИБ в/из внешний XML-файл. -Поддержка различных режимов модальности. Файловый, Клиент-Серверный варианты. Обычная и Управляемая формы.

1 стартмани

28.12.2011    168777    2278    StepByStep    419    

Просмотр и очистка регистра сведений (управляемые формы)

Универсальные обработки Чистка базы v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

09.05.2017    17473    298    stone_evil    21    

Сокращение размера регистра "Версии объектов" в УПП 1.3.

Чистка базы v8 УПП1 Абонемент ($m)

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

1 стартмани

02.05.2017    15291    5    fxmike    10    

Сжатие регистра "Версии объектов"

Чистка базы v8 КА1 УПП1 Россия Абонемент ($m)

Обработка позволяет выполнить 3 операции: 1. удалить одинаковые записи регистра версии объектов, оставляя первую запись, отличную от предыдущей версии; 2. удалить все данные по объекту до указанной даты; 3. удалить все данные по объекту, оставив последние

1 стартмани

27.02.2017    11814    36    mike_pol    6    

Многопоточное удаление объектов Промо

Чистка базы v8 1cv8.cf Абонемент ($m)

Обработка предназначена для ускорения процедуры удаления объектов

2 стартмани

02.06.2016    25451    53    zzz_natali    20    

Что мешает удалению объектов?

Сервисные утилиты Чистка базы v8 1cv8.cf Абонемент ($m)

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

1 стартмани

20.12.2016    17968    115    Alxby    17    

Задвоились предопределенные элементы справочников? Выход есть!

Обработка справочников Чистка базы v8 1cv8.cf Абонемент ($m)

Дублирование предопределенных элементов справочников может произойти как по причине того, что при обмене данными в режиме загрузки уникальность предопределенного элемента в пределах области информационной базы не проверяется, так и при объединении/обновлении конфигураций. При попытке переименовать, или, например, пометить на удаление 1С показывает сообщение «Предопределенный элемент не уникален». В этой статье мы напишем обработку, которая позволит избавиться от дублей предопределенных элементов справочника.

1 стартмани

02.11.2016    21675    96    Luchik    8    

Удаление организации из ЗУП 2.5 (2.5.110.1)

Чистка базы Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 v8::СПР ЗУП2.5 Россия БУ Абонемент ($m)

Внешняя обработка для удаления организаций из ЗУП 2.5 (2.5.110.1)

4 стартмани

30.10.2016    18473    131    victor_k    3    

Удаление помеченных объектов с отбором по метаданным Промо

Чистка базы v8 1cv8.cf Абонемент ($m)

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

1 стартмани

06.04.2016    24509    130    endym    7    

Удаление неиспользуемых элементов справочника (простые и управляемые формы)

Обработка справочников Чистка базы v8 1cv8.cf Абонемент ($m)

Обработка предназначена для удаления неиспользуемых элементов выбранного Вами справочника. Обработка конфигурационно-независима. UPD. Расширены возможности обработки

3 стартмани

02.08.2016    17117    75    roma_semenov79    6    

Удаление документов по организациям для 1С:Бухгалтерия Предприятия 3.0 и 2.0 (управляемые и простые формы)

Чистка базы v8 v8::БУ БП2.0 БП3.0 Россия Абонемент ($m)

Обработка удаляет документы по выбранной организации, либо по всем, кроме выбранной. UPD. Добавлена обработка для управляемых форм с возможностью подбора организаций в список. Условия остаются теми же - удалить по организациям из списка, или по всем, кроме подобранных в списке.

3 стартмани

31.07.2016    28845    352    Krasnyj    52    

Ошибка "Записи регистра сведений стали неуникальными"

Чистка базы v8 1cv8.cf Абонемент ($m)

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

1 стартмани

21.07.2016    79885    866    ekaruk    40    

Чистка регистров накопления {остатки и обороты} по закрытым движениям (обычные формы) Промо

Чистка базы v8 1cv8.cf Абонемент ($m)

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

1 стартмани

22.02.2016    28214    43    endym    14    

Разделение базы Бухгалтерии 3.0 по организациям на отдельные базы

Чистка базы v8 v8::БУ БП3.0 БУ Абонемент ($m)

Было несколько организаций в одной базе Бухгалтерии 3.0, а точнее их было 4 штуки И вот на одном из очередных собраний руководства было решено разделить на отдельные базы, так как могут быть проверки В итоге написана небольшая обработка по разделению базы бухгалтерии 3.0 по организациям

2 стартмани

23.05.2016    24727    126    NNNN    13    

Решение проблемы с синхронизацией между УТ 11 и БП 3.0 через регистр публичных идентификаторов

Чистка базы Перенос данных из 1C8 в 1C8 v8 БП3.0 УТ11 Абонемент ($m)

Данная обработка решает проблему, которая часто возникает при обмене между Управлением торговлей 11 и Бухгалтерией предприятия 3.0, когда в регистре сведений " ПубличныеИдентификаторыСинхронизируемыхОбъектов" есть дубли ссылок или уникальных идентификаторов данных, из-за которых обмен либо вообще не проходит, либо проходит, но нет информации об успехе. Подходит как для УТ 11, так и для БП 3.0

1 стартмани

29.04.2016    19134    64    hakerxp    3    

Зачистка ссылок на документы после свертки. 1С:Бухгалтерия 3.0

Свертка базы Чистка базы Обработка документов Дебиторская и кредиторская задолженность Учет ТМЦ Дебиторская и кредиторская задолженность Учет ТМЦ v8 БП2.0 Россия БУ Абонемент ($m)

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

2 стартмани

05.04.2016    20969    74    katerinaUniv    8    

Удаление организации из 1С. Чистка базы 1С. Удаление "не удаляемых" объектов Промо

Чистка базы v8 1cv8.cf Абонемент ($m)

Удалить все документы, чтобы в базе осталась только одна организация со своими документами? Удалить всю информацию в регистрах, не связанную с указанной фирмой? Удалить "неудаляемую" номенклатуру? Легко! Используйте эту обработку.

10 стартмани

02.10.2015    54228    323    spy-83    79