Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
03 фев 2026, 07:56

Как получить характеристику НоменклатурыКонтрагента и записывать ее в наименование Номенклатуры?

Автор Sanchez, 12 дек 2025, 12:55

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

Sanchez

antoneus, добрый день. Нужен совет
&Вместо("СоздатьЭлементСправочникаНоменклатура")
Функция СозданиеНоменклатурыСРазмерамиЭДОСоздатьЭлементСправочникаНоменклатура(НоменклатураКонтрагента, ЗначенияРеквизитов, Ошибки)
    Результат = СопоставлениеНоменклатурыКонтрагентовКлиентСервер.НоваяНоменклатураИнформационнойБазы();
    НоменклатураОбъект = Справочники.Номенклатура.СоздатьЭлемент();
   
    НоменклатураОбъект.Наименование         = НоменклатураКонтрагента.Наименование + ?(НоменклатураКонтрагента.Характеристика<>"", ", " + НоменклатураКонтрагента.Характеристика, ""); //Заполнение характеристики в Наименование номенклатуры

    НоменклатураОбъект.НаименованиеПолное   = НоменклатураКонтрагента.Наименование + ?(НоменклатураКонтрагента.Характеристика<>"", ", " + НоменклатураКонтрагента.Характеристика, "");;
    НоменклатураОбъект.Артикул              = НоменклатураКонтрагента.Артикул;
    НоменклатураОбъект.ВидНоменклатуры      = ЗначенияРеквизитов.ВидНоменклатуры;
    НоменклатураОбъект.Родитель             = ЗначенияРеквизитов.Родитель;
    НоменклатураОбъект.НоменклатурнаяГруппа = ЗначенияРеквизитов.НоменклатурнаяГруппа;
    НоменклатураОбъект.ВидМаркировки = "Товары легкой промышленности и одежда";
   
    СтавкаНДС = Неопределено;
    Если ЗначениеЗаполнено(НоменклатураКонтрагента.СтавкаНДС) Тогда
        СтавкаНДС = ОбменСКонтрагентамиБП.ПолучитьСтавкуНДСПеречислением(НоменклатураКонтрагента.СтавкаНДС);
    КонецЕсли;
   
    Если Не ЗначениеЗаполнено(СтавкаНДС) Тогда
        СтавкаНДС = ЗначенияРеквизитов.СтавкаНДСПоУмолчанию;
    КонецЕсли;
   
    НоменклатураОбъект.ВидСтавкиНДС = Перечисления.ВидыСтавокНДС.ВидСтавки(СтавкаНДС);
   
    ЕдиницаИзмерения = Неопределено;
    Если ЗначениеЗаполнено(НоменклатураКонтрагента.ЕдиницаИзмеренияКод) Тогда
        ЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.ЕдиницаИзмеренияПоКоду(НоменклатураКонтрагента.ЕдиницаИзмеренияКод);
    КонецЕсли;
    Если Не ЗначениеЗаполнено(ЕдиницаИзмерения) И Не ЗначенияРеквизитов.ЭтоУслуга Тогда
        ЕдиницаИзмерения = ЗначенияРеквизитов.ЕдиницаИзмеренияПоУмолчанию;
    КонецЕсли;
    НоменклатураОбъект.ЕдиницаИзмерения = ЕдиницаИзмерения;
    НоменклатураОбъект.Услуга           = ЗначенияРеквизитов.ЭтоУслуга;
    НоменклатураОбъект.СтранаПроисхождения = Справочники.Номенклатура.ОсновнаяСтранаПроисхожденияТоваров();
    НоменклатураОбъект.ДополнительныеСвойства.Вставить(
        "Штрихкоды", НоменклатураКонтрагента.ШтрихкодыНоменклатуры);
   
    Попытка
        НоменклатураОбъект.Записать();
        Результат.Номенклатура = НоменклатураОбъект.Ссылка;
        Результат.Упаковка = НоменклатураОбъект.ЕдиницаИзмерения;
    Исключение
        ШаблонСообщения = НСтр("ru = 'Не удалось записать номенклатуру ""%1""
            |%2'");
       
        ОбработатьОшибкуЗаписиЭлементаСправочника(ШаблонСообщения, НоменклатураКонтрагента, Ошибки);
    КонецПопытки;
   
    Возврат Результат;
    Результат = ПродолжитьВызов(НоменклатураКонтрагента, ЗначенияРеквизитов, Ошибки);
    Возврат Результат;
КонецФункции
Хочу при создании в реквизит Вид маркировки вставлять Товары легкой промышленности и одежда. Могу ли я вставить так, как написал
 НоменклатураОбъект.ВидМаркировки = "Товары легкой промышленности и одежда";

antoneus


Sanchez


antoneus

Вот его и надо подставлять.

НоменклатураОбъект.ВидМаркировки = Перечисления.ВидыПродукцииИС.КакОноТамНазывается;

Sanchez

antoneus, да, работает, спасибо, хочу условие добавить еще.
Если Вид номенклатуры = Обувь , то Вид маркировки = Обувная продуцкия,
Если Вид номенклатуры = Одежда, то Вид маркировки = Товары легкой промышленности и одежда

Вид номенклатуры получается надо получать из запроса и подставлять в условие?
или я могу например в перемнную ВидНоменклатурыОбувь присвоить значение = вид номенклатуры Обувь
и в переменную ВидНоменклатурыОжеда присвоить значение = вид номенклатуры Одежда

antoneus

Лучше соответствие. Если виды номенклатуры в базе с видами маркировки никак не связаны.

Sanchez

antoneus, сделал спасибо. Есть еще момент, есть документ ЭДО в нем есть столбец номер. Могу ли я вытащить оттуда данные, чтобы при Создании номенклатуры по кнопке он записывал в Штрихкоды номенклатуры из столбца Номер?

sali


Sanchez


antoneus

Я хз как там это эдо устроено) Это в поле ШтрихкодыНоменклатуры содержится?

Теги:

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

Рейтинг@Mail.ru

Поиск