Прямое удаление документов

26.10.09

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

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

Скачать файл

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

Наименование Бесплатно
Удаление документов средствами SQL
.rar 16,37Kb
310
310 Скачать бесплатно

Чистит за период таблицы шапок и строк документов, движения регистров, таблицу проводок, таблицу операций, таблицу перекрестных ссылок и журнал.

Работает только с SQL-ной версией.

См. также

Чистка данных Пользователь Оперативный учет 7.7 1С:Торговля и склад 7.7 Абонемент ($m)

Установка пометки на удаление справочника Номенклатура. Торговля 77. 9.2.

1 стартмани

21.11.2022    2659    3    Sevg    0    

2

Чистка данных Программист Пользователь Платформа 1С v7.7 1С:Бухгалтерия 7.7 1С:Зарплата и кадры 7.7 1С:Торговля и склад 7.7 Россия Абонемент ($m)

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

1 стартмани

12.09.2022    3130    9    tetraren    0    

2

Свертка базы Чистка данных Перенос данных 1C Системный администратор Программист Платформа 1С v7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Абонемент ($m)

Приводится порядок действий для создания новой информационной базы на основе имеющейся файл-серверной "Торговля и Склад" ред.9.2, для учёта с нуля. В новую базу выполняется перенос справочников и остатков номенклатуры. Журналы документов, данные регистров, долги контрагентов, партии очищаются.

1 стартмани

14.01.2022    6450    6    etmarket    3    

4

Чистка данных Корректировка данных Программист Пользователь Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Архив различных обработок 1С 7.7 с открытым исходным кодом для работы с данными при свертке, выгрузке, исправлении, модификации информационной базы. Можно использовать любую обработку в качестве заготовки для добавления собственных функций.

1 стартмани

13.05.2021    8156    12    etmarket    0    

3

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

Эта обработка позволяет удалить созданные системой элементы справочников. Например, когда элементы создаются при тестировании и исправлении базы с наименованиями, включающими строку "ФС". Обработка тестировалась на базе конфигурации Бухгалтерский учет для Казахстана, редакции 7.70.257.

10 стартмани

26.03.2021    8702    2    softmaker    0    

0

Поиск данных Чистка данных Логистика, склад и ТМЦ Программист Оперативный учет 7.7 1С:Торговля и склад 7.7 Управленческий учет Абонемент ($m)

Простая и удобная обработка предназначена для поиска и исправления задублированных (повторяющихся) номенклатурных штрихкодов справочника Единицы. Также она даёт возможность посмотреть номенклатурные остатки. Полезна в случаях, когда номенклатура сопоставляется по штрихкоду с другими внешними источниками, а именно с модулем "Обмент ГИСМТ".

1 стартмани

19.11.2020    7924    1    Kuzya_brаtsk    4    

8

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

Когда удаляются документы и элементы справочников в 1С 7.7 через удаление помеченных на удаление объектов, запись из dbf файла не удаляется, она помечается как удаленная, но физически остается в файле. Если эти помеченные на удаление записи удалить физически, то размер файлов значительно уменьшится.

1 стартмани

18.10.2018    16158    48    evg520750    5    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Ёпрст 1065 26.10.09 13:52 Сейчас в теме
Цель то какая, в итоге ?
Порезать базёнку?..
И это... куча ссылок останется на доки..
Тут либо по всем табличкам шастать и прибивать, либо ТиИ делать потом.
3. My Precious 15 26.10.09 14:25 Сейчас в теме
(1)
Основная цель - познание ранее неизвестного :)
В периодике, да, останется. Там так кардинально шуровать пока стремновато. А еще где? Прогуляться по справочникам?..
ТиИ само собой.

(2) Ага, удобный :)
4. afanasko 35 26.10.09 18:39 Сейчас в теме
(3) А еще где?
Теоретически, ссылка на документ может быть в любом месте: в реквизите справочника, другого документа, в регистре, в проводке и т.д.
Практически, необходимо пробегать по метаданным и искать во всех реквизитах, типа "Документ", "Документ.ХХХХ", "Неопределенный"
5. magus 26.10.09 20:01 Сейчас в теме
(4) Можно и по метаданным пробежать, можно и процедурой НайтиСсылки() воспользоваться.
8. My Precious 15 27.10.09 09:52 Сейчас в теме
Спасибо за ответы :)

(4) Ссылки (IDDOC, да?), допустим, понахожу (хотя как сформулировать такой запросище пока не представляю, будем разбираться). Будет список доков, у которых есть хвосты. А дальше чего с ним делать? Запихивать в условия удаляющих запросов? Как быть, если в попавших в исключения документах есть ссылки на не попавшие? Возможно SQL-ными методами проследить цепочки связок?

(5) На больших тормознутых и фатально запущеных базах НайтиСсылки() работает слишком долго. Это ничем не будет отличаться от штатного удаления; для круглосуточного производства, на котором базу можно остановить максимум на час, к сожалению, не подходит.

(6) Понятное дело, знала бы все на свете - не просила б помощи зала :)
11. afanasko 35 27.10.09 17:31 Сейчас в теме
(8). Да, IDDOC. Формулировать особо ничего не надо. Просто пробежать по метаданным и найти реквизиты нужного типа. Метапарсер в 1С++ автоматически преобразует имена объектов в соответствующие имена внутренних таблиц SQL.

Главное -- помнить, что длина поля типа "Документ" отличается от длины поля типа "Документ.ХХХХ". Аналогично с типом "Неопределенный". Т.е. если для типизированного поля поиск можно вести по "IDDoc" (9 симв), то для просто "Документ" поиск уже ведется по "RIGHT(IDDoc,9)" (13 симв).
А уж с неопределенным и того хуже "RIGHT(LEFT(PARENTVAL,15),9)" (по крайней мере в таблице подчиненных так).

Кстати, ваша обработка не учитывает ссылку в поле PARENTVAL таблицы CRCDOC.

Цепочки связок проследить не удастся, т.к. не стоит ограничение целостности на уровне SQL.

Вообще я тут подумал, муторное это дело и, в принципе, бесполезное )))).
Лучше вам потренироваться на чем-нибудь другом. Например переписать ведомость по партиям на прямых запросах.

My Precious; +1 Ответить
12. My Precious 15 28.10.09 00:21 Сейчас в теме
(11) Спасибо!

длина поля типа "Документ" отличается от длины поля типа "Документ.ХХХХ". Аналогично с типом "Неопределенный".
Ага, про это я читала, теперь еще понятней :)
ваша обработка не учитывает ссылку в поле PARENTVAL таблицы CRCDOC.
Принято к сведению :)

муторное это дело и, в принципе, бесполезное )))
Свою-то базу я таким образом уже секвестировала: зная связки между доками и что цепочек длиннее суток нет, срезала до дня Икс-1, а дальше шринк и штатными. Но ведь хочется, чтобы все было идеально... :D
2. Altair777 645 26.10.09 14:07 Сейчас в теме
(0) Знакомый диалог на скриншоте.... :-)
6. CheBurator 2712 27.10.09 01:52 Сейчас в теме
в итоге автору - если в целом - незачет...
7. tango 545 27.10.09 07:52 Сейчас в теме
ага, полигон нашли, блин, для упражнений. на кошечках тренируйтесь
10. Altair777 645 27.10.09 10:39 Сейчас в теме
(7) Если мне не изменяет память (см.комм.2), она не только на кошечках тренируется. :)
9. zaic 133 27.10.09 10:30 Сейчас в теме
Можно еще добавить одну кнопочку чтобы только "Пометить" на удаление или снять пометку. Так из тестовой обработки может со временем и полезная вещица получиться..
13. UncleVader 129 28.10.09 09:18 Сейчас в теме
Когда писал свой такой велосипед то пришел к комбинированному решению: прямым запросом выгребаю из под документов движения по регистрам, табличные части и помечаю сами доки на удаление; после этого делаю пакетное удаление штатной функцией с проверкой. В конце пересчет регистров. В итоге все очень быстро и аккуратно.
14. iov 407 28.10.09 17:11 Сейчас в теме
ага разок воспользовался подобным творением после того как свормировал итоговые документы свертки (на свертку базы выделели 13 часов максимум а 500 000 доков с кучей движений ну никак не хотели так быстро удалятся пришлось рубануть потом ссылки вычищал месяц). В итоге светка начинается за неделю до дня X и закрывается помесячно формирую на конец месяца остатки, и после сворачиваю уже остатки на конец года. используя по 3-4 часа в день (максимум) или во время формирований документов (без контроля остатков или иных контролей).
заодно и ссылки проверяю (так как товар и контрагенты тоже чистятся то заодно помечаю их на удаление и тех кого можно будет удалить - добавляю префикс для понятности).
p.s. не уникальное решение, но работает а так как тут просят именно совета то вот как-бы алгоритм.
16. My Precious 15 30.10.09 11:14 Сейчас в теме
(14), (15) - Спасибо!

(15) Да, мы тоже так поступаем, но все равно слишком долго (документооборот 2000+ в день). Пользователи имеют неприятную манеру игнорировать предупреждения, а потом вопить в духе "я тут полдня документы задним числом правил, куда моя работа делась?!" и писать докладные наверх...

Так что это изобретение велосипеда полезно только для развития мозгов.
Да, и это прекрасно :)
17. johnicjs 105 30.10.09 11:23 Сейчас в теме
(16) Дата запрета редактирования на время свертки. :D

Сам не пробовал, но вроде как, можно резать регистры по одному на живую. Утверждать не буду, не пробовал.

Да, и это прекрасно
Никто и не спорит.
15. johnicjs 105 28.10.09 22:42 Сейчас в теме
Что касается всяких-разных сверток (урезок) и невозможности получить необходимое время, то я использую примитивно простой способ: делаю копию базы, режу ее, а потом перегружаю все свежие документы стандартной обработкой перегрузки в идентичную конфигурацию Таким образом остановка базы занимает минимум времени. Так что это изобретение велосипеда полезно только для развития мозгов.
ev-kov; iov; arr; +3 Ответить
18. Arin 29.09.11 18:36 Сейчас в теме
19. Dolly_EV 269 29.11.12 16:04 Сейчас в теме
Автор, спасибо! очень помогло.. Только немного добавил, чтобы была возможность не наглухо удалять документы и движения, а только помечать на удаление:
1. на форму флаг "только пометка Х"
2. в модуль два условия "Если флТолькоПометка=0 Тогда"
при удалении шапок документов и перекрестных сслок
и вилку при удалении ссылок из _1SJourn
Если флТолькоПометка=0 Тогда"
 ... delete
Иначе
 ...ТекстЗапроса = "
	|UPDATE
	|	_1SJourn
	|SET
	|	_1SJourn.IsMark=1
....
КонецЕсли
Показать
Slypower; +1 Ответить
Оставьте свое сообщение