Имя: Пароль:
1C
 
УТ11 подключение внешней обработки
0 190-4
 
05.12.24
16:07
всем привет! ситуация следующая
есть типовая конфигурация УТ 11 и внешняя обработка, которая запускается нажатием кнопки из документа ЗаказКлиента.
Внешнюю обработку успешна подключена пользователем через меню "Дополнительные отчеты и обработки".
Но при попытке запустить, она не открывается, а точнее открывается форма справочника "Дополнительные отчеты и обработки".
В модуле формы документа ЗаказКлиента прописан след.код для ее открытия:

&НаКлиенте
Процедура Обработка(Команда)
    
ПодключитьВнешнююОбработку();

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


&НаСервере
Функция ПодключитьВнешнююОбработку()

Обр = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Автозаполнение Заказов");  
Форма = Обр.ПолучитьФорму();
Форма.Открыть();
    
КонецФункции

Помогите, пожалуйста. Что нужно исправить в данном коде
1 Ненавижу 1С
 
05.12.24
16:19
Зачем эта обработка?
Зачем писать код в форме документа?
2 Lite777888
 
05.12.24
16:28
(0) ОткрытьФорму("Обработка.ОбработкаДляПримера.Форма",,,,,,,
3 190-4
 
05.12.24
16:32
(1) в форме документа создана кнопка с командой, по нажатию на на которою открывается форма обработки
4 Мультук
 
05.12.24
16:42
(2)

Ответ хороший, но неправильный.
Обработка внешняя и лежит в справочник "Дополнительные отчеты и обработки".

(3) Не открывается
Ибо вы открываете (пытаетесь) её на сервере. А там некому смотреть. Пользователь он "на клиенте"

Мой вам совет:
-- книги
-- курсы

P.S.

google выдал вот такой код, наверное правильный. Думать лень

&НаКлиенте
Процедура Обработка(Команда) 

   Обр = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Автозаполнение Заказов");   
   ИмяОбработки = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(Обр);
   Если Обр.ЭтоОтчет Тогда
	ОткрытьФорму("ВнешнийОтчет."+ ИмяОбработки +".Форма");
   Иначе
	ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма");
   КонецЕсли;

КонецПроцедуры 
5 Jackman
 
05.12.24
16:43
(0) Можете средствами БСП это сделать.

Погуглите, забив в поиск "ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьОткрытиеФормыОбработки", сразу получите несколько примеров готовых решений.
6 MWWRuza
 
05.12.24
18:20
Могу ошибаться, но, чтобы обработка правильно работала через штатный механизм "дополнительных обработок", в модуле объекта самой обработки должно быть что-то на вроде этого прописано:

Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.Версия = "1.0.0.0";
    ПараметрыРегистрации.БезопасныйРежим=Ложь;
    Команда = ПараметрыРегистрации.Команды.Добавить();
    Команда.Представление = НСтр("ru = 'Имя, как она должна быть пользователю видна'");
    Команда.Идентификатор = "ТутИмяФайлаОбработки";
    Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    Возврат ПараметрыРегистрации;
КонецФункции // ()
7 190-4
 
05.12.24
22:11
(4) вариант оказался рабочим, спасибо большое. Ошибка только в том, что к справочнику нельзя обраться с клиента, поэтому нужно было сделать серверную функцию. Спасибо за помощь!
2 + 2 = 3.9999999999999999999999999999999...