|
УФ. Заполнение формы документа из обработки | ☑ | ||
---|---|---|---|---|
0
pessok
23.11.12
✎
13:04
|
Коллеги, привет. Помню, что уже создавал подобную тему, но тогда так и не докурил, а потом было некогда. И вот решил снова раскуриться с УФ.
Идея простая. Есть документ, из него вызывается обработка, в обработке заполняются данные, а при вызове команды формы, эти данные надо поместить в форму документа. Писать ДокументОбъект не надо, надо только отобразить на форме. Чую, что лезу не в те дебри, потому, пока не накосяпурил, решил испросить совета бывалых :) З.Ы. Вероятно я не до конца понимаю механизмы УФ, потому ошибки могут быть глупыми. З.З.Ы. Код: Форма документа: &НаКлиенте Процедура ЗаполнитьТаблицу(Команда) Если Объект.Услуги.Количество() > 0 Тогда Ответ = Вопрос("Табличная часть не пуста. Продолжить заполнение?", РежимДиалогаВопрос.ДаНет); Если Ответ <> КодВозвратаДиалога.Да Тогда Возврат; КонецЕсли; КонецЕсли; ФормаОбработки = ПолучитьФорму("Обработка.ЗаполнитьТаблицу.Форма.Форма", , ЭтаФорма); ФормаОбработки.ОткрытьМодально(); КонецПроцедуры Форма обработки: &НаКлиенте Процедура ЗаполнитьТаблицуДокумента(Команда) ФормаДокумента = ЭтаФорма.ВладелецФормы; ДФСОбъект = ФормаДокумента.Объект; ЗаполнитьДокументОснование(ДФСОбъект); КонецПроцедуры &НаСервере Процедура ЗаполнитьДокументОснование(ДФСОбъект) ТЗ = ПолучитьДанныеЗаполнения(); Если ТЗ.Количество() = 0 Тогда ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не найдено данных для заполнения табличной части"); Возврат; КонецЕсли; Для каждого СтрТЗ Из ТЗ Цикл ЗаполнитьЗначенияСвойств(ДФСОбъект.Услуги.Добавить(), СтрТЗ); КонецЦикла; КонецПроцедуры В ДанныеФормыСтруктура владельца(сиречь формы документа) пишет, но на форме ничего не отображается. Подозреваю, что надо писать в ДокументОбъект, но не уверен. И вообще, чего умного можно по УФ почитать? Заранее благодарю за помощь :) |
|||
1
pessok
23.11.12
✎
13:17
|
переписал чутка, но эффекта все равно 0 :(
&НаСервере Процедура ЗаполнитьДокументОснование(ДФСОбъект) ДокументОбъект = ДанныеФормыВЗначение(ДФСОбъект, Тип("ДокументОбъект.ПриложениеКонтрагента")); ТЗ = ПолучитьДанныеЗаполнения(); Если ТЗ.Количество() = 0 Тогда ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не найдено данных для заполнения табличной части"); Возврат; КонецЕсли; Для каждого СтрТЗ Из ТЗ Цикл ЗаполнитьЗначенияСвойств(ДокументОбъект.Услуги.Добавить(), СтрТЗ); КонецЦикла; КонецПроцедуры |
|||
2
pessok
23.11.12
✎
13:21
|
++ если после цикла записать ДокументОбъект, то после переоткрытия все ок, что и неудивительно
|
|||
3
Buster007
23.11.12
✎
13:23
|
СП Оповестить
|
|||
4
pessok
23.11.12
✎
13:25
|
(3) щас вкурю
|
|||
5
esquire
23.11.12
✎
13:27
|
ЗаполнитьЗначенияСвойств(ДокументОбъект.ЭлементыФормы.Услуги.Добавить(), СтрТЗ);
попробуй так |
|||
6
esquire
23.11.12
✎
13:28
|
ЗаполнитьЗначенияСвойств(ФормаДокумента.ЭлементыФормы.Услуги.Добавить(), СтрТЗ);
вернее так |
|||
7
pessok
23.11.12
✎
13:31
|
(5) я ж на сервере заполняю...
|
|||
8
pessok
23.11.12
✎
13:32
|
(3) блин, что-то не пойму, с какого бока мне тут цеплять обработчик ожидания..
|
|||
9
pessok
23.11.12
✎
13:34
|
после закрытия обработки, если объект не записан, все изменения теряются... посему хз, в объет ли писать. если писать в ДанныеФормыСтруктура, то вроде как должно бы работать(это как в сакмом первом варианте, но где-то потом не идет обновление)
|
|||
10
esquire
23.11.12
✎
13:43
|
в УТ в подборе номенклатуры подобное организовано, в функцию обработка подбора передаешь строку и она пишет в объект и в элементы формы,но как это релизовано не вникал
|
|||
11
pessok
23.11.12
✎
13:46
|
в 11 УТ?
|
|||
12
esquire
23.11.12
✎
13:56
|
10.3, в 11 не знаю
|
|||
13
pessok
23.11.12
✎
14:24
|
в обычных формах это на раз делается. в шапке же речь про УФ
|
|||
14
pessok
23.11.12
✎
14:42
|
ап. наверняка же вопрос возникал, ткните носом, плз
|
|||
15
GROOVY
23.11.12
✎
14:44
|
Заполнение открываемой формы объекта (УФ) должно производится в модуле объекта. параметры для заполнения передаются с помощью метода ОткрытьФорму или ПолучитьФорму.
|
|||
16
pessok
23.11.12
✎
14:48
|
(15) таааак. теплее. т.е. в обработке я должен вернуть нечто (ТЗ, к примеру) некоей серверной процедуре объекта, а уже в ней, заполнять сам текущий объект, верно?
|
|||
17
LAAry
23.11.12
✎
14:51
|
(16) а потом ЗначениеВДанныеФормы
|
|||
18
pessok
23.11.12
✎
14:57
|
(16) взлетело, сенькс
(17) а это уже необязательно в контексте моей задачи, но все равно - спасибо. Действительно, подход был неверным. Заметка: сильно помогло: http://nashe1c.ru/materials-view.jsp?id=345 |
|||
19
pessok
23.11.12
✎
14:57
|
(18) 2 (15) и (17) в смысле
|
|||
20
pessok
23.11.12
✎
14:58
|
+(19) а, гоню, надо (17)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |