Имя: Пароль:
1C
1С v8
Не работает update в через ado
0 VeNick85
 
24.06.15
12:40
СтрокаПодключения = "DSN=fb_test";
    Соединение = Новый COMОбъект("ADODB.Connection");     
    Соединение.ConnectionTimeOut = 20;
    Попытка          
        Соединение.Open(СтрокаПодключения);
    Исключение    
        Предупреждение("Не удалось соединиться с базой данных!");
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    Если Лист= Неопределено Тогда
        Эксель = Новый COMОбъект("Excel.Application");
        Книга = Эксель.WorkBooks.Open(ФайлЭксель);
        Лист = Книга.Worksheets(1);
    КонецЕсли;    
    Для Строка = 2 По 946 Цикл  
         Состояние("Обрабатывается строка "+Строка);
        Если СокрЛП(Лист.Cells(Строка,5).Value)<> "1" Тогда
            Продолжить;
        КонецЕсли;
        ID = СтрЗаменить(Лист.Cells(Строка,6).Value,Символ(160),"");
        Цена = СтрЗаменить(Формат(Лист.Cells(Строка,3).Value,"ЧРД=." ),Символ(160),"");
        Цена1с = СтрЗаменить(Формат(Лист.Cells(Строка,4).Value,"ЧРД=." ),Символ(160),"");
        КаталожныйНомер = СтрЗаменить(Лист.Cells(Строка,1).Value,Символ(160),"");
        Если Цена<> Цена1с Тогда
            ТекстЗапроса="
            |update nab_parts set
            |nab_parts.nnum1 = '"+Цена+"'
            |where nab_parts.nidlib = "+ID+"
            |and nab_parts.nconcept = 200000365
            |and nab_parts.nid1 = 1506";
            Сообщить("Обновили цену для каталожного номера "+КаталожныйНомер);
            ОбработкаПрерыванияПользователя();    
            
            Cmd                    = Новый COMОбъект("ADODB.Command");    
            Cmd.ActiveConnection= Соединение;     
            Cmd.CommandTimeOut    = 200;     
            Cmd.CommandType        = 1;
            Попытка
                Cmd.Commandtext        = СокрЛП(ТекстЗапроса);
                Cmd.Execute();
                Состояние("Выполняется запрос к базе данных");
            Исключение
            КонецПопытки;
        КонецЕсли;
        
    КонецЦикла;
1 Ненавижу 1С
 
гуру
24.06.15
12:40
надо узнать ошибку?
2 VeNick85
 
24.06.15
12:42
В итоге update не происходит явного бага нет
3 Ёпрст
 
24.06.15
12:44
Очевидно же - нечего апдейтить при таких условия.
4 Ёпрст
 
24.06.15
12:45
проверить просто - заместо апдейта сделай селект и посмотри, что выдаст выборка.
5 Ненавижу 1С
 
гуру
24.06.15
12:46
скорее всего параметры кривые, а может из-за Попытка-Исключение все проглатывается, добавь:

Исключение
  Сообщить("Всё пропало, шеф!");
6 VeNick85
 
24.06.15
12:48
если выполнить в консоли firebird update происходит
7 VeNick85
 
24.06.15
12:48
а через 1с нет
8 Ненавижу 1С
 
гуру
24.06.15
12:49
(6) значит параметры
9 VeNick85
 
24.06.15
13:16
спасибо commit нужно было добавить:)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн