Как правильно создать документ установка цен и убрать ошибку в уже созданном

1. user1713496 24.09.23 11:52 Сейчас в теме
Добрый день. Программно создал в тестовой базе документ установка цен номенклатуры, при его открытии вылезает ошибка (Поле объекта не обнаружено (ВидЦены2042bf0b86dd12ed811dac1f6b6313c)). Подскажите, пожалуйста, как ее можно исправить? И второй момент, как правильно программно создавать документ Установка цен номенклатуры и сразу его записывать, без открытия формы. Сейчас настроено так, и вылезает ошибка из сообщения выше
&НаСервере
Процедура СоздатьУстановкуЦенНоменклатуры(ДокументОснование)
	ТаблицаТоваров = Объект.Товары.Выгрузить();
	УстановкаЦенНоменклатуры = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
	УстановкаЦенНоменклатуры.Дата = КонецДня(ТекущаяДатаСеанса());
	УстановкаЦенНоменклатуры.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован; 
	УстановкаЦенНоменклатуры.Ответственный = Пользователи.ТекущийПользователь();
	УстановкаЦенНоменклатуры.ДокументОснование = ДокументОснование;
	Для Каждого Строка Из ТаблицаТоваров Цикл
		НоваяСтрока = УстановкаЦенНоменклатуры.Товары2_5.Добавить(); 
		НоваяСтрока.Номенклатура = Строка.Номенклатура;
		НоваяСтрока.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Закупка"); 
		НоваяСтрока.ХарактеристикаЦО = Справочники.ХарактеристикиНоменклатурыДляЦенообразования.НайтиПоНаименованию(СокрЛП(Строка.Характеристика));
		НоваяСтрока.Цена = Строка.Цена + (Строка.Цена * 0.2);  
		НоваяСтрока.ЦенаИзмененаВручную = Ложь;
	КонецЦикла;
	УстановкаЦенНоменклатуры.Записать(РежимЗаписиДокумента.Проведение);
КонецПроцедуры
Показать


Пробовал заполнять так, но тогда при открытии документа нужно выбирать вид цены, и в табличной части он не установлен.
&НаСервере
Процедура ЗаполнитьПоПоступлениюТоваровУслуг(
	Знач ДокументОснование,
	ДанныеЗаполнения)
	
        УстановкаЦенНоменклатуры = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
	// Заполним данные шапки документа.
	Запрос = Новый Запрос(
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ВидыЦен.Ссылка,
	|	ВидыЦен.УстанавливатьЦенуПриВводеНаОсновании,
	|	ВидыЦен.ПометкаУдаления
	|ПОМЕСТИТЬ ВидыЦен
	|ИЗ
	|	Справочник.ВидыЦен КАК ВидыЦен
	|ГДЕ
	|	ВидыЦен.УстанавливатьЦенуПриВводеНаОсновании
	|	И ВидыЦен.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДействияВидовЦен.Действует)
	|	И НЕ ВидыЦен.ПометкаУдаления
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ПриобретениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
	|	ПриобретениеТоваровУслугТовары.Характеристика КАК Характеристика,
	|	ПриобретениеТоваровУслугТовары.Серия,
	|	ПриобретениеТоваровУслугТовары.Упаковка КАК Упаковка,
	|	ВидыЦен.Ссылка КАК ВидЦены,
	|	0 КАК Цена
	|ИЗ
	|	Документ.ПриобретениеТоваровУслуг.Товары КАК ПриобретениеТоваровУслугТовары
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВидыЦен КАК ВидыЦен
	|		ПО ИСТИНА
	|ГДЕ
	|	ПриобретениеТоваровУслугТовары.Ссылка = &Ссылка");
	Запрос.УстановитьПараметр("Ссылка", ДокументОснование);
	
	РезультатЗапроса = Запрос.Выполнить();
	Если РезультатЗапроса.Пустой() Тогда
		Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru = 'Не требуется вводить установку цен номенклатуры на основании документа %1'"),
			ДокументОснование);
		ВызватьИсключение Текст;
	Иначе
		
		ЭтотОбъект.ДокументОснование = ДокументОснование;
		ЗагрузитьТовары(УстановкаЦенНоменклатуры, РезультатЗапроса.Выгрузить());
		
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ЗагрузитьТовары(УстановкаЦен, ТаблицаТовары)
	
	ИспользуетсяЦенообразование25 = ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25();
	
	Если ИспользуетсяЦенообразование25 Тогда
		Если ТаблицаТовары.Колонки.Найти("Упаковка") = Неопределено Тогда
			ТаблицаТовары.Колонки.Добавить("Упаковка", Новый ОписаниеТипов("СправочникСсылка.УпаковкиЕдиницыИзмерения"));
		КонецЕсли;
		
		Если ТаблицаТовары.Колонки.Найти("Серия") = Неопределено Тогда
			ТаблицаТовары.Колонки.Добавить("Серия", Новый ОписаниеТипов("СправочникСсылка.СерииНоменклатуры"));
		КонецЕсли;
		
		Если ТаблицаТовары.Колонки.Найти("Характеристика") = Неопределено Тогда
			ТаблицаТовары.Колонки.Добавить("Характеристика", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
		КонецЕсли;
	
		СтруктураНастроек = Новый Структура();
		СтруктураНастроек.Вставить("ТаблицаТоваров", ТаблицаТовары);
		СтруктураНастроек.Вставить("ИмяМакетаСхемыКомпоновкиДанных", "Макет2_5");
		СтруктураНастроек.Вставить("КомпоновщикНастроек", Неопределено);
		СтруктураНастроек.Вставить("ВестиУчетСертификатовНоменклатуры", Ложь);
		СтруктураНастроек.Вставить("ИспользуетсяОтборПоВнешнемуИсточникуДанных", Истина);
		СтруктураНастроек.Вставить("ОбязательныеПоля"   , Новый Массив);

		СтруктураНастроек.ОбязательныеПоля.Добавить("Номенклатура");
		СтруктураНастроек.ОбязательныеПоля.Добавить("Характеристика");
		СтруктураНастроек.ОбязательныеПоля.Добавить("ХарактеристикаЦО");
		СтруктураНастроек.ОбязательныеПоля.Добавить("Серия");
		СтруктураНастроек.ОбязательныеПоля.Добавить("СерияЦО");
		СтруктураНастроек.ОбязательныеПоля.Добавить("Упаковка");
		СтруктураНастроек.ОбязательныеПоля.Добавить("УпаковкаЦО");
		СтруктураНастроек.ОбязательныеПоля.Добавить("ВидЦены");
		
		СтруктураРезультата = Обработки.ПодборТоваровПоОтбору.ПодготовитьСтруктуруДанных(СтруктураНастроек);
		
		Товары2_5.Загрузить(СтруктураРезультата.ТаблицаТоваров);
	Иначе
		Товары.Загрузить(ТаблицаТовары);
	КонецЕсли;
	
УстановкаЦен.Дата = ТекущаяДатаСеанса();
УстановкаЦен.Записать(РежимаЗаписиДокумента.Проведение);
	
КонецПроцедуры
Показать
По теме из базы знаний
Найденные решения
2. flinttaman 24.09.23 12:24 Сейчас в теме
В документе два табличных поля: Товары и ВидыЦен. Добавь в ВидыЦен строку с твоим видом цен
user1713496; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. flinttaman 24.09.23 12:24 Сейчас в теме
В документе два табличных поля: Товары и ВидыЦен. Добавь в ВидыЦен строку с твоим видом цен
user1713496; +1 Ответить
3. user1713496 24.09.23 13:24 Сейчас в теме
Оставьте свое сообщение

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