Решение проблемы, при удалении очень большого количества документов. (250 000) штук!
Когда SQl «выжрал» всю память и свободное место на диске?
Иногда возникает ситуация, когда нужно удалить большое количество документов (например, 250 000!).
И как вы не стараетесь, сервер SQL «съедает»
сперва всю оперативную память, а затем и все место на диске (например, диске С:).
Если у вас возникали подобные ситуации, то вот способ, который поможет вам с этой проблемой.
Решается запуском VBS скрипта.
Что он делает, создает подключение через COM к информационной базе, (клиент серверный вариант работы), запускает внешнюю обработку и вызывает экспортную процедуру.
При этом вам не надо запускать 1С — ку !
Обработка (модуль объекта):
Чтоб сделать экспортную процедуру код пишем в модуле объекта обработки.
Процедура run() Экспорт ДЛя НН = 1 По Метаданные.Документы.Количество() Цикл ИмяДок = Метаданные.Документы.Получить(НН-1).Имя; Запрос = НОвый Запрос; Запрос.Текст = "ВЫБРАТЬ |Док.Ссылка КАК Док_ |ИЗ Документ." + ИмяДок + " КАК Док"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ДокОБ = Выборка.Док_.ПолучитьОБъект(); ДокОБ.Удалить(); КонецЦикла; КонецЦикла; КонецПроцедуры
————————————————————————————————-
VBS Скрипт:
Set v82 = CreateObject("V82.Application")
res = v82.Connect("Srvr = IPАДРЕСС;Ref=ИМЯБАЗЫ;Usr=ПОЛЬЗОВАТЕЛЬ;Pwd=ПАРОЛЬ")
set obr = v82.ExternalDataProcessors.Create("d:\temp\del_doc.epf")
obr.run()
v82=null
obr=null
————————————————————————————————-
Во второй строке укажите свои параметры подключения к ИБ.
Если Вы хотите больше узнать о программировании в 1С, тогда регистрируйтесь на курс: 1С 8.3 Старт >>>