Рассылка Изменений В Документе

04.12.2012
12
0
#1
Добрый день, коллеги! Очень надеюсь на ваши советы и помощь.
Возник такой вот вопрос. Конфигурация - допиленная УПП на управляемых формах.
Имеется документ Х (реквизиты+табличная часть). Ведется его версионирование. Задача в том, чтобы при проведении измененного документа Х на почту указанных в отдельном справочнике товарищей отправлялись эти изменения.
В теории я понимаю, как это делать. Т.е. берем стандартный отчет "ИсторияИзмененийОбъекта" и запускаем его с некими параметрами. Полученный табличный документ сохраняем в хлс, после чего стандартным почтовым клиентом отправляем товарищам из списка.
При этом как прикрепить/отправить документ почтовым клиентом я знаю, а вот с запуском отчета с нужными параметрами у меня серьезная проблема, в которой я и прошу вашей помощи. Уж больно у меня ограниченные сроки.
Надеюсь на ваш опыт и доброту)))
 

Дайнеко

Well-known member
19.11.2009
951
0
#2
Способ запуска другого отчета "из вне" более-менее стандартный:

Вариант 1
Форма = Отчеты.ИсторияИзмененийОбъекта.ПолучитьФорму().Открыть()

Вариант 2 через метод ОткрытьФорму() - см. синтаксис. Он рекомендуется для УФ.

А вот как передать параметры этому отчету, зависит от него. Приемы разные, вплоть до того, что он может быть и не приспособлен для приема параметров. См. в нем процедуру ПриОткрытии()

Но ведь есть и вторая задача: отчет должен сохранить результат в файл. И надо его об этом попросить. Так что без изменения отчета не обойдешься.
 

unknown181538

НеГуру
28.12.2008
1 417
0
#3
Открывать форму в модуле проведения? зачем? Возможно, что у автора процедура формирования табДока в экспортной процедуре модуля объекта или менеджера. Но об этом автор ничего не написал, так что сказать ничего не возможно.
 

Дайнеко

Well-known member
19.11.2009
951
0
#4
Открывать форму в модуле проведения? зачем?
Согласен с замечанием. При записи, пожалуй. Да и, прямо скажу, глупая идея. Вызовет капитальный перегруз системы. А кто будет читать эти тонны "письма счастья". Явно директорская придумка, помешанного на безопасности.
 
04.12.2012
12
0
#5
Явно директорская придумка
Так очевидно?
Впрочем, я придумал другой способ, без отчета. Тупо в процедуре "ПриЧтенииНаСервере" сохранять исходные параметры, а потом, в процедуре "ПриЗаписиНаСервере", сравнивать их с проводимыми. Но вот трабл - никак не могу сообразить, как из процедуры "ПриЧтении" передать мою ТаблицуЗначений в процедуру "ПриЗаписи"...У кого-нибудь есть советы?
 
04.12.2012
12
0
#6
Впрочем, тупо применил константу. Т.е. записал получаемое значение в константу с типом ХранилищеЗначений
 

unknown181538

НеГуру
28.12.2008
1 417
0
#7
А если параллельно два пользователя будут редактировать два документа одного типа?
Правильнее было бы использовать временное хранилище. В реквизит формы помещаем его адрес, и извлекаем значение при записи.
 

Darlock

Well-known member
04.01.2008
560
1
#8
Комрады, если надо просто перечень измененных реквизитов, то зачем грузить систему всяким барахлом типа отчетов? почему "передзаписью" не сформировать запрос к ссылке и не собрать в текст результат? Имеем объект до записи и сам объект, в процессе записи.
 

puh14

Well-known member
11.07.2008
1 412
0
#11
Добавлю - можно не перед записью - а новую подписку на событие.