Как из внешней обработки обратиться к реквизитам документа?

1. hoyo 16.11.18 11:33 Сейчас в теме
Доброго дня.
Есть желание сделать используя БСП внешнюю обработку, которая вызывалась бы в справочнике и на используя его реквизиты, производила бы действия. И вот как обратиться к элементу справочника, для которого вызвана обработка, я не понимаю. Есть что-то вроде "ЭтотОбъект.Ссылка"?
+
По теме из базы знаний
Найденные решения
8. YannikAlx 43 16.11.18 14:20 Сейчас в теме
Вот сделал обработку , которая просто сообщает Имя физлица , из формы которого была запущена.
В модуле объекта , вы можете получить любые данные по этому объекту и сделать с ними что угодно...
Прикрепленные файлы:
ТЕСТ23.epf
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. YannikAlx 43 16.11.18 11:51 Сейчас в теме
Во первых хоть что-то опишите на чем делать хотите...
Ибо принципиальная разница ОП и УФ
+
3. hoyo 16.11.18 11:57 Сейчас в теме
Конфа 1С Документооборот, на управляемых формах. Там есть справочник ВнутренниеДокументы. Вот туда хочу прикрепить. При вызове обработки никакая форма отрываться не должна, должна выполняться функция. Вот как в этой функции обратиться именно к тому элементу справочника, с формы которого запущена обработка, я не понимаю.
+
4. user705522_constantin_h 35 16.11.18 12:14 Сейчас в теме
(3)Откуда вы вызываете обработку? Если из формы элемента, то на ней есть реквизит Объект->Ссылка. Передавайте этот реквизит в свою обработку и делайте с ним в обработке что хотите.
+
5. YannikAlx 43 16.11.18 12:18 Сейчас в теме
"ЭтотОбъект.Ссылка" - это ссылка на вашу обработку если она прописана в модуле объекта, а вам нужно получить ссылку на элемент справочника.
Объект.Ссылка - есть только в формах.
+
7. EVKash 14 16.11.18 13:45 Сейчас в теме
(5) примеров как грязи... лень искать?
https://infostart.ru/public/84119/
+
6. YannikAlx 43 16.11.18 12:45 Сейчас в теме
Вот вам пример для регистрации обработки в вашем справочнике (поменяйте ФизЛица на ваш)
	Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Справочник.ФизическиеЛица");
    ПараметрыРегистрации.Вставить("Вид","ЗаполнениеОбъекта");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Наименование", "Заполнить Адрес"+ПараметрыРегистрации.Версия);
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    ПараметрыРегистрации.Вставить("Информация", "Дополнительная обработка элемента справочника ФизЛица");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд,
    "Заполнить Адрес "+ПараметрыРегистрации.Версия,
    "Заполнить Адрес "+ПараметрыРегистрации.Версия,
    "ОткрытиеФормы", Истина);
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    Возврат ПараметрыРегистрации;
КонецФункции
Показать
+
8. YannikAlx 43 16.11.18 14:20 Сейчас в теме
Вот сделал обработку , которая просто сообщает Имя физлица , из формы которого была запущена.
В модуле объекта , вы можете получить любые данные по этому объекту и сделать с ними что угодно...
Прикрепленные файлы:
ТЕСТ23.epf
+
9. hoyo 16.11.18 14:49 Сейчас в теме
(8) За идею получения из ОбъектыНазначенияМассив спасибо, именно это мне и было нужно. Только не работает, хотя вроде всё сделал как надо:

Функция СведенияОВнешнейОбработке() Экспорт
	
	ИмяОбработки = "Создание задач по эксель-файлу с мероприятиями СВА";
	
	ПараметрыРегистрации = Новый Структура;
	
	ПараметрыРегистрации.Вставить("Вид", "ЗаполнениеОбъекта");
	ПараметрыРегистрации.Вставить("Назначение", Неопределено);
	ПараметрыРегистрации.Вставить("Наименование", ИмяОбработки);
	ПараметрыРегистрации.Вставить("Версия", "1.0");
	ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
	ПараметрыРегистрации.Вставить("Информация", ИмяОбработки);
	
	ТаблицаКоманд = ПолучитьТаблицуКоманд();
	
	ДобавитьКоманду(ТаблицаКоманд, ИмяОбработки, "СозданиеЗадачПоМероприятиямСВА", "ВызовСерверногоМетода");
	
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
	
	Возврат ПараметрыРегистрации;
	
КонецФункции

Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
	Если ИдентификаторКоманды = "СозданиеЗадачПоМероприятиямСВА" Тогда
		СозданиеЗадачПоМероприятиямСВАНаСервере(ОбъектыНазначенияМассив[0].Ссылка);
	КонецЕсли;

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

Функция ПолучитьТаблицуКоманд()
	
	Команды = Новый ТаблицаЗначений;
	Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); 
	Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
	Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
	Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
	Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
	
	Возврат Команды;
	
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
	
	НоваяКоманда = ТаблицаКоманд.Добавить();
	НоваяКоманда.Представление = Представление;
	НоваяКоманда.Идентификатор = Идентификатор;
	НоваяКоманда.Использование = Использование;
	НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
	НоваяКоманда.Модификатор = Модификатор;
	
КонецПроцедуры
Показать


Выдаёт странную ругань:
{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(3124)}: Итератор для значения не определен
Для Каждого ПолноеИмяОбъектаМетаданных Из РегистрационныеДанные.Назначение Цикл

Что это за нафиг?
+
10. YannikAlx 43 16.11.18 15:13 Сейчас в теме
Вы свою попробуйте создать обработку с нуля, и просто в модуль объекта вставьте весь текст из моей, исправив только то что вам необходимо.
Так быстрее...

А по сути у вас не задано Назначение !
+
11. hoyo 16.11.18 16:03 Сейчас в теме
(10) Да, именно в этом была проблема. Задал назначение:

МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Справочник.ВнутренниеДокументы");


Теперь работает. Осталось понять, где она должна появиться. Потому что на форме этой команды нигде не появилось.
+
12. YannikAlx 43 16.11.18 16:21 Сейчас в теме
Вы любите сложные пути?
Я вам привел рабочую обработку - сравнивайте!
+
13. hoyo 19.11.18 09:21 Сейчас в теме
(12) Она и у меня работала, как выяснилось. Просто кнопка на форме появлялась маленькая, со значком вместо текста, я её не заметил.
+
14. YannikAlx 43 19.11.18 09:36 Сейчас в теме
Ну так кто мешает Текст кнопке сделать , как в моей?
+
Внимание! Тема сдана в архив

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