|
Открыть форму нового документа в управляемой форме | ☑ | ||
---|---|---|---|---|
0
Мимохожий Однако
23.10.15
✎
22:10
|
Заказ = Документы.ЗаказПоставщику.СоздатьДокумент();
Заказ.Заполнить(ДанныеЗаполнения); Заказ.ПолучитьФорму("ФормаДокумента").Открыть(); При этом документ открывается заполненным, но на форме всё выглядит криво.Подозреваю, что последняя строка неверная. .. Подскажите правильный код для управляемой формы. |
|||
1
bazvan
23.10.15
✎
22:11
|
(0) а как "выглядит" "криво"
|
|||
2
Мимохожий Однако
23.10.15
✎
22:21
|
Сверху вниз отображаются все реквизиты шапки, потом две табличные части друг под дружкой. Такое впечатление, что ссылка на форму с именем "ФормаДокумента" бесполезная или не срабатывает. Если документ перед открытием записать и потом открыть, то он открывается нормально. Но нет желания записывать.
В СП есть такая фраза."В управляемом приложении не следует выполнять программное открытие и закрытие одной и той же формы в одном вызове встроенного языка." С этим спорить трудно, но не придумал и не нашёл пока подсказки, как выполнить эту рекомендацию. |
|||
3
Мимохожий Однако
23.10.15
✎
22:25
|
Возможно, надо этот код убрать из модуля внешней обработки и переместить в модуль формы.
|
|||
4
RomanYS
23.10.15
✎
22:46
|
ОткрытьФорму("Документ.Документ1.ФормаОбъекта", Новый Структура("ЗначенияЗаполнения", ДанныеЗаполнения));
|
|||
5
Мимохожий Однако
23.10.15
✎
22:58
|
В результате получил следующий рабочий код
.&НаКлиенте Процедура ВыполнитьСейчас(Команда) ДанныеЗаполнения = ВернутьДанныеЗаполнения(); СтруктураПараметры = Новый Структура; СтруктураПараметры.Вставить("Основание", ДанныеЗаполнения); ОткрытьФорму("Документ.ЗаказПоставщику.ФормаОбъекта", СтруктураПараметры); Закрыть(); КонецПроцедуры (4)Спасибо |
|||
6
RomanYS
23.10.15
✎
23:05
|
(5) да перепутал, в обработку заполнения передается Основание.
Вопрос знатокам УФ, зачем там еще ЗначенияЗаполнения? |
|||
7
RomanYS
23.10.15
✎
23:08
|
*(6) разобрался, можно заполнять реквизиты ФОРМЫ:
Тип: Структура. Параметры заполнения нового объекта. Ключ структуры - имя реквизита формы, значение - заполняемое значение. |
|||
8
RomanYS
23.10.15
✎
23:22
|
*(7) только нифига не работает(
ЗначенияЗаполнения = Новый Структура("Реквизит1", "тест"); Форма = ОткрытьФорму("Документ.Документ1.ФормаОбъекта", Новый Структура("ЗначенияЗаполнения", ЗначенияЗаполнения)); Реквизит1 - пустой |
|||
9
Мимохожий Однако
24.10.15
✎
08:02
|
(8)Нюанс в том, что в переменную ЗначениеЗаполнения надо положить всю структуру документа вместе с табличными частями, а в самом документе должна быть процедура обработки заполнения. Именно в ней и начинает работать код.
|
|||
10
RomanYS
24.10.15
✎
09:16
|
(9) что-то ты меня путаешь: в обработку заполнения документа-объекта передается именно Основание.
А где и как обрабатывается ЗначениеЗаполнения непонятно. Если их надо явно обрабатывать кодом в форме, то зачем вообще нужен предопределенный реквизит: в параметры формы можно засунуть сколько угодно любых параметров и форме кодом их обработать. |
|||
11
Мимохожий Однако
24.10.15
✎
09:45
|
Путать не хотел )) Расскажу подробнее.
Конфигурация Розница 2.1.8.9 в модуле объекта документа Заказ поставщику есть следующая процедура: Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка) ..... ИначеЕсли ТипЗнч(ДанныеЗаполнения) = Тип("Структура") И ДанныеЗаполнения.Свойство("ОбработкаФормированиеЗаказов") Тогда ..... ИнициализироватьДокумент(ДанныеЗаполнения); ОбщегоНазначенияРТ.ПроверитьИспользованиеОрганизации(,,Организация); КонецПроцедуры я в ней ничего не менял. .. а в моей процедуре в обработке ВернутьДанныеЗаполнения()я заполнил структуру создаваемого документа - и шапку, и табличную часть товары. .. свою проблему я решил. Для других конфигураций, возможно, надо еще что-то дописывать. |
|||
12
RomanYS
24.10.15
✎
13:31
|
(11) так ты в (5) используешь "Основание", а не "ЗначенияЗаполнения". Тут как раз всё понятно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |