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

16.01.24

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Удаление данных средствами PostgreSQL
.epf 24,32Kb ver:1.0
34
34 Скачать (3 SM) Купить за 2 450 руб.
Удаление данных средствами MSSQL
.epf 24,03Kb
39
39 Скачать (10 SM) Купить за 4 550 руб.

В данной статье будет рассмотрена методика удаления данных запросом в MSSQL-студии.

Отказ от ответственности

Делайте архив. 

Проверяйте, пожалуйста, текст скрипта перед выполнением. Понимайте, что делаете. Помните, что ответственность лежит целиком на Вас!

С особой внимательностью рекомендую проверять скрипт перед выполнением, если в Вашей базе есть случаи, когда период записей регистров отличается от даты регистратора.

Основная цель применения

Прикладная задача, в процессе решения которой родилась данная методика: свертка базы (ввод остатков, удаление документов и движений регистров в прошлых периодах). То есть: удаление документов (вместе с табличными частями, разумеется) до определённой даты, и их движений. Иногда обработка использовалась для удаления данных с более сложными условиями, но они менялись вручную уже в SQL-студии.

Предыстория

Проблема: свертка стандартными средствами происходила неприлично долго. Точней, именно этап удаления старых данных. Остатки вводятся быстро, а вот удаление движений регистров, пометка на удаление документов, само удаление - по нашим оценкам на наших объёмах (500ГБ) заняло бы недели.

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

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

Теория

Варианты (операторы) удаления в SQL.

  1. DROP - полное удаление таблицы из структуры данных (вместе с данными). То есть очищаются не только данные, но и метаданные. Работает мгновенно.
  2. TRUNCATE - полная очистка таблицы с сохранением структуры таблицы (очищаются только строки таблицы, колонки остаются прежними). Работает мгновенно.
  3. DELETE - удаление записей в таблице по определенному условию. Занимает определенное время.

Оператором DROP на практике я почти не пользуюсь. TRUNCATE - иногда пригождается, когда по условию задачи возможно удалить всю таблицу (данные не нужны совсем, либо можно после удаления загрузить откуда-то только нужную часть). В остальных случаях (в том числе в рамках данной методики) используется DELETE. 

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

В итоге была выбрана и реализована следующая стратегия

  1. Удаляем движения регистров, которые двигает нужный вид документа, по связке с основной таблицей документа
  2. Удаляем строки табличных частей документа, по связке с основной таблицей документа
  3. Удаляем основную таблицу документа
  4. Очищаем целиком таблицы журналов, где участвует документ (нехорошо, но в нашем случае - не критично, можно и не трогать)
  5. Опционально можно очистить таблицы регистрации изменений для обмена

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

Устаревшая стратегия (альтернатива)

Первое решение, от которого я впоследствии отказался. Хотя вначале оно казалось более удобным и простым. А именно - очистить шапку. А потом все связанные таблицы поочередно, у кого нет "пары" в основной таблице (ссылка/регистратор = "битая" ссылка).

Данный вариант не работает для движений документа. Так как после удаления основной таблицы документа - IS NULL даёт истину после соединения таблицы движений регистра и основной таблицы документа в 2х случаях

  1. Когда действительно записи сделаны этим видом документа, и эти документы были удалены (тут всё хорошо)
  2. Когда записи были сделаны документами других видов, и в этом случае записи удаляются ошибочно (так нельзя!). Чтоб решить эту проблему надо связывать таблицу регистра со всеми возможными типами регистраторов, а это слишком сложно

Вобщем порядок был такой (отличия в пунктах 2 и 3)

  1. Удаляем записи регистров, которые двигает нужный вид документа, по связке с основной таблицей документа
  2. Удаляем основную таблицу документа
  3. Удаляем записи табличных частей документа, у которых Ссылка после соединения = IS NULL
  4. Остальное (как в основном варианте, журналы и регистрация изменений)

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

Особенности

  1. Доступна опция порционного удаления.
  2. На данный момент, обработка существует только для обычного приложения.
  3. Обработка сама не подключается в SQL и не запускает скрипт там на выполнение. Только формирует текст скрипта. Считаю, что скопировать-вставить нетрудно, а если нет навыков работы в SQL-студии, то и запускать подобное, возможно, рано.
  4. Исходный код открыт.

Порядок действий 

  1. Делаем архив
  2. Составляем список удаляемых данных (самые большие таблицы, которые удалить стандартными средствами слишком долго / неудобно / не хочется разбираться с тем, что удаляемые данные зарегистрируются к обмену и "пойдут" куда не надо)
  3. Запускаем обработку, при желании сверху ставим отбор
  4. Выделяем в списке нужные виды документов (обязательно выделяем ОСНОВНЫЕ таблицы, то есть таблицы шапок, а не табличных частей)
    Можно сразу несколько с Ctrl-ом (доступно множественное выделение)
  5. Переходим на вторую закладку и выбираем нужный нам вариант удаления (например по дате)
  6. Нажимаем соответствующую кнопку по формированию скрипта
  7. Получаем в окне сообщений готовый скрипт на удаление данных на языке SQL
  8. Копируем в буфер, вставляем в SQL Management Studio
  9. При надобности корректируем. Например через замену (Ctrl+H) можно заменить "<" на ">=", и получится скрипт удаляющий данные документов не до указанной даты, а, наоборот, - начиная с неё. Либо отбор по дате можно заменить на пометку документа на удаления (_Marked = 1). Либо чтоб удалялись только непроведенные (_Posted = 0). 
  10. Запускаем на выполнение, дожидаемся завершения, наблюдаем за статусом на закладке Messages
  11. Проверяем результат в 1С
  12. Обязательно пересчитываем итоги затронутых регистров накопления и бухгалтерии, так как таблицы итогов не обрабатываются

При желании протестировать/посмотреть "что именно будет удаляться" предусмотрена соответствующая опция (галочка справа внизу), в этом случае скрипты будут формироваться с оператором SELECT, а не DELETE. Можно выделить нужный кусок, запустить на исполнение, посмотреть результаты, прежде чем запускать на удаление.

Для PostgreSQL

...Использовалась копированием текста скрипта из 1С, вставкой и запуском в dbAdmin через Query Tool
Версия для PostgreSQL на данный момент не поддерживает порционное удаление

Вместо эпилога

Конструктивную критику, вопросы и пожелания - прошу в комментарии!

Спасибо за прочтение!

обработка удалениеданных сверткабазы MSSQL PostgreSQL

См. также

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

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

8400 руб.

20.08.2024    6653    47    22    

60

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

242

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

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

9600 руб.

22.02.2013    138274    256    144    

427

Чистка данных Программист Пользователь Платформа 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    25777    57    16    

72

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

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

2400 руб.

23.08.2021    9891    19    3    

25

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

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

2400 руб.

09.04.2019    29014    42    14    

44

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

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

1 стартмани

21.01.2022    7666    1    dmbal    6    

12

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

Очередная вариативная очистка кэша 1С с помощью Исполнителя 3.0.2.2.

1 стартмани

25.10.2023    5305    5    SerVer1C    26    

22
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 25.04.18 17:56
Сообщение было скрыто модератором.
...
2. пользователь 26.04.18 04:00
Сообщение было скрыто модератором.
...
3. kolhoznik 05.07.18 13:31 Сейчас в теме
Обработка просто огонь, удобно делать тестовые копии с урезанными данными!
Полезна для изучения структуры таблиц в SQL

1. Удобно было бы из ОСНОВНЫЕ таблицы заложить в фильтр (решается сортировкой нужной колонки)
2. Вывод сообщений скрипта в SQL немного не удобен, особенно при обработке большого количества документов
3. Сдвиг дат

Иногда проскальзывает сообщение 'Недопустимое имя столбца "_Period"'
Похоже в скрипте

PRINT 'Начинаю очистку регистра: РегистрСведений.СостоянияОСОрганизаций.Основная	' +CAST(GETDATE() as varchar);
DELETE	FROM SubData
	FROM _InfoRg12237 SubData
 	INNER JOIN _Document188 MainData
ON SubData._RecorderRRef = MainData._IDRRef
WHERE _Period < @date_trim;
svbel85; METAL; +2 Ответить
4. METAL 299 11.07.18 16:10 Сейчас в теме
(3) Спасибо большое, комментарии приняты, постараюсь реализовать/поправить, но из-за нехватки времени сроки обещать не могу.
По 1 - есть некое решение уже, сам столкнулся, доведу чуть до ума, поделюсь
2. Сейчас есть неудобство, когда начинает чистить какую-то таблицу - сообщает о начале вместе с сообщением о завершении. Не знаю с чем связано, но постараюсь решить. Если есть предложения - внимательно слушаю.
3. Не понял честно говоря, о чём речь
4. 'Недопустимое имя столбца "_Period"' - Да, тоже замечал, такое бывает когда идёт попытка очистить регистр, у которого регистратором является выбранный документ, но регистр непериодический. В этом случае регистр не очищается. Посчитал нестрашным для наших задач, поэтому пока не успел поправить.
6. METAL 299 27.07.18 16:48 Сейчас в теме
(3)
1. Удобно было бы из ОСНОВНЫЕ таблицы заложить в фильтр (решается сортировкой нужной колонки)
2. Вывод сообщений скрипта в SQL немного не удобен, особенно при обработке большого количества документов

Улучшено в новой версии
5. METAL 299 27.07.18 12:32 Сейчас в теме
UPD Обновлена версия обработки. Бета.
[*] Редизайн интерфейса, повышение юзабилити.
[+] Добавлена возможность целостного удаления документов на отдельной закладке
[+] Частично реализована опция порционного удаления. Порциями удаляются данные при выборе произвольной таблицы, а также при целостном удалении документов - основная таблица документа. Продолжение следует.
[*] Рефакторинг системы вывода сообщений. Теперь сообщения выводятся мгновенно, и выглядит всё более коротко и информативно
7. METAL 299 03.08.18 10:53 Сейчас в теме
[↑] Доделано и протестировано порционное удаление
8. METAL 299 16.11.18 16:19 Сейчас в теме
Иногда проскальзывает сообщение 'Недопустимое имя столбца "_Period"'

[fix] Исправлено
9. AlexeyT1978 218 28.01.19 10:18 Сейчас в теме
Ух, крутая штука, скоро пригодится!
10. AlexeyT1978 218 29.01.19 11:43 Сейчас в теме
Вчера пользовался, работает корректно, но остаются ссылки в "присоединенных файлах". Наверное, вручную буду удалять.
11. METAL 299 29.01.19 15:50 Сейчас в теме
(10) Спасибо за обратную связь!
Ссылки в "присоединённых файлах" (то есть ссылки на удаляемые произвольные документы в произвольных справочниках) как почистить на уровне SQL в процессе свёртки базы - пока не вижу вариантов... Видимо да, проще на уровне 1С сделать
12. METAL 299 01.02.19 16:00 Сейчас в теме
[+] Добавлена возможность удалить все записи выбранных регистров накопления ДО определённой даты
13. METAL 299 01.02.19 16:43 Сейчас в теме
После свертки очередной базы выяснилась одна особенность-недоработка. Стали сверять остатки после свертки на свёрнутой базе и оригинальном исходнике. Обнаружили расхождения - движения документов без регистратора.
Чтоб удалить их был добавлен новый функционал в обработку, а именно удобное удаление движений регистров накопления без привязки к документам до определённой даты
Прикрепленные файлы:
14. METAL 299 04.02.19 14:48 Сейчас в теме
Свёртка - дело хорошее. Но как убедиться, что остатки свёрнутой базы совпадают с оригинальной базой? Отдельная интересная задачка.
Можно выгрузить в табличный документ и сравнить через "Сравнить файлы", но хотелось сделать что-то удобней, быстрее и надёжней.
Есть методика, когда обрезанная база подключается через универсальный веб-сервис в оригинальную базу, выполняет произвольный запрос (чтоб получить "оригинальные" остатки до обрезки) и сверяет другим запросом со свернутой базой. См. скрины.
Если кому-то интересно - ставьте лайки, пишите что-нибудь. при наличии спроса и времени - сделаю чтоб запускалось на произвольной конфигурации и опубликую!
Спасибо.
Прикрепленные файлы:
user671383_pvivanov; a-m-gv; bashdn; AntonH851; IvanPoh; 2PRV; +6 Ответить
16. 2PRV 7 19.02.19 12:14 Сейчас в теме
(14)
база подключается через универсальный веб-сервис

Было бы интересно посмотреть на такую обработку.
обрезанная база подключается через универсальный веб-сервис
, а не проще com-соединением получить остатки из базы?
a-m-gv; METAL; +2 Ответить
17. METAL 299 19.02.19 13:04 Сейчас в теме
(16) COM - хорошо, но очень он требовательный. Если базы для сравнения на разных серверах и не очень толстым каналом, COM, к сожалению - не вариант.
ОК, принято, обязательно оформлю через какое-то время! Наверное уже в марте. Если срочно - напишите в личку пожалуйста
44. METAL 299 21.07.21 18:00 Сейчас в теме
(16)
Было бы интересно посмотреть на такую обработку.

За небольшим спросом публикация затянулась, но тем не менее - ВОТ, пожалуйста
Буду рад если пригодится!
15. IvanPoh 25 14.02.19 12:30 Сейчас в теме
Было бы круто добавлять произвольные отборы на документы
svbel85; METAL; +2 Ответить
18. NIC001 10 21.02.19 14:13 Сейчас в теме
Добрый день.
Извините, не увидел, а с БП 3.0 как отработает Ваша обработка?
19. METAL 299 22.02.19 03:15 Сейчас в теме
(18) Здравствуйте! Думаю, что точно так же, как и на любой другой конфигурации. Но непременно в режиме обычного приложения её придётся запускать для получения скрипта. Если возникнут проблемы - пожалуйста, пишите, готов попробовать доработать в марте.
45. пользователь 23.11.21 15:49
Сообщение было скрыто модератором.
...
20. NIC001 10 22.02.19 16:30 Сейчас в теме
Добрый день.
В марте не актуально.
Спасибо.
Попробовали.
При запуске в режиме 8.2 отработало штатно.
За это отдельно спасибо.
Удаление объектов на нашей базе (100 ГБ на SQL) прошло ровно и заняло чуть более 2-х часов.
А вот ТиИ длится уже 12 часов к ряду...
Пока "рубит" версии объектов.
Как долго будет продолжаться? Не знаю.
Посоветуете что-нибудь?
21. NIC001 10 23.02.19 11:12 Сейчас в теме
(20) Всем добрый день.
...
Судя по всему, удаление версий объектов будет идти около 20 дней.
За сутки прошло 5%.
Увы.
Без решения этого момента выигрыш от обработки полностью теряется.
На сегодня отработала штатная свёртка.
Жаль.
Первые впечатления были более позитивные.
к сожалению, в том виде и с теми комментариями (инструкциями/объяснениями) как есть, использовать обработку бесполезно.
23. METAL 299 24.02.19 00:05 Сейчас в теме
(21) Почему выигрыш теряется? Иными словами, что делаете? Какова цель операции? Чего достичь хочется? Уменьшить размер базы удалением ненужных данных, основная часть которых находится в «версиях..»? Или...?
22. METAL 299 24.02.19 00:01 Сейчас в теме
(20) Спасибо за отзыв!
А что значит «версии объектов»? Регистр сведений, откуда хочется убрать битые ссылки на документы? Или...?
24. NIC001 10 25.02.19 09:19 Сейчас в теме
Добрый день.
Отвечу по пунктам.
1. Почему выигрыш теряется?
Идея была в сокращении времени на удаление объектов после штатной свёртки баз.
Этого не произошло, т.к, используя штатную свёртку удалось закончить много раньше.
2. А что значит «версии объектов»?
Согласно рекомендаций, после удаления информации на дату, требуется провести ТиИ.
Это нормально.
Но то, что за трое суток прошло только 5 % от проверки логической целостности версий объектов в регистре сведений, это не нормально.
У меня за 40 часов отработала штатная свёртка.
Отсюда понимаю, либо что-то не доработано в обработке, либо что-то не досказано в описании.
Прикрепленные файлы:
25. METAL 299 26.02.19 14:06 Сейчас в теме
(24)
На вашем месте я бы пробовал выгрузить нужные версии до свёртки (например в XML).
Потом сворачивал базу, удалял данные (регистры, документы).
Потом удалял бы таблицу версий целиком.
А потом бы загружал из файла нужные версии.
А так - получилось, что сами объекты удалены, а версии - остались.
Хотя всё равно конечно странно, почему ТиИ идёт так долго.
Возможно, оборудование не справляется.
26. METAL 299 26.02.19 14:11 Сейчас в теме
(24)
Отсюда понимаю, либо что-то не доработано в обработке, либо что-то не досказано в описании.

Обработка не удаляет наборы записей регистров, не подчинённых регистратору (в режиме удаления документов с движениями и ТЧ). Я надеялся, что это понятно из интерфейса
Прикрепленные файлы:
27. NIC001 10 27.02.19 09:22 Сейчас в теме
Добрый день всем.
После серии проб и ошибок...
***
Ситуация: база БП КОРП 100 Гб. на SQL.
По совокупности причин, приняли решение обрезать на 01/01/2019г.
С помощью стандартной свёртки от 1С рассчитали остатки и создали операции ввода начальных остатков.
Типовое удаление старых документов прервали, ибо бессовестно долго и нет гарантированного результата.
Время: 1,5 часа.
С помощью данной обработки полностью очистили версии объектов.
Время: 30 минут.
После этого, с помощью данной обработки, удалили документы до даты.
Заняло 70 минут.
После этого пересчитали итоги.
Заняло ~1,5 часа.
Нашли ~ 20 "потерянных" записей и отработали их вручную.
База работает штатно, весит 25 Гб.
***
Спасибо.
a-m-gv; METAL; +2 Ответить
28. METAL 299 27.02.19 14:24 Сейчас в теме
(27) Очень рад, Александр! Спасибо за отзыв!
29. titanium2008 46 05.10.19 12:56 Сейчас в теме
Добрый день, а по организации умеет удалять?
30. METAL 299 05.10.19 13:33 Сейчас в теме
(29) Нет.
Можете попробовать вот эту разработку https://infostart.ru/public/731455/
31. AKV77 261 15.11.19 09:42 Сейчас в теме
Здравствуйте ! Обработка очень удобна, Спасибо. Есть замечания:
При тестировании сначала сделал выборку данных Sel ect используя удаление порциями... скрипт отрабатывает с ошибкой.
Для исправления немного изменил процедуру:

Процедура ОбработатьСкрипт_ЗаменитьУдалениеНаЧтение(ТекстСкрипта)
	
	Если ПисатьСкриптНаЧтение Тогда
		//ТекстСкрипта = СтрЗаменить(ТекстСкрипта, "DELETE", "SELECT * ");
		Если УдалятьПорциями Тогда
			ТекстСкрипта = СтрЗаменить(ТекстСкрипта, "DELETE TOP(@PortionSize)", "SELECT TOP(@PortionSize) * ");
		Иначе
			ТекстСкрипта = СтрЗаменить(ТекстСкрипта, "DELETE", "SELECT * ");
		КонецЕсли;	
		ТекстСкрипта = СтрЗаменить(ТекстСкрипта, "FR OM SubData", "");
	КонецЕсли; 
	
	// ну и покажем наконец-то
	Сообщить(ТекстСкрипта);

КонецПроцедуры
Показать
32. METAL 299 22.11.19 16:00 Сейчас в теме
(31) Шикарно, исправил, благодарю, коллега!
36. пользователь 08.02.21 15:21
Сообщение было скрыто модератором.
...
33. AlexeyIsip 26 10.03.20 02:37 Сейчас в теме
Предлагаю обмен https://infostart.ru/public/1178808/ у меня удаляются только движения, документы помечатся на удаление, у тебя нет отбора и запуска из-под 1с средствами ADO. Если согласен, то моя почта alex_isip@mail.ru
34. пользователь 08.02.21 15:01
Сообщение было скрыто модератором.
...
35. пользователь 08.02.21 15:19
Сообщение было скрыто модератором.
...
37. user775441 17.03.21 09:38 Сейчас в теме
Добрый день! Подскажите, как с помощью вашей обработки удалить документы по определенной организации?
38. METAL 299 17.03.21 10:09 Сейчас в теме
(37) На данный момент, нет, и не планируется
Можете попробовать вот эту разработку https://infostart.ru/public/731455/
39. пользователь 20.04.21 22:11
Сообщение было скрыто модератором.
...
40. METAL 299 04.05.21 19:27 Сейчас в теме
[↑] Улучшена очистка регистров бухгалтерии
41. rolin555 52 18.06.21 20:39 Сейчас в теме
Почему не показывает все объекты?
Например тот же самый, упомянутый выше: РС.ВерсииОбъектов
Прикрепленные файлы:
43. METAL 299 18.06.21 20:51 Сейчас в теме
(41) На этой закладке только периодические регистры сведений для очистки до определённой даты
Если хотите почистить версии - воспользуйтесь закладкой "Произвольное удаление", и там в поиске напишите Версии
42. пользователь 18.06.21 20:50
Сообщение было скрыто модератором.
...
46. EuLER 02.07.22 18:51 Сейчас в теме
Вопрос на всякий случай - Postgres сможет чистить ?
47. METAL 299 02.07.22 19:08 Сейчас в теме
48. METAL 299 19.07.22 19:50 Сейчас в теме
[+] Добавлена версия для очистки баз под управлением PostgreSQL
49. UPKA 29.11.22 11:34 Сейчас в теме
Здравствуйте, подскажите, возможно ли удалить только итоги по регистру, а движения оставить?
50. METAL 299 29.11.22 12:20 Сейчас в теме
(49) Добрый день
Да, см скрин, пример приведён для оборотного регистра
Идёте на закладку "Произвольное удаление по структуре данных" - вбиваете в поиск название регистра, ищете нужную таблицу итогов, нажимаете "Полная очистка только выбранных таблиц (TRUNCATE)" - внизу будет скрипт, его копируете, вставляете в SQL-студии, запускаете
Если нужен пример для регистра остатков - напишите, пожалуйста, подскажу
Прикрепленные файлы:
51. alex0175 16.01.23 07:44 Сейчас в теме
Здравствуйте.
Хотели свернуть базу КА 2.5 штатными средствами 1С, но процесс очень долгий, т.к. 4 года работы. Приобрели у Вас обработку для удаления документов, регистров и журналов документов. Можно получить у Вас подробную схему выполнения действий с данной обработкой, последовательно друг за другом для правильной свертки базы.
52. METAL 299 16.01.23 18:47 Сейчас в теме
(51) Добрый вечер! Спасибо за вопрос!

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

Порядок использования обработки при свертке детально расписан в статье в разделе "Порядок действий"

Если Вы всё это читали, но всё равно мало что не понятно и осталось много вопросов - напишите мне в личку, обсудим варианты сотрудничества
53. METAL 299 17.01.23 20:46 Сейчас в теме
[+] Добавлена поддержка очистки регистров расчёта
54. пользователь 15.03.23 16:48
Сообщение было скрыто модератором.
...
55. serg0776 5 24.04.23 10:32 Сейчас в теме
Бизнес-процессы и Задачи не попадают в обработку. Хорошо бы и их туда.
56. METAL 299 26.04.23 16:53 Сейчас в теме
(55) Куда именно? На закладке "Произвольное удаление по структуре данных" есть абсолютно все метаданные текущей базы, в том числе бизнес-процессы и задачи
57. Kraft2013 02.05.23 18:25 Сейчас в теме
Класная штука но не поддерживает объекты измененные\добавленные в расширении
58. METAL 299 02.05.23 18:41 Сейчас в теме
(57) Спасибо за обратную связь, попробую добавить документ через расширение, и удалить потом через обработку...
64. natic221 08.10.24 14:13 Сейчас в теме
(58)
пасибо за обратную связь, попробую добавить документ через расширение, и удалить потом через обработку...


Добрый день!
Обработка отличная.

Подскажите, получилось ли реализовать удаление документов добавленных в расширение?
Если документ изменен в расширении, то таблицы к которым сейчас выполняется запрос - пустые.
В итоге удаление документов, табличных частей и движений регистров не происходит. Не получается использовать обработку для решения поставленной задачи.
65. METAL 299 10.10.24 16:13 Сейчас в теме
(64) Спасибо за отзыв!
Такого кейса не было, если можете поделиться базой и дать пример документа (или организовать кейс на демо базе какой-то) - напишите в личку, попробуем решить, я готов помочь, интересно. Скорей всего, надо в имя таблицы документа добавить в конце X1 или типа того..
59. Tarlich 116 01.11.23 07:09 Сейчас в теме
60. METAL 299 01.11.23 07:13 Сейчас в теме
(59) к сожалению, версия для УФ не появилась.. а есть сложности с запуском в обычном режиме для получения скрипта?
61. Tarlich 116 01.11.23 07:14 Сейчас в теме
(60) да вроде нету -)) спасибо
62. 7407171 25.12.23 13:49 Сейчас в теме
(52) Добрый день!!! Как Вам написать в личку?
66. natic221 30.10.24 12:48 Сейчас в теме
Добрый день.
Подскажите, кто-нибудь сталкивался с такой проблемой? В чем может быть причина?

Удалили все движения до даты 01.01.2023. Сделали тестирование и исправление.

После этого перестали проводиться документы Заказ клиента с датой до 01.01.2023.

Ошибка при вызове метода контекста (Записать)
{ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1974)}:Результат = Форма.Записать(ПараметрыЗаписи);
{Документ.ЗаказКлиента.Форма.ФормаДокумента.Форма(6375)}:ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи);

по причине:
Нарушено условие уникальности данных.

Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 11.0: Не удается вставить повторяющуюся строку ключа в объект "dbo._AccumRg27783" с уникальным индексом "_AccumRg27783_1". Повторяющееся значение ключа: (0, 4023-01-30 23:59:59, 0x000001d9, 0x872ebc305bd751ce11ed4ac0a651f4c7, 3).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2601, line=1
Оставьте свое сообщение