Главная » Файлы » Программируем в 1С » 1С и SQL

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

Через минуту Вы получите "Гостевой доступ"




Решение проблемы, при удалении большого количества документов. (250 000)
2013 Май 29, 12:53
Решение проблемы, при удалении большого количества документов.  (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С и SQL | Добавил: c1
Просмотров: 1901 | Загрузок: 47 | Рейтинг: 5.0/1

Выразить благодарность - Поделиться с друзьями!

 

Здесь все о технической стороне 1С!

 

Узнай, как правильно администрировать 1С Предприятие
Регистрируйся на бесплатный 7-ми дневный курс сейчас:

Ваш E-Mail в безопасности



Всего комментариев: 0
avatar