|
Программный ввод на основании | ☑ | ||
---|---|---|---|---|
0
Lannia
31.05.17
✎
12:32
|
Доброго времени суток. Стандартный ввод на основании не подходит потому, что нужно открывать разные формы документов, а в стандартном обработчике он открывает главную форму документа.
Вот часть кода, которая открывает нужную форму: Код: &НаСервере Процедура СоздатьДокумент() ДО = Документы.ЗаказНаряд.СоздатьДокумент(); КонецПроцедуры &НаКлиенте Процедура ЗаказНаряд(Команда, Элемент) СоздатьДокумент(); ЗначенияЗаполнения = Новый Структура; ЗначенияЗаполнения.Вставить("Владелец", Объект.Ссылка); ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("ЗначенияЗаполнения", ЗначенияЗаполнения); ОткрытьФорму("Документ.ЗаказНаряд.Форма.ФормаДокументаБН", ПараметрыФормы, Элемент); КонецПроцедуры Форма, где заполняются пришедшие данные: Код: Если ДанныеЗаполнения <> Неопределено И ТипЗнч(ДанныеЗаполнения)= Тип("Структура") Тогда // Заполнение шапки Автомобиль = ДанныеЗаполнения.Автомобиль; Автор = ДанныеЗаполнения.Автор; ВидРемонта = ДанныеЗаполнения.ВидРемонта; И собственно сама ошибка: {Документ.ЗаявкаНаРемонт.Форма.ФормаДокументаБН.Форма(223)}: Ошибка при вызове метода контекста (ОткрытьФорму) ОткрытьФорму("Документ.ЗаказНаряд.Форма.ФормаДокументаБН", ПараметрыФормы, Элемент); по причине: Ошибка при выполнении обработчика - 'ОбработкаЗаполнения' по причине: {Документ.ЗаказНаряд.МодульОбъекта(27)}: Поле объекта не обнаружено (Автомобиль) Автомобиль = ДанныеЗаполнения.Автомобиль; Хотя такой реквизит в документе имеется. |
|||
1
Lexey_
31.05.17
✎
12:34
|
(0) "Поле объекта не обнаружено (Автомобиль)"
Поле Автомобиль объекта ДанныеЗаполнения не обнаружено |
|||
2
Lannia
31.05.17
✎
12:36
|
По отладке было видно что структура передалась. Тогда что неверно в следующем коде?:
ЗначенияЗаполнения = Новый Структура; ЗначенияЗаполнения.Вставить("Владелец", Объект.Ссылка); ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("ЗначенияЗаполнения", ЗначенияЗаполнения); ОткрытьФорму("Документ.ЗаказНаряд.Форма.ФормаДокументаБН", ПараметрыФормы, Элемент); |
|||
3
Lexey_
31.05.17
✎
12:37
|
(2) нет поля Автомобиль
|
|||
4
Lannia
31.05.17
✎
12:42
|
Я написала выше, что такой реквизит точно есть в документе. Что в одном, что в другом. Значит, получается, он просто не передает данные для заполнения на другую форму.
Но ошибку в коде я не вижу. |
|||
5
Lexey_
31.05.17
✎
12:49
|
(4) я написал выше, что дело не в реквизите
|
|||
6
Lannia
31.05.17
✎
12:51
|
Вопрос остается тем же, где тогда искать ошибку?
Ясно что он никакие данные не передал. Объект этот сохранила и все равно та же ошибка. |
|||
7
Lexey_
31.05.17
✎
12:54
|
(6) еще раз: ошибка здесь: ДанныеЗаполнения.Автомобиль, смотри отладчиком
|
|||
8
Ц_У
31.05.17
✎
12:57
|
ЗначенияЗаполнения тут равно ДанныеЗаполения там, ты передаешь структуру с ключом "Владелец" но там нет ключа "Автомобиль"
Или пиши в заполнении с проверкой свойств: Если ДанныеЗаполнения.Свойство("Автомобиль") Тогда Автомобиль = ДанныеЗаполнения.Автомобиль; |
|||
9
Buster007
31.05.17
✎
12:58
|
автор в танке )
Lexey_, скоро пробьет броню.. |
|||
10
Мимохожий Однако
31.05.17
✎
12:58
|
(6) Ищи там, где собираешь параметры для заполнения на основании Отладчик
|
|||
11
Lannia
31.05.17
✎
12:58
|
Да приходит ему Структура и стопорится дальше на реквизите ДанныеЗаполнения.Автомобиль, при этом там отладчик ничего не показывает.
|
|||
12
Lannia
31.05.17
✎
12:59
|
Ц_У, спасибо за нормальное объяснение.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |