Бекапирование ОписанияОповещения

1. kyzma-kyzmi4 24 28.10.20 15:13 Сейчас в теме
Добрый день!

Каким образом можно сохранить в базе ОписаниеОповещения в полном виде, чтобы потом под другим сеансом продолжить с ним работать на клиенте(естественно).

Передать с клиента на сервер не получается, система падает с ошибкой:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.

В строкуВнутр, json, и временноехранилище этот объект тоже не влезает.

Была мысль парсинга описания, но внутри описания есть свойство модуль, которое идентифицировать не удается, т.е. получить имя модуля или метаданные


P.S. не надо спрашивать "Зачем это надо делать" и говорить "напиши задачу, ты её неверно решаешь"
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
15. FatPanzer 28.10.20 17:25 Сейчас в теме
(1) Видимо, пришла пора задать два вопроса. Я старался не задавать, и честно терпел. Задаю:
"Зачем это надо делать"
"напиши задачу, ты её неверно решаешь"
?
vadim1011985; Xershi; +2 Ответить
18. SlavaKron 28.10.20 17:28 Сейчас в теме
(1)
В строкуВнутр, json, и временноехранилище этот объект тоже не влезает.

Как проверяли ЗначениеВСтрокуВнутр, если эта функция доступна только на сервере?
19. vadim1011985 101 28.10.20 17:30 Сейчас в теме
(18) наверно и ловил такую ошибку
21. FatPanzer 28.10.20 17:33 Сейчас в теме
28. SlavaKron 28.10.20 21:04 Сейчас в теме
(21) Просто в толстом клиенте, думаю, можно исхитриться выудить имя модуля из объекта типа "ОбщийМодуль"
29. vadim1011985 101 28.10.20 23:46 Сейчас в теме
(28) Ну как вариант загнать все общие модули в соответствие (пока вручную - другого способа не нашел)

Дальше сравнивать модуль пришедший в оповещении со всеми модулями из соответствия.

&НаКлиенте
Процедура ПоучитьИмяМодуля(Команда)
	
	модуль1 = АдресныйКлассификаторКлиент;
	модуль2 = АдресныйКлассификаторКлиент;
        Модуль3 = РаботаСФайламиСлужебныйКлиент;

	Сравнение1 = Модуль1 = Модуль2; // Истина
        Сравнение2 = Модуль1 = Модуль3; // Ложь

КонецПРоцедуры 
Показать

Костыль конечно -но другого способа я не вижу пока
30. SlavaKron 29.10.20 09:10 Сейчас в теме
(29) На сервере можно получить имена общих модулей, доступных на клиенте через метаданные. Инициализировать их на клиенте с помощью метода Вычислить, пока не найдем нужный.
&НаКлиенте
Процедура Команда1(Команда)
	
	ОбщийМодуль = ОбщийМодульВызовСервера;	
	
	ИмяМодуля = Неопределено;
	ИменаОбщихМодулей = ПолучитьИменаОбщихМодулей();
	Для Каждого ИмяОбщегоМодуля Из ИменаОбщихМодулей Цикл
		ТекущийМодуль =	Вычислить(ИмяОбщегоМодуля);
		Если ТекущийМодуль = ОбщийМодуль Тогда
			ИмяМодуля = ИмяОбщегоМодуля;
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
	Сообщить(ИмяМодуля);
	
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьИменаОбщихМодулей()
	
	Результат = Новый Массив;
	
	Для Каждого МетаданныеОбщегоМодуля Из Метаданные.ОбщиеМодули Цикл
		
		Если МетаданныеОбщегоМодуля.ВызовСервера ИЛИ МетаданныеОбщегоМодуля.КлиентУправляемоеПриложение Тогда
			Результат.Добавить(МетаданныеОбщегоМодуля.Имя);
		КонецЕсли;
		
	КонецЦикла;
	
	Возврат Результат
	
КонецФункции
Показать
31. vadim1011985 101 29.10.20 09:18 Сейчас в теме
(30) Да, у меня такая же идея была вчера , но не через вычислить , а через функцию Выполнить
2. FatPanzer 28.10.20 15:16 Сейчас в теме
Бомболюки.. Структура... Сохранять при/перед первичном создании Оповещения. При вторичном использовании - строить Оповещение из структуры...
3. kyzma-kyzmi4 24 28.10.20 15:18 Сейчас в теме
(2) Даже будучи в структуре Оповещение все равно не уходит на сервер
4. FatPanzer 28.10.20 15:19 Сейчас в теме
(3) А я и не говорил, что надо само оповещение в структуру засовывать... А вот его параметры - вполне. Чтобы потом из них строить клона.
5. kyzma-kyzmi4 24 28.10.20 15:40 Сейчас в теме
(4) а как общий модуль поместить в структуру?

в оповещении один из параметров "Модуль", но вот понять что это за модуль у меня не получается
6. FatPanzer 28.10.20 15:53 Сейчас в теме
(5) Никак. Помещай ссылку на модуль или имя модуля... В чем трабла?
7. kyzma-kyzmi4 24 28.10.20 16:00 Сейчас в теме
Я не знаю их в момент преобразования в структуру, а вытащить имя из самого модуля не получается
Прикрепленные файлы:
8. FatPanzer 28.10.20 16:13 Сейчас в теме
(7) Я не говорил расковыривать само Оповещение. Я сказал формировать структуру в момент первоначального конструирования Оповещения, когда все известно...
11. kyzma-kyzmi4 24 28.10.20 17:18 Сейчас в теме
(8) как видно на изображении там 3 вложенных оповещения, и перехватывать необходимо уже в другом месте ни там где они формируются
13. FatPanzer 28.10.20 17:23 Сейчас в теме
(11) Я что, может не по-русски говорю? Сформировать структуру из параметров в момент формирования оповещения (имя процедуры, имя модуля, доппараметры и проч). Обозвать её СоставОповещения. И храни это чудо где хочешь (можешь даже в те же доппараметры его засунуть для извращения)...
14. Xershi 1490 28.10.20 17:25 Сейчас в теме
(12) ну в доп параметры кидаешь структуру, в которой это оповещение описано текстовыми переменными. Потом по этим данным пишешь новый код. не понятно что до 13 писали про это?
Как по мне бредовая идея, но вы смотрю знатный мазахист!
16. FatPanzer 28.10.20 17:26 Сейчас в теме
(14) Если человек хочет, то я не смею ему отказать... У каждого свое горе ;-)
23. Xershi 1490 28.10.20 17:57 Сейчас в теме
(16) для таких целей СВ придумали. Автор может решил сэкономить.
26. kyzma-kyzmi4 24 28.10.20 19:51 Сейчас в теме
(23) Кого придумали, прошу прощения не знаком с такой аббревиатурой?
27. Xershi 1490 28.10.20 20:02 Сейчас в теме
(26)сервер взаимодействия.
17. vadim1011985 101 28.10.20 17:27 Сейчас в теме
(13) Ну как раз в доп.параметры описание оповещения запихнуть можно без всяких извращенств , а тут ка я понимаю особый случай ТС наверно хочет что бы событие формировалось одним пользователем а перехватывалось другим
20. FatPanzer 28.10.20 17:32 Сейчас в теме
(17) Сейчас узнаем... Не удивлюсь вообще ни разу, по-моему чел собирается прокидывать оповещения между сеансами. Правда непонятно, как он собирается привязываться к формам из другого сеанса, ну да ладно.
22. vadim1011985 101 28.10.20 17:35 Сейчас в теме
(20) пошел за поп-кормом ))
24. kyzma-kyzmi4 24 28.10.20 19:48 Сейчас в теме
(20)Да, так и хочу сделать, а форма у меня чисто справочная, она не содержит изменений.
25. kyzma-kyzmi4 24 28.10.20 19:49 Сейчас в теме
(17) Проблема лишь в том, что по коду этих оповещений мульон и в каждое внести изменение никакого удовольствие, ведь точка входа одна, где я планирую провести перехват и продолжить код из другого сеанса, а вот мест прихода в этот код куда больше
10. FatPanzer 28.10.20 16:51 Сейчас в теме
(7) Ну где-то же оно формируется в коде, не? Оно не может прийти снаружи... Что показывает "крестик", если его развернуть?
12. kyzma-kyzmi4 24 28.10.20 17:22 Сейчас в теме
(10) Там только свойство ЭтотОбъект, никакой принадлежности к его местоположению
9. пользователь 28.10.20 16:45
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

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