Как из расширения вызвать процедуру из модуля объекта основной конфигурации?

1. Alexeytur 19.10.21 07:26 Сейчас в теме
Добрый день.
В конфигурации ERP в расширении хочу создать документ РеализацияТоваровУслуг на основании документа ЗаказКлиента.
Добавил РеализацияТоваровУслуг в расширение.

Пишу
	
ТекущийДокРеализация = Документы.РеализацияТоваровУслуг.СоздатьДокумент();					
ВариантОформления = Перечисления.ВариантыОформленияПродажи.РеализацияТоваровУслуг;						 
ТекущийДокРеализация.ЗаполнитьДокументНаОснованииЗаказаКлиента(ЗаказКлиента,,ВариантОформления,,);


Пишет "Метод объекта не обнаружен (ЗаполнитьДокументНаОснованииЗаказаКлиента)". При этом в конфигураторе даже подсказку показывает на объекте ТекущийДокРеализация, что метод есть.

В чем может быть проблема?
По теме из базы знаний
Найденные решения
12. DBV 19.10.21 08:59 Сейчас в теме
(8) Делайте через метод объекта Заполнить

 ТекущийДокРеализация = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
ТекущийДокРеализация.Заполнить(ЗаказКлиентаСсылка)
Alexeytur; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. nomad_irk 72 19.10.21 07:43 Сейчас в теме
(1)не совсем понятно:

Если в модуле менеджера/объекта основной конфигурации уже присутствует нужная процедура/функция, то к чему все эти манипуляции с расширением?
6. Alexeytur 19.10.21 08:03 Сейчас в теме
(3)
В расширении в подписке на событие другого документа, не РеализацияТоваровУслуг и ЗаказКлиента, мне нужно найти определенный заказ и на его основании создать реализацию.
8. DBV 19.10.21 08:25 Сейчас в теме
(1) разве метод не должен быть экспортным?
Alexeytur; +1 Ответить
12. DBV 19.10.21 08:59 Сейчас в теме
(8) Делайте через метод объекта Заполнить

 ТекущийДокРеализация = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
ТекущийДокРеализация.Заполнить(ЗаказКлиентаСсылка)
Alexeytur; +1 Ответить
14. FatPanzer 19.10.21 09:31 Сейчас в теме
(12) Там через структуру надо.
ДанныеЗаполнения = Новый Структура("ДокументОснование,ВариантОформленияПродажи", ЗаказКлиентаСсылка, Перечисления.ВариантыОформленияПродажи.РеализацияТоваровУслуг);
ТекущийДокРеализация = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
ТекущийДокРеализация.Заполнить(ДанныеЗаполнения );
Прикрепленные файлы:
Alexeytur; +1 Ответить
15. DBV 19.10.21 09:36 Сейчас в теме
(14) у меня дальше есть еще строки

ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ЗаказКлиента") Или
		ТипДанныхЗаполнения = Тип("ДокументСсылка.ЗаявкаНаВозвратТоваровОтКлиента") Тогда


Но можно и через структуру
16. FatPanzer 19.10.21 09:39 Сейчас в теме
(15) Ага. Но там вариант оформления будет Неопределено
18. DBV 19.10.21 09:48 Сейчас в теме
(16) Наверное чем то заполняется дальше, не стал туда вникать) Тут уже на Ваш выбор, какой из вариантов подойдет
19. FatPanzer 19.10.21 09:52 Сейчас в теме
(18) Не-а )) Вот как в шапке процедуры инициализирован - так и уходит. А заполняется как раз тогда, когда он приходит в составе структуры. То есть просто дано разнообразие методов - выбирай какой хочешь. Можно просто по ссылке, а можно и по структуре с реквизитами (например, не с того склада фактическая отгрузка пойдет, или вместо продажи будет передача на комиссию)...
20. DBV 19.10.21 10:04 Сейчас в теме
(19) я про заполнение по умолчанию, если не передано значение.

ЭтотОбъект.ВариантОформленияПродажи = ?(ЗначениеЗаполнено(ВариантОформления), 
			ВариантОформления,
			Перечисления.ВариантыОформленияПродажи.РеализацияТоваровУслуг);
17. Alexeytur 19.10.21 09:43 Сейчас в теме
(12)
Спасибо, теперь через Заполнить заходит в ЗаполнитьДокументНаОснованииЗаказаКлиента!

Ошибка была наверно из-за того, что метод ЗаполнитьДокументНаОснованииЗаказаКлиента не экспортный.

Сейчас ЗаполнитьДокументНаОснованииЗаказаКлиента выбрасывает ошибку "Нет товаров, доступных для отгрузки", но с этим буду разбираться дальше...
13. FatPanzer 19.10.21 09:28 Сейчас в теме
(8) Так и есть. Глянул в ERP. Это не экспортная процедура, вызывать её бесполезно.
2. TokarevV 30 19.10.21 07:41 Сейчас в теме
У меня также было, ищите директиву препроцессора в модуле. Что-нибудь вроде:
#Если НЕ ТонкийКлиент И НЕ ВебКлиент Тогда
5. Alexeytur 19.10.21 08:01 Сейчас в теме
(2)
Да весь модуль объекта РеализацияТоваровУслуг обрамлен
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

, что с этим делать?
7. TokarevV 30 19.10.21 08:11 Сейчас в теме
(5) Ну так обрамите и свой в расширении.
9. Alexeytur 19.10.21 08:25 Сейчас в теме
(7)
Сделал, не помогает (
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

Процедура Расш1_ПодпискаНаСобытие1ОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
	
	ТекущийДокРеализация = Документы.РеализацияТоваровУслуг.СоздатьДокумент();

	ТекущийДокРеализация.ЗаполнитьДокументНаОснованииЗаказаКлиента(,,,,);
	
КонецПроцедуры

#КонецЕсли 
Показать

Также не видит метод.
10. TokarevV 30 19.10.21 08:44 Сейчас в теме
(9) А где директива "&Вместо" там или ещё какая?
11. Alexeytur 19.10.21 08:52 Сейчас в теме
(10)
Это не перехват событий, а подписка на событие, в этом случае на проведение любого документа.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот