Вопрос по работе с видами расчетов через OLE #210405


#0 by MItjaT
Здравствуйте! Выгружаю справочник из одной базы в другую, используя OLE.В справочнике есть реквизит "Расчет": тип "ВидРасчета". Далее:"_Конф" - OLE-объект: _Конф = CreateObject("V77.Application");"Спр" - переменная выгружаемого справочника;"_Спр" - переменная справочника, куда выгружаю, созданная с помощью CreateObject объекта OLE. Если пишу так:_Спр.Новый;_Спр.Расчет = Спр.Расчет;Ошибка: "плохая переменная". Пытался так:_Спр.Расчет = _ВидРасчета;Ошибок нет, но реквизит не записывается. Как быть?
#1 by Stopper
Ознакомьсяhttp://1c-esse.buter.ru/load_esse.php?pg=1
#2 by Lexusss
Расчет - реквизит неопределнного типа...
#3 by MItjaT
Ознакомился, там ничего подобного нет.У меня все получается, выгружаю справочник - все работает.Не получается лишь указать реквизит "Расчет".
#4 by MItjaT
: Нет, в моем справочнике "Расчет" имеет тип "<<ВидРасчета>>"
#5 by Гуня
по ОЛЕ можно передать данные типа строка, число, дата, какой нахрен тип "ВидРасчета".
#6 by Cat
В базе, в которую записываешь в ВидахРасчета найди (по коду и т.п. - из базы ОЛЕ) соответствующий элемент и присваивай его
#7 by MItjaT
Пробовал так:Неизвестная ошибка. : А что тут такого? По-вашему, нельзя перенести справочник "Сотрудники" с подчиненным справочником "НачисленияУдержания"? А вот в нем как раз есть такой реквизит.
#8 by Cat
Так ты объекту ОЛЕ-шной базы присваиваешь объект не ОЛЕ-шной базы, понятно?
#9 by MItjaT
: Реквизит "Расчет" имеет тип значения "<<ВидРасчета>>", а не "Справочник.ВидыРасчетов".
#10 by MItjaT
: По-сути, да. Так, конечно же, нельзя. Но как?
#11 by Cat
ЗиК не оч хорошо знаю, но есть же у них и код и наименование, как с ними работают?
#12 by Cat
не подходит?ПолучитьАтрибут(<?>);Синтаксис:ПолучитьАтрибут(<ИмяВидаРасч>)Назначение:Получить значение конкретного вида расчета по идентификатору. Возвращает значение конкретного вида расчета.Параметры:<ИмяВидаРасч> - строковое выражение, содержащее имя конкретного вида расчета , как оно задано в конфигураторе.
#13 by MItjaT
В справоничке исходной базы есть запись, у нее значение реквизита "Расчет" равно, скажем, "ПроизвольнаяДоплата03".Надо в справочник базы-приемника внести такую же запись с таким же значением.Вот и все.
#14 by Гуня
вот тут ты уже близко подошел к ответуПытался так:_Спр.Расчет = _ВидРасчета;только осталось спозиционировать _ВидРасчета типаЕсли _ВидРасчета.НаитиПоНаименованию(Спр.Наименование)=1 Тогда
#15 by Гуня
+ Не прав,попутал со справочником. Простопроверить _ВидРасчета.Выбран=1 ТогдаНо суть одна. Объекты должны быть из обной базы.
#16 by MItjaT
: Какое "НайтиПоНаименованию"? Это не справочник.
#17 by Cat
пробовал?
#18 by ASDF
Синтаксис:ПолучитьАтрибут(<ИмяВидаРасч>)Назначение:Получить значение конкретного вида расчета по идентификатору. Возвращает значение конкретного вида расчета.Параметры:<ИмяВидаРасч> - строковое выражение, содержащее имя конкретного вида расчета , как оно задано в конфигураторе.
#19 by MItjaT
(17, 18): А как это применить?
#20 by Woppi
Если базы идентичные, то ничего лучше чем ЗначениеИзСтроки(БазаOLE.ЗначениеВСтроку(ОбъектИзБазыOLE)) не придумаешь.
#21 by Cat
может просто_ВР = _Конф.CreateObject("ВидРасчета"); ??
#22 by MItjaT
: Я в это пробовал. Может, я не так использую. Только, в отличие от Вашего случая, я выгружаю не из база, к которой подключаюсь через OLE, а в нее.
#23 by MItjaT
: Пробовал.1С:Предприятие: Неудачная попытка создания объекта (ВидРасчета) 0.
#24 by ASDF
ВидРасчета.ПолучитьАтрибут("МойВидРасчета")
#25 by MItjaT
ASDF: В яблочко!Что-то ступил... Всем большущее спасибо!!!
#26 by Cat
А почему записываешь в ОЛЕ базу? Обычно наоборот делают
#27 by MItjaT
: Да я как-то так привык...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С