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

1. VKuser241523867 09.01.25 22:01 Сейчас в теме
Код я упростил для читаемости, убрав проверки и прочую мишуру оставив суть.
Собственно у нас есть "ЭлементНоменклатурыСсылка" нужно запустить функцию модуля объекта для справочника номенклатура, чтобы он обработал этот элемент.
Эта функция довольно объёмная и многозадачная, в следствии чего просто продублировать её не вариант.
Она должна срабатывать при изменении поля формы ВидНоменклатуры. Вот думаю, может проще вызывать ФормуЭлемента у справочника и создавать новый элемент через неё. Такое возможно сделать?

&НаКлиенте
Процедура ЗагрузитьДанныеВБазу(Команда)
	Артикул = "буквыцыфры"
	// Создаем элемент справочника Номенклатура на сервере
	ЭлементНоменклатурыСсылка = СоздатьЭлементСправочникаНоменклатура(Артикул);
	       
        // Что написать вместо этой строчки чтобы работало???
	ЭлементНоменклатурыСсылка.ПолучитьОбъект().ВидНоменклатурыПриИзмененииНастройкаФормы();

КонецПроцедуры  

&НаСервере
Функция СоздатьЭлементСправочникаНоменклатура(Артикул)     
	
	// Создаём новый элемент справочника номенклатура
	НоменклатураЭлемент = Справочники.Номенклатура.СоздатьЭлемент();

	// чото делаем

        // записываем
	НоменклатураЭлемент.Записать(); 
		
        // возвращаем ссылку на элемент справочника
        Возврат Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Артикул);
КонецФункции
Показать
По теме из базы знаний
Найденные решения
10. user2107191 10.01.25 23:09 Сейчас в теме
(9) Ты уж определись - либо трусы, либо крестик.
нужно запустить функцию модуля объекта для справочника номенклатура, чтобы он обработал этот элемент.
Я тебе показал как запустить.
функцию модуля объекта... Эта функция довольно объёмная и многозадачная, в следствии чего просто продублировать её не вариант.
Тем более, что она уже существует.
Она должна срабатывать при изменении поля формы ВидНоменклатуры.
Что мешает при изменении перейти с клиента на сервер, получить объект и запустить нужное?
сервер не обрабатывает такие вызовы, потому что это работа с формой элемента
Видимо что-то мешает, все таки. То ли трусы, то ли крестик.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. lefthander 09.01.25 23:02 Сейчас в теме
(1)
// возвращаем ссылку на элемент справочника
Возврат Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Артикул);
А зачем его искать?
НоменклатураЭлемент.Ссылка - это и есть то что Вы создали. А то что вы сейчас возвращаете как ссылку - это объект. ;)
(1)
ЭлементНоменклатурыСсылка = СоздатьЭлементСправочникаНоменклатура(Артикул);
Это у Вас объект а не ссылка.
5. user2107191 10.01.25 07:43 Сейчас в теме
(2)
А то что вы сейчас возвращаете как ссылку - это объект. ;)

Это у Вас объект а не ссылка.
С чего вдруг?
3. Fox-trot 163 10.01.25 02:45 Сейчас в теме
(1) просто функция в модуле должна быть экспортной, от того видимо она и невидима тебе снаружи))
4. koln 10.01.25 06:50 Сейчас в теме
Ну и, видимо, обращение к методу объекта должно быть в контексте сервера, а не клиента.
6. user2107191 10.01.25 07:55 Сейчас в теме
Только сделай уже нормальную процедуру в модуле, с адекватным наименованием
&НаСервере
Функция СоздатьЭлементСправочникаНоменклатура(Артикул)     
    
    // Создаём новый элемент справочника номенклатура
    НоменклатураЭлемент = Справочники.Номенклатура.СоздатьЭлемент();

    // чото делаем ВОТ ТУТ И ВЫЗЫВАЙ СВОЮ ПРОЦЕДУРУ
    НоменклатураЭлемент.ВидНоменклатурыПриИзмененииНастройкаФормы();

        // записываем
    НоменклатураЭлемент.Записать(); 
        
    // возвращаем ссылку на элемент справочника
    Возврат НоменклатураЭлемент.Ссылка;

КонецФункции
Показать
9. VKuser241523867 10.01.25 23:02 Сейчас в теме
(6) сервер не обрабатывает такие вызовы, потому что это работа с формой элемента
10. user2107191 10.01.25 23:09 Сейчас в теме
(9) Ты уж определись - либо трусы, либо крестик.
нужно запустить функцию модуля объекта для справочника номенклатура, чтобы он обработал этот элемент.
Я тебе показал как запустить.
функцию модуля объекта... Эта функция довольно объёмная и многозадачная, в следствии чего просто продублировать её не вариант.
Тем более, что она уже существует.
Она должна срабатывать при изменении поля формы ВидНоменклатуры.
Что мешает при изменении перейти с клиента на сервер, получить объект и запустить нужное?
сервер не обрабатывает такие вызовы, потому что это работа с формой элемента
Видимо что-то мешает, все таки. То ли трусы, то ли крестик.
7. VmvLer 10.01.25 09:25 Сейчас в теме
ПолучитьОбъект() на клиенте выдаст ошибку.

Зачем что-то жевать, когда даже СП не открыли?
8. VKuser241523867 10.01.25 23:00 Сейчас в теме
(7) я знаю что выдаст ошибку. это место я написал, чтобы было понятно где, что и как я хочу сделать
11. user2107191 10.01.25 23:10 Сейчас в теме
(8) Понятно только то, что ты неуч. Да еще и думаешь, что своим заведомо ошибочным кодом поможешь нам понять суть твоих тараканов.
12. VKuser241523867 11.01.25 00:15 Сейчас в теме
(11) злой вы, но спасибо за ответ. помог
Оставьте свое сообщение

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