Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как заполнить программно доп реквизиты документа?

Как заполнить программно доп реквизиты документа?
Я
   AnisaL
 
08.05.19 - 11:33
Добрый день!
В расширении конфигурации УНФ, есть доп реквизиты у справочника контрагенты, они заполнены. Нужно чтобы, при выборе этого контрагента в форме  документа ЗаказНаряд, эти доп реквизиты вставали в доп реквизиты самого документа?
 
 
   AnisaL
 
1 - 08.05.19 - 11:35
(0) + в процедуре ПриИзменении на поле контрагента написала такой код:
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    КонтрагентыДополнительныеРеквизиты.Значение КАК Значение,
        |    КонтрагентыДополнительныеРеквизиты.Свойство КАК Свойство
        |ИЗ
        |    Справочник.Контрагенты.ДополнительныеРеквизиты КАК КонтрагентыДополнительныеРеквизиты
        |ГДЕ
        |    КонтрагентыДополнительныеРеквизиты.Ссылка = &Контрагенты";
        //|    И КонтрагентыДополнительныеРеквизиты.Свойство = &Свойство";

    
    Запрос.УстановитьПараметр("Контрагенты", Контрагент);
//    Запрос.УстановитьПараметр("Свойство", Свойство);

    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        
        //Получаем ссылку на доп реквизит

                 ЗапросПВХ = Новый Запрос;
                ЗапросПВХ.Текст = 
                    "ВЫБРАТЬ
                    |    ДополнительныеРеквизитыИСведения.Ссылка КАК Ссылка,
                    |    ДополнительныеРеквизитыИСведения.ТипЗначения КАК ТипЗначения
                    |ИЗ
                    |    ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
                    |ГДЕ
                    |    ДополнительныеРеквизитыИСведения.Наименование ПОДОБНО &Наименование";
                
                
                
                ЗапросПВХ.УстановитьПараметр("Наименование", "%" + ВыборкаДетальныеЗаписи.Свойство.Заголовок + "%"+ "Заказ" + "%");
                РезультатЗапросаПВХ = ЗапросПВХ.Выполнить();
                
                ВыборкаДетальныеЗаписиПВХ = РезультатЗапросаПВХ.Выбрать();
                
                Пока ВыборкаДетальныеЗаписиПВХ.Следующий() Цикл
                    
                    ДопРеквизитСсылка = ВыборкаДетальныеЗаписиПВХ.Ссылка;
                    
                КонецЦикла;

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует