|   |   | 
| 
 | Как заполнить программно доп реквизиты документа? | ☑ | ||
|---|---|---|---|---|
| 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) Ну тут наверно сложно судить что дольше проживет, правило именования или эта таблица) Как "конечному" программисту, мне было бы удобнее использовать процедуру в которой все можно сделать и не обращать внимание на то что там внутри нее)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |