Имя: Пароль:
1C
 
Внешняя обработка не работает в WEB-Клиенте, подскажите как поправить
0 wallkman2011
 
20.08.24
08:32
Всем здравствуйте.
В УТ 11 нужно дополнить документ "Перемещение товаров" товарами из документа "Приобретение товаров".
Сделал доп. обработку, подключил ее через "Внешние обработки", далее выбрав документ "Приобретение товаров" нажимаю на кнопку "Создание связанных объектов" и далее запускаю внешнюю обработку, которая должна показать форму выбора документов "Перемещение товаров", где я выбираю ранее созданный документ "Перемещение товаров" и выбрав его, в его ТЧ дополняются товары из документа основания, т.е. из нашей "Приходной накладно".
В толстом клиенте все работает, но при использовании WEB-клиента выходит ошибка:
"Интерактивные операции недоступны".
------------
В модуле формы внешней обработки есть процедура "Выполнить команду", которая вызывает процедуру "ВыполнитьКомандуНаСервере"
----------------

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

-----------
И в процедуре "ВыполнитьКомандуНаСервере" используется метод "ПолучитьФормуВыбора", который доступен только на Толстом клиенте:

&НаСервереБезКонтекста
Процедура ВыполнитьКомандуНаСервере(ОбъектыНазначения, СозданныеОбъекты)
    
Форма = Документы.ПеремещениеТоваров.ПолучитьФормуВыбора();
ВыбранныйДокумент = Форма.ОткрытьМодально();  
КоличествоСтрок = ВыбранныйДокумент.Товары.Количество();
    
ТЧ = ОбъектыНазначения[0].Товары.Выгрузить();

---------------
я полагаю ошибка в этом, но каким методом заменить и как по другому сделать, пока не пойму.
Буду рад помощи, спасибо.
1 denk32
 
20.08.24
08:38
(0) можно через ОписаниеОповещения.
как тут описано. только свою форму подставь.
https://infostart.ru/1c/articles/825702/
2 Мультук
 
20.08.24
08:38
(0)

1) Можно начать с чтения вот этого

https://infostart.ru/1c/articles/1233756/

2) А вообще лучше сходить на курсы

3) И наверное стоит научиться гуглить (пример):
infostart формы выбор УФ

P.S.
1С: Метод доступен только на Толстом клиенте.
ВЫ: Ну мне оооочень надо! Ну давай я открою выбор на сервере и сервер что-нибудь выберет, а ?
3 Kigo_Kigo
 
20.08.24
08:52
Сделай в расширении
4 wallkman2011
 
20.08.24
08:53
Буду разбираться ))
Спасибо всем за ответы
5 wallkman2011
 
20.08.24
08:54
(3) в расширении пробовал сделать, но почему то процедура с префиксом "&После Не срабатывает, даже точка останова, я так и не понял причину
6 Kigo_Kigo
 
20.08.24
08:57
(5) попробуй удалить и заново создать в расширении, такое бывает
7 Мультук
 
20.08.24
09:08
(6)
Конечно бывает.
Но что делать с кодом автора ?
Думаешь в расширении заработает?

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


Что не строчка, то шедевр!
8 wallkman2011
 
20.08.24
09:11
(7) я этот пример брал из ресурса Курсы по 1С, а чем код плох? возможно он для 8.2, устаревший, но мне ведь главное чтоб работало.
9 craxx
 
20.08.24
09:50
(0) ОткрытьМодально выкинь и забудь раз и навсегда.
10 Мультук
 
20.08.24
09:24
(8)


а) Главное. Вы собираетесь в событии &НаСервере
что-то показывать пользователю, чтобы пользователь что-то выбрал.
На сервере нет пользователя. совсем.

б) Конструкция морально устарела.  ОткрытьМодально -- deprecated, а на WEB-клиенте (имхо вообще работать не будет)

 Форма = Документы.ПеремещениеТоваров.ПолучитьФормуВыбора();
 ВыбранныйДокумент = Форма.ОткрытьМодально();


в) Тоже хрень, но работать будет. Вам за нее еще пояснят

  
КоличествоСтрок = ВыбранныйДокумент.Товары.Количество();



P.S.

8.2 это паровоз. С машинистом, кочегаром и прочими фишками.

Но уже появились тепловозы, электропоезда.

А вы пытаетесь в электропоезд залить воду, прицепить вагон с углем и не понимаете, почему нет места для кочегара.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший