Вход | Регистрация

1С:Предприятие ::

Метки: 

Дополнительные реквизиты

Я
   Yur1492
 
16.04.18 - 15:16
Доброго всем времени.
УНФ, 1.6.13. Подскажите пожалуйста, у номенклатуры при выборе категории из плана видов характеристик поставляются доп реквизиты. Пишу обработку для заполнения из эксель номенклатуры, там есть доп реквизит допустим мощность и как его заполнить при обработке. Подскажите пожалуйста.
 
 
   FFIL0S0FF
 
1 - 16.04.18 - 15:23
Стандартной обработкой "загрузка данных из табличного документа 8.3" доп реквизиты на сколько я помню она не грузит. Но можно доработать в инете есть статьи на эту тему. Гугли. Один раз разберешся потом легче будет.
   Yur1492
 
2 - 16.04.18 - 15:29
(1) Ну я не стандартной пользуюсь, решил сам напсать так как экселька очень интересная, все работает, а вот как доп реквизиты заполнить не пойму
   delavar
 
3 - 16.04.18 - 15:32
вот что-то подобное я делал - 

НоменклатураОб = Номенклатура.ПолучитьОбъект();
        
        ТЗЗначенияСвойств = УправлениеСвойствами.ПолучитьЗначенияСвойств(Номенклатура);
//доп реквизит

                СвойствоНоменклатуры = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(СтрокаТЗ.ИмяРеквизита);
                Если НЕ ЗначениеЗаполнено(СвойствоНоменклатуры) Тогда
                    Сообщить("Не найден реквизит/допреквизит по наименованию: "+СтрокаТЗ.ИмяРеквизита);
                    Продолжить;
                КонецЕсли;
                
                Если УправлениеСвойствами.ПроверитьСвойствоУОбъекта(Номенклатура, СвойствоНоменклатуры) Тогда
                    СтрокаТЗСвойств = ТЗЗначенияСвойств.Найти(СвойствоНоменклатуры,"Свойство");
                    Если СтрокаТЗСвойств = Неопределено Тогда
                        Если СокрЛП(ЗначениеРеквизита) = "" И НЕ флПерезаписывать Тогда
                            Продолжить;
                        КонецЕсли;
                        СтрокаТЗСвойств = ТЗЗначенияСвойств.Добавить();
                    Иначе
                        Если НЕ флПерезаписывать Тогда
                            Продолжить;
                        КонецЕсли;
                    КонецЕсли;
                    
                    //Получаем типы свойства

                    //считаем, что тип свойств у нас не составные - поэтому берем первый

                    ТипСвойства = СвойствоНоменклатуры.Типзначения.Типы()[0];
                    
                    Если ТипСвойства = Тип("СправочникСсылка.ЗначенияСвойствОбъектов") Тогда
                        РеквизитОбъекта = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(ЗначениеРеквизита,Истина,,СвойствоНоменклатуры);
                        Если ЗначениеЗаполнено(РеквизитОбъекта) Тогда
                            СтрокаТЗСвойств.Свойство = СвойствоНоменклатуры;
                            СтрокаТЗСвойств.Значение = РеквизитОбъекта;    
                            РеквизитОтработан = Истина;
                        Иначе
                            Сообщить("Не найдено значение допрекизита по наименованию "+ЗначениеРеквизита+" Для свойства "+СвойствоНоменклатуры);
                            ТЗЗначенияСвойств.Удалить(СтрокаТЗСвойств);
                            Продолжить;
                        КонецЕсли;
                    ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипСвойства) Тогда
                        ИмяСправочника = Метаданные.НайтиПоТипу(ТипСвойства).Имя;
                        РеквизитОбъекта = Справочники[ИмяСправочника].НайтиПоНаименованию(ЗначениеРеквизита);
                        Если ЗначениеЗаполнено(РеквизитОбъекта) Тогда
                            СтрокаТЗСвойств.Свойство = СвойствоНоменклатуры;
                            СтрокаТЗСвойств.Значение = РеквизитОбъекта;    
                            РеквизитОтработан = Истина;
                        Иначе
                            Сообщить("Не найдено значение допрекизита по наименованию "+ЗначениеРеквизита+" Для свойства "+СвойствоНоменклатуры);
                            ТЗЗначенияСвойств.Удалить(СтрокаТЗСвойств);
                            Продолжить;
                        КонецЕсли;
                    ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипСвойства) Тогда
                        ИмяПеречисления = Метаданные.НайтиПоТипу(ТипСвойства).Имя;
                        СтрокаТЗСвойств.Свойство = СвойствоНоменклатуры;
                        СтрокаТЗСвойств.Значение = Перечисления[ИмяПеречисления][ЗначениеРеквизита];    
                        РеквизитОтработан = Истина;
                    ИначеЕсли ТипСвойства =  Тип("Строка") Тогда
                        СтрокаТЗСвойств.Свойство = СвойствоНоменклатуры;
                        СтрокаТЗСвойств.Значение = ЗначениеРеквизита;    
                        РеквизитОтработан = Истина;
                    ИначеЕсли ТипСвойства = Тип("Число") Тогда    
                        СтрокаТЗСвойств.Свойство = СвойствоНоменклатуры;
                        СтрокаТЗСвойств.Значение = Число(ЗначениеРеквизита);    
                        РеквизитОтработан = Истина;
                    КонецЕсли;
                    
                КонецЕсли;
   hhhh
 
4 - 16.04.18 - 15:35
(2) ну это таб. часть справочника номенклатуры. "Допреквизиты".

что-то типа

стр = ОбъектНом.ДополнительныеРеквизиты.Добавить();
стр.Свойство = ТомуТо;
стр.Значение = ТомуТо;
   Yur1492
 
5 - 16.04.18 - 16:18
Написал во так вот;
                ТабДок = НовыйОбьект.ДополнительныеРеквизиты.Добавить();
                ТабДок.Свойство =  ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Насосы.Высота");
                ТабДок.Значение = Высота;



Выдает ошибку

Ошибка при вызове метода контекста (Записать)
            НовыйОбьект.Записать();
по причине:
Ошибка при выполнении обработчика - 'ПриЗаписи'
по причине:
{ОбщийМодуль.КатегорииНоменклатурыСервер.Модуль(1336)}: Ошибка при вызове метода контекста (Записать)
    НаборЗаписей.Записать();
по причине:
Запись не верна! Значение поля "Свойство" не может быть пустым!: ЗаполненностьСвойствКатегорий: Насосы, , 00000000-0000-0000-0000-000000000000,  (Регистр сведений: Заполненность свойств категорий; Номер строки: 1)
   hhhh
 
6 - 16.04.18 - 16:31
(5) дебильное название, потому что

Как вы яхту назовете, так она и поплывет.

"Насосы.Высота" ?? что за дебилизм. По русски назовите.
   Yur1492
 
7 - 16.04.18 - 19:20
(6) Тогда не понимаю как обратиться, есть категория "насосы" в ней реквизит "Высота"
   МимохожийОднако
 
8 - 16.04.18 - 19:24
(5) Разъясни
 ТабДок = НовыйОбьект.ДополнительныеРеквизиты.Добавить();
НовыйОбъект что это?
   Yur1492
 
9 - 16.04.18 - 19:30
(6) Все разобрался)))просто в инете нашел как кто то так обращался к доп реквизитам надо было "Ширина (Насосы)" 
(8) это Новая номенклатура
   Yur1492
 
10 - 16.04.18 - 19:31
Всем спасибо
 
 Рекламное место пустует


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