Имя: Пароль:
1C
1С v8
Ошибка ADODB.Recordse
0 Baglandir
 
22.01.13
12:17
Есть код
ВремРС=Новый COMОбъект("ADODB.Recordset");
   ВремРС.CursorLocation=3;
   Макет=ПолучитьМакет(ИмяМакета);    
   
   Если вСРСзаписать Тогда              
       // для срс дату менять на  "ДФ=ггггММдд"
       // и эти два поля первые
       // а в тз передвинуть поля до вызова процедуры
       // т.к. здесь не получится в разных таблицах разные
       ВремРС.Fields.Append("DocType", 3);
       ВремРС.Fields.Append(ПолеДатаСРС, 202,200);
   КонецЕсли;
   
   Для Ном = 1 По Макет.ВысотаТаблицы Цикл
       ИмяПоля = Макет.Область(Ном, 1).Текст;
       ИмяПоля = стрзаменить(ИмяПоля,"]","");        
       ИмяПоля = стрзаменить(ИмяПоля,"[","");        
       Если вСРСзаписать и (ИмяПоля = ПолеДатаСРС или ИмяПоля = "DocType")Тогда
           продолжить;
       КонецЕсли;
       ТипПоля = Макет.Область(Ном, 2).Текст;
       ЕстьДлинаПоля = найти(ТипПоля,"(");
       ДлинаПоля="0";
       Если ЕстьДлинаПоля > 0 Тогда
           ДлинаПоля = Сред(ТипПоля ,ЕстьДлинаПоля+1);    
           ДлинаПоля = лев(ДлинаПоля ,стрдлина(ДлинаПоля )-1);
           ТипПоля = лев(ТипПоля ,ЕстьДлинаПоля-1);
       КонецЕсли;
       
       СтрокаТипаПоля=НомераТиповПолей.Найти(нрег(ТипПоля), "ИмяТипаПоля");
       Если не СтрокаТипаПоля=Неопределено Тогда
           ТипПоля=СтрокаТипаПоля.ТипПоляЧисло;
       иначе
           сообщить("не нашли тип поля "+ИмяМакета+" "+нрег(ТипПоля));
       КонецЕсли;
       Если ДлинаПоля="0" и ТипПоля="202" Тогда
           ДлинаПоля="200";
       КонецЕсли;
       Если не ДлинаПоля="0" тогда
           ВремРС.Fields.Append(ИмяПоля, ТипПоля, ДлинаПоля);
       иначе
           Попытка
               
               ВремРС.Fields.Append(ИмяПоля, ТипПоля);
               
               
           Исключение
               сообщить("ИмяПоля "+ИмяПоля+ " "+ном+" "+ТипПоля+" "+ИмяМакета+" "+описаниеошибки());
               
           КонецПопытки;
       КонецЕсли;
   КонецЦикла;
   ВремРС.Open();
   Для каждого стр Из таблица Цикл
       ОбработкаПрерыванияПользователя() ;
       
       ВремРС.AddNew();


До определенного времени работало нормально ,

с начала нового года - начало выдавать ошибку при вызове ВремРС.AddNew()   "недостаточно памяти"

Если у когото есть хоть какието идею буду благодарен .