![]() |
|
ОЛЕ из 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) А преобразовывает то в строку :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |