Передача параметра в открытый документ из обработки

1. АннаШ 126 24.06.16 14:33 Сейчас в теме
День добрый!
Возникла такая засада:
1. документ - по кнопке выводится печатная форма (форма обработки закрывается, на экране только печ. форма);
2. в печ. форме есть "кнопка" (по типу стандартной "Обновить") - по этой кнопке выводится диалог;
3. диалог - внешняя обработка (открывается модально) - по кнопке происходит отправка на мыло.
При успешной отправке нужно в док-т (1) вернуть и записать инфу об отправке (в комментарий).

Не могу достучаться до документа из диалога.

Заранее - спасибо за помощь.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. jack19 148 24.06.16 16:16 Сейчас в теме
(1) АннаШ, Передать в обработку ссылку на документ. В случае успеха найти документ в журнале документов и записать комментарий.
3. АннаШ 126 24.06.16 16:25 Сейчас в теме
(2) В диалоге (последняя форма)
		ПриОткрытии
Докум		= Форма.Параметр.Получить("ДокументРеализации");
			мДок = СоздатьОбъект("Документ.Реализация");
			мДок.НайтиДокумент(Докум);
			Докум = мДок;
Сообщить("4 - " + Докум + " - " + ТипЗначения(Докум) + " - " + Докум.Блокировка());		

Процедура ПриЗакрытии()
	Сообщить("попали");
	мСтрока = "Отправлено по электронной почте: адрес - " + СокрЛП(Контрагент.ЭлПочта) + ", дата - " + ТекущаяДата() + ", время - " + ТекущееВремя() + ".";
ОткрытьФорму(Докум.ТекущийДокумент(), мСтрока);

Показать


Пишет, что запись заблокирована.
5. Kolunya 6 24.06.16 16:48 Сейчас в теме
(3) АннаШ,

во внешней обработке
Процедура ПриОткрытии()

//запускаем наши процедуры по отправке почты
	Параметры = СоздатьОбъект("СписокЗначений");
	Параметры.Установить("СтатусЗавершения",1);// 1 - хорошо, 0 - никак
	Параметры.Установить("НадоЗаписатьКоммент",НашКоммент_СтатусОтправкиПочты);// 1 - хорошо, 0 - никак
        Форма.Закрыть()
КонецПроцедуры


в документе
	Попытка
		Параметры = СоздатьОбъект("СписокЗначений");
		Параметры.ДобавитьЗначение("","НадоЗаписатьКоммент");
		Параметры.ДобавитьЗначение(0,"СтатусЗавершения");// 1 - хорошо, 0 - никак
		Если ОткрытьФорму("Отчет",Параметры,КаталогИБ()+"_ОтправкаПочтыКонтрагенту.ert") = 0 Тогда    
			//нет файла??? ниииипаааааряяядок)))
			а = 1/0;//деление на ноль => ошибка => идем в ИСКЛЮЧЕНИЕ))    
		Иначе
			Если Параметры.СтатусЗавершения = 0 Тогда
				СтатусВозврата(0);
				Возврат;
                        Иначе
                             Комментарий = Комментарий + "###"+Параметры.НадоЗаписатьКоммент;
			КонецЕсли;    
		КонецЕсли;    
	Исключение
		Предупреждение("Не могу загрузить параметры отправки почты.
		|Обратитесь к администратору.");
		СтатусВозврата(0);
	КонецПопытки;      
Показать


у меня по такому принципу из гл.модуля обработки запускаются приНачалеРаботыСистемы и приЗавершении
по идее должно и из документа взлететь;-)
4. АннаШ 126 24.06.16 16:26 Сейчас в теме
В первой форме (от которой остается только печатная), в ячейку на форме добавляется:
Расшифровка.ДобавитьЗначение(ТекДок.ТекущийДокумент(), "ДокументРеализации");
6. АннаШ 126 24.06.16 16:57 Сейчас в теме
Kolunya, Вы только не ругайтесь, но внешняя обработка по отправке почты запускается не из док-та, а из печ. формы. На таблице есть кнопка (ну, типа того), по типу стандартных отчетов (Остатки и пр.) - там на таблице тоже есть кнопки.
То есть получается - сначала из документа запускается внешняя формы с печ. формой (причем, сама форма закрывается), а уже из печ. формы - диалог по оправке.
И я никак не могу достучаться из диалога до документа :(
7. АннаШ 126 24.06.16 17:01 Сейчас в теме
Сейчас вот специально проверила, если в печ. форме получить док-т и оттуда же его открыть - все замечательно работает.
У меня такое ощущение, что сам документ (почему-то и как-то) теряется при открытии диалога.
Модальность не влияет?
8. Kolunya 6 24.06.16 17:12 Сейчас в теме
(7) АннаШ,
ссылка на документ есть в этой ПечФорме?
Сам документ при этом остается открытым?
10. АннаШ 126 24.06.16 17:19 Сейчас в теме
(8) В диалоге при открытии:
		Докум		= Форма.Параметр.Получить("ДокументРеализации");
		мДок = СоздатьОбъект("Документ.Реализация");
		мДок.НайтиДокумент(Докум);
		Докум = мДок;
Сообщить("3 - " + Докум + " - " + ТипЗначения(Докум) + " - " + Докум.Блокировка());	
	
Процедура ПриЗакрытии()
	мСтрока = "Отправлено по электронной почте: адрес - " + СокрЛП(Контрагент.ЭлПочта) + ", дата - " + ТекущаяДата() + ", время - " + ТекущееВремя() + ".";
Сообщить("4 - " + Докум + " - " + ТипЗначения(Докум) + " - " + ТипЗначенияСтр(Докум));	
ОткрытьФорму(Докум);
КонецПроцедуры // ПриЗакрытии
Показать

Везде пишет (окне сообщений) нужный документ и 12.
Да, документ открыт, затем печ. форма, затем диалог.
Диалог закрывается, но сам док-т не открывает (то есть печ. форма сверху).
9. Kolunya 6 24.06.16 17:17 Сейчас в теме
если документ открыт - в него ничего не запишите, он заблокирован.
Варианты:
1. закрывать форму при печати и из вашей кнопки делать ЗаписатьАтрибут() в документ (чтобы его не перепроводить лишний раз)
2. не закрывать форму печати, кнопку отправки почты перенести с Таблицы на форму и при отправке почты передавать потом в документ назад этот Коммент
3. из таблицы убрать кнопку, заменить на вызов диалога вопроса после печати "отправить почту?, да/нет", передавать потом в документ назад этот Коммент
11. АннаШ 126 24.06.16 17:21 Сейчас в теме
(9)
1. При выводе печ. формы еще нету отправки. Отправка-то по кнопке.
2, 3. Понятно, но хотелось по-человечески: открыли готовую форму, посмотрели, если все устраивает - отправляем.
12. Kolunya 6 24.06.16 17:34 Сейчас в теме
(11) АннаШ, сделайте по другому...
по типу как в регламентированной отчетности - Таблица выводится под формой с кнопками.
вот тогда сможете при закрытии этой формы передать параметр в открытый документ
13. АннаШ 126 24.06.16 17:46 Сейчас в теме
14. selesta 17 30.06.16 16:08 Сейчас в теме
Как вариант запись сделать не в документ а в журнал регистрации по этому документу
15. АннаШ 126 30.06.16 16:57 Сейчас в теме
(14) Спасибо :)
Я уже обошла: на панели инструментов кнопка "Мыло" + глобальная переменная док-та, в док-те кнопка "Мыло", по ней открывается нужная печ. форма + инициализируется глоб. переменная док-та, а по кнопке на панели открывается диалог - берет открытую печ. форму, отправляет, при закрытии диалога - открывается (повторно) док-т с параметром (строка про отправку в комментарий).

Еще раз - всем спасибо!
16. dvk09 2 01.07.16 10:52 Сейчас в теме
Осталась еще одна проблема:
А если кто-то другой откроет это документ...
Лучше тогда передавать контекст формы документа.
Оставьте свое сообщение

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