|
Дополнительные реквизиты | ☑ | ||
---|---|---|---|---|
0
Yur1492
16.04.18
✎
15:16
|
Доброго всем времени.
УНФ, 1.6.13. Подскажите пожалуйста, у номенклатуры при выборе категории из плана видов характеристик поставляются доп реквизиты. Пишу обработку для заполнения из эксель номенклатуры, там есть доп реквизит допустим мощность и как его заполнить при обработке. Подскажите пожалуйста. |
|||
1
FFIL0S0FF
16.04.18
✎
15:23
|
Стандартной обработкой "загрузка данных из табличного документа 8.3" доп реквизиты на сколько я помню она не грузит. Но можно доработать в инете есть статьи на эту тему. Гугли. Один раз разберешся потом легче будет.
|
|||
2
Yur1492
16.04.18
✎
15:29
|
(1) Ну я не стандартной пользуюсь, решил сам напсать так как экселька очень интересная, все работает, а вот как доп реквизиты заполнить не пойму
|
|||
3
delavar
16.04.18
✎
15:32
|
вот что-то подобное я делал -
НоменклатураОб = Номенклатура.ПолучитьОбъект(); ТЗЗначенияСвойств = УправлениеСвойствами.ПолучитьЗначенияСвойств(Номенклатура); //доп реквизит СвойствоНоменклатуры = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(СтрокаТЗ.ИмяРеквизита); Если НЕ ЗначениеЗаполнено(СвойствоНоменклатуры) Тогда Сообщить("Не найден реквизит/допреквизит по наименованию: "+СтрокаТЗ.ИмяРеквизита); Продолжить; КонецЕсли; Если УправлениеСвойствами.ПроверитьСвойствоУОбъекта(Номенклатура, СвойствоНоменклатуры) Тогда СтрокаТЗСвойств = ТЗЗначенияСвойств.Найти(СвойствоНоменклатуры,"Свойство"); Если СтрокаТЗСвойств = Неопределено Тогда Если СокрЛП(ЗначениеРеквизита) = "" И НЕ флПерезаписывать Тогда Продолжить; КонецЕсли; СтрокаТЗСвойств = ТЗЗначенияСвойств.Добавить(); Иначе Если НЕ флПерезаписывать Тогда Продолжить; КонецЕсли; КонецЕсли; //Получаем типы свойства //считаем, что тип свойств у нас не составные - поэтому берем первый ТипСвойства = СвойствоНоменклатуры.Типзначения.Типы()[0]; Если ТипСвойства = Тип("СправочникСсылка.ЗначенияСвойствОбъектов") Тогда РеквизитОбъекта = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(ЗначениеРеквизита,Истина,,СвойствоНоменклатуры); Если ЗначениеЗаполнено(РеквизитОбъекта) Тогда СтрокаТЗСвойств.Свойство = СвойствоНоменклатуры; СтрокаТЗСвойств.Значение = РеквизитОбъекта; РеквизитОтработан = Истина; Иначе Сообщить("Не найдено значение допрекизита по наименованию "+ЗначениеРеквизита+" Для свойства "+СвойствоНоменклатуры); ТЗЗначенияСвойств.Удалить(СтрокаТЗСвойств); Продолжить; КонецЕсли; ИначеЕсли Справочники.ТипВсеСсылки().СодержитТип(ТипСвойства) Тогда ИмяСправочника = Метаданные.НайтиПоТипу(ТипСвойства).Имя; РеквизитОбъекта = Справочники[ИмяСправочника].НайтиПоНаименованию(ЗначениеРеквизита); Если ЗначениеЗаполнено(РеквизитОбъекта) Тогда СтрокаТЗСвойств.Свойство = СвойствоНоменклатуры; СтрокаТЗСвойств.Значение = РеквизитОбъекта; РеквизитОтработан = Истина; Иначе Сообщить("Не найдено значение допрекизита по наименованию "+ЗначениеРеквизита+" Для свойства "+СвойствоНоменклатуры); ТЗЗначенияСвойств.Удалить(СтрокаТЗСвойств); Продолжить; КонецЕсли; ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(ТипСвойства) Тогда ИмяПеречисления = Метаданные.НайтиПоТипу(ТипСвойства).Имя; СтрокаТЗСвойств.Свойство = СвойствоНоменклатуры; СтрокаТЗСвойств.Значение = Перечисления[ИмяПеречисления][ЗначениеРеквизита]; РеквизитОтработан = Истина; ИначеЕсли ТипСвойства = Тип("Строка") Тогда СтрокаТЗСвойств.Свойство = СвойствоНоменклатуры; СтрокаТЗСвойств.Значение = ЗначениеРеквизита; РеквизитОтработан = Истина; ИначеЕсли ТипСвойства = Тип("Число") Тогда СтрокаТЗСвойств.Свойство = СвойствоНоменклатуры; СтрокаТЗСвойств.Значение = Число(ЗначениеРеквизита); РеквизитОтработан = Истина; КонецЕсли; КонецЕсли; |
|||
4
hhhh
16.04.18
✎
15:35
|
(2) ну это таб. часть справочника номенклатуры. "Допреквизиты".
что-то типа стр = ОбъектНом.ДополнительныеРеквизиты.Добавить(); стр.Свойство = ТомуТо; стр.Значение = ТомуТо; |
|||
5
Yur1492
16.04.18
✎
16:18
|
Написал во так вот;
ТабДок = НовыйОбьект.ДополнительныеРеквизиты.Добавить(); ТабДок.Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Насосы.Высота"); ТабДок.Значение = Высота; Выдает ошибку Ошибка при вызове метода контекста (Записать) НовыйОбьект.Записать(); по причине: Ошибка при выполнении обработчика - 'ПриЗаписи' по причине: {ОбщийМодуль.КатегорииНоменклатурыСервер.Модуль(1336)}: Ошибка при вызове метода контекста (Записать) НаборЗаписей.Записать(); по причине: Запись не верна! Значение поля "Свойство" не может быть пустым!: ЗаполненностьСвойствКатегорий: Насосы, , 00000000-0000-0000-0000-000000000000, (Регистр сведений: Заполненность свойств категорий; Номер строки: 1) |
|||
6
hhhh
16.04.18
✎
16:31
|
(5) дебильное название, потому что
Как вы яхту назовете, так она и поплывет. "Насосы.Высота" ?? что за дебилизм. По русски назовите. |
|||
7
Yur1492
16.04.18
✎
19:20
|
(6) Тогда не понимаю как обратиться, есть категория "насосы" в ней реквизит "Высота"
|
|||
8
Мимохожий Однако
16.04.18
✎
19:24
|
(5) Разъясни
ТабДок = НовыйОбьект.ДополнительныеРеквизиты.Добавить(); НовыйОбъект что это? |
|||
9
Yur1492
16.04.18
✎
19:30
|
(6) Все разобрался)))просто в инете нашел как кто то так обращался к доп реквизитам надо было "Ширина (Насосы)"
(8) это Новая номенклатура |
|||
10
Yur1492
16.04.18
✎
19:31
|
Всем спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |