|
ОЛЕ из 7.7. "Типы не совпадают (0)". Подскажите, пожалуйста, как лечиться. |
☑ |
0
batmansoft
17.02.14
✎
12:15
|
Добрый день. Гружу данные из 7.7 в 8.2 по ОЛЕ.
Делаю так:
если мСклады.НайтиПоРеквизиту("МОЛ",Запрос.МОЛ,1)=0 тогда
Предупреждение("Не найден склад для МОЛ ",Запрос.МОЛ.Наименование);
возврат;
конецесли;
Выдает:
"{ВнешняяОбработка.ЗагрузкаИЗТИС.МодульОбъекта(243)}: Ошибка при установке значения атрибута контекста (МОЛ)
если мСклады.НайтиПоРеквизиту("МОЛ",Запрос.МОЛ,1)=0 тогда
по причине:
Типы не совпадают (0)
"
Смотрю в отладчике Запрос.МОЛ.Вид(), говорит "ФизЛица", все верно, это я запросом цепляю из 7.7 остатки по партиям, измерение МОЛ.
Реквизит МОЛ у справочника склад тоже справочник ФизЛица.
Так чего ему не нравится?
|
|
1
ДенисЧ
17.02.14
✎
12:16
|
Ему не нравится прокладка между стулом и клавиатурой, которая даже не думает почитать маленько о типах данных в оле-соединении
|
|
2
dedmoroz777
17.02.14
✎
12:17
|
Ему не нравится, что тебе лень ткнуть кнопку Я справа, в углу
|
|
3
Builder
17.02.14
✎
12:24
|
Вкратце - по OLE можно передавать только простые типы данных - строка, число и дата.
Собственно все поиски делать по кодам/ наименованиям.
|
|
4
batmansoft
17.02.14
✎
12:40
|
(3) Спасибо, попробую тогда как нибудь так извратиться, запросом сделать поиск по коду МОЛ-а
|
|
5
batmansoft
17.02.14
✎
12:57
|
вот такой код прокатывает:
" лЗапрос = OLE.CreateObject("Запрос");
лТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|ТекущийЭлемент = Справочник.Склады.ТекущийЭлемент;
|Код = Справочник.Склады.МОЛ.Код;
|Группировка ТекущийЭлемент;
|Условие(Код="+Запрос.МОЛ.Код+");
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если лЗапрос.Выполнить(лТекстЗапроса) = 0 Тогда
Предупреждение("В семерке не выполнился запрос к складам");
Возврат;
КонецЕсли;
если лЗапрос.Группировка(1) = 1 тогда
млСклады=лЗапрос.ТекущийЭлемент;
иначе
Предупреждение("Не найден склад для МОЛ "+Запрос.МОЛ.Наименование);
возврат;
Конецесли;;
"
|
|
6
batmansoft
17.02.14
✎
13:21
|
Только вот что мне тогда непонятно, почему тогда работает код типа:
мБаза.String(КакойТоТамОЛЕОбъектТипаДокументИЛИСправочник)
|
|
7
Рэйв
17.02.14
✎
13:22
|
(0)потому что возвращает строку
|
|
8
batmansoft
17.02.14
✎
13:25
|
(7) Дык а передается то то не строка.
|
|
9
Builder
17.02.14
✎
13:45
|
(8) А преобразовывает то в строку :)
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой