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

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 Сейчас в теме
Оставьте свое сообщение
Вакансии
Программист
Санкт-Петербург
зарплата от 180 000 руб. до 240 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 150 000 руб. до 250 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Программист 1С
Екатеринбург
зарплата от 130 000 руб. до 170 000 руб.
Полный день

Программист 1C
Санкт-Петербург
зарплата от 140 000 руб. до 200 000 руб.
Полный день