|
Как заполнить программно доп реквизиты документа? | ☑ | ||
---|---|---|---|---|
0
AnisaL
08.05.19
✎
11:33
|
Добрый день!
В расширении конфигурации УНФ, есть доп реквизиты у справочника контрагенты, они заполнены. Нужно чтобы, при выборе этого контрагента в форме документа ЗаказНаряд, эти доп реквизиты вставали в доп реквизиты самого документа? |
|||
1
AnisaL
08.05.19
✎
11:35
|
(0) + в процедуре ПриИзменении на поле контрагента написала такой код:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КонтрагентыДополнительныеРеквизиты.Значение КАК Значение, | КонтрагентыДополнительныеРеквизиты.Свойство КАК Свойство |ИЗ | Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты |ГДЕ | КонтрагентыДополнительныеРеквизиты.Ссылка = &Контрагенты"; //| И КонтрагентыДополнительныеРеквизиты.Свойство = &Свойство"; Запрос.УстановитьПараметр("Контрагенты", Контрагент); // Запрос.УстановитьПараметр("Свойство", Свойство); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл //Получаем ссылку на доп реквизит ЗапросПВХ = Новый Запрос; ЗапросПВХ.Текст = "ВЫБРАТЬ | ДополнительныеРеквизитыИСведения.Ссылка КАК Ссылка, | ДополнительныеРеквизитыИСведения.ТипЗначения КАК ТипЗначения |ИЗ | ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения |ГДЕ | ДополнительныеРеквизитыИСведения.Наименование ПОДОБНО &Наименование"; ЗапросПВХ.УстановитьПараметр("Наименование", "%" + ВыборкаДетальныеЗаписи.Свойство.Заголовок + "%"+ "Заказ" + "%"); РезультатЗапросаПВХ = ЗапросПВХ.Выполнить(); ВыборкаДетальныеЗаписиПВХ = РезультатЗапросаПВХ.Выбрать(); Пока ВыборкаДетальныеЗаписиПВХ.Следующий() Цикл ДопРеквизитСсылка = ВыборкаДетальныеЗаписиПВХ.Ссылка; КонецЦикла; ЕстьСтроки = Объект.ДополнительныеРеквизиты.НайтиСтроки(Новый Структура("Свойство", ДопРеквизитСсылка)); ДокОбъект = Объект.ПолучитьОбъект(); Если ЕстьСтроки.Количество() = 0 Тогда СтрокаТЧ = Объект.ДополнительныеРеквизиты.Добавить(); СтрокаТЧ.Свойство = ДопРеквизитСсылка; Иначе СтрокаТЧ = ЕстьСтроки[0]; КонецЕсли; СтрокаТЧ.Значение = ВыборкаДетальныеЗаписи.Значение; Объект.Записать(); |
|||
2
AnisaL
08.05.19
✎
11:36
|
(1) на эту строку ругается :
{Расширение1 Документ.ЗаказПокупателя.Форма.ФормаЗаказНаряда.Форма(52)}: Метод объекта не обнаружен (ПолучитьОбъект) ДокОбъект = Объект.ПолучитьОбъект(); |
|||
3
AnisaL
08.05.19
✎
11:39
|
(2) как получить документобъект у формы документа заказ-наряд, чтобы записать доп реквизиты?
|
|||
4
sqr4
08.05.19
✎
11:40
|
зачем док объект? когда надо объект?
|
|||
5
sqr4
08.05.19
✎
11:40
|
Зачем записывать документ, сразу при изменении
|
|||
6
Cyberhawk
08.05.19
✎
11:42
|
Или использовать реквизиты формы, где доп. реквизиты временно хранятся, или вклиниться в ПередЗаписьюНаСервере, там объект уже доступен
|
|||
7
AnisaL
08.05.19
✎
11:42
|
(5) а как надо?
|
|||
8
AnisaL
08.05.19
✎
11:44
|
(6) а как в реквизиты формы записать?
|
|||
9
Timon1405
08.05.19
✎
11:47
|
на заметку: В БСП есть функция
УправлениеСвойствами.ЗначениеСвойства(...) |
|||
10
Cyberhawk
08.05.19
✎
11:55
|
(8) Для ответа на этот вопрос надо изучить, как организовано хранение данных в этих реквизитах формы
|
|||
11
AnisaL
08.05.19
✎
13:30
|
(10) Как обратиться к элементам формы доп реквизитам ?
|
|||
12
sqr4
08.05.19
✎
13:37
|
https://forum.infostart.ru/forum9/topic207046/ и последний пост как это имя на форме задается
|
|||
13
Cyberhawk
08.05.19
✎
14:15
|
(11) С уважением
|
|||
14
Cyberhawk
08.05.19
✎
14:18
|
(12) Ориентироваться на правило именования - такой себе способ, т.к. это могут и поменять.
Тамошний автор не осилил обращаться к реквизиту формы-таблице соответствия, которая хранит соответствие имен реквизитов формы и элементов-полей |
|||
15
sqr4
08.05.19
✎
15:51
|
(14) тоже такой себе способ, причины теже)
|
|||
16
stix2010
08.05.19
✎
16:34
|
(11) можно с запросом обратиться
|
|||
17
Cyberhawk
13.05.19
✎
10:46
|
(15) Вроде программный интерфейс по добавлению / заполнению доп. реквизитов на форме не записанного в БД объекта уже есть в БСП
|
|||
18
sqr4
13.05.19
✎
10:50
|
(17) Если есть, то нужно использовать его, а то что я писал выше приравнять к велосипеду.
|
|||
19
Cyberhawk
13.05.19
✎
11:07
|
(18) Ну вот этот типовой интерфейс БСП как раз и использует таблицу соответствия, хранящуюся в реквизите формы, о чем выше писал ) Просто раньше этого точно не было
|
|||
20
sqr4
13.05.19
✎
11:21
|
(19) Ну тут наверно сложно судить что дольше проживет, правило именования или эта таблица) Как "конечному" программисту, мне было бы удобнее использовать процедуру в которой все можно сделать и не обращать внимание на то что там внутри нее)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |