Имя: Пароль:
1C
1C 7.7
v7: UDATE в запросе - подскажите что делаю не так?
0 МастерВопросов
 
12.10.12
13:02
ТекстЗапроса = "
       |UPDATE Константы
       |     SET Константы.VALUE = :ВыбЧисло
       |FROM _1SCONST AS Константы
       |WHERE (Константы.DATE >= :ДатаНачала)
       |    AND (Константы.DATE <= :ДатаКонца)
       |    AND (Константы.OBJID = :ВыбОбъект)
       |    AND (Константы.ID = '324')"

Ошибок не возвращает, но и значения не изменяет :-(
1 Mikeware
 
12.10.12
13:06
а что вернет select?
2 МастерВопросов
 
12.10.12
13:06
(1)
   ТекстЗапроса = "-- qryMaker:Отчет1.2012.06.18.09.35.13
       |SELECT Константы.OBJID
       |    , Константы.ID Параметр
       |    , Константы.VALUE Значение
       |    , NullIf(Константы.DATE, '17530101') Дата
       |    , Константы.TIME Время
       |    , Константы.DOCID
       |FROM _1SCONST AS Константы With (NOLOCK)
       |WHERE (Константы.DATE >= :ДатаНачала)
       |    AND (Константы.DATE <= :ДатаКонца)
       |    AND (Константы.OBJID = :ВыбОбъект)
       |    AND (Константы.ID = '324')
       |";

Возвращает значения, которые после UPDATE не изменяются
3 Mikeware
 
12.10.12
13:17
(2) тип Константы.ID - не char.
4 МастерВопросов
 
12.10.12
13:19
(3) пробовал комментировать " AND (Константы.ID = '324')" - не помогло
5 МастерВопросов
 
12.10.12
13:21
+(4)

   ТекстЗапроса = "-- qryMaker:Отчет1.2012.06.18.09.35.13
       |UPDATE Константы
       |     SET Константы.VALUE = '165.22'
       |FROM _1SCONST AS Константы
       |WHERE (Константы.DATE >= :ДатаНачала)
       |    AND (Константы.DATE <= :ДатаКонца)
       |    AND (Константы.OBJID = :ВыбОбъект)
       |    AND (Константы.ID = '324')
       |    AND (Константы.VALUE  <> :ВыбЧисло)
       |";

Без изменений
6 МастерВопросов
 
12.10.12
13:22
VALUE    Значение константы или периодического реквизита. Для неопределенных типов по умолчанию заполняется «U». Тип- Строка(255).
7 МастерВопросов
 
12.10.12
13:26
тип у ВыбЧисло Число(15,2) как и у периодич. реквизита "Цена"  в Справочнике "Цены"
8 Mikeware
 
12.10.12
13:27
|UPDATE Константы
       |     SET Константы.VALUE = '165.22'
       |FROM _1SCONST AS Константы
       |WHERE (Константы.DATE >= :ДатаНачала)
       |    AND (Константы.DATE <= :ДатаКонца)
       |    AND (Константы.OBJID = :ВыбОбъект)
       |    AND (Константы.ID = 324)
       |    AND (Константы.VALUE  <> convert(varchar(20),:ВыбЧисло )
9 МастерВопросов
 
12.10.12
13:28
F=VALUE                 |valume              |V   |255   |0
10 Mikeware
 
12.10.12
13:29
И посмотри в 1cqa или в .Отладка(), во что он отметапарсится...
11 Mikeware
 
12.10.12
13:29
(9) ну ты еще весь ДДС сюда запости...
12 МастерВопросов
 
12.10.12
13:34
(10) может я не через тот объект запрос делаю?

рс = СоздатьОбъект("ODBCRecordset");
13 МастерВопросов
 
12.10.12
13:35
(8)(10)

"    рс = СоздатьОбъект("ODBCRecordset");
   ТекстЗапроса = "-- qryMaker:Отчет1.2012.06.18.09.35.13
       |UPDATE Константы
       |     SET Константы.VALUE = convert(varchar(20),:ВыбЧисло)
       |FROM _1SCONST AS Константы
       |WHERE (Константы.DATE >= :ДатаНачала)
       |    AND (Константы.DATE <= :ДатаКонца)
       |    AND (Константы.OBJID = :ВыбОбъект)
       //|    AND (Константы.ID = '324')
       //|    AND (Константы.VALUE  <> :ВыбЧисло)
       |";
   
   рс.отладка();"

в окне сообщений ничего
14 Ёпрст
 
12.10.12
13:51
отладка(1)
15 Mikeware
 
12.10.12
13:55
(12) и выполняй через ВыполнитьСкалярный