Задание характеристики номенклатуры в упр приложении
Пишу загрузку данных из екселя в 1ску. Сначала гружу все данные из екселя в ТЧ. Потом на основании этой ТЧ создаю номенклатуру. Это все ясно как деать, но у номенклатуры есть перечень характеристик, которые я создавал в режиме предприятия, например цвет. Как мне теперь при создании номенклатуры задать чтобы находилась эта характеристика цвет, и туда вставало мое значение?
Номен = Справочники.Номенклатура.СоздатьЭлемент();
Номен.Наименование = Наименование;
Номен.НаименованиеПолное = НаименованиеПолное;
Номен.ЕдиницаИзмерения = ЕдиницаИзмерения;
Номен.ТипНоменклатуры = ТипНоменклатуры;
Номен.СтавкаНДС = Объект.СтавкаНДС;
Номен.ВидНоменклатуры = ВидНом;
Номен.Родитель = Группа.Ссылка;
Номен.Описание = ТекстовоеОписание;
Номен.Производитель = Производитель;
Номен.ВариантОформленияПродажи = ВидНом.ВариантОформленияПродажи;
Для каждого строка из Номен.ДополнительныеРеквизиты Цикл
//как вот тут найти нужную мне характеристику?
КонецЦикла;
Сообщить("Создана номенклатура: "+Наименование);
Попытка
Номен.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
ПоказатьПо теме из базы знаний
- Дополнительные реквизиты и сведения в управляемом приложении - это просто... с БДРС
- Система управления товарными запасами в 1С. Оптимальный заказ поставщику и снабжение складов
- SynchroSber - полноценный модуль API интеграции с маркетплейсом Мегамаркет (СберМегаМаркет) для 1С УТ 11.X, КА 2.X, ERP 2.X, УНФ 1.6, 3.0 (возможность работы как с публикацией, так и без публикации базы)
- Интеграции с маркетплейсами из одного окна: Озон, ВБ, Яндекс, Сбер, Али, ЛаМода для 1С:УНФ, УТ, КА, ERP
- Модуль интеграции 1С и Wildberries+Яндекс Маркет по схеме FBO+FBS для УТ 11, КА, ERP, УНФ
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Вожак,
ставишь на этом месте строку
А = Строка;
в отладчике ставишь точку останова на этой строке,
запускаешь,
программа на ней останавливается,
кликаешь на "А" - правой кнопкой мыши вычислитьвыражение,
смотришь все параметры которые доступны для этой строки, и дальше пишешь свои условия основываясь на полученной информации.
//как вот тут найти нужную мне характеристику?
ставишь на этом месте строку
А = Строка;
в отладчике ставишь точку останова на этой строке,
запускаешь,
программа на ней останавливается,
кликаешь на "А" - правой кнопкой мыши вычислитьвыражение,
смотришь все параметры которые доступны для этой строки, и дальше пишешь свои условия основываясь на полученной информации.
(5) Вожак, да при чем тут режим предприятия.
Ты же программист,
делаешь цикл, должен понимать, что за переменную ты перебираешь и что в ней находится.
Номен.ДополнительныеРеквизиты - это что вообще ? Массив, ТЧ, таблица значений, список значений, что в нем внутри находится ? Есть строки или нет ?
Поставь точку останова перед
и вычисли значение переменной Номен.ДополнительныеРеквизиты
а потом думай
Ты же программист,
делаешь цикл, должен понимать, что за переменную ты перебираешь и что в ней находится.
Номен.ДополнительныеРеквизиты - это что вообще ? Массив, ТЧ, таблица значений, список значений, что в нем внутри находится ? Есть строки или нет ?
Поставь точку останова перед
Для каждого строка из Номен.ДополнительныеРеквизиты Цикл
и вычисли значение переменной Номен.ДополнительныеРеквизиты
а потом думай
(7) Boneman,
После этой строки Для каждого строка из Номен.ДополнительныеРеквизиты Цикл, сразу на сообщить вылетает, в цикл даже не заходит, а Номен.ДополнительныеРеквизиты по отладчику пишет справочникТЧ, но в ней нет строк, как мне их туда тогда запихнуть?
Номен.ВариантОформленияПродажи = Объект.ВидНоменклатуры.ВариантОформленияПродажи;
Для каждого строка из Номен.ДополнительныеРеквизиты Цикл
Поц = 1;
КонецЦикла;
Сообщить("Создана номенклатура: "+Наименование);
После этой строки Для каждого строка из Номен.ДополнительныеРеквизиты Цикл, сразу на сообщить вылетает, в цикл даже не заходит, а Номен.ДополнительныеРеквизиты по отладчику пишет справочникТЧ, но в ней нет строк, как мне их туда тогда запихнуть?
(13) Вожак,
и
ВЫБРАТЬ
НаборыДополнительныхРеквизитовИСведенийДополнительныеСведени я.Ссылка.Ссылка,
НаборыДополнительныхРеквизитовИСведенийДополнительныеСведени я.Свойство.Наименование
ИЗ
Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения КАК НаборыДополнительныхРеквизитовИСведенийДополнительныеСведени я
ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
ПО НаборыДополнительныхРеквизитовИСведенийДополнительныеСведени я.Свойство = ДополнительныеРеквизитыИСведения.Ссылка
ГДЕ
НЕ ДополнительныеРеквизитыИСведения.ПометкаУдаления
И НЕ НаборыДополнительныхРеквизитовИСведенийДополнительныеСведени я.ПометкаУдаления
Показатьи
ВЫБРАТЬ
ДополнительныеРеквизитыИСведения.Ссылка КАК Ссылка,
ДополнительныеРеквизитыИСведения.Наименование КАК Наименование,
ДополнительныеРеквизитыИСведения.ПометкаУдаления КАК ПометкаУдаления
ИЗ
ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения) КАК СвойстваОбъектов
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
ПО (ДополнительныеСведения.Объект = &ОбъектОтбораЗначений)
И (ДополнительныеСведения.Свойство = СвойстваОбъектов.Ссылка)
ГДЕ
НЕ СвойстваОбъектов.ПометкаУдаления
Показать
(17) deniseek77,
такой что ли запрос?
ВЫБРАТЬ
НаборыДополнительныхРеквизитовИСведенийДополнительныеСведени я.Ссылка.Ссылка,
НаборыДополнительныхРеквизитовИСведенийДополнительныеСведени я.Свойство.Наименование
ИЗ
Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения КАК НаборыДополнительныхРеквизитовИСведенийДополнительныеСведени я
ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
ПО НаборыДополнительныхРеквизитовИСведенийДополнительныеСведени я.Свойство = ДополнительныеРеквизитыИСведения.Ссылка
(ВЫБРАТЬ
ДополнительныеРеквизитыИСведения.Ссылка КАК Ссылка,
ДополнительныеРеквизитыИСведения.Наименование КАК Наименование,
ДополнительныеРеквизитыИСведения.ПометкаУдаления КАК ПометкаУдаления
ИЗ
ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения) КАК СвойстваОбъектов
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
ПО (ДополнительныеСведения.Объект = &ОбъектОтбораЗначений)
И (ДополнительныеСведения.Свойство = СвойстваОбъектов.Ссылка)
ГДЕ
НЕ СвойстваОбъектов.ПометкаУдаления
Показатьтакой что ли запрос?
(14) deniseek77, вот где тут скобка открывающая должна стоять? 3 часа уже бьюсь над ней
ВЫБРАТЬ
ДополнительныеРеквизитыИСведения.Ссылка КАК Ссылка,
ДополнительныеРеквизитыИСведения.Наименование КАК Наименование,
ДополнительныеРеквизитыИСведения.ПометкаУдаления КАК ПометкаУдаления
ИЗ
ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения) КАК СвойстваОбъектов
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
ПО (ДополнительныеСведения.Объект = &ОбъектОтбораЗначений)
И (ДополнительныеСведения.Свойство = СвойстваОбъектов.Ссылка)
ГДЕ
НЕ СвойстваОбъектов.ПометкаУдаления
Показать
Написал отдельный запрос:
Почему я в параметр не могу передать справочник номенклатура? только номенклатура поставщиков есть
ВЫБРАТЬ
ДополнительныеРеквизитыИСведения.Ссылка,
ДополнительныеРеквизитыИСведения.ПометкаУдаления,
ДополнительныеРеквизитыИСведения.Наименование
ИЗ
РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
ПО ДополнительныеСведения.Свойство = ДополнительныеРеквизитыИСведения.Ссылка
ГДЕ
ДополнительныеСведения.Объект = &ОбъектОтбораЗначений
И ДополнительныеСведения.Свойство = ДополнительныеРеквизитыИСведения.Ссылка
ПоказатьПочему я в параметр не могу передать справочник номенклатура? только номенклатура поставщиков есть
Вот запрос вроде даже работает, только почему то он мне доп реквизиты документа показывает, а справочника номенклатура нет, почему так?
ВЫБРАТЬ
НаборыДополнительныхРеквизитовИСведенийДополнительныеСведени я.Ссылка.Ссылка,
НаборыДополнительныхРеквизитовИСведенийДополнительныеСведени я.Свойство.Наименование
ИЗ
Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения КАК НаборыДополнительныхРеквизитовИСведенийДополнительныеСведени я
ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
ПО НоменклатураДополнительныеРеквизиты.Ссылка = ДополнительныеРеквизитыИСведения.Ссылка
ПО НаборыДополнительныхРеквизитовИСведенийДополнительныеСведени я.Свойство = ДополнительныеРеквизитыИСведения.Ссылка
ПоказатьВЫБРАТЬ
НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизи ты.Ссылка КАК Группа,
НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизи ты.Свойство.Наименование КАК СвойствоРеквизита
ИЗ
Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения КАК НаборыДополнительныхРеквизитовИСведенийДополнительныеСведени я
ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
ПО (НоменклатураДополнительныеРеквизиты.Ссылка = ДополнительныеРеквизитыИСведения.Ссылка)
ПО НаборыДополнительныхРеквизитовИСведенийДополнительныеСведени я.Свойство = ДополнительныеРеквизитыИСведения.Ссылка,
Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизи ты
Показатьвот запрос выдает мне в итоге характеристики всех групп номенклатуры которые у меня есть. То есть я получаю этот запрос, потом обхожу его в поисках например цвета, и когда эту характеристику нахожу, как мне ее записать в справочник?
Не очень понятен вопрос.
Если про то, как подставить значение цвета при создании номенклатуры, - то необходимо сопоставление код цвета - значение екселя, далее по сопоставлению находишь элемент цвета по коду, далее создаешь набор записей доп.свойства для данной номенклатуры.
Если про то, как подставить значение цвета при создании номенклатуры, - то необходимо сопоставление код цвета - значение екселя, далее по сопоставлению находишь элемент цвета по коду, далее создаешь набор записей доп.свойства для данной номенклатуры.
(34) DEMOS777, по пунктам так это будет:
1. Загрузил из екселя в табличную часть номенклатуру
2. хочу ее создать. с указанием характеристик. предварительно создал в режиме предприятия эти характеристики. но теперь не понимаю как для номенклатуры их заполнять по данным моей тч
1. Загрузил из екселя в табличную часть номенклатуру
2. хочу ее создать. с указанием характеристик. предварительно создал в режиме предприятия эти характеристики. но теперь не понимаю как для номенклатуры их заполнять по данным моей тч
ВЫБРАТЬ
СвойстваОбъектов.Ссылка,
СвойстваОбъектов.Наименование,
СвойстваОбъектов.ПометкаУдаления
ИЗ
ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК СвойстваОбъектов
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
ПО (ДополнительныеСведения.Объект = &ОбъектОтбораЗначений)
Показатьвот я получил список доп реквизитов, и как мне потом при обходе моими данными при создании номенклатуры пихать цвет?
(42) 3762515, в спр номенклатура есть ТЧ - дополнительные реквизиты - это и есть характеристики номенклатуры, там 3 реквизита:
1. Свойство - тип ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения
2. Значение - тип Характеристика.ДополнительныеРеквизитыИСведения
3. ТекстоваяСтрока
1. Свойство - тип ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения
2. Значение - тип Характеристика.ДополнительныеРеквизитыИСведения
3. ТекстоваяСтрока
(47) Вожак,
Примерно так, это легко загуглить. А я давно ничего не писал на УФ.
Курсы = РегистрыСведений.Характеристика.ДополнительныеРеквизитыИСведения.СоздатьНаборЗаписей();
Набор = Курсы.Добавить();
Набор.Период = ТекущаяДата();
Набор.Длинна= "значение";
Курсы.Записать();
Примерно так, это легко загуглить. А я давно ничего не писал на УФ.
(47) Вожак,вот нагуглил:
/// Как добавить новую записи регистра сведений в 1с 8.3, 8.2
/// Как изменить/удалить существующую запись регистра сведений
/// в 1с 8.3, 8.2
Процедура КакДобавитьИзменитьИлиУдалитьЗаписьРегистраСведений()
// добавление новой записи
НоваяЗапись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
НоваяЗапись.Период = ТекущаяДата();
НоваяЗапись.Курс = 50;
НоваяЗапись.Кратность = 1.0;
// НоваяЗапись.Валюта = СсылкаНаВалюту;
// НоваяЗапись.Записать();
//Отбор = Новый Структура("Валюта", СсылкаНаВалюту);
Выборка = РегистрыСведений.КурсыВалют.Выбрать('20130101',
'20131231');//, Отбор);
Пока Выборка.Следующий() Цикл
// изменение существующей
МенеджерЗаписи = Выборка.ПолучитьМенеджерЗаписи();
МенеджерЗаписи.Прочитать();
МенеджерЗаписи.Курс = 25;
// МенеджерЗаписи.Записать();
// удаление существующей
//Выборка.ПолучитьМенеджерЗаписи().Удалить();
КонецЦикла;
КонецПроцедуры
Показать
Точнее это будет так:
м_Номенклатура = Справочники.Номенклатура.Создать();
м_Номенклатура.Реквизит = ....
м_Номенклатура.Записать();
НаборЗаписей = РегистрыСведений.<Имя>.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Номенклатура.Установить(м_Номенклатура.ссылка)
Запись = НаборЗапией.Добавить();
Запись.<Реквизит> = ....
НаборЗаписей.Записать();
Показать
(56) Вожак, ща посмотрел в УПП в РС "ЗначенияСвойствОбъектов", Измерение "Объект" имеет тип: "ДокументСсылка, СправочникСсылка" и соответственно объект может быть любым в том числе и Номенклатурой. И записи в этом РС: Объект, Свойство, Значение. У тебя должно быть так же, я так думаю.
Делаю так:
но в номенклатуре потом значение цвета не появляется все равно
Номен = Справочники.Номенклатура.СоздатьЭлемент();
Номен.Наименование = Наименование;
Номен.НаименованиеПолное = НаименованиеПолное;
Номен.ЕдиницаИзмерения = ЕдиницаИзмерения;
Номен.ТипНоменклатуры = ТипНоменклатуры;
Номен.СтавкаНДС = Объект.СтавкаНДС;
Номен.ВидНоменклатуры = Объект.ВидНоменклатуры;
Номен.Родитель = ГруппаНоменклатуры;
Номен.Производитель = Производитель;
Номен.ВариантОформленияПродажи = Объект.ВидНоменклатуры.ВариантОформленияПродажи;
Попытка
Номен.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Если НЕ Цвет = "" Тогда
Св = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("цвет");
НаборЗаписей = РегистрыСведений.ДополнительныеСведения.СоздатьНаборЗаписей();
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Объект = Номен.Ссылка;
НоваяЗапись.Свойство = Св.Ссылка;
НоваяЗапись.Значение = Цвет;
НаборЗаписей.Записать();
КонецЕсли;
Попытка
Номен.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Показатьно в номенклатуре потом значение цвета не появляется все равно
А так уже предлагали?
Номен = Справочники.Номенклатура.СоздатьЭлемент();
Номен.Наименование = Наименование;
Номен.НаименованиеПолное = НаименованиеПолное;
Номен.ЕдиницаИзмерения = ЕдиницаИзмерения;
Номен.ТипНоменклатуры = ТипНоменклатуры;
Номен.СтавкаНДС = Объект.СтавкаНДС;
Номен.ВидНоменклатуры = ВидНом;
Номен.Родитель = Группа.Ссылка;
Номен.Описание = ТекстовоеОписание;
Номен.Производитель = Производитель;
Номен.ВариантОформленияПродажи = ВидНом.ВариантОформленияПродажи;
Если НЕ Цвет = "" Тогда
Реквизит = Номен.ДополнительныеРеквизиты.Добавить();
Св = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("цвет");
Реквизит.Свойство = Св;
Реквизит.Значение = Цвет; //если Значение это Значение свойства тогда Справочники.ЗначениеСвойствОбъектов.НайтиПоНаименованию(Цвет,Истина);
КонецЕсли;
Попытка
Номен.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Показать
Вожак, поищи либо справочник Характеристики номенклатуры (как в 65 подсказали) или регистр сведений Значения характеристик номенклатуры (или что-то похожее). Если есть регистр, то
Если справочник, то
Обрати внимание, если есть ошибки при записи номенклатуры (в 1 случае) или при записи характеристик (во 2 случае), то ни номенклатура, ни характеристики не запишутся.
P.S. А почему именно характеристики, а не свойства? Если решишь использовать свойства, используй 1 вариант кода, то
РегистрыСведений.ЗначенияХарактеристикНоменклатуры.СоздатьНаборЗаписей(); замени на РегистрыСведений.ЗначенияСвойствобъектов.СоздатьНаборЗаписей();. Соответственно ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Цвет"); тоже нужно заменить на
ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Цвет");
НачатьТранзакцию();
Категория = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Цвет");
Номен = Справочники.Номенклатура.СоздатьЭлемент();
Номен.Наименование = Наименование;
Номен.НаименованиеПолное = НаименованиеПолное;
Номен.ЕдиницаИзмерения = ЕдиницаИзмерения;
Номен.ТипНоменклатуры = ТипНоменклатуры;
Номен.СтавкаНДС = Объект.СтавкаНДС;
Номен.ВидНоменклатуры = ВидНом;
Номен.Родитель = Группа.Ссылка;
Номен.Описание = ТекстовоеОписание;
Номен.Производитель = Производитель;
Номен.ВариантОформленияПродажи = ВидНом.ВариантОформленияПродажи;
Попытка
Номен.Записать();
Исключение
ОтменитьТранзакцию();
Сообщить(ОписаниеОшибки());
КонецПопытки;
нзЗначенияХарактеристикНоменклатуры = РегистрыСведений.ЗначенияХарактеристикНоменклатуры.СоздатьНаборЗаписей();
нзЗначенияХарактеристикНоменклатуры.Отбор.Объект.Установить(Номен.Ссылка);
нзЗначенияХарактеристикНоменклатуры.Отбор.Категория.Установить(Категория);
нзЗначенияХарактеристикНоменклатуры.Прочитать();
НоваяЗапись = нзЗначенияХарактеристикНоменклатуры.Добавить();
НоваяЗапись Объект = Номен.Ссылка;
НоваяЗапись Категория= Категория;
НоваяЗапись Значение = Цвет;
нзЗначенияХарактеристикНоменклатуры.Записать();
ЗафиксироватьТранзакцию();
ПоказатьЕсли справочник, то
НачатьТранзакцию();
Категория = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Цвет");
Номен = Справочники.Номенклатура.СоздатьЭлемент();
Номен.Наименование = Наименование;
Номен.НаименованиеПолное = НаименованиеПолное;
Номен.ЕдиницаИзмерения = ЕдиницаИзмерения;
Номен.ТипНоменклатуры = ТипНоменклатуры;
Номен.СтавкаНДС = Объект.СтавкаНДС;
Номен.ВидНоменклатуры = ВидНом;
Номен.Родитель = Группа.Ссылка;
Номен.Описание = ТекстовоеОписание;
Номен.Производитель = Производитель;
Номен.ВариантОформленияПродажи = ВидНом.ВариантОформленияПродажи;
Попытка
Номен.Записать();
Исключение
ОтменитьТранзакцию();
Сообщить(ОписаниеОшибки());
КонецПопытки;
спЗначенияХарактеристикНоменклатуры = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
спЗначенияХарактеристикНоменклатуры.Владелец = Номен.Ссылка;
//Заполняем остальные реквизиты
Попытка
спЗначенияХарактеристикНоменклатуры.Записать();
Исключение
ОтменитьТранзакцию();
Сообщить(ОписаниеОшибки());
КонецПопытки;
ЗафиксироватьТранзакцию();
ПоказатьОбрати внимание, если есть ошибки при записи номенклатуры (в 1 случае) или при записи характеристик (во 2 случае), то ни номенклатура, ни характеристики не запишутся.
P.S. А почему именно характеристики, а не свойства? Если решишь использовать свойства, используй 1 вариант кода, то
РегистрыСведений.ЗначенияХарактеристикНоменклатуры.СоздатьНаборЗаписей(); замени на РегистрыСведений.ЗначенияСвойствобъектов.СоздатьНаборЗаписей();. Соответственно ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Цвет"); тоже нужно заменить на
ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Цвет");
(70) popro, как в 664, я не много добавил и вот так получается:
но все равно не получается запихнуть в карточку номенклатура характеристику
НачатьТранзакцию();
Категория = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Цвет");
Номен = Справочники.Номенклатура.СоздатьЭлемент();
Номен.Наименование = Наименование;
Номен.НаименованиеПолное = НаименованиеПолное;
Номен.ЕдиницаИзмерения = ЕдиницаИзмерения;
Номен.ТипНоменклатуры = ТипНоменклатуры;
Номен.СтавкаНДС = Объект.СтавкаНДС;
Номен.ВидНоменклатуры = Объект.ВидНоменклатуры;
Номен.Родитель = ГруппаНоменклатуры;
Номен.Описание = ТекстовоеОписание;
Номен.Производитель = Производитель;
Номен.ВариантОформленияПродажи = Объект.ВидНоменклатуры.ВариантОформленияПродажи;
Попытка
Номен.Записать();
Исключение
ОтменитьТранзакцию();
Сообщить(ОписаниеОшибки());
КонецПопытки;
спЗначенияХарактеристикНоменклатуры = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
спЗначенияХарактеристикНоменклатуры.Владелец = Номен.Ссылка;
ХарактеристикиРеквизиты = спЗначенияХарактеристикНоменклатуры.ДополнительныеРеквизиты.Добавить();
ХарактеристикиРеквизиты.Значение = Цвет;
ХарактеристикиРеквизиты.Свойство = Категория;
//Заполняем остальные реквизиты
Попытка
спЗначенияХарактеристикНоменклатуры.Записать();
Исключение
ОтменитьТранзакцию();
Сообщить(ОписаниеОшибки());
КонецПопытки;
Если ТранзакцияАктивна() Тогда
ЗафиксироватьТранзакцию();
КонецЕсли;
Показатьно все равно не получается запихнуть в карточку номенклатура характеристику
(72) Вожак,
Код в 64 записывает доп свойство "Цвет" в номенклатуру.
Код в 72 создает характеристику номенклатуры и записывает доп свойство "Цвет" в характеристику номенклатуры.
Возможно просто записи не видны
Если речь идет о характеристике номенклатуры, то проверь учитывается ли номенклатура в разрезе характеристик номенклатуры.
Если речь идет о доп свойстве, то проверь выбраны ли для номенклатуры эти свойства в пункте "Изменить состав дополнительных реквизитов".
Еще как вариант, т.к. 72 работает а 64 нет, то для справочника номенклатура не созданы доп свойства в разделе "Наборы дополнительных реквизитов и сведений", но созданы для характеристики номенклатуры.
Было бы удобнее чтобы разделяли характеристики номенклатуры и дополнительные свойства.
(73) uk09, УТ 11.
Код в 64 записывает доп свойство "Цвет" в номенклатуру.
Код в 72 создает характеристику номенклатуры и записывает доп свойство "Цвет" в характеристику номенклатуры.
Возможно просто записи не видны
Если речь идет о характеристике номенклатуры, то проверь учитывается ли номенклатура в разрезе характеристик номенклатуры.
Если речь идет о доп свойстве, то проверь выбраны ли для номенклатуры эти свойства в пункте "Изменить состав дополнительных реквизитов".
Еще как вариант, т.к. 72 работает а 64 нет, то для справочника номенклатура не созданы доп свойства в разделе "Наборы дополнительных реквизитов и сведений", но созданы для характеристики номенклатуры.
Было бы удобнее чтобы разделяли характеристики номенклатуры и дополнительные свойства.
(73) uk09, УТ 11.
НачатьТранзакцию();
Категория = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Цвет");
Номен = Справочники.Номенклатура.СоздатьЭлемент();
Номен.Наименование = Наименование;
Номен.НаименованиеПолное = НаименованиеПолное;
Номен.ЕдиницаИзмерения = ЕдиницаИзмерения;
Номен.ТипНоменклатуры = ТипНоменклатуры;
Номен.СтавкаНДС = Объект.СтавкаНДС;
Номен.ВидНоменклатуры = Объект.ВидНоменклатуры;
Номен.Родитель = ГруппаНоменклатуры;
Номен.Описание = ТекстовоеОписание;
Номен.Производитель = Производитель;
Номен.ВариантОформленияПродажи = Объект.ВидНоменклатуры.ВариантОформленияПродажи;
Попытка
Номен.Записать();
Исключение
ОтменитьТранзакцию();
Сообщить(ОписаниеОшибки());
КонецПопытки;
спЗначенияХарактеристикНоменклатуры = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
спЗначенияХарактеристикНоменклатуры.Владелец = Номен.Ссылка;
спЗначенияХарактеристикНоменклатуры.Наименование = Номен.Наименование;
ХарактеристикиРеквизиты = спЗначенияХарактеристикНоменклатуры.ДополнительныеРеквизиты.Добавить();
ХарактеристикиРеквизиты.Значение = Цвет;
ХарактеристикиРеквизиты.Свойство = Категория;
Попытка
спЗначенияХарактеристикНоменклатуры.Записать();
Исключение
ОтменитьТранзакцию();
Сообщить(ОписаниеОшибки());
КонецПопытки;
Если ТранзакцияАктивна() Тогда
ЗафиксироватьТранзакцию();
КонецЕсли;
КонецЦикла;
ПоказатьВот делаю так, ошибок нет, номенклатура создается, а в самой карточке:
Прикрепленные файлы:
(98) МимохожийОднако, тут не совсем элемент справочника характеристики. Тут значение из дополнительных реквизитов и сведений (эти реквизиты задаются в пользовательском режиме на закладке администрирование - общие - дополнительные реквизиты и сведения для почти всех объектов конфигурации, то есть выбираем справочник номенклатура там, и добавляем наши реквизиты)
Почта - citizen72@yandex.ru Вопрос: характеристики - цвет? Он впоследствии будет назначен, выберется из Excel или будет введен интерактивно в ходе обработки? Особо это ничего не меняет, просто решить - укладываем null или значение.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот