Очистка базы (частичная) средствами SQL (реализована возможность очистки средствами 1С)

04.03.13

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

Очистка базы (частичная) средствами SQL (для сравнения механизмов реализована возможность очистки средствами 1С). Любая конфигурация 1С 8.2, управляемое и обычное приложение.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Очистка базы 8.2
.rar 20,86Kb
311
311 Скачать (1 SM) Купить за 1 850 руб.
Очистка базы 8.1
.rar 12,99Kb
22
22 Скачать (1 SM) Купить за 1 850 руб.

Внимание! Согласно лицензионному соглашению 1С нельзя  манипулировать данными средствами  СУБД. Поэтому данная обработка носит чисто теоретический характер для понимания структуры хранения и целостности данных в SQL. Во избежание нарушения лицензионного соглашения 1С нельзя  запускать эту обработку.

Постановка задачи (придуманная, но вполне реальная): Начать заново ведение учета в существующей ИБ (не свертка, а так называемый "рестарт").

Анализ поставленной задачи: Для рестарта нам необходимо сохранить все константы, все справочники, некоторые документы (например, по установке цен или по принятию сотрудников) и некоторые регистры сведений (не подчиненные регистратору). В классическом варианте, конечно же, необходимо взять чистую ИБ и в неё загрузить все необходимые данные из текущей ИБ. Т.к. конфигурации идентичные, то это сделать не сложно через XML. Но, для понимания структуры хранения и целостности данных в SQL, был принят к рассмотрению вариант очистки «лишних» данных средствами SQL.

Алгоритм выполнения поставленной задачи:
1. Средствами SQL удаляем: выборочные документы, все журналы документов, все последовательности, выборочные бизнес-процессы и задачи.
2. Средствами SQL удаляем: выборочные регистры сведений (не подчиненных регистратору).
3. Средствами SQL удаляем: все регистры сведений (подчиненные регистратору), все регистры накопления, все регистры бухгалтерии, все регистры расчета (в т.ч. перерасчеты) и все планы обмена.
4. Запустить штатный механизм удаления помеченных на удаление (т.к. во 1-ых: Планы обмена в данном механизме не удаляются через SQL, а на них устанавливается пометка удаления; во 2-ых: Обычно существуют элементы справочников, которые помечены на удаление, а удалить их раньше было нельзя, т.к. использовались в документах).
5. В конфигураторе запустить «Тестирование и исправление».
6. Перепровести документы, не удаленные в п.1.

Особенность выполнения обработки: все таблицы хранения данных в ИБ получаются с помощью метода ПолучитьСтруктуруХраненияБазыДанных(), а удаляются с помощью команды SQL: TRUNCATE TABLE [ИмяТаблицы] (кроме планов обмена, на которые просто устанавливается пометка удаления. Планы обмена необходимо удалять штатными средствами, т.к. есть предопределенные элменты и регистрация изменений).

Жду комментарии специалистов по поводу целостности ИБ при использовании такого подхода.

 

Обновление от 11.01.2013
Добавлена версия обработки под 8.1
Правда, поставить сервер 8.1 и протестировать один нюанс не было времени.
Поэтому опишу его сдесь.
В 8.1 у метода ПолучитьСтруктуруХраненияБазыДанных() в оличии от 8.2 отсутствует 2-ой параметр, отвечающий, в каких терминах выдается информация о структуре хранения. Поэтому, возможно, в коде необходимо подредактировать имена таблиц. Это реализовано в модуле обработки в последней процедуре ОчиститьОбъектыНаУровнеSQL(), достаточно раскаментировать.

См. также

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

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

8400 руб.

20.08.2024    8566    66    29    

76

Чистка данных Системный администратор Программист Платформа 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    177850    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    138526    259    144    

430

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

Обработка позволяет удобно и выборочно удалить данные из базы 1С на управляемых формах например БП 3.0, УТ 11, КА 2, ERP, УНФ, ЗУП 3, Розница и др. Это могут быть как неиспользуемые элементы справочников, так и неактуальные организации. При этом есть возможность провести анализ пересечений документов с другими организациями и таким образом уберечься от того, что при удалении обороты по другой организации изменятся.

3350 руб.

28.11.2019    25938    60    16    

75

Оптовая торговля Логистика, склад и ТМЦ Чистка данных Программист Бухгалтер Пользователь Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Если вы начали работать в программном продукте Управление Торговлей, редакция 11 или Комплексная Автоматизация редакция 2 и включили механизм учёта серий, то перейти обратно в учёт без серий будет не так-то просто. Сложность заключается в том, что нужно очистить серии в табличной части документа, например, Реализация Товаров и услуг. Предлагаем алгоритм перехода на учет без серий для программного продукта УТ11. (Очистка серий.)

2400 руб.

09.04.2019    29106    43    14    

45

Чистка данных Системный администратор Программист Бухгалтер Пользователь Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3960 руб.

27.06.2018    19177    11    3    

16

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

Если в вашей информационной базе крутится очень много данных, или база должна быть доступна 24/7 (как в моем случае), или же вы боитесь запускать тестирование и исправление, НО существует потребность удалить битые ссылки, тогда эта обработка сможет Вам помочь. Обработка выявляет битые ссылки как в самих объектах метаданных, так и в их табличных частях(!), а так же может их удалить.

2400 руб.

23.08.2021    9965    19    3    

25

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

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

1 стартмани

21.01.2022    7737    1    dmbal    6    

12
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. krava_vlad 130 15.11.11 20:36 Сейчас в теме
Очень было бы полезно чистить базу по фильтрам, например по организации.
cleaner_it; +1 Ответить
4. zzz_natali 61 16.11.11 08:21 Сейчас в теме
Какая-нить есть статистика? Сколько по времени/размеру базу схлопывали?
(1) Да, было бы полезно в разрезе организации и на дату(интервал)
39. Sintson 413 20.03.21 23:51 Сейчас в теме
(4)
"Схлопывали" меньше минуты, база была больше трех терр., стала 300 мег.
Стояла задача оставить только аналитические справочники.
6. Homosum 16.11.11 10:19 Сейчас в теме
zzz_natali пишет:

Какая-нить есть статистика? Сколько по времени/размеру базу схлопывали?

(1) Да, было бы полезно в разрезе организации и на дату(интервал)


Регистр "Списанные товары" конфигурации "Управление торговлей" Предприятие 8.1. Сам регистр не хилый - много ресурсов. Кол-во записей 404 207 030. Не знаю сколько времени нужно, через 1С удалять все это чудо, но вот из SQL через DROP and CreateTable это происходит меньше чем за секунду!
Banzai79; +1 Ответить
20. Banzai79 27.12.11 12:22 Сейчас в теме
(6) как ты запустил обработку на 1С 8.1 подскажи пожалуйста
21. vetalvr 99 27.12.11 15:58 Сейчас в теме
(20) Banzai79, в (6) Homosum привел пример из собственных экспериментов, а не по этой обработке. У него даже метод другой используется.
7. vetalvr 99 16.11.11 13:14 Сейчас в теме
(1)(2)(4) Да, наверное, в ближайшее время доработаю для универсальности.
(3) Проще, но дольше и не интересней :-)
(4) На уровне SQL эта обработка очищает базу в считаные секунды, а штатными средствами на больших объемах очистка может занимать сутки, недели или вообще просто умирать от недостатка памяти.
sibunica@mail.ru; +1 Ответить
8. zzz_natali 61 16.11.11 14:09 Сейчас в теме
(7) Было бы весьма кошерно, ибо: берем обычную файловую базёнку, поднимаем ее на скуле и после этого препарируем ее. Сплошь и рядом, когда ведутся несколько фирм и нужно все шевеления по какой-нить прибить. или папики ра$$ераются и начинают делить бизнес: фирма "А" - тебе, фирма "Б" - мне...
cleaner_it; +1 Ответить
2. Valerich 1636 16.11.11 02:52 Сейчас в теме
вот ведь засаду 1с-овцы устроили со своим лицензионным соглашением.

Как-то надо было свернуть базу. Быстро. Вырезать из нее лет 5 интенсивной работы. Документов накоплено ну ОЧЕНЬ много. Сделал попытку пометить на удаление документы одного вида за 1 год и удалить. Пометка на удаление длилась часов 5. Удаление не смогло выполниться - умерло на стадии контроля ссылочной целостности - памяти не хватило. В итоге пришлось крошить данные прямо в SQL. Руками. Делая запросы к каждой таблице.

Так что дорабатывайте свою обработку до коммерческого использования с использованием хотя бы простейших условий и ограничений, например, по дате документа. Спрос, думаю, будет.
3. dolter 120 16.11.11 03:07 Сейчас в теме
А не проще, соблюдая лицензионное соглашение, перегрузить в "пустышку" необходимые данные?
5. afanasko 35 16.11.11 09:55 Сейчас в теме
Да забейте вы на "нарушение лицензионного соглашения". Там еще разобраться нужно, кто и что нарушил :)
iov; Lo1jke; Oleg_nsk; German; +4 Ответить
9. alexm73 16.11.11 19:19 Сейчас в теме
Очень интересная идея!
если бы ещё для 1С 7.7, было что-то похожее...
11. sCHTASS 49 18.11.11 10:14 Сейчас в теме
(9) Писал в свое время обработку пометки на удаление документов за период с очисткой движений регистров. Писал с использованием 1С++. Если есть на то потребность, могу выложить.
12. zzz_natali 61 18.11.11 12:30 Сейчас в теме
(11)
Было бы прекрасно, если Вы не просто выложили, а сделали бы сравнительный анализ: при прочих равных условиях, чья обработка быстрее, Ваша или ув. vetalvr (ну и вопрос "юзабилити" не на последнем месте)
13. vetalvr 99 18.11.11 12:37 Сейчас в теме
(12) На сколько я понял, то (11) имеет ввиду обработку для версии 7.7
14. sCHTASS 49 18.11.11 19:55 Сейчас в теме
10. dkprim 5 17.11.11 06:09 Сейчас в теме
да, фильтры нужны. а публикация хорошая, автору спасибо :)
15. Valiko77 23.11.11 12:17 Сейчас в теме
Не хватает фильтра и возможности выбирать метаданные, а не только эти 3 пункта.
А вообще полезная штука, иногда бывает очень нужна. Спасибо!
16. нинас 30.11.11 06:37 Сейчас в теме
Как раз вы вовремя, попробую, отпишу
17. LoboVik 20.12.11 18:16 Сейчас в теме
Большую помощь оказали. Пытался сам через SQL-запросы писать, но все медленно и непонятен результат. Спасибо.
18. AlekseiLeit 9 21.12.11 12:42 Сейчас в теме
есть возможность попробовать, отпишусь потом что получилось...
19. Banzai79 27.12.11 12:09 Сейчас в теме
а есть возможность для 1С 8.1 УТ очень нужно
22. vetalvr 99 27.12.11 16:08 Сейчас в теме
(19) Banzai79, Вам в 8.1 обработку конвертнуть?
23. a1ex4ndr 5 21.11.12 10:34 Сейчас в теме
(22)
Banzai79, Вам в 8.1 обработку конвертнуть?

Думаю не только Banzai79 будет интересна данная обработка под 8.1...
Мне точно будет интересна :)
26. vetalvr 99 11.01.13 18:07 Сейчас в теме
(19)(20)(23) Выложил обработку под 8.1. Возможно, её нужно будет подправить в связи с особенностями 8.1.
24. a1ex4ndr 5 04.12.12 11:42 Сейчас в теме
Похоже забыли про обработку.....
25. vetalvr 99 04.12.12 13:25 Сейчас в теме
(24) Не забыл. Не стал её конвертировать на предыдущие версии из следующих соображений:
Если кто-то не может конвертнуть на предыдущие версии - значит он не программист 1С. Значит у него нет представления, как хранятся данные 1С в SQL. Обработка работает напрямую с таблицами SQL, обходя механизмы 1С, и требуется осознанное использование данной обработки. Хотя очистка средствами 1С в этой обработке тоже была реализована.

Отброшу идейные соображения и на днях конвертну под 8.0 (чтобы открыть её под 8.1 необходимо будет открыть её в конфигураторе).
Фильтры, наверное, таки да, тоже добавлю как-нибудь, но позже - работы очень много...
27. SeiOkami 3520 02.03.13 10:33 Сейчас в теме
Странно работает обработка. Запустил, выбрал тип документов, нажал "Выполнить", вылезло окошко "Выполнено". Открываю документы - ничего не изменилось. Ни один не исчез. В чем соль?
28. vetalvr 99 04.03.13 14:30 Сейчас в теме
(27) А можно немного подробностей?
- 8.1 или 8.2
- обычное или управляемое
- что выбрано: средствами 1С или через скул?
29. SeiOkami 3520 04.03.13 15:07 Сейчас в теме
30. vetalvr 99 04.03.13 18:02 Сейчас в теме
(29) Прошу прощения. В обработке для отладки временно была отключена процедура. Исправил и залил заново обработку.
31. a1ex4ndr 5 04.07.13 18:03 Сейчас в теме
Отброшу идейные соображения и на днях конвертну под 8.0 (чтобы открыть её под 8.1 необходимо будет открыть её в конфигураторе).

СПС отлично работает, единственно что не понравилось - движения по регистрам рубятся только полностью, а если удалить документы то их движения остаются, может прикрутить к фильтрам по документам крыжик "удалять движение документов", или я может что то проглядел??
32. vetalvr 99 05.07.13 12:43 Сейчас в теме
(31) Изначально исходя из поставленной задачи обработка написана таким образом, что таблицы очищаются только полностью. Чтобы очищать таблицы не полностью или очищать связанные движения, необходимо переписывать запросы на уровне SQL (для не полного очищения таблицы использовать фильтры, для связанных движений использовать соединения). Задача в принципе не сложная для тех, кто может написать подобные запросы на языке 1С.
33. chmv 10.07.13 13:53 Сейчас в теме
34. _Ramzes 126 30.08.13 22:16 Сейчас в теме
А можно чтобы не удалялись предопределенные элементы?
35. vetalvr 99 31.08.13 14:30 Сейчас в теме
(34) _Ramzes, эта обработка очищает документы и регистры. О каких предопределенных элементах идет речь?
36. b-dm 174 07.11.14 10:54 Сейчас в теме
Отличная обработка, ожидается её доработка про выбор по определенным фильтрам ?
37. vetalvr 99 11.11.14 22:06 Сейчас в теме
(36) b-dm, пока не планировалось ввиду малого спроса
38. Sintson 413 20.03.21 23:44 Сейчас в теме
Спасибо автору разработки. Очень выручила обработка. Рекомендую, задача не частая, но очень проблемная.
На моем примере: обычным образом по расчетам, на удаление данных ушло бы порядка трех месяцев.
Обработка автора отработала меньше минуты по регистрам и документам.
Независимые РС не чистил, кроме версий объектов. Конфигурация не типовая, на базе УПП сильно переработанная для большого холдинга.
База была более трех террабайт, схлопнулась в десять раз. После обработки сжимали базу сиквелом, удаление помеченных не запускали, у нас номенклатурных позиций больше четырехсот тысяч позиций.
Оставьте свое сообщение