У меня в справочнике "Номенклатура" введены дополнительные реквизиты для названия номенклатуры
- на англ. языке
- на эст. языке
Как мне программно при чтении Excel-файла записать в них данные.
Я могу из файла брать название номенклатуры на русск. языке, искать в справочнике нужный элемент. Как к данному найденному элементу записать соответствующие названия на англ. и эст. в соответствующие доп. реквизиты?
ДокПоступления = ДокументПоступления.ПолучитьОбъект();
//Получаем ссылку на доп реквизит
ДопРеквизитПроверено = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Проверено (Поступление товаров и услуг)", Истина);
ЕстьСтроки = ДокПоступления.ДополнительныеРеквизиты.НайтиСтроки(Новый Структура("Свойство", ДопРеквизитПроверено));//Пусть результатом поиска будут "ЕстьСтроки"
Если ЕстьСтроки.Количество() = 0 Тогда
СтрокаТЧ = ДокПоступления.ДополнительныеРеквизиты.Добавить();
СтрокаТЧ.Свойство = ДопРеквизитПроверено;
Иначе
СтрокаТЧ = ЕстьСтроки[0];
КонецЕсли;
СТрокаТЧ.Значение = Истина;
ДокПоступления.Записать();
Показать
или
МассивСтруктур = Новый Массив;
МассивСтруктур.Добавить(Новый Структура("Свойство, Значение",ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Проверено (Поступление товаров и услуг)", Истина),Истина);
МассивСтруктур.Добавить(Новый Структура("Свойство, Значение",ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Время Разбора (Поступление товаров и услуг)", Истина),Истина);
УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(ДокументПоступления,МассивСтруктур);
(4) Подскажите , что не так в моем примере ?
Загружаем из Excel в Розницу2.2 номенклатуру, у которой ведены Дополнительные Реквизиты Допы с типом значения - Дополнительное значение
Для Каждого Строка Из Объект.Товары Цикл
ЭлементНом=Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",СокрЛП(Строка.Артикул));
Если ЭлементНом.Пустая()=Истина Тогда
НовыйЭл=Справочники.Номенклатура.СоздатьЭлемент();
НовыйЭл.Артикул=СокрЛП(Строка.Артикул);
НовыйЭл.Наименование=СокрЛП(Строка.Наименование);
НовыйЭл.НаименованиеПолное=СокрЛП(Строка.Наименование);
НовыйЭл.СтавкаНДС=Перечисления.СтавкиНДС.БезНДС;
НовыйЭл.ВидНоменклатуры=Объект.ВидНоменклатуры;
ДопРеквизитСсылка = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Допы", Истина);
МассивСтруктур = Новый Массив;
МассивСтруктур.Добавить(Новый Структура("Свойство, Значение", ДопРеквизитСсылка,Строка.ДопРекв ));
УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(НовыйЭл, МассивСтруктур);
(16) ЭлементНом=НовыйЭл.Ссылка;
Ошибок нет , но доп реквизиты не появились.
При передаче в модуль УправлениеСвойствами.ЗаписатьСвойстваУОбъекта
Значение заполнено , а свойство пустое поле.
Что-то не так заполняю ?
(19) Спасибо , что отвечаете.
Вопрос еще в наименовании Доп Реквизита.
В Дополнительных реквизитах (Администрирование- Общие настройки) по Номенклатуре прописаны Доп. свойства справочника "Номенклатура" (Общий) , имя Допы.
Тогда строка выглядит так
НовСтр.Свойство=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Допы (Доп. свойства справочника ""Номенклатура"" (Общий))");
С другой стороны в форме Допов (Дополнительный реквизит) есть Имя (Для разработчиков)
Допы_abe6502c17e640daaa03e18f232d87d4
Тогда строка должна быть такой
НовСтр.Свойство=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Допы_abe6502c17e640daaa03e18f232d87d4)");
У меня не проходит ни первый , ни второй вариант . Свойство - пустое
Кстати, просто имя "Допы" тоже пробовала.
Что еще я пишу не так ?
Теперь в модуле вижу заполненное свойство, запись идет , но в справочнике Номенклатуры у новых объектов все равно из Excel Доп реквизит не заполнен
Почему ?
(24) Меня смущает , что после выполнения команды ВладелецСвойствОбъект.Записать();
Значение Доп Реквизита равно типу и равно СправочникТабличнаяЧасть.Номенклатура.ДополнительныеРеквизиты
(23)Изменила тип доп. реквизита на строку и УРА - ПОБЕДА!!!
Спасибо большое.
Но вот почему на тип Дополнительное соглашение не сработало , не понимаю .
(27) Нашла такую фразу для Доп реквизитов с типом Доп значение
у меня доп реквизит "Дополнительное значение", поэтому в свойство нужно передавать не строку, а элемент справочника ЗначенияСвойствОбъектов
Подскажите , как это реализовать ?
я передаю свойство из
НовСтр.Свойство=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Допы", ложь)
а надо выбрать из Справочник.ЗначенияСвойствОбъектов ?
(38)Здравствуйте. Можете поделится готовым кодом? Нужно тоже самое только для справочника контрагенты из экселя грузить доп свойства. Чтоб понять принцип и переделать под себя. Если это возможно.
Если доп реквизиты хранятся в табличной части (как в ут 11), то нужно в цикле пройти ТЧ и если этот реквизит добавлен то изменить, иначе добавить и заполнить значение. Ну и СправочникОБъект записать )
Надо же, сколько лет пользуюсь БСПятиной, а ЗаписатьСвойстваУОбъекта только сейчас увидел.
Скорее всего, эта функция не во всех релизах БСП присутствует.