Имя: Пароль:
1C
1C 7.7
v7: Странная проблема с отсутствием реквизита Сумма при переносе документов по OLE
,
0 Maximich
 
17.02.17
11:13
Доброго дня.
Или совсем уработался или где-то глюк.
Прошу помощи так как все застопорилось на этом баге.

Пишу обработку по переносу данных из самописной базы 7.7 в БП2. Закачка идет по OLE.
Нужно выдернуть один вид документа.
Подключаюсь, нахожу документы, перебираю реквизиты шапки, начинаю перекачивать табличную часть и получаю ошибку "Поле объекта не обнаружено (Сумма)".
В отладчике проверил что все остальные реквизиты в 8-ку передаются без проблем. А при попытке получить значение реквизита "Сумма" 1с говорит что у данного вида документа в 7-ке такого реквизита нет. Я уже и наименование проверил в конфигураторе, вдруг кто букву в другой раскладке набрал.
Платформа: 8.3.8.2137

Заранее благодарен.
1 1dvd
 
17.02.17
11:16
код покажи
2 Злопчинский
 
17.02.17
11:19
(0) клюшки - это как пехотинец - он или бежит на тебя со штыком или гранату кидает, это тебе не 8-как - которая как смерш - для чего и что делает - никто не знает. Поэтому смотрите внимательнее.
3 Maximich
 
17.02.17
11:20
Не думаю что это поможет )

кусок кода, где Док_КСФ - OLE объект
....
Док_КСФ.ВыбратьСтроки();
    Пока Док_КСФ.ПолучитьСтроку()=1 Цикл
        стр = ДокР.Товары.Добавить();
        стр.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(Док_КСФ.Наименование.Код).Ссылка;
        стр.Количество = Док_КСФ.Количество*Док_КСФ.Коэффициент;
        стр.КоличествоДоИзменения = Док_КСФ.КоличествоДоИзменения*Док_КСФ.Коэффициент;
        стр.Сумма = Док_КСФ.Сумма;
        стр.СтавкаНДС = ВернутьСтавкуНДС(Док_КСФ.СтавкаНДС);


......
выпадает в осадок на строчке
стр.Сумма = Док_КСФ.Сумма;
что в 7-ке что в 8-ке данный реквизит есть. при запуске ругается именно на отсутствие реквизита в базе 7.7
4 Maximich
 
17.02.17
11:23
(2) да я уже все пересмотрел. все реквизиты есть, а этого типа нет.
Такое ощущение, что 1с вместо возврата значения "Сумма" хочет фукнцию вызвать.
Может есть способ получить значение реквизиты по его имени ?
5 Злопчинский
 
17.02.17
11:26
(4) Док_КСФ.Сумма - даже при наличии одноименной функции Сумма(..) нормально сработает
6 1dvd
 
17.02.17
11:29
(4) попробуй .ПолучитьАтрибут("Сумма")
7 Злопчинский
 
17.02.17
11:30
для начала в оле пусть сделает евал на
глЕстьРеквизитТабличнойЧасти
8 Maximich
 
17.02.17
11:32
(5) я знаю, поэтому и в шоке
http://s018.radikal.ru/i500/1702/9a/b7e2e4f469a7.png

{ВнешняяОбработка.ИмпортДокументов.Форма.ИмпортДокументов.Форма(52)}: Поле объекта не обнаружено (Сумма)
с = Док_КСФ.Сумма;
9 Zmich
 
17.02.17
11:34
Может, Сумма где-то с английской С написана? В коде или в названии реквизита в конфигураторе самописной базы?
10 Maximich
 
17.02.17
11:35
(6) Спасибо.
Док_КСФ.ПолучитьАтрибут("Сумма")
прокатило
чем же платформам не понравилось это имя реквизита ?
11 Злопчинский
 
17.02.17
11:37
(10) ты просто клюшки не уважаешь, они тебе мстят. а мстя клюшек - неотвартима и беспощадна!
12 Maximich
 
17.02.17
11:39
(11) Да я с ними уже лет 15 дружу )
В первый раз такое вижу.
13 linoblack
 
17.02.17
11:39
(10) наверно все же тем, что "сумма" - служебное слово
14 Злопчинский
 
17.02.17
11:46
(13) ни в жисть не поверю
15 Maximich
 
17.02.17
11:46
(13) Раньше оно не было служебным словом
16 linoblack
 
17.02.17
11:47
(15) в языке запросов
17 1dvd
 
17.02.17
11:48
всё же интересно как появилось Док_КСФ?
Ссылка это или объект
18 Maximich
 
17.02.17
11:50
(16) в этом коде нет запросов
(17) пример так
Док_КСФ=База77.CreateObject("Документ.КорректировочныйСчетФактура");
19 Maximich
 
17.02.17
12:05
В любом случае всем Огромное Спасибо ! )
20 linoblack
 
17.02.17
16:05
возникла мысль - а может реквизит сумма - общий?
21 Злопчинский
 
17.02.17
17:17
(20) тогда бы он был в ветке общих реквизитов
Но возможно шаманили рвчаами и чпихнвли да один вбщие другой в тч
22 HawkEye
 
18.02.17
10:09
(20) как можно общий засунуть в таб.часть?
23 h-sp
 
18.02.17
10:30
(21) возможно ошибка была в восьмерке

стр.Сумма = Док_КСФ.Сумма;

по законам детективного жанра, есть вторая версия. Ошибка в

стр.Сумма
24 HawkEye
 
18.02.17
11:06
(23) и как "Док_КСФ.ПолучитьАтрибут("Сумма")" помогло исправить ошибку в 8-ке? )))
25 Torquader
 
19.02.17
22:36
По OLE метод и свойство запрашиваются одновременно (традиция такая) - поэтому, система сначала находила существующий метод "Сумма(Поле)", в котором ей не хватало обязательного параметра.
26 Злопчинский
 
19.02.17
22:54
(25) хм...а у документа есть метод Сумма()..?
27 Aleksey
 
19.02.17
23:00
Видать путает с Итог()
28 Torquader
 
19.02.17
23:06
(27) Да, так оно и есть - видимо, кто-то давно 1С не открывал.
29 Злопчинский
 
19.02.17
23:09
(27) не, это он с прямым углом путает
30 h-sp
 
20.02.17
05:47
(24) ТС ведь не все свои действия здесь описывает. Это не помогло, что-то другое помогло.