УТ 11.5 ошибка Поле "Оформление продажи" не заполнено при создании номенклатуры программно

1. sergey svetlakov 13 23.02.23 19:42 Сейчас в теме
УТ 11.5 ошибка Поле "Оформление продажи" не заполнено при создании номенклатуры программно
Если проверять через консоль запросов после не заполнено. Почему поле не приминает выбранное мной значение? Перечисления.ВариантыОформленияДокументовПродажи.РеализацияТоваровУслуг - "Я же на нее правильно ссылаюсь?"


&НаСервере 
Процедура СоздатьНом(Наименование, Артикул, Родитель, Штрихкод, Код, БазоваяЕдиницаИзмерения, СтавкаНДС, Услуга, НДС)
	
	Если НЕ ЗначениеЗаполнено(Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товар")) Тогда
		Сп = Справочники.ВидыНоменклатуры.СоздатьЭлемент();
		Сп.Наименование = "Товар";
		Сп.ВариантОформленияПродажи = Перечисления.ВариантыОформленияДокументовПродажи.РеализацияТоваровУслуг;
		Сп.ВариантПредставленияНабораВПечатныхФормах = Перечисления.ВариантыПредставленияНаборовВПечатныхФормах.НаборИКомплектующие;
		Сп.ВариантРасчетаЦеныНабора = Перечисления.ВариантыРасчетаЦенНаборов.РассчитываетсяИзЦенКомплектующих;
		Сп.НастройкиКлючаЦенПоНоменклатуре = Перечисления.ВариантОтбораДляКлючаЦен.Использовать;
		Сп.НастройкиКлючаЦенПоХарактеристике = Перечисления.ВариантОтбораДляКлючаЦен.НеИспользовать;
		Сп.РазрезыЦенообразования = "Номенклатура";
		Сп.ШаблонНаименованияДляПечатиНоменклатуры = "[Наименование]";
		Сп.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар;
		Сп.Записать();
	КонецЕсли;
	Если НЕ ЗначениеЗаполнено(Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Услуга")) Тогда
		Сп = Справочники.ВидыНоменклатуры.СоздатьЭлемент();
		Сп.Наименование = "Услуга";
		Сп.ВариантОформленияПродажи = Перечисления.ВариантыОформленияДокументовПродажи.РеализацияТоваровУслуг;
		Сп.НастройкиКлючаЦенПоНоменклатуре = Перечисления.ВариантОтбораДляКлючаЦен.Использовать;
		Сп.НастройкиКлючаЦенПоХарактеристике = Перечисления.ВариантОтбораДляКлючаЦен.НеИспользовать;
		Сп.РазрезыЦенообразования = "Номенклатура";
		Сп.ШаблонНаименованияДляПечатиНоменклатуры = "[Наименование]";
		Сп.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Услуга;
		Сп.Записать();
	КонецЕсли;
	
	Ссылка = Справочники.Номенклатура.НайтиПоНаименованию(Наименование);
	Если НЕ ЗначениеЗаполнено(Ссылка) Тогда
		Ном = Справочники.Номенклатура.СоздатьЭлемент();
		Ном.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать;
		Ном.Наименование = Наименование;
		Если ЗначениеЗаполнено(Артикул) Тогда
			Ном.Артикул = Артикул;
		КонецЕсли;
		Ном.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товар");
		Если ЗначениеЗаполнено(Штрихкод) Тогда
			Ном.Штрихкод = Штрихкод;
		КонецЕсли;
		Ном.Код = Код;
		Если ЗначениеЗаполнено(БазоваяЕдиницаИзмерения) Тогда
			Ном.ЕдиницаИзмерения = Справочники.УпаковкиЕдиницыИзмерения.НайтиПоНаименованию(БазоваяЕдиницаИзмерения);
		КонецЕсли;
		Ном.СтавкаНДС = Справочники.СтавкиНДС.НайтиПоНаименованию(НДС);
		Ном.Записать();
		Если ЗначениеЗаполнено(Родитель) Тогда
			Ном.Родитель = Справочники.Номенклатура.НайтиПоНаименованию(Родитель,истина,,).Ссылка;
		КонецЕсли;
		Ном.ВариантОформленияПродажи = Перечисления.ВариантыОформленияДокументовПродажи.РеализацияТоваровУслуг;
		Ном.Записать();
		Если Услуга = Истина Тогда
			Ном.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Услуга;
			Ном.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Услуга");
		Иначе
			Ном.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар;
			Ном.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товар");
		КонецЕсли;
		Ном.Записать();
	КонецЕсли;
КонецПроцедуры
Показать
Вознаграждение за ответ
Показать полностью
Найденные решения
5. sergey svetlakov 13 24.02.23 04:29 Сейчас в теме
Решение :
Ошибка в обращении в перечислению, я вводил "ВариантыОформленияДокументовПродажи", а нужно было "ВариантыОформленияПродажи"
shevchen88; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 24.02.23 01:50 Сейчас в теме
(1) зачем три раза пытаетесь записать элемент справочника? Оставьте запись только в конце.
3. Oliver 24.02.23 04:03 Сейчас в теме
Вероятно в виде номенклатуры есть значения по умолчанию. При присвоении вида номенклатуры -> элементу номенклатуры они заполняются, у вас в виде номенклатуры это значение не заполнено.
4. Oliver 24.02.23 04:04 Сейчас в теме
//Ном.Записать();
       
 Если Услуга = Истина Тогда
            Ном.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Услуга;
            Ном.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Услуга");
        Иначе
            Ном.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар;
            Ном.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товар");
        КонецЕсли;

Ном.ВариантОформленияПродажи = Перечисления.ВариантыОформленияДокументовПродажи.РеализацияТоваровУслуг;
Ном.Записать();
Показать
5. sergey svetlakov 13 24.02.23 04:29 Сейчас в теме
Решение :
Ошибка в обращении в перечислению, я вводил "ВариантыОформленияДокументовПродажи", а нужно было "ВариантыОформленияПродажи"
shevchen88; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот