где разместить функции заполнения ТЧ в 8.3
☑
0
qeos
28.04.17
✎
11:28
Коллеги подскажите-ка, как правильней запрограмить?
Нужна функция которая будет заполнять ТЧ документа.
Вызов будет происходить из формы документа, а так же программно, создавая новый документ.
Вот чтото не могусообразить как правильней.
Не хочется пользоваться костылями типа РеквизитФормыВЗначение..
поместить в модуль менеджера? тогда из формы наСервере нет такой функции..
или создать для этого модуль, и функция такого модуля будет возвращать ТЧ которую вгружать на форме?
или я вообще чтото не так делаю?
1
DrShad
28.04.17
✎
11:32
сделай внешнюю обработку заполнения объекта
2
drcrasher
28.04.17
✎
11:32
форма:
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ЗаказУслугПриИзменении(Элемент)
ЗаполнитьПоЗаказу();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ЗаполнитьПоЗаказу()
Документы.РеализацияУслуг.ЗаполнитьРеализациюУслугПоЗаказу(Объект, Объект.ЗаказУслуг);
КонецПроцедуры
#КонецОбласти
----
менеджер:
Процедура ЗаполнитьРеализациюУслугПоЗаказу(РеализацияОбъект, ЗаказУслуг) Экспорт
ЗаполнитьЗначенияСвойств(РеализацияОбъект, ЗаказУслуг,, "Услуги,Дата,Номер");
РеализацияОбъект.Услуги.Очистить();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Организация", РеализацияОбъект.Организация);
...
РеализацияОбъект.Услуги.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры
_____________
объект:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказУслуг") Тогда
ЗаказУслуг = ДанныеЗаполнения;
Документы.РеализацияУслуг.ЗаполнитьРеализациюУслугПоЗаказу(ЭтотОбъект, ДанныеЗаполнения);
3
drcrasher
28.04.17
✎
11:33
+(1) работает откуда угодна и как угодно
4
qeos
28.04.17
✎
11:35
(2) спасибо огромное!
5
drcrasher
28.04.17
✎
11:48
(4) вообще, вот:
6
qeos
28.04.17
✎
12:06
слегонца конешно странно выглядит..
7
drcrasher
28.04.17
✎
12:08
(6) но зачем? Заполнить(...) это заполнение на основании. в чём прикол?
ну и раз у тебя СоздатьДокумент() то и заполняй по человечески, ты ж на сервере код исполняешь
8
qeos
28.04.17
✎
12:19
так не менее странно
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший