|
v7: Не создается договор | ☑ | ||
---|---|---|---|---|
0
ugorchina
04.05.18
✎
12:30
|
Всем привет подскажите где у меня затык по ОЛЕ создаю контрагента + его договор контрагент создается а вот с договором косяк (
КонтрагентОЛЕ = Неопределено; ДоговорОЛЕ = Неопределено; ВалютаОЛЕ = Неопределено; КонтрОЛЕ = ОбъектV77.CreateObject("Справочник.Контрагенты"); ДогОЛЕ = ОбъектV77.CreateObject("Справочник.Договоры"); Валюты = ОбъектV77.CreateObject("Справочник.Валюты"); Если Валюты.НайтиПоКоду(СокрЛП(Договор.ВалютаВзаиморасчетов.Код)) = 1 Тогда ВалютаОЛЕ = Валюты.ТекущийЭлемент(); КонецЕсли; Если СокрЛП(Контрагент.ИНН) <> "" Тогда Если КонтрОЛЕ.НайтиПоРеквизиту("ИНН",СокрЛП(Контрагент.ИНН)) = 1 Тогда КонтрагентОЛЕ = КонтрОЛЕ.ТекущийЭлемент(); Если СокрЛП(КонтрагентОЛЕ.ОсновнойДоговор.ТекущийЭлемент()) <> "" Тогда ДоговорОЛЕ = КонтрагентОЛЕ.ОсновнойДоговор.ТекущийЭлемент(); КонецЕсли; КонецЕсли; Иначе Если КонтрОЛЕ.НайтиПоНаименованию(СокрЛП(Контрагент.Наименование)) = 1 Тогда КонтрагентОЛЕ = КонтрОЛЕ.ТекущийЭлемент(); Если СокрЛП(КонтрагентОЛЕ.ОсновнойДоговор.ТекущийЭлемент()) <> "" Тогда ДоговорОЛЕ = КонтрагентОЛЕ.ОсновнойДоговор.ТекущийЭлемент(); КонецЕсли; КонецЕсли; КонецЕсли; Если КонтрагентОЛЕ = Неопределено Тогда КонтрОЛЕ.Новый(); КонтрОЛЕ.Наименование = СокрЛП(Контрагент.Наименование); КонтрОЛЕ.ПолнНаименование = СокрЛП(Контрагент.Наименование); КонтрОЛЕ.ИНН = СокрЛП(Контрагент.ИНН); КонтрОЛЕ.Записать(); ДогОЛЕ.Новый(); ДогОЛЕ.Наименование = СокрЛП(Договор.Наименование); если СокрЛП(Договор.Номер) <> "" Тогда ДогОЛЕ.Код = СокрЛП(Договор.Номер); КонецЕсли; Если ВалютаОЛЕ <> Неопределено Тогда ДогОЛЕ.Валюта = ВалютаОЛЕ; КонецЕсли; ДогОЛЕ.Владелец = КонтрОЛЕ.ТекущийЭлемент(); ДогОЛЕ.записать(); БлаБла = КонтрОЛЕ.ТекущийЭлемент(); БлаБла.ОсновнойДоговор = ДогОЛЕ.ТекущийЭлемент(); КонтрОЛЕ.Записать(); КонецЕсли; КонтрагентОЛЕ = КонтрОЛЕ.ТекущийЭлемент(); ДоговорОЛЕ = ДогОЛЕ.текущийЭлемент(); |
|||
1
ugorchina
04.05.18
✎
12:31
|
+(0) подозреваю что неверно устонавливаю владельца тупо не помню как это делать в 7-ке (
|
|||
2
ugorchina
04.05.18
✎
12:32
|
На момент ДогОЛЕ.Новый();
КонтрОЛЕ.ТекущийЭлемент() не пустой |
|||
3
Ёпрст
04.05.18
✎
12:33
|
вот это выкинь
БлаБла = КонтрОЛЕ.ТекущийЭлемент(); БлаБла.ОсновнойДоговор = ДогОЛЕ.ТекущийЭлемент(); КонтрОЛЕ.Записать(); |
|||
4
Мандалай
04.05.18
✎
12:33
|
Попробуй ИспользоватьВладельца
|
|||
5
ugorchina
04.05.18
✎
12:34
|
(3) а чего выкидывать ТО?
это ж я присваиваю Контру его договор как основной! |
|||
6
Ёпрст
04.05.18
✎
12:34
|
ну и проверять на неопределенно оле-объект.. тоже махер
|
|||
7
Ёпрст
04.05.18
✎
12:34
|
(5) еще подумай
|
|||
8
Ёпрст
04.05.18
✎
12:35
|
вот это
КонтрагентОЛЕ = КонтрОЛЕ.ТекущийЭлемент(); Если СокрЛП(КонтрагентОЛЕ.ОсновнойДоговор.ТекущийЭлемент()) <> "" Тогда ДоговорОЛЕ = КонтрагентОЛЕ.ОсновнойДоговор.ТекущийЭлемент(); тоже в топку |
|||
9
Ёпрст
04.05.18
✎
12:35
|
Вообще, бездумное втыкание ТекущийЭлемент где надо и не надо..
|
|||
10
arsik
гуру
04.05.18
✎
12:36
|
(4) +
|
|||
11
ugorchina
04.05.18
✎
12:38
|
(4) пробую
|
|||
12
ugorchina
04.05.18
✎
12:39
|
(8) да здесь Вы правы спасибо
(4) еще пробую |
|||
13
ugorchina
04.05.18
✎
12:41
|
но по (3) так и не ответили
|
|||
14
Ёпрст
04.05.18
✎
12:50
|
(13) а че отвечать ? Твоё бла-бла там не нужно от слова совсем, ибо нигде не используется.
|
|||
15
ugorchina
04.05.18
✎
12:50
|
теперь ошибка
КонтрагентОЛЕ = Неопределено; ДоговорОЛЕ = Неопределено; ВалютаОЛЕ = Неопределено; КонтрОЛЕ = ОбъектV77.CreateObject("Справочник.Контрагенты"); ДогОЛЕ = ОбъектV77.CreateObject("Справочник.Договоры"); Валюты = ОбъектV77.CreateObject("Справочник.Валюты"); Если Валюты.НайтиПоКоду(СокрЛП(Договор.ВалютаВзаиморасчетов.Код)) = 1 Тогда ВалютаОЛЕ = Валюты.ТекущийЭлемент(); КонецЕсли; Если СокрЛП(Контрагент.ИНН) <> "" Тогда Если КонтрОЛЕ.НайтиПоРеквизиту("ИНН",СокрЛП(Контрагент.ИНН)) = 1 Тогда КонтрагентОЛЕ = КонтрОЛЕ.ТекущийЭлемент(); Если СокрЛП(КонтрагентОЛЕ.ОсновнойДоговор) <> "" Тогда ДоговорОЛЕ = КонтрагентОЛЕ.ОсновнойДоговор; КонецЕсли; КонецЕсли; Иначе Если КонтрОЛЕ.НайтиПоНаименованию(СокрЛП(Контрагент.Наименование)) = 1 Тогда КонтрагентОЛЕ = КонтрОЛЕ.ТекущийЭлемент(); Если СокрЛП(КонтрагентОЛЕ.ОсновнойДоговор) <> "" Тогда ДоговорОЛЕ = КонтрагентОЛЕ.ОсновнойДоговор; КонецЕсли; КонецЕсли; КонецЕсли; Если КонтрагентОЛЕ = Неопределено Тогда КонтрОЛЕ.Новый(); КонтрОЛЕ.Наименование = СокрЛП(Контрагент.Наименование); КонтрОЛЕ.ПолнНаименование = СокрЛП(Контрагент.Наименование); КонтрОЛЕ.ИНН = СокрЛП(Контрагент.ИНН); КонтрОЛЕ.Записать(); ДогОЛЕ.Новый(); ДогОЛЕ.Наименование = СокрЛП(Договор.Наименование); если СокрЛП(Договор.Номер) <> "" Тогда ДогОЛЕ.Код = СокрЛП(Договор.Номер); КонецЕсли; Если ВалютаОЛЕ <> Неопределено Тогда ДогОЛЕ.ВалютаДоговора = ВалютаОЛЕ; КонецЕсли; ДогОЛЕ.ИспользоватьВладельца(КонтрОЛЕ.ТекущийЭлемент()); ДогОЛЕ.записать(); БлаБла = КонтрОЛЕ.ТекущийЭлемент(); БлаБла.ОсновнойДоговор = ДогОЛЕ.ТекущийЭлемент(); КонтрОЛЕ.Записать(); //стр 1018 КонтрагентОЛЕ = КонтрОЛЕ.ТекущийЭлемент(); ДоговорОЛЕ = ДогОЛЕ.текущийЭлемент(); КонецЕсли; сама ошибка {ОбщийМодуль.РегламентныйОбменСоСтороннейПрограммой.Модуль(1018)}: Ошибка при вызове метода контекста (записать) по причине: Произошла исключительная ситуация (1С:Предприятие): Не выбран элемент справочника-хозяина! Элемент не может быть записан! |
|||
16
ugorchina
04.05.18
✎
12:51
|
тьфу простите ДогОЛЕ.записать(); 1018 )
|
|||
17
Ёпрст
04.05.18
✎
12:51
|
ну и в твоём коде, непонятно, зачем ты вообще вот это делаешь, например:
ДоговорОЛЕ = КонтрагентОЛЕ.ОсновнойДоговор.ТекущийЭлемент(); зачем тебе нужна ссылка на договор ? |
|||
18
ugorchina
04.05.18
✎
12:53
|
я потом эти ссылки в заказе присваиваю в другом месте
КонтрагентОЛЕ ДоговорОЛЕ зтем возваращаются в основной код где присваиваются созданному документ заказ клиента в семерке |
|||
19
Ёпрст
04.05.18
✎
12:54
|
(16)
ДогОЛЕ.ИспользоватьВладельца(КонтрОЛЕ.ТекущийЭлемент()); ДогОЛЕ.Новый(); ..... ДогОЛЕ.записать(); // БлаБла = КонтрОЛЕ.ТекущийЭлемент(); // БлаБла.ОсновнойДоговор = ДогОЛЕ.ТекущийЭлемент(); КонтрОЛЕ.ОсновнойДоговор = ДогОЛЕ.ТекущийЭлемент(); КонтрОЛЕ.Записать();//стр 1018 |
|||
20
ugorchina
04.05.18
✎
14:11
|
Спасибо работает!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |