0
Cyberhawk
12.01.15
✎
18:26
|
Друзья, приветствую!
Что-то поиском не нашел верной стратегии по сабжу.
Упрощенный пример: нужно на клиенте по нажатию кнопки показывать список документов (форму выбора), после выбора ссылки (документа) программно вносить изменения в документ (дописывать в комментарий слово "Привет", например) и открывать форму документа (со сделанными изменениями). Решение о сохранении изменения принимает пользователь.
Кинул на форму кнопку-команду, а также добавил реквизит формы "ОбновляемыйДокумент" с типом "ДокументОбъект.ИмяДокумента". У кнопки-команды следующий код:
&НаКлиенте
Процедура ИзменитьДокумент(Команда)
Оповещение = Новый ОписаниеОповещения("ПослеВыбораДокумента", ЭтаФорма);
ИмяФормыДляВыбораДокумента = "Документ.ИмяДокумента.ФормаВыбора";
ОткрытьФорму(ИмяФормыДляВыбораДокумента, , , , , , Оповещение, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбораДокумента(ДокументСсылка, ДополнительныеПараметры) Экспорт
Если ДокументСсылка <> Неопределено Тогда
ОбновитьДокументОбъектНаСервере(ДокументСсылка);
П = Новый Структура("Ключ", ДокументСсылка);
ФормаОбъекта = ПолучитьФорму("Документ.ИмяДокумента.ФормаОбъекта", П);
КопироватьДанныеФормы(ОбновляемыйДокумент, ФормаОбъекта.Объект);
ФормаОбъекта.Модифицированность = Истина;
ФормаОбъекта.Открыть();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбновитьДокументОбъектНаСервере(ДокументСсылка)
ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
ДокументОбъект.Комментарий = ДокументОбъект.Комментарий + "Привет";
ЗначениеВРеквизитФормы(ДокументОбъект, "ОбновляемыйДокумент");
КонецПроцедуры
Подход работает.
Вопроса два:
1. Можно ли в приведенном подходе что-то улучшить?
2. Есть ли в приведенном подходе какие-то косяки?
Буду благодарен за любые комментарии по приведенному коду / методике.
|
|
1
Худой
13.01.15
✎
05:31
|
Может чего не понимаю. Как можно до открытия внести в документ изменения и потом его уже открывать? То есть, пользователь будет открывать документ, где уже стоит "Привет". Какое тогда может быть "Решение о сохранении изменения принимает пользователь"? За него до открытия было принято решение.
|
|
4
Cyberhawk
14.01.15
✎
09:39
|
(3) мне тоже не нравится, ибо пользователю не видно, какие изменения были внесены в документ... Он лишь только знает, что там должно дописаться "Привет".
|
|