Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 апр 2024, 09:47

Добавление реквизита в объект, в расширении

Автор Николай_1C, 27 июл 2020, 13:13

0 Пользователей и 1 гость просматривают эту тему.

Николай_1C

Добрый день! Я сбился с ног не знаю что делать , пытаюсь программно добавить реквизит в объект справочник характеристики номенклатуры при создании формы элемента, чтоб добавлял поля с стипом , указанным в коде , для исполнительного модуля выбрал УправлениеСвойствами в Общих модулях (в коде далее будет понятно). Так вот: беда в том,что я добавил один реквизит "Артикул", он его создает видит и не ругается, данные хранит при сохранении и запросом я спокойно его вытягиваю. Далее хочу добавить еще реквизиты и добавил "Текст" ,но эта скотина ругается, что , типа, этого поля у объекта НЕТ. Как так? Артикул видит а другое поле уже не видит? Работа идет в расширении!

Вот код:
&После("ПриСозданииНаСервере")
Процедура РасшНР_ПриСозданииНаСервере(Форма, ДополнительныеПараметры = Неопределено) Экспорт
   
   Если Форма.ИмяФормы = "Справочник.ХарактеристикиНоменклатуры.Форма.ФормаЭлемента" Тогда
      
      #Область ДобавлениеРеквизитовФормы
      // Массив для новых реквизитов
      ДобавляемыеРеквизиты   = Новый Массив;
      
      // Опишем ревизиты формы
      Реквизит_Артикул     = Новый РеквизитФормы("Артикул",   Новый ОписаниеТипов("Строка", , , Новый КвалификаторыСтроки(50)),   , "Артикул");
      ДобавляемыеРеквизиты.Добавить(Реквизит_Артикул);
      Реквизит_ДопОписание = Новый РеквизитФормы("Текст",   Новый ОписаниеТипов("Строка", , , Новый КвалификаторыСтроки(1024)),     , "Описание");
      ДобавляемыеРеквизиты.Добавить(Реквизит_ДопОписание);
      
      // Добавим новые реквизиты в форму
      Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
      #КонецОбласти
      
      #Область ДобавлениеГруппыФормы
      ГруппаДопРеквизиты                          = Форма.Элементы.Добавить("ГруппаДопРеквизитов", Тип("ГруппаФормы"),Форма);
      ГруппаДопРеквизиты.Вид                      = ВидГруппыФормы.ОбычнаяГруппа;
      ГруппаДопРеквизиты.Отображение              = ОтображениеОбычнойГруппы.ОбычноеВыделение;
      ГруппаДопРеквизиты.Группировка              = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
      ГруппаДопРеквизиты.РастягиватьПоГоризонтали = Ложь;
      ГруппаДопРеквизиты.СквозноеВыравнивание     = СквозноеВыравнивание.Использовать;
      ГруппаДопРеквизиты.ОтображатьЗаголовок      = Ложь;
      Форма.Элементы.Переместить(ГруппаДопРеквизиты,Форма,Форма.Элементы.ГиперссылкаПерейтиСоставНабора);
      #КонецОбласти
      
   
      #Область ДобавлениеЭлементовФормы
      ГруппаФормы = Форма.Элементы.Найти("ГруппаДопРеквизитов");
      Если ГруппаФормы <> Неопределено Тогда
         
         ИмяЭлемента = "Артикул";
         Если Форма.Элементы.Найти(ИмяЭлемента) = Неопределено Тогда
            ЭлементФормы                        = Форма.Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ГруппаФормы);       
            ЭлементФормы.Вид                    = ВидПоляФормы.ПолеВвода;
            ЭлементФормы.ПутьКДанным            = "Объект.Артикул";
            ЭлементФормы.Заголовок              = "Артикул";
            ЭлементФормы.МногострочныйРежим     = Ложь;
            ЭлементФормы.Высота                 = 1;
            ЭлементФормы.Подсказка              = "Артикул характеристики";
            ЭлементФормы.РастягиватьПоВертикали = 0;
         КонецЕсли;
         
         ИмяЭлемента = "Текст";
         Если Форма.Элементы.Найти(ИмяЭлемента) = Неопределено Тогда
            ЭлементФормы                        = Форма.Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ГруппаФормы);       
            ЭлементФормы.Вид                    = ВидПоляФормы.ПолеВвода;
            ЭлементФормы.ПутьКДанным            = "Объект.Текст";
            ЭлементФормы.Заголовок              = "Описание";
            ЭлементФормы.МногострочныйРежим     = Истина;
            ЭлементФормы.Высота                 = 3;
            ЭлементФормы.Подсказка              = "Описание товара";
            ЭлементФормы.РастягиватьПоВертикали = 1;
         КонецЕсли;
         
      КонецЕсли;
      #КонецОбласти
      
      #Область ЗаполнениеДанных
      Форма.Артикул  = Форма.Объект.Артикул;
      Форма.Текст = Форма.Объект.Текст;
      #КонецОбласти
      
   КонецЕсли;
   
КонецПроцедуры

Николай_1C

Цитата: Николай_1C от 27 июл 2020, 13:13
Добрый день! Я сбился с ног не знаю что делать , пытаюсь программно добавить реквизит в объект справочник характеристики номенклатуры при создании формы элемента, чтоб добавлял поля с стипом , указанным в коде , для исполнительного модуля выбрал УправлениеСвойствами в Общих модулях (в коде далее будет понятно). Так вот: беда в том,что я добавил один реквизит "Артикул", он его создает видит и не ругается, данные хранит при сохранении и запросом я спокойно его вытягиваю. Далее хочу добавить еще реквизиты и добавил "Текст" ,но эта скотина ругается, что , типа, этого поля у объекта НЕТ. Как так? Артикул видит а другое поле уже не видит? Работа идет в расширении!

Вот код:
&После("ПриСозданииНаСервере")
Процедура РасшНР_ПриСозданииНаСервере(Форма, ДополнительныеПараметры = Неопределено) Экспорт
   
   Если Форма.ИмяФормы = "Справочник.ХарактеристикиНоменклатуры.Форма.ФормаЭлемента" Тогда
      
      #Область ДобавлениеРеквизитовФормы
      // Массив для новых реквизитов
      ДобавляемыеРеквизиты   = Новый Массив;
      
      // Опишем ревизиты формы
      Реквизит_Артикул     = Новый РеквизитФормы("Артикул",   Новый ОписаниеТипов("Строка", , , Новый КвалификаторыСтроки(50)),   , "Артикул");
      ДобавляемыеРеквизиты.Добавить(Реквизит_Артикул);
      Реквизит_ДопОписание = Новый РеквизитФормы("Текст",   Новый ОписаниеТипов("Строка", , , Новый КвалификаторыСтроки(1024)),     , "Описание");
      ДобавляемыеРеквизиты.Добавить(Реквизит_ДопОписание);
      
      // Добавим новые реквизиты в форму
      Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
      #КонецОбласти
      
      #Область ДобавлениеГруппыФормы
      ГруппаДопРеквизиты                          = Форма.Элементы.Добавить("ГруппаДопРеквизитов", Тип("ГруппаФормы"),Форма);
      ГруппаДопРеквизиты.Вид                      = ВидГруппыФормы.ОбычнаяГруппа;
      ГруппаДопРеквизиты.Отображение              = ОтображениеОбычнойГруппы.ОбычноеВыделение;
      ГруппаДопРеквизиты.Группировка              = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
      ГруппаДопРеквизиты.РастягиватьПоГоризонтали = Ложь;
      ГруппаДопРеквизиты.СквозноеВыравнивание     = СквозноеВыравнивание.Использовать;
      ГруппаДопРеквизиты.ОтображатьЗаголовок      = Ложь;
      Форма.Элементы.Переместить(ГруппаДопРеквизиты,Форма,Форма.Элементы.ГиперссылкаПерейтиСоставНабора);
      #КонецОбласти
      
   
      #Область ДобавлениеЭлементовФормы
      ГруппаФормы = Форма.Элементы.Найти("ГруппаДопРеквизитов");
      Если ГруппаФормы <> Неопределено Тогда
         
         ИмяЭлемента = "Артикул";
         Если Форма.Элементы.Найти(ИмяЭлемента) = Неопределено Тогда
            ЭлементФормы                        = Форма.Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ГруппаФормы);       
            ЭлементФормы.Вид                    = ВидПоляФормы.ПолеВвода;
            ЭлементФормы.ПутьКДанным            = "Объект.Артикул";
            ЭлементФормы.Заголовок              = "Артикул";
            ЭлементФормы.МногострочныйРежим     = Ложь;
            ЭлементФормы.Высота                 = 1;
            ЭлементФормы.Подсказка              = "Артикул характеристики";
            ЭлементФормы.РастягиватьПоВертикали = 0;
         КонецЕсли;
         
         ИмяЭлемента = "Текст";
         Если Форма.Элементы.Найти(ИмяЭлемента) = Неопределено Тогда
            ЭлементФормы                        = Форма.Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ГруппаФормы);       
            ЭлементФормы.Вид                    = ВидПоляФормы.ПолеВвода;
            ЭлементФормы.ПутьКДанным            = "Объект.Текст";
            ЭлементФормы.Заголовок              = "Описание";
            ЭлементФормы.МногострочныйРежим     = Истина;
            ЭлементФормы.Высота                 = 3;
            ЭлементФормы.Подсказка              = "Описание товара";
            ЭлементФормы.РастягиватьПоВертикали = 1;
         КонецЕсли;
         
      КонецЕсли;
      #КонецОбласти
      
      #Область ЗаполнениеДанных
      Форма.Артикул  = Форма.Объект.Артикул;
      Форма.Текст = Форма.Объект.Текст;
      #КонецОбласти
      
   КонецЕсли;
   
КонецПроцедуры

Ребять вопрос закрыт я допетрил сам!

Теги: расширение 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск