Вызов клиента с сервера. Есть ли что-то новое?

1. ISP 07.05.21 10:45 Сейчас в теме
Есть серверная процедура. Если входе ее выполнения оказывается, что выборка не пустая, то надо задать вопрос пользователю. В зависимости от ответа поведение у системы будет разное.

Знаю что так нельзя, но читал (или выдаю желаемое за действительность?) , где-то статью что 1C в новых версиях дает механизм для такого. Сейчас найти ее не могу.

Можно ли с сервера вызвать клиентский метод ?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. DENSKR 15 09.05.21 00:16 Сейчас в теме
(1) Задавался данным вопросом не один раз, в итоге ответ нет. НЕЛЬЗЯ вызвать с сервера клиентскую процедуру.

Как вариант:
 
&НаКлиенте
Процедура ВашаПроверкаВыборки()
	
	Проверка = ВашаСервернаяФункция();
	Если Проверка = Истина Тогда
		Ответ = Вопрос(НСтр("ru='Ваш Вопрос пользователю?'"),РежимДиалогаВопрос.ДаНет);
		
		Если Ответ = КодВозвратаДиалога.Да Тогда
			ВашаПроцедураДальнейшегоПоведенияСистемы1();
		Иначе
			ВашаПроцедураДальнейшегоПоведенияСистемы2();
		КонецЕсли;
	 КонецЕсли;
КонецПроцедуры	

&НаСервере
//Ваша серверная процедура, делаем ее функцией чтобы можно было что либо возвращать
//
Функция ВашаСервернаяФункция(); 	
	
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	 |	*
	 |ИЗ
	 |	Справочник.Ваш КАК ВашСправочник";
	Выборка = Запрос.Выполнить().Выгрузить();
	
	Если Выборка.Количество()<>0 Тогда
		Возврат Истина;
	Иначе
		Возврат Ложь;
	КонецЕсли;	
		
	// ЭТО Ваш код в ходе которого оказалось что выборка не пустая 
	
КонецФункции
Показать
2. Dmitrij-2 45 07.05.21 10:48 Сейчас в теме
(1) вызываете серверный метод, что-то делаете. Возвращаетесь на клиента, спрашиваете. После ответа опять вызываете серверный метод.
Механизм оповещения клиента с сервера есть, называется система взаимодействия. Но задать вопрос, получить ответ и продолжить выполнение кода на сервере все равно не получится.
3. soft_wind 07.05.21 12:07 Сейчас в теме
(1) еще вариант
перед вызовом серверного метода
на клиенте задайте пользователю свои нужные вопросы

"Если там что-то, то создавать?", "Да/Нет"

и ответ передаете в серверный вызов
там в зависимости от кода анализируете уже полученный ответ
4. ImHunter 315 07.05.21 12:51 Сейчас в теме
(1) Пока что непонятно, идет ли речь о синхронной работе - т.е., в пределах одной цепочки вызовов. Или же, действительно, нужна асинхронность.
Серверный метод вообще каким образом вызывается?
5. serg33rus 28 07.05.21 17:18 Сейчас в теме
Как писал DNN13 сейчас существует Система Взаимодействия которая позволяет сформировать сообщение пользователю и навтыкать в сообщения команды. Когда пользователь ткнет в команду, сервер может ее обработать и что-то соответственно сделать.
6. resonance 81 07.05.21 20:49 Сейчас в теме
Все проверки и ветвления алгоритма если требуется ответы, или действия пользователя, нужно делать в процедурах врываемых с директивой &НаКлиенте.

Действительно для этого в языке есть спец инструменты. Например ПоказатьВопрос(), ПоказатьПредупреждение() и пр.

И далее уже при ответе пользователя Вызывать серверную процедуру. С директивой на &НаСервере
8. user1559729 14.06.22 15:06 Сейчас в теме
Тоже задался подобным вопросом. И вот какая задача:

У меня есть отчет на СКД. Отчет не имеет добавленной формы отчета, соответственно весь код работает на сервере.

Но для отчета нужно реализовать одну дополнительную функцию. Для её реализации нужен доступ к пользовательскому каталогу с правами пользователя, т.е. мне нужно клиентское обращение к каталогу.

Возможно ли реализовать эту задачу без добавления формы отчета?
9. user1559729 14.06.22 15:57 Сейчас в теме
Можно ли добавить Команду в стандартный отчет СКД (без собственной формы)?
Оставьте свое сообщение

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