Открыть документ из e-mail

1. codename-s 27.07.15 18:26 Сейчас в теме
При проведении документа генерируется и отправляется на нужный e-mail ссылка вида http://localhost/tracker/ru/?C=c40bb875-29e7-11e5-8421-f82fa8f5e448 где C это ПараметрЗапуска в который передается УникальныйИдентификатор этого документа.

И тут-то я втупил... этот параметр нигде не виден кроме МодуляУправляемогоПриложения. и как его оттуда выудить???

ах да забыл, по УникальномуИдентификатору нужно открыть документ...
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 27.07.15 19:18 Сейчас в теме
(1) codename-s, Сохранить в глобальной переменной. Открывать сразу из модуля. Не вариант?
Помимо ГУИД нужно еще знать тип документа.
3. codename-s 28.07.15 01:07 Сейчас в теме
Тип документа всегда будет один.

Открывать сразу из модуля

Если ЗначениеЗаполнено(ПараметрЗапуска) тогда 
   Уид = Новый УникальныйИдентификатор(ВернутьПраметрЗапуска());
   МойДок = Документы.МойДок.ПолучитьСсылку(Уид);
   МойДок.ПолучитьФорму("ФормаДокумента").Открыть();			
   КонецЕсли; 


Переменная не определена Документы (((

Сохранить в глобальной переменной
Это мысль, вчера просто уже глаза был замылены... а кто потом обработает эту переменную?
4. dj_serega 390 28.07.15 07:54 Сейчас в теме
(3) codename-s,
1. Документы, Справочники, Запросы есть только &НаСервере или &НаСервереБезКонтекста. Видимо процедура то клиентская.
2. Если нужно открыть форму, тогда лучше воспользоваться методом ОткрытьФорму(), а не получать ее.
3. Вот так должно работать.
&НаКлиенте
Процедура Что-тоКлиентское
	
	Если ЗначениеЗаполнено(ПараметрЗапуска) тогда 
		
		КлючДокумента = ПолучитьСсылкуНаДокумент(ВернутьПраметрЗапуска());
		
		ПараметрыФормы = Новый Структура;
		ПараметрыФормы.Вставить("Ключ", КлючДокумента);
		
		ОткрытьФорму("Документ.ТвойДокумент.ФормаОбъекта", ПараметрыФормы);
		
	КонецЕсли;
	
КонецЕсли;

&НаСервереБезКонтекста
Функция ПолучитьСсылкуНаДокумент(СтрокаGUIDа)
	
	GUID = Новый УникальныйИдентификатор(СтрокаGUIDа);
	
	Возврат Документы.ТвойДокумент.ПолучитьСсылку(GUID);
	
КонецФункции
Показать
reazek; spacecraft; +2 Ответить
5. codename-s 28.07.15 13:27 Сейчас в теме
Спасибо, я в итоге примерно так-же и сделал.

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	Если ВернутьСсылкуНаДокумент(ВернутьПраметрЗапуска()) <> Неопределено тогда
		ПоказатьЗначение(,ВернутьСсылкуНаДокумент(ВернутьПраметрЗапуска()));
	КонецЕсли;
	
КонецПроцедуры

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



В модуле управляемого приложения ВернутьПраметрЗапуска() которая собственно возврашает параметр запуска)))

Бхы, ВернутьПраметрЗапуска() у вас както до боли знакомо называется ;) она у вас не в том же модуле случайно
6. dj_serega 390 28.07.15 13:32 Сейчас в теме
(5) codename-s, Можно совет? :)
Почитайте что такое "&НаСервереБезКонтекста" и используйте данный функционал.
7. codename-s 28.07.15 13:47 Сейчас в теме
)) дельный совет, прочитано
8. tusv 210 28.07.15 15:15 Сейчас в теме
Так быстрее до Парижу добежать, чем управляемая форма откроется.
Год не работал с УФ, что помню
Уид = Новый УникальныйИдентификатор(Параметр);
Задача = Документы.МойДокумент.ПолучитьСсылку(Уид);
Форма=ПолучитьФорму(<Форма>, Новый Структура("Ключ",Задача));
Форма.Открыть();
9. dj_serega 390 28.07.15 15:35 Сейчас в теме
(8) tusv, а в (4) что написано?, это раз.
Второе. На Клиенте нет документов. А на сервере нет форм. Поэтому немного не то.
k_vasil; tusv; +2 Ответить
10. tusv 210 28.07.15 15:40 Сейчас в теме
(9) dj_serega, Спасибо за критику
dj_serega; +1 Ответить
11. Чарик 2 28.07.15 16:07 Сейчас в теме
держи рабочий код:
&НаСервере
Функция ПолучитьПоУИДНаСервере(УИД)
	
	УИН = Новый УникальныйИдентификатор(УИД);
	Ссыль = Документы.<твой_док>.ПолучитьСсылку(УИН);
	
	Возврат Ссыль;
	
КонецФункции

&НаКлиенте
Процедура ОткрытьПоУИД(Команда)
	
	Ссыль = ПолучитьПоУИДНаСервере(УИД);
	
	парам = Новый Структура;
	парам.Вставить("Ключ", Ссыль);
	
	ОткрытьФорму("Документ.<твой_док>.ФормаОбъекта", парам);
	
КонецПроцедуры

Показать
12. spacecraft 28.07.15 16:27 Сейчас в теме
(11) Чарик, может уже хватит извращаться? Лучший ответ уже дан в (4). И он лучше этого.
k_vasil; dj_serega; +2 Ответить
13. codename-s 21.08.15 13:52 Сейчас в теме
Ну вот, все вроде работает прекрасно однако бЯда... если в браузере открыта 1с и пользователь еще и переходит по ссылке из письма браузер любезно открывает новую вкладку и 1с сообщает что возможно сеанс уже запущен в другой вкладке и предлагает заново авторизоваться.

Если я сижу разгребаю кучу писем и тыкаю по ссылкам то получается неудобно... вот просто интересно это вообще решаемо?
14. ditp 91 21.08.15 14:41 Сейчас в теме
(13) codename-s, готового решения нет, но в качестве идеи может сгодится - генерить внешнее событие 1С.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)