|
Получение формы по объекту | ☑ | ||
---|---|---|---|---|
0
assest44
11.12.22
✎
22:22
|
Есть справочник объект, записывать его нельзя, как по нему получить форму?
Я объект заполнил на сервере в обработке, записал его в реквизит формы обработки, как получить форму объекта не записывая объект? |
|||
1
RomanYS
11.12.22
✎
22:31
|
(0) переходи на обычные формы - там просто)))
Для УФ ЗначениеВРеквизитФормы, но форму с сервера ни открыть... |
|||
2
assest44
11.12.22
✎
22:34
|
А как форму получить? вот в модуле у меня есть СправочникОбъект, как по нему получить форму? мне этого достаточно должно быть чтобы отработало ПриСозданииНаСервере
|
|||
3
assest44
11.12.22
✎
22:37
|
Я заполнил объект, приСозданииНаСервере происходят куча процедур с условием ЭтоНовый, то есть сначала записать потом открыть нельзя, на сервере не могу получить форму, а на клиенте не получается подсунуть созданный объект
|
|||
4
RomanYS
11.12.22
✎
23:10
|
Например можно у формы добавить реквизит с типом СправочникОбъект, на сервере его заполнить через ЗначениеВРеквизитФормы, а потом на клиенте перенести через КопироватьДанныеФормы в открытую форму.
|
|||
5
assest44
12.12.22
✎
00:04
|
Тогда событие при создание на сервере произойдет до копирования
|
|||
6
Джинн
12.12.22
✎
00:32
|
(2) Форм у объекта может быть чемодан. И Вы явно какую-то хрень делаете, пытаясь почесать левой ухо правой ногой через спину.
|
|||
7
RomanYS
12.12.22
✎
00:39
|
(5) можно засунуть всё данные в структуру и передать параметром. Главное понять простую вещь: в УФ нельзя открыть форму объекта, у открытой УФ будет свой экземпляр объекта.
|
|||
8
Сергиус
12.12.22
✎
02:19
|
(0)Надо менять логику работы - возможно сразу получать форму с передачей определенных параметров.
|
|||
9
Индиго
12.12.22
✎
06:57
|
Если я правильно стелепатировал, то вот пример:
//---------------------- &НаСервере Процедура ЗаполнитьДокНаСервере(ДанныеФормы) Экспорт ДокОбъект=ДанныеФормыВЗначение(ДанныеФормы,Тип("ДокументОбъект.РеализацияТоваровТорг") ); МетаданныеДока = ДокОбъект.Ссылка.Метаданные(); ЗаполнитьЗначенияСвойств(ДокОбъект,Объект); ДокОбъект.Номер=""; ДокОбъект.Контрагент=""; ДокОбъект.КонтрагентФилиала=""; ДокОбъект.ДоговорКонтрагента=""; ДокОбъект.Ответственный=глЗначениеПеременной("глТекущийПользователь"); ДокОбъект.История=""; УИД=Строка(Объект.Ссылка.УникальныйИдентификатор()); ДокОбъект.Комментарий="@#Основание:"+УИД; ДокОбъект.СчетУчетаРасчетовСКонтрагентом = планысчетов.Типовой.КраткосрочнаяДебиторскаяЗадолженностьПокупателейИЗаказчиковВТенге; ДокОбъект.ВидОперации=Перечисления.ВидыОплаты.БезНал; тТек=Объект.Товары.Выгрузить(); ДокОбъект.Товары.Загрузить(тТек); СтавкаНДС=Справочники.СтавкиНДС.НайтиПоРеквизиту("Ставка",12); Если НЕ ЗначениеЗаполнено(СтавкаНДС) Тогда СтавкаНДС=Справочники.ставкиНДС.ПолучитьСсылку(Новый УникальныйИдентификатор("48c91ab9-4fea-11e2-b46b-001b78042e0a")); КонецЕсли; Для Каждого СтрокаТабЧасти из ДокОбъект.Товары Цикл // Выполнить общие действия для всех документов при изменении номенклатуры. СтрокаТабЧасти.ЦенаБезСкидки=СтрокаТабЧасти.Цена; СтрокаТабЧасти.СуммаБезСкидки=СтрокаТабЧасти.Сумма; СтрокаТабЧасти.Заказано=СтрокаТабЧасти.Количество; СтрокаТабЧасти.Отпущено=СтрокаТабЧасти.Количество; Если НЕ ЗначениеЗаполнено(СтрокаТабЧасти.СтавкаНДС) И ЗначениеЗаполнено(СтавкаНДС) Тогда СтрокаТабЧасти.СтавкаНДС=СтавкаНДС; СтрокаТабЧасти.СуммаНДС=СтрокаТабЧасти.Сумма/112*12; КонецЕсли; ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(СтрокаТабЧасти, ДокОбъект.Ссылка); СчетаУчета = ПроцедурыБухгалтерскогоУчета.ПолучитьСчетаУчетаНоменклатуры(ДокОбъект.Организация, СтрокаТабЧасти.Номенклатура); ДокОбъект.ЗаполнитьСчетаБУ(СтрокаТабЧасти, "Товары", СчетаУчета, Истина, МетаданныеДока); СтрокаТабЧасти.НДСВидОперацииРеализации = Справочники.ВидыРеализации.РеализацияТМЗ; КонецЦикла; ЗначениеВДанныеФормы(ДокОбъект,ДанныеФормы); КонецПроцедуры &НаКлиенте Процедура РасходнаяНакладнаяНаОсновании(Команда) Экспорт Если Вопрос("Создать на основании текущего документа расходную накладную?",РежимДиалогаВопрос.ДаНет)<>КодВозвратаДиалога.Да Тогда Возврат; КонецЕсли; ФРН=ПолучитьФорму("Документ.РеализацияТоваровТорг.Форма.ФормаДокументаУФ"); ДанныеФормы=ФРН.Объект; ЗаполнитьДокНаСервере(ДанныеФормы); КопироватьДанныеФормы(ДанныеФормы, ФРН.Объект); ФРН.Открыть(); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |