Передача параметра в открытый документ из обработки
День добрый!
Возникла такая засада:
1. документ - по кнопке выводится печатная форма (форма обработки закрывается, на экране только печ. форма);
2. в печ. форме есть "кнопка" (по типу стандартной "Обновить") - по этой кнопке выводится диалог;
3. диалог - внешняя обработка (открывается модально) - по кнопке происходит отправка на мыло.
При успешной отправке нужно в док-т (1) вернуть и записать инфу об отправке (в комментарий).
Не могу достучаться до документа из диалога.
Заранее - спасибо за помощь.
Возникла такая засада:
1. документ - по кнопке выводится печатная форма (форма обработки закрывается, на экране только печ. форма);
2. в печ. форме есть "кнопка" (по типу стандартной "Обновить") - по этой кнопке выводится диалог;
3. диалог - внешняя обработка (открывается модально) - по кнопке происходит отправка на мыло.
При успешной отправке нужно в док-т (1) вернуть и записать инфу об отправке (в комментарий).
Не могу достучаться до документа из диалога.
Заранее - спасибо за помощь.
По теме из базы знаний
- Создание внешней печатной формы под УП с возможностью передачи параметров (для конфигураций на БСП)
- Механизмы и транспорт обмена данными. Пример создания в КД 2.1 правил обмена данными ЗУП 2.5 -> БП 3.0. Выгрузка ведомостей и банковских счетов. Передача параметров обмена из Источника в Приемник. ВыгрузитьПоПравилу(). ПередатьОдинПараметрВПриемник().
- Как программно открыть внешний отчет из "Дополнительных отчетов и обработок" и передать параметры (при помощи БСП)
- Шаблон внешней печатной управляемой формы с возможностью передачи параметров из клиентской формы в стандартную общую форму печати документов
- Внешняя печатная форма с передачей параметров через форму. Для БП 3.0 последних версий (БП 3.0.143.32 и новее)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) В диалоге (последняя форма)
Пишет, что запись заблокирована.
ПриОткрытии
Докум = Форма.Параметр.Получить("ДокументРеализации");
мДок = СоздатьОбъект("Документ.Реализация");
мДок.НайтиДокумент(Докум);
Докум = мДок;
Сообщить("4 - " + Докум + " - " + ТипЗначения(Докум) + " - " + Докум.Блокировка());
Процедура ПриЗакрытии()
Сообщить("попали");
мСтрока = "Отправлено по электронной почте: адрес - " + СокрЛП(Контрагент.ЭлПочта) + ", дата - " + ТекущаяДата() + ", время - " + ТекущееВремя() + ".";
ОткрытьФорму(Докум.ТекущийДокумент(), мСтрока);
ПоказатьПишет, что запись заблокирована.
(3) АннаШ,
во внешней обработке
в документе
у меня по такому принципу из гл.модуля обработки запускаются приНачалеРаботыСистемы и приЗавершении
по идее должно и из документа взлететь;-)
во внешней обработке
Процедура ПриОткрытии()
//запускаем наши процедуры по отправке почты
Параметры = СоздатьОбъект("СписокЗначений");
Параметры.Установить("СтатусЗавершения",1);// 1 - хорошо, 0 - никак
Параметры.Установить("НадоЗаписатьКоммент",НашКоммент_СтатусОтправкиПочты);// 1 - хорошо, 0 - никак
Форма.Закрыть()
КонецПроцедуры
в документе
Попытка
Параметры = СоздатьОбъект("СписокЗначений");
Параметры.ДобавитьЗначение("","НадоЗаписатьКоммент");
Параметры.ДобавитьЗначение(0,"СтатусЗавершения");// 1 - хорошо, 0 - никак
Если ОткрытьФорму("Отчет",Параметры,КаталогИБ()+"_ОтправкаПочтыКонтрагенту.ert") = 0 Тогда
//нет файла??? ниииипаааааряяядок)))
а = 1/0;//деление на ноль => ошибка => идем в ИСКЛЮЧЕНИЕ))
Иначе
Если Параметры.СтатусЗавершения = 0 Тогда
СтатусВозврата(0);
Возврат;
Иначе
Комментарий = Комментарий + "###"+Параметры.НадоЗаписатьКоммент;
КонецЕсли;
КонецЕсли;
Исключение
Предупреждение("Не могу загрузить параметры отправки почты.
|Обратитесь к администратору.");
СтатусВозврата(0);
КонецПопытки;
Показатьу меня по такому принципу из гл.модуля обработки запускаются приНачалеРаботыСистемы и приЗавершении
по идее должно и из документа взлететь;-)
Kolunya, Вы только не ругайтесь, но внешняя обработка по отправке почты запускается не из док-та, а из печ. формы. На таблице есть кнопка (ну, типа того), по типу стандартных отчетов (Остатки и пр.) - там на таблице тоже есть кнопки.
То есть получается - сначала из документа запускается внешняя формы с печ. формой (причем, сама форма закрывается), а уже из печ. формы - диалог по оправке.
И я никак не могу достучаться из диалога до документа :(
То есть получается - сначала из документа запускается внешняя формы с печ. формой (причем, сама форма закрывается), а уже из печ. формы - диалог по оправке.
И я никак не могу достучаться из диалога до документа :(
Сейчас вот специально проверила, если в печ. форме получить док-т и оттуда же его открыть - все замечательно работает.
У меня такое ощущение, что сам документ (почему-то и как-то) теряется при открытии диалога.
Модальность не влияет?
У меня такое ощущение, что сам документ (почему-то и как-то) теряется при открытии диалога.
Модальность не влияет?
(8) В диалоге при открытии:
Везде пишет (окне сообщений) нужный документ и 12.
Да, документ открыт, затем печ. форма, затем диалог.
Диалог закрывается, но сам док-т не открывает (то есть печ. форма сверху).
Докум = Форма.Параметр.Получить("ДокументРеализации");
мДок = СоздатьОбъект("Документ.Реализация");
мДок.НайтиДокумент(Докум);
Докум = мДок;
Сообщить("3 - " + Докум + " - " + ТипЗначения(Докум) + " - " + Докум.Блокировка());
Процедура ПриЗакрытии()
мСтрока = "Отправлено по электронной почте: адрес - " + СокрЛП(Контрагент.ЭлПочта) + ", дата - " + ТекущаяДата() + ", время - " + ТекущееВремя() + ".";
Сообщить("4 - " + Докум + " - " + ТипЗначения(Докум) + " - " + ТипЗначенияСтр(Докум));
ОткрытьФорму(Докум);
КонецПроцедуры // ПриЗакрытии
ПоказатьВезде пишет (окне сообщений) нужный документ и 12.
Да, документ открыт, затем печ. форма, затем диалог.
Диалог закрывается, но сам док-т не открывает (то есть печ. форма сверху).
если документ открыт - в него ничего не запишите, он заблокирован.
Варианты:
1. закрывать форму при печати и из вашей кнопки делать ЗаписатьАтрибут() в документ (чтобы его не перепроводить лишний раз)
2. не закрывать форму печати, кнопку отправки почты перенести с Таблицы на форму и при отправке почты передавать потом в документ назад этот Коммент
3. из таблицы убрать кнопку, заменить на вызов диалога вопроса после печати "отправить почту?, да/нет", передавать потом в документ назад этот Коммент
Варианты:
1. закрывать форму при печати и из вашей кнопки делать ЗаписатьАтрибут() в документ (чтобы его не перепроводить лишний раз)
2. не закрывать форму печати, кнопку отправки почты перенести с Таблицы на форму и при отправке почты передавать потом в документ назад этот Коммент
3. из таблицы убрать кнопку, заменить на вызов диалога вопроса после печати "отправить почту?, да/нет", передавать потом в документ назад этот Коммент
(14) Спасибо :)
Я уже обошла: на панели инструментов кнопка "Мыло" + глобальная переменная док-та, в док-те кнопка "Мыло", по ней открывается нужная печ. форма + инициализируется глоб. переменная док-та, а по кнопке на панели открывается диалог - берет открытую печ. форму, отправляет, при закрытии диалога - открывается (повторно) док-т с параметром (строка про отправку в комментарий).
Еще раз - всем спасибо!
Я уже обошла: на панели инструментов кнопка "Мыло" + глобальная переменная док-та, в док-те кнопка "Мыло", по ней открывается нужная печ. форма + инициализируется глоб. переменная док-та, а по кнопке на панели открывается диалог - берет открытую печ. форму, отправляет, при закрытии диалога - открывается (повторно) док-т с параметром (строка про отправку в комментарий).
Еще раз - всем спасибо!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот