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

Быстрое удаление движений в базе данных.

Очень простая вещь, но вопросы «Как удалить все, оставив справочники?» возникают на одноесовских форумах раз в месяц регулярно.

Решил выложить, чтобы можно было отвечать просто ссылкой

Итак. Имеем две версии. bat файл для dbf и ert для sql. Для sql необходима 1cpp (лежит в архиве).

И батник и обработка выполняют одни и те же действия, удаляют все движения (документы, движения по регистрам, проводки и т.д.), оставляя нетронутыми справочники и константы.

После выполнения:
(для dbf, после выполнения батника) Запустить предприятие в монопольном режиме (восстановит файлы)

(для обоих вариантов dbf и sql) Тестирование и исправление с настройками: очищать ссылки, удалять объекты.

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

ПРЕДУПРЕЖДЕНИЕ!!!

И батник и обработка удаляют справочник SC214. В типовых это справочник партий. Поэтому проверьте это в 1cv7.dd или 1cv7.dds и в случае необходимости внесите изменения в обработку.

Не храните эту программу в доступном для неопытных пользователей месте.
При случайном удалении восстановление почти невозможно.

Не забывайте делать копии базы. Обработки ОПАСНЫ. Без рецепта врача (т.е программиста) не применять!!!

29 Comments

  1. vovan519

    Думаю на Новый год актуально.

    Reply
  2. LenaTorpeda

    Сколько времени занимает очистка? Например период- год.?

    Reply
  3. vovan519

    (2) Не период, а все!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! секунды 2-3.

    Reply
  4. LenaTorpeda

    Не может быть? Хорошо .Сейсчас скачаю и проверю.Если наврал, минус тебе за меня поставят(сама пока не могу) 🙂

    Reply
  5. LenaTorpeda

    А пока посмотри. В чем разница?

    http://infostart.ru/community/groups/18/forum/7651/

    Reply
  6. LenaTorpeda

    На (4) опечатка !

    Reply
  7. JohnyDeath

    Торпеда, а что тут удивительного? Я даже не качая могу сказать как это делаетс. Наверняка просто грохаются все дбф файлы, кроме констант и справочников (sc* и 1SCONST). Для скуля, наверное, делается дроп тэйбл по тому же принципу.

    Единственное, что ещё надо будет сделать — это очистить историю периодических реквизитов, т.к. она тоже храниться в 1SCONST

    Reply
  8. PeRom

    4. Что-бы могла, если захочешь. А я пока «+» ставлю…

    Reply
  9. vovan519

    Ну для свертки необходимо.

    1 сделать копию, даже лучше две.

    2 пишем простую обработку, которая по текущим остаткам создает документы ввод остатков… в первой копии.

    3 для второй копии удаляем все движения.

    4 из первой копии переносим документы ввод остатков. (переносов полно, но не у все нормальная синронизация, так что проверяем).

    5 удалить лишнюю периодику можно http://www.infostart.ru/projects/2788/

    Reply
  10. PeRom

    7. За реализацию этого и «+», историю вопроса изучил основательно и немало намучился на начальных этапах со штатной сверткой и подобными.

    Reply
  11. LenaTorpeda

    (7) молодец! Верно подумал! Я бы тебе плюс поставила.

    Reply
  12. JohnyDeath

    (0) Про справочник партий.

    1. Если это на скуле и ты используешь 1С++, то тебе не составит труда узнать имя таблицы этого справочника http://www.1cpp.ru/docum/icpp/html/ODBC.html#getreftablename 😉

    2. Если дбф и внешний батник, то наваял бы поиск этих данных из дд файла, благо вся инфа там хранится как текст.

    Reply
  13. vovan519

    12 прав абсолютно.

    Но посмотреть и проверить это две секунды делов. А универсальной обработку все равно не сделаешь. И справочник Партии переименовывают и в нетиповых попадаются справочники со ссылками на документы.

    Кроме этого, как ты заметил в (7) многие знаю об этом и используют. Так что тут нет ничего нового.

    Поэтому процетирую сам себя:

    «Очень простая вещь, но вопросы «Как удалить все, оставив справочники?» возникают на одноесовских форумах раз в месяц регулярно.

    Решил выложить, чтобы можно было отвечать просто ссылкой»

    Reply
  14. vovan519

    12 используя 1С++ узнавать имя справочника Партии не обязательно, должно хватить и

    TRUNCATE TABLE $Справочник.Партии

    Reply
  15. JohnyDeath

    (14) ну да, точно! я по длинному пути пошёл.

    Вообще настроение какое-то «попи*деть», пообсуждать идеи. ХЗ с чем связано, может с последней пятницей уходящего года? )))

    Reply
  16. PeRom

    Предложение по доработке, исключающее «И батник и обработка удаляют справочник SC214. В типовых это справочник партий. Поэтому проверьте это в 1cv7.dd или 1cv7.dds » (0). Можно вывести список справочников для выбора на удаление и через ИД удалить только выбранные (можно сделать справочник SC214 выбранным по умолчанию).)

    Reply
  17. venger

    (12) А DD можно посмотреть и так;-)

    http://infostart.ru/projects/3080/

    Reply
  18. vovan519

    16, 17 Спасибо. Но думаю лучше оставить как есть. И на то есть три довода.

    1. Экономия около 2 секунд.

    2. Полной универсальности не добится все равно.

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

    Кроме этого для sql см 14, а смотреть dd из батника … 🙂

    Reply
  19. LenaTorpeda

    Молодец! Все нормально,как я раньше не догадалась. Вот только с очисткой истории

    промах.Если подключить твою обработку http://www.infostart.ru/projects/2788/

    то выдает вот это: Неудачная попытка удаления значения: Значение установлено документом!

    А документа-то уже нет:)

    Так что чистить лучше через конфигуратор. Быстрее.

    Reply
  20. CheBurator

    (19) что еще раз говорит в пользу штатной свертки…

    Reply
  21. stan-is-lav

    в справочник сотрудники загляните история осталась а докам всем ПИПЕЦ!!!

    Reply
  22. vovan519

    19 уверен, после удаления не делала ТИИ. А зря. И в описании предупреждение и в самой обработке/батнике.

    (бурча под нос) Что может быть опасней удаления для программиста… нееееет, все равно не читают инструкции. Хотя, что я бурчу. Сам такой.

    20 Спорить не буду. Просто, после недели неприрывной работы штатной свертки надоело ждать. Закрыть бы предприятие на месяц — другой, так директор сопротивляться стал.

    Не знаю кто прав. Директор или штатная свертка? 🙂

    Reply
  23. vovan519

    22. Читайте и думайте сами. Написано ТИИ (с настройками: очищать ссылки, удалять объекты.), значит ТИИ. Ведь именно оно очистит ссылки на доки для значений периодических реквизитов.

    Reply
  24. mihenius

    Перенести в Чистка базы 😉

    Похожее переделывал: http://infostart.ru/projects/1262/

    Reply
  25. Fisherru

    А вот 1CPP.dll можно было в архив и не запихивать 😉

    Reply
  26. tuz

    спасибо за файл

    Reply
  27. ehoo

    Хорошо бы в архив положить еще и инструкцию по использованию, поскольку «Обработки ОПАСНЫ. Без рецепта врача (т.е программиста) не применять!!!»

    Reply
  28. vovan519

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

    А так… все в описании.

    Reply
  29. goryachevzhenya

    del 1SACCSEL

    del 1SSBSEL

    Эти две строчки стоят без раcширений dbf.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *