Альтернативный контроль помеченных и быстрое удаление средствами SQL

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

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

удаление помеченных объектов

Эта обработка является логическим продолжением статьи "Свертывание объемной базы средствами SQL" http://infostart.ru/public/249429

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

Что послужило поводом для создания собственного решения: 

Типовой механизм платформы "Удаление помеченных объектов" имеет два недостатка: работает очень медленно и требует монопольного режима.

Медленно потому, что: 

1. пытается сделать все и сразу для всех объектов. Хотя есть возможность ручного выбора объектов, но ты же не будешь как дятел по одному объекту выбирать каждую минуту? 

2. пытается найти и показать все ссылки на объект (хотя справедливости ради надо отметить в упр формах есть режим "Полное удаление" - там на это время не тратится, но опять же сразу для всех объектов) 

Требует монопольного режима потому, что:

1С исходит из самого пессимистичного сценария - во время проверки на удаляемость какой ни будь пользователь может создать ссылку на удаляемый объект, а мы его уже поставили в очередь на удаление и через некоторое время удалили. Монопольный режим полностью исключает вероятность появления битых ссылок. Но как быть в случае работы пользователей с базой в режиме 7*24?

Другое решение - обработка с ИТС УдалениеПомеченныхОбъектов.epf (или DeleteMarkedObjects). Она позволяет анализировать и удалять в разделенном режиме. Но в ней используется все тот же встроенный в платформу метод ТаблицаСсылок = НайтиПоСсылкам(МассивКУдалению). Именно он работает крайне медленно. Даже если переписать обработку и подсовывать ей объекты по одному, она будет искать все ссылки на объект, на чем тратится безумное количество времени. Так же из-за большого временного лага между анализом и непосредственным удалением появляется довольно высокий шанс вклинивания какого ни будь Powered User и генерации битых ссылок. Битые ссылки - явление достаточно неприятное и трудно исправимое. И хотя средства лечения давно найдены (например //infostart.ru/public/98973/), но зачем нарываться?

Справедливости ради надо отметить одно очень интересное решение "Свертка базы SQL + Альтернативный контроль удаления помеченных" //infostart.ru/public/139651/. Но тут опять не без ложки дегтя. Оно довольно-таки платное. Кроме того мне показался сценарий автора слишком уж сложным и в итоге негодным для разделенного режима. Да, он сделал быстрый движок для анализа и удаления, быстрее чем в вышеупомянутых решениях, но все равно остается опасно большой временной лаг между анализом и непосредственным удалением, потому что он пытается за один раз удалить все по максимуму, а для этого требуется долгий алгоритм для выявления последовательных или закольцованных цепочек ссылок. 

Я решил максимально ускорить процесс анализа удаляемости. Это можно сделать только за счет упрощения алгоритма. Приносим в жертву качество, получаем выигрыш в скорости и уменьшаем шансы появления битых ссылок. Под низким качеством я понимаю недообследованные до конца и потому оставленные неудаленными объекты. Что происходит в моей обработке: я анализируется последовательно каждый объект, если нахожу хотя бы одну ссылку на него, то перехожу к следующему объекту. Если ссылок не найдено, то сразу удаляю объект, а не накапливаю список для отложенного пакетного удаления. Если есть длинные цепочки последовательных ссылок, то пользователь интерактивно может повторить анализ/удаление несколько раз. Если есть закольцованные цепочки, то мой алгоритм их конечно же не разорвет, но каков процент таких цепочек обычно бывает в общей массе, особенно в массе удаляемых за прошлые периоды документов при свертке?! Окончательную зачистку можно сделать в монопольном доступе типовым механизмом "Удаление помеченных объектов" - он работает быстро при небольшом количестве помеченных.

Как это работает на уровне интерфейса:

1. Если БД на SQL, то на закладке "Настройки SQL" указываем параметры подключения к SQL. Нажимаем кнопку "Проверить подключение к SQL". Если все ОК то при последующем заполнении таблицы на закладке  "Объекты поиска" будет выдана информация о размерах таблиц:

Вес одной записи, KB
Total table size, KB
Index size, KB
Data size, KB
Unused space, KB

2. На закладке "Настройки SQL" выбираем способ удаления: средствами 1С или SQL. Понятное дело, если ваша база файловая, то вариант один. Если база на SQL, и у вас нет предрассудков против использования не-1С-методов, выбирайте второй вариант. При этом скорость удаления будет существенно выше засчет сокращения накладных расходов, связанных с работой сервера 1С и вызовом предопределенных процедур в модуле удаляемого объекта.
Для режима "Удалять средствами SQL" можно включить режим "Записывать в журнал регистрации событий". При этом журнал будет заполняться по аналогии с типовым удалением средствами 1С, только в поле "Комметарий" будет пометка "Удалено средствами SQL".

3. На закладке "Объекты поиска" нажимаем кнопку "Заполнить".
В список попадают справочники и документы с ненулевым количеством объектов БД, отсортированные в обратном порядке по колонке "Кол помеченных" (или по колонке "Вес одной записи, KB", если база на SQL)- это чтобы сразу было видно с кого начать анализ/удаление. 
Для документов подсчитывается количество объектов без движений в колонке "Кол без движений". Это могут быть проведенные документы с очищенными движениями как часть кампании по сворачиванию базы.
Если у вас база на SQL и на закладке "Настройки SQL" указаны верные параметры подключения к SQL, то будут заполнены колонки с размерами в килобайтах.
Единственная колонка "Можно удалять" будет заполнена на этапе удаления, который можно запустить в режиме имитации.

4. Устанавливаем галочки в колонке "Пометка". Можно воспользоваться кнопками групповой установки или снятия пометок. Если выделить несколько строк, то действие снятия/пометки будет для этих строк. Если выделена только одна строка, то действие снятие/пометка будет для всего списка.

5. После выбора объектов МД можно переходить к поиску соответствующих объектов БД - кандидатов на анализ и удаление. Для этого нажимаем кнопку "Заполнить" на закладке "Помеченные на удаление" и/или "Документы без движений". На закладке "Документы без движений" можно указать отбор по периоду для документов.

6. На закладке "Схема анализа" нажимаем кнопку "Заполнить". На этом этапе для каждого анализируемого объекта МД готовятся тексты запросов типа "ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ всех таблиц, у которых есть поля со ссылками на этот объект МД".

7. Нажимаем кнопку "Анализ (удаление)". Дальше идет вопрос "Одновременно удалять?". Если ответить НЕТ, то будет выполнена имитация удаления, и в таблице "Объекты поиска" будет заполнена колонка "Можно удалять".

Основные фишки на уровне кода:

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

ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ Документ.АвансовыйОтчет.Прочее КАК Т ГДЕ Т.Субконто1 = &Параметр ИЛИ Т.Субконто2 = &Параметр ИЛИ Т.Субконто3 = &Параметр ИЛИ Т.СубконтоНУ1 = &Параметр ИЛИ Т.СубконтоНУ2 = &Параметр ИЛИ Т.СубконтоНУ3 = &Параметр

...

ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ РегистрНакопления.ВзаиморасчетыСПодотчетнымиЛицами КАК Т ГДЕ Т.ФизЛицо = &Параметр 

...

ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ РегистрБухгалтерии.Хозрасчетный.Субконто КАК Т ГДЕ Т.Значение = &Параметр

...

ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ РегистрБухгалтерии.Хозрасчетный КАК Т ГДЕ Т.ВалютаДт = &Параметр ИЛИ Т.ВалютаКт = &Параметр

Конечно, если поле с условием не проиндексировано, то выполняться такой запрос будет медленно, и чем больше таблица, тем медленнее запрос, потому что SQL в запросе будет тупо перебирать все записи таблицы - выполнять команду Table Scan. Конечно самое лучшее, это на время свертки базы в конфигураторе установить у таких полей признак Индексировать. Если такой возможности нет, то остается только одно - начать удаление объектов МД с самым большим показателем "Вес одной записи", т.к. они будут ссылаться на остальные не такие большие таблицы.

Чтобы определить самые тяжелые запросы, на закладку "Схема анализа" я добавил кнопку "Замерить запросы". По завершению замера будет заполнена колонка "Время запроса". По ней можно понять, каких Индексов не хватает. 

2. При удалении средствами SQL удаляются записи в таблицах:

Основная
ТабличнаяЧасть
ТаблицаИзменений

ЖурналДокументов
Последовательность

РегистрСведений (по ведущему измерению)

Например, так выглядит пакет SQL запросов для удаления одного документа, у которого несколько табличных частей, который участвует в планах обмена и в журналах документов и в последовательностях, а одна из последовательностей участвует в планах обмена, и есть регистр сведений с ведущим измерением, ссылающимся на этот документ:

DELETE FROM _Document430 WHERE _IDRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _Document430_VT10847 WHERE _Document430_IDRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _Document430_VT10887 WHERE _Document430_IDRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _Document430_VT10899 WHERE _Document430_IDRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _Document430_VT10920 WHERE _Document430_IDRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _Document430_VT10925 WHERE _Document430_IDRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _Document430_VT10943 WHERE _Document430_IDRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _Document430_VT10950 WHERE _Document430_IDRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _DocumentChngR10960 WHERE _IDRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _DocumentJournal12795 WHERE _DocumentRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _DocumentJournal23761 WHERE _DocumentRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _DocumentJournal22967 WHERE _DocumentRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _DocumentJournal23751 WHERE _DocumentRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _DocumentJournal12946 WHERE _DocumentRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _Seq17875 WHERE _RecorderRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _Seq17867 WHERE _RecorderRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _Seq17869 WHERE _RecorderRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _Seq17864 WHERE _RecorderRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _SeqChngR29764 WHERE _RecorderRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57
DELETE FROM _InfoRg13934 WHERE _Fld13935_RRRef = 0xa6dce0cb4ed5f61711e03b64f2ff7e57

И не забывайте, что при массированном удалении объектов база под SQL не уменьшается, а увеличивается за счет разрастания журнала транзакций (*.ldf). За этим надо следить и периодически сжимать, например командой DBCC SHRINKFILE

3. По ходу испытаний выяснилось, что метод Метаданные.НайтиПоПолномуИмени() очень медленно работает, причем только под 8.2. Под 8.3 видимо его оптимизировали. Но все равно пришлось его переписать по своему - см. Функция МетаданныеНайтиПоПолномуИмени()

 

В общем кому надо, пользуйтесь!

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

Наименование Файл Версия Размер
УдалениеОбъектов Barelpro

.epf 26,15Kb
28.01.14
546
.epf 26,15Kb 546 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. tormozit 6050 27.01.14 10:37 Сейчас в теме
Зачем делать запрос к таблице ДвиженияССубконто, если ты все равно делаешь запрос к основной таблице регистра бухглатерии? Оптимальнее делать запрос либо только к ДвиженияССубконто либо к двум таблицам: к основной таблице и к таблице Субконто.
2. barelpro 1184 27.01.14 10:51 Сейчас в теме
(1) tormozit,

согласен, но я умышленно разнес на два запроса.

Объясняю:

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

Например, в УПП в регистре бухгалтерии Международный есть реквизит ПервичныйДокумент - составной по всем видам документов. Но любой документ так же может быть в роли субконто этого регистра. Если буду делать все в одном запросе - усложняю задачу по поиску причины тормозов.

PS. Невнимательно прочитал вопрос. Да, запрос к Субконто более оптимальный, чем к ДвиженияССубконто, исправлю, спасибо!
3. yukon 80 27.01.14 10:57 Сейчас в теме
И не забывайте, что при массированном удалении объектов база под SQL не уменьшается, а увеличивается за счет разрастания журнала транзакций (*.ldf). За этим надо следить и периодически сжимать, например командой DBCC SHRINKFILE


Вот ведь все хорошо пишите. Но это вот зачем писать-то? На сколько увеличат объем журнала транзакций именно ваши "ручные" транзакции? Да ни насколько.

Периодически сжимать журнал транзакций на рабочей базе нельзя, ну только если вы техномазохист и/или у вас НЖМД в "сервере" аж целых 40Гб.
4. barelpro 1184 27.01.14 11:02 Сейчас в теме
(3) yukon,

вы не поверите, после удаления 50млн записей регистров методом TSQL DELETE база выросла в полтора раза (в моем случае до 150Gb) как раз за счет разрастания журнала транзакций. DELETE пишет себя в журнал транзакций, даже если recovery model = simple.
5. yukon 80 27.01.14 11:39 Сейчас в теме
(4)

вы не поверите, после удаления 50млн записей регистров методом TSQL DELETE база выросла в полтора раза


Охотно верю. И как часто вы удаляете 50 млн записей? Неужели ежедневно.

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

в моем случае до 150Gb


Если у вас на сервере один жесткий на 320Gb, то да это ПРОБЛЕМА, согласен.
6. barelpro 1184 27.01.14 17:30 Сейчас в теме
(5) yukon,

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

ps. По своему опыту знаю, что урезание файла журнала транзакций можно выполнять при работающих пользователях. Эта операция быстрая и безболезненная. А вот урезание файла с данными (mdf) может быть долгим, т.к. процесс похож на дефрагментацию диска. Файл данных разрастается, например, после реструктуризации базы - попробую объяснить почему: все таблицы пересоздаются и записываются в конец файла mdf, данные из старых таблиц переносятся в новые, старые удаляются, и появляются дырки в начале файла mdf. Как-то так...
7. yukon 80 29.01.14 12:20 Сейчас в теме
По своему опыту знаю, что урезание файла журнала транзакций можно выполнять при работающих пользователях.


Можно, но крайне не нужно.

Эта операция быстрая и безболезненная.


Это не так. Операция далеко не безболезненная.

все таблицы пересоздаются и записываются в конец файла mdf


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

Внешняя простота работы SQL-сервера, не означает, что внутри все примитивно устроено. Тот факт, что SQL сервер до определенных пределов умеет сам за собой ухаживать, не означает, что можно выполнять любые манипуляции - пока не падает все типа нормально.

В частности, размер ldf файла в модели восстановление simple SQL сервер выбирает именно такой, чтобы обслуживать базу данных при существующей интенсивности работы. Вместо помощи серверу и увеличения размера ldf файла, хотя бы до размера "чуть больше чем надо", вы предлагаете на постоянной(!) основе вставлять серверу палки в колеса, это же "быстро и безболезненно".
8. barelpro 1184 29.01.14 12:36 Сейчас в теме
(7) yukon,
Юрий, я прямо чувствую, что вы обладаете тайными знаниями, и очень искусно их прячете от общества :)

Дайте пруфлинки, объясните развернуто, чем таким чревато урезание журнала транзакций при подключенных к базе пользователях? Все вам скажут спасибо, если знания будут полезны. Тут атмосфера вполне доверительная.
9. yukon 80 29.01.14 16:10 Сейчас в теме
Юрий, я прямо чувствую, что вы обладаете тайными знаниями, и очень искусно их прячете от общества :)

Хорошо хоть не сакральными.

Начнём с Ab ovo: http://msdn.microsoft.com/ru-ru/library/ms189085(v=sql.105).aspx Усечение журнала транзакций

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

Там же схема работы механизма.

http://msdn.microsoft.com/ru-ru/library/ms345414(v=sql.105).aspx Факторы, могущие вызвать задержку усечения журнала

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

Из популярных изложений было отличное на sqlcmd.ru. Правда они чего-то закрылись :( , так, что придется смотреть через archive.org

Первая часть: http://web.archive.org/web/20120416065146/http://www.sqlcmd.ru/trans_log_internals-part01.html Как перестать называть журнал транзакций SQL Server лог-файлом и прекратить борьбу за его размер. Часть 1/12

Последняя с выводами:http://web.archive.org/web/20120418002619/http://www.sqlcmd.ru/trans_log_internals-part12.html Как перестать называть журнал транзакций SQL Server лог-файлом и прекратить борьбу за его размер. Часть 12/12.

Чего не следует делать с журналом транзакций никогда в жизни ни при каких обстоятельствах.
...
* сжимать (SHRINKFILE) лог. Да, в отличии от предыдущих пунктов нельзя сказать что это — «категорическое нет», но все же «почти всегда нет»;
* сжимать (SHRINKFILE) лог на регулярной основе, по расписанию. А вот это — необсуждаемый, совершенно полный и законченный бред. Даже продуманное и обоснованное однократное сжатие лога следует рассматривать как ситуацию чрезвычайную и как попытку предотвратить надвигающуюся катастрофу. Делая же это по расписанию вы признаете, что не прочь поработать «пожарником» на постоянной основе, вместо того что бы один раз тщательно потушить все «очаги возгорания» имеющиеся во вверенной вашим заботам системе.


Пропажу обнаружил вот прямо сейчас. Надо озаботиться сохранением в нормальном виде.
10. barelpro 1184 29.01.14 17:09 Сейчас в теме
(9) yukon,

вот, уже лучше, осталось только чтобы ссылки открывались :)
11. yukon 80 29.01.14 17:15 Сейчас в теме
(10)

По клику не открываются - какой-то набор букв вываливает :( а copy-paste работает. Мистика :)
12. barelpro 1184 29.01.14 18:30 Сейчас в теме
(11) yukon,

прочитал, но так и не нашел ответа на свой вопрос: если у нас объемная 1С-база, с ежедневным полным бэкапом и включенным recovery mode = simple, и мы провели массированное удаление с помощью команды T-SQL DELETE, и получили распухший журнал транзакций, соизмеримый с размером файла данных, и видим, что свободное файловое пространство на исходе, и спинным мозгом чувствуем, что в любой момент наступит коллапс всей базы, что же все-таки КОНКРЕТНО нам мешает в этом случае сделать усечение файла журнала транзакций?
13. yukon 80 30.01.14 10:18 Сейчас в теме
(12)

прочитал


0_0 за час? Там только чтения страниц 30 А4. Минимум на весь день, а с практикой так и на все 3-4 дня.

и видим, что свободное файловое пространство на исходе


Это как так? 150 гигов для современных дисков это не очень внушительный объем. Даже для серверных версий дисков. Заложите в бюджет расширение дискового пространства.

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

все-таки КОНКРЕТНО нам мешает в этом случае сделать усечение файла журнала транзакций


Конкретно, разово ничего не мешает. Но это далеко не простая и безболезненная процедура. Если уж прям нужно то сделайте ее во время наименьшей загрузки базы. Еще лучше - в "монопольном" режиме. При этом размер усеченного файла оставьте достаточно большим, для обслуживания нормальной рабочей интенсивности работ.

В нормальном режиме эксплуатации SQL сервер самостоятельно производит усечение журнала по мере необходимости.
15. barelpro 1184 30.01.14 15:13 Сейчас в теме
(13) yukon,

теперь понял, спасибо за совет! А вы не хотите по этому поводу написать статью на ИС с конкретными рекомендациями для 1С-внедренцев - как правильно настраивать журнал транзакций и почему, чтобы уберечь от возможных негативных последствий?

PS. Для меня, как для внешнего подрядчика обычно недоступны все IT-ресурсы заказчика. Чаще всего они выделяются по мере необходимости - нарезаются виртуальные машины с определенными параметрами. Поэтому на тестовых базах такое часто случается - недостаток дискового пространства. Эту ситуацию я и описал выше.
14. iov 409 30.01.14 14:36 Сейчас в теме
(9)(10)(11)
архив zip Сохранил в одном архиве для истории.
16. yukon 80 30.01.14 18:30 Сейчас в теме
(14)

Спасибо.

(15)

как правильно настраивать журнал транзакций


Ну вы и задачки ставите. "Правильно" - это к SQL DBA, а "на пальцах" могу попробовать.
17. Pavl0 88 28.02.14 12:38 Сейчас в теме
Маленький баг есть. Получить его сложно. Если в конфигурации количество регистров > 255 то на базе MS SQL упадет при заполнении объектов поиска. У меня такая ситуация на УПП+Appius на документе КорректировкаЗаписейРегистров.
Просто повесил проверку на количество таблиц.
18. Wrols 82 29.04.14 19:36 Сейчас в теме
Почему-то в моем случае сразу не получилось запросто использовать...

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

Пытался сделать удаление одного вида документа.
При заполнении таблица "Документы без движений" - пустая, т.к. при ее заполнении анализируются документы не помеченные на удаление.

В процедуре "АнализОднойИзТаблиц" в строке модуля 739 под комментом "еще раз проверим отсутствие движений" выполняется запрос на наличие движений у объекта с условием "НЕ ТекДокумент.ПометкаУдаления".
При этом результат запроса всегда пустой и удаление не происходит.

К слову, в выражении "ТекстЗапроса_БезДвижений" тоже содержится условие на "НЕ ТекДокумент.ПометкаУдаления".
igor.ofitserov; pit201201; Збянтэжаны Саўка; +3 Ответить
22. Збянтэжаны Саўка 245 20.11.14 15:11 Сейчас в теме
глюк какой-то?, не могу изменить адресат поста, ошибся и ответил 20-му
(18) Wrols, (19) timm00,
мой предыдущий пост предназначался вам
19. timm00 119 01.06.14 09:23 Сейчас в теме
Это все потому что данный запрос относится только к таблице документов без движений. А автор как-то забыл поставить условие. После правки данного блока вроде все нормально.
Збянтэжаны Саўка; +1 Ответить
21. Збянтэжаны Саўка 245 20.11.14 14:18 Сейчас в теме
(19) timm00, (18) Wrols,
насколько я понял то там ошибка не в запросе, а в условии после него:
вместо условия
Если Запрос.Выполнить().Выбрать().Количество() = 0 Тогда
нужно
Если Запрос.Выполнить().Выбрать().Количество() > 0 Тогда

т.е. если есть движения, то нельзя удалять

//еще раз проверим отсутствие движений
Если Строка.ТипМД = "Документ" Тогда

  Запрос.Текст = 
    "ВЫБРАТЬ ПЕРВЫЕ 1 1
    |"
    + НайденныеСтроки[0].ТекстЗапроса_БезДвижений
    + "
    |И ТекДокумент.Ссылка = &Параметр
    |И НЕ ТекДокумент.ПометкаУдаления
    |";
					
  //Если Запрос.Выполнить().Выбрать().Количество() = 0 Тогда
  Если Запрос.Выполнить().Выбрать().Количество() > 0 Тогда
    Строка.МожноУдалять = Ложь;
    Прервать;
  КонецЕсли;

КонецЕсли;
Показать
pit201201; +1 Ответить
34. avasl 69 27.12.16 18:07 Сейчас в теме
(21) правильное исправление такое

добавить перед выполнением запроса строку

Запрос.Текст = СтрЗаменить(Запрос.Текст, "НЕ ТекДокумент.ПометкаУдаления", "ИСТИНА")


Кусок тогда будет выглядеть так

				//еще раз проверим отсутствие движений
				Если Строка.ТипМД = "Документ" Тогда
					
					Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 1
					|"
					+ НайденныеСтроки[0].ТекстЗапроса_БезДвижений
					+ "
					|И ТекДокумент.Ссылка = &Параметр
					|И НЕ ТекДокумент.ПометкаУдаления";
					
					//s
					Запрос.Текст = СтрЗаменить(Запрос.Текст, "НЕ ТекДокумент.ПометкаУдаления", "ИСТИНА");
					
					Если Запрос.Выполнить().Выбрать().Количество() = 0 Тогда
						
						Строка.МожноУдалять = Ложь;				
						Продолжить; //s //Прервать;
						
					КонецЕсли;
					
				КонецЕсли;
Показать


Тогда для любого очередного документа к удалению, не важно помеченный он или нет, будет проверяться отсутствие движений. Если есть движение хоть в каком то регистре, где документ является регистратором, то результат запроса будет пустой и соответственно выполнится условие
Запрос.Выполнить().Выбрать().Количество() = 0

и у документ справедливо не будет удален.

Автору бы не мешало поправить обработку
20. berator37 70 31.08.14 08:59 Сейчас в теме
Можно на почту Альтернативный контроль помеченных и быстрое удаление средствами SQL berator37@mail.ru . Заранее спасибо
23. zekrus 154 20.01.15 11:15 Сейчас в теме
Добрый день!
Пытаюсь в УТ 11.0 почистить справочник "Контрагенты".
{Форма.Форма.Форма(539)}: Поле объекта не обнаружено (ОбщийРеквизит)
МдРез = Метаданные[ИмяПоля];
romku; pit201201; +2 Ответить
26. pit201201 75 29.07.15 09:06 Сейчас в теме
(23) zekrus,
В своей версии обработки я добавил
СпЗамен.Вставить("ОбщийРеквизит", "ОбщиеРеквизиты");
последней строчкой. Вроде взлетело.
ElektronHM; +1 Ответить
24. b-dm 169 28.01.15 12:38 Сейчас в теме
А можно ли как то удалить документы за определенный период ?
25. Aleksey81 1048 05.04.15 19:23 Сейчас в теме
barelpro, вы очень душевно поработали. Восхищает, что обработка (субъективно) раз в 50 быстрее удаляет данные и при этом позволяет другим пользователям полноценно работать с базой (в том числе запись и проведение документов. Спасибо.
Однако есть и просьба устранить две странные ошибки.
1) Заменить процедуру ЗначениеНеЗаполнено на сам знаете что....
2) Возможно я не прав, но.... у похоже в коде процедуры АнализОднойИзТаблиц
Понадобилось заменить
						
Строка.МожноУдалять = Ложь;				
//Алексей
//Возврат; неправильная команда
Продолжить;

Потому как ваша обработка останавливает любую активность, как только находит строку, которую удалять нельзя.
Поправьте меня, если я не прав.
37. dnikolaev 20.06.18 00:10 Сейчас в теме
(25) Алексей, спасибо. я поправил как вы сказали и все заработало. а то у меня тоже останавливалась сразу обработка.

автору обработки - огромнейшее спасибо за труд. реально выручил. можно сказать вытащил из трясины ))
27. pit201201 75 29.07.15 09:11 Сейчас в теме
Хорошая обработка! Даже не смотря на некоторые, выше отмеченные ошибки.
Есть предложение добавить опцию "отложенное удаление", при котором скрипт не выполняется, а сохраняется в текстовый файл.
28. pit201201 75 29.07.15 10:14 Сейчас в теме
Очень не хватает функции "Разорвать циклическую ссылку" .
А то есть два документа СчетФактураВыданный (реквизит ДокументОснование) и ОказаниеУслуг(реквизит СчетФактура) оба помечены на удаление и ссылаются друг на друга.
29. pit201201 75 29.07.15 10:35 Сейчас в теме
Чтобы удалить документы, ссылающиеся друг на друга добавил строки

Если (Найти(ИмяТаблицыВЗапросе,"Документ.")>0) Тогда 
    НоваяСтрока.ТекстЗапроса = НоваяСтрока.ТекстЗапроса + " И НЕ Т.Ссылка.ПометкаУдаления";
КонецЕсли;

в процедуру СоздатьЗапросВСхемеАнализа

Очень хочется услышать мнение автора обработки на этот счет.
30. Tciban 30.09.15 10:02 Сейчас в теме
(29) pit201201, А где это добавить, поточнее можно?
31. b-dm 169 18.10.16 18:03 Сейчас в теме
32. Godman 67 26.12.16 16:44 Сейчас в теме
Не работает :((((
При удалении без проверки на ссылки выдало:
{ВнешняяОбработка.УдалениеОбъектовBarelpro.Форма.Форма.Форма(777)}: Значение не является значением объектного типа (НайтиСтроки)
НайденныеСтроки = СХБЗ.НайтиСтроки(Новый Структура("ТипМД, ОбъектМД", Строка.ТипМД, Строка.ОбъектМД));
33. zekrus 154 26.12.16 20:36 Сейчас в теме
Странно у меня работает.
35. user839171 18.10.17 13:23 Сейчас в теме
На файловой базе не заработала
Проходит анализ объектов, но объекты в результате не помечаются галочкой "Можно удалять" и не удаляются.
Жаль бессмысленно потраченные 5 $m .
36. Харьковец 21 24.05.18 22:46 Сейчас в теме
Подтверждаю, что для файловой базы ЭТА обработка не работает! Занимаюсь отладкой и исправлением ошибок уже второй час и пока результата нет. Действительно жаль 5$m!!!!
38. dnikolaev 20.06.18 00:11 Сейчас в теме
РАБОТАЕТ! тем у кого не сработало - см. комментарий 25
39. dnikolaev 20.06.18 00:15 Сейчас в теме
прогонять приходится 2-3 раза. потом уже остатки добиваем штатным удалением помеченных.
базу упп 1.3 на 150 тысяч помеченных объектов, на обычном пк corei5 с 8 гб оперативки зачистила за сутки. автору спасибо
40. doctorov_s 40 04.03.19 16:32 Сейчас в теме
Скачал данную обработку в итоге по времени работает не быстрее да ладно бы не быстрее, так она работает не корректно (удаляет лишние данные без движений, да и приходится править ошибки в коде) все что написано выше что полезная полная чушь...
41. doctorov_s 40 04.03.19 16:33 Сейчас в теме
Жаль потраченные 5 стартмани
42. b-dm 169 04.03.19 17:48 Сейчас в теме
(41) - там уже выше комментировали, что она действительно работает очень выборочно...но вы же всегда можете заминусовать :)
43. Deryni 23 07.03.19 16:10 Сейчас в теме
Блок, начинающийся со строки 739
				Если Строка.ТипМД = "Документ" Тогда
					
					Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 1
					|"
					+ НайденныеСтроки[0].ТекстЗапроса_БезДвижений
					+ "
					|И ТекДокумент.Ссылка = &Параметр
					|И НЕ ТекДокумент.ПометкаУдаления";
					
					Если Запрос.Выполнить().Выбрать().Количество() = 0 Тогда
						
						Строка.МожноУдалять = Ложь;				
						Прервать;
						
					КонецЕсли;
					
				КонецЕсли;
Показать


Я так понимаю, что тут проверяется, есть ли у документа движения. Во-первых при этом вылетает на первом же документе, у которого нет движений. Поэтому вот это:
					Если Запрос.Выполнить().Выбрать().Количество() = 0 Тогда

меняем на это:
					Если Запрос.Выполнить().Выбрать().Количество() <> 0 Тогда


а Прервать; на Продолжить;
Krimskiy_xan; karpov; +2 Ответить
44. acanta 07.03.19 16:15 Сейчас в теме
А что понимается под выбрать()?
Создается и сразу же уничтожается в памяти объект из которого берется только количество()? Флуктуация какая то..

А потом что с запросом, снова выбрать или выгрузить?
45. Deryni 23 07.03.19 17:41 Сейчас в теме
(44) тут как раз всё понятно, проверяем пустая ли выборка.
Выполнить() создаёт объект РезультатЗапроса.
Выбрать() создаёт объект ВыборкаИзРезультатаЗапроса для этого объекта
Количество() возвращает количество значений в выборке.
В принципе можно заменить на
НЕ Запрос.Выполнить().Пустой()

А дальше выгружать нечего. Это запрос просто проверить, есть ли ссылки на этот объект в движениях.
karpov; acanta; +2 Ответить
46. GC_Rogneda 12.09.19 11:24 Сейчас в теме
Буду пробовать на базе 200 ГБ )
47. altshift 23.10.19 14:40 Сейчас в теме
На управляемых формах не планируете делать?
48. buy_sale 220 11.12.19 22:36 Сейчас в теме
Хотелось бы, чтобы автор учел комментарии и исправил свою обработку, иначе непонятно можно ей пользоваться или нет.
49. balhomes 6 22.06.20 22:58 Сейчас в теме
И где же тут быстрое удаление?

скорость такая-же как и стандартной обработкой. даже чуть ниже. 1 объект в секунду!

и стоило ради этого городить такой огород?

А риски порушить базу того точно не стоят.
Прикрепленные файлы:
50. barelpro 1184 24.06.20 19:35 Сейчас в теме
(49) Обработка актуальна для больших баз, где стандартная процедура поиска и удаления помеченных уходит в бесконечность и не отслеживает текущий прогресс. На небольших базах обработка не имеет смысла.

Коллеги, я больше не занимаюсь этой темой, обработка идёт as is. Просьба не ждать от меня ее развития. Я дал идею. Всё в ваших руках.
Оставьте свое сообщение

См. также

Свертка базы SQL + Альтернативный контроль удаления помеченных Промо

Свертка базы Чистка базы Производительность и оптимизация (HighLoad) v8 1cv8.cf Платные (руб)

Свертка базы 1с 8.1, 8.2, 8.3 (может использовать прямые запросы к MSSQL, PostgreSQL). Сворачивает документы, регистры накопления, сведений, бухгалтерии (но не регистры расчета). Универсальна, подойдет к любой конфигурации (обратите внимание на известные ограничения). Включает в себя нестандартный быстрый контроль удаления помеченных объектов и удаление помеченных объектов прямыми запросами. Поставляется с исходными кодами.

6500 руб.

13.06.2012    75786    76    100    

Сжатие (уменьшение размера) файлов изображений 1С без внешних компонент - для любой конфигурации на основе БСП > 2.3

Свертка базы Универсальные обработки v8 Розница ERP2 БП3.0 УТ11 ЗУП3.x Абонемент ($m)

Если в базу загружено большое количество изображений, картинок, фото товаров, размером более 2-3МБ, то в базе будут сильно тормозить все процессы, связанные с чтением-передачей файлов изображений: формирование прайса, отчетов с картинками, выгрузка изображений товаров на сайт и т.д. Данная обработка позволяет провести оптимизацию (уменьшение размера) загруженных картинок в базу 1С любой конфигурации на основе БСП >= 2.3 стандартными средствами 1С, сохраняя при этом достаточно хорошее качество сжатых картинок. Проверено на релизе УТ 11.4.11.71, для обработки понадобится также версия Платформы 1С >= 8.3.14.

1 стартмани

08.03.2020    7173    31    1sig    27    

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

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

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

5 стартмани

05.03.2020    4705    24    YAGolova    6    

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

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

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

1 стартмани

15.11.2019    13602    156    dmitrydemenew    32    

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

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

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

1 стартмани

19.09.2017    17609    6    serg-lom89    0    

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

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

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

10 стартмани

20.09.2019    12220    68    nomad_irk    75    

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

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

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

1 стартмани

12.08.2019    6709    40    Fox-trot    26    

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

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

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

1 стартмани

04.03.2019    17334    201    Sashares    36    

Очистка кэша 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    39124    402    Eugen-S    34    

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

Универсальные обработки Чистка базы 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    23988    311    morozov.sv    50    

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

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

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

1 стартмани

31.10.2018    18584    187    1c.pro.fun    18    

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

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

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

3 стартмани

14.08.2018    16477    320    serge_msk    56    

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

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

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

10 стартмани

31.10.2016    53143    635    m..adm    217    

Свертка 1С: ЗУП 3

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

Свертка 1С: Зарплата и управление персоналом 3 по трем регистрам. Когда у всех полетел НДФЛ в начале 2018 года, решили сделать обработку свертки ЗУП 3 с сохранением данных о среднем заработке для расчета пособий. 

5 стартмани

11.07.2018    16246    122    Bortkevich    21    

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

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

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

3 стартмани

02.07.2018    11070    73    PSMNN    1    

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

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

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

5 стартмани

22.06.2018    16520    20    Alexander.Shvets    9    

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

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

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

2 стартмани

14.01.2012    78742    602    stvorl    76    

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

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

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

2 стартмани

04.06.2018    13615    78    Kutuzov    17    

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

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

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

5 стартмани

25.04.2018    18308    129    METAL    31    

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

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

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

1 стартмани

23.01.2018    18479    115    mugr    26    

Переход с УСН на ОСНО. Формирование остатков НУ и данных по регистру затрат УчетЗатратРегл (РАУЗ) Промо

Свертка базы Универсальные обработки Учет ТМЦ Учет ТМЦ v8 КА1 Россия НУ Абонемент ($m)

Не знаете, как побороть сообщение "движения сформировались без суммовой оценки" при проведении документов после перехода на ОСНО - эта обработка для вас. Обработка выполняет закрытие остатков по счетам учета ТМЦ и формирование новых остатков на заданную пользователем дату с проверкой итоговых сумм и количества по БУ и НУ, а также закрытие остатков по старым ключам аналитики (без применения счетаНУ) и формирование новых остатков. Для конфигурации Комплексная Конфигурация 1.1

10 стартмани

30.01.2014    28507    21    buy_sale    7    

Удалить "ненужную организацию" в БП 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    33373    850    Ant10    0    

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

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

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

1 стартмани

08.07.2017    16132    110    denacid    29    

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

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

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

1 стартмани

06.06.2017    22402    57    Dima_    7    

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

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

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

2 стартмани

25.12.2009    62284    263    sebe    20    

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

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

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

1 стартмани

09.05.2017    17852    307    stone_evil    21    

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

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

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

1 стартмани

20.12.2016    18314    117    Alxby    17    

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

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

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

1 стартмани

02.11.2016    22177    98    Luchik    8    

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

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

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

1 стартмани

19.06.2013    18785    55    IceEvgen    11    

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

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

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

3 стартмани

02.08.2016    17443    75    roma_semenov79    6    

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

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

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

3 стартмани

31.07.2016    29328    355    Krasnyj    52    

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

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

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

1 стартмани

21.07.2016    81791    886    ekaruk    40    

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

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

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

1 стартмани

28.12.2011    170352    2294    StepByStep    420    

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

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

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

2 стартмани

02.06.2016    25763    53    zzz_natali    20    

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

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

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

1 стартмани

06.04.2016    24847    130    endym    7    

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

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

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

2 стартмани

05.04.2016    21268    74    katerinaUniv    8    

[БП 3.0] Свертка БП 2.0 или БП 3.0 документами "Ввод начальных остатков" в БП 3.0 beta

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

Новое воплощение старой идеи http://infostart.ru/public/118486/ Много взято отсюда http://infostart.ru/public/303564/ Движок переноса данных http://infostart.ru/public/421541/ 20.11.2020 - Версия 6.6.0.3 - Платформа 8.3.18.1208, БП 3.0.84.46 БП 2.0.66.122. Исправлен перенос ставки НДС в номенлатуре при свертки из БП 2.0. Исправлены замеченные ошибки.

2 стартмани

03.04.2016    52949    890    Alex_E    415    

Ещё один вариант свертки регистров учета НДФЛ (для ЗБУ/ЗКОУ/ЗКМУ ред. 1, ЗУП ред. 2.5)

Свертка базы Зарплата Зарплата v8 ЗУП2.5 ЗКБУ Россия НУ НДФЛ Абонемент ($m)

С появлением формы 6-НДФЛ вопрос правильного ведения исчисленного/удержанного/перечисленного НДФЛ встал не просто остро, а сверхостро! Поможем расчетчикам чем сможем...

1 стартмани

10.03.2016    35219    283    GlebHappy    50    

Свертка / обрезка баз украинских конфигураций УТ, БУ, УТП

Свертка базы v8 БП2.0 УТ10 Украина Абонемент ($m)

Начался еще один год. Возникла необходимость урезать накопленные данные. Стандартная обработка на украинских конфигурациях не работает. Пришлось внести поправки.

5 стартмани

23.02.2016    31937    97    Igortid    17    

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

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

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

1 стартмани

22.02.2016    28602    44    endym    14    

Непосредственное удаление объектов из базы (не монопольно - вся цепочка)

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

Обработка для непосредственного удаления объекта и всей сопутствующей цепочки объектов, в которых он участвует.

2 стартмани

07.02.2016    18816    267    maXon777    12    

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

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

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

3 стартмани

02.02.2016    16804    77    v.krivenko    13    

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

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

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

1 стартмани

17.12.2015    11247    116    DrugOn    18    

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

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

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

10 стартмани

02.10.2015    55207    326    spy-83    83    

Версионирование объектов - отключение создания одинаковых версий + обработка по их удалению

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

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

1 стартмани

10.08.2015    20747    24    VovkaPutin    7    

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

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

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

1 стартмани

31.07.2015    37289    86    primat    11