Как правильно создать документ установка цен и убрать ошибку в уже созданном
Добрый день. Программно создал в тестовой базе документ установка цен номенклатуры, при его открытии вылезает ошибка (Поле объекта не обнаружено (ВидЦены2042bf0b86dd12ed811dac1f6b6313c)). Подскажите, пожалуйста, как ее можно исправить? И второй момент, как правильно программно создавать документ Установка цен номенклатуры и сразу его записывать, без открытия формы. Сейчас настроено так, и вылезает ошибка из сообщения выше
Пробовал заполнять так, но тогда при открытии документа нужно выбирать вид цены, и в табличной части он не установлен.
&НаСервере
Процедура СоздатьУстановкуЦенНоменклатуры(ДокументОснование)
ТаблицаТоваров = Объект.Товары.Выгрузить();
УстановкаЦенНоменклатуры = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
УстановкаЦенНоменклатуры.Дата = КонецДня(ТекущаяДатаСеанса());
УстановкаЦенНоменклатуры.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован;
УстановкаЦенНоменклатуры.Ответственный = Пользователи.ТекущийПользователь();
УстановкаЦенНоменклатуры.ДокументОснование = ДокументОснование;
Для Каждого Строка Из ТаблицаТоваров Цикл
НоваяСтрока = УстановкаЦенНоменклатуры.Товары2_5.Добавить();
НоваяСтрока.Номенклатура = Строка.Номенклатура;
НоваяСтрока.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Закупка");
НоваяСтрока.ХарактеристикаЦО = Справочники.ХарактеристикиНоменклатурыДляЦенообразования.НайтиПоНаименованию(СокрЛП(Строка.Характеристика));
НоваяСтрока.Цена = Строка.Цена + (Строка.Цена * 0.2);
НоваяСтрока.ЦенаИзмененаВручную = Ложь;
КонецЦикла;
УстановкаЦенНоменклатуры.Записать(РежимЗаписиДокумента.Проведение);
КонецПроцедуры
ПоказатьПробовал заполнять так, но тогда при открытии документа нужно выбирать вид цены, и в табличной части он не установлен.
&НаСервере
Процедура ЗаполнитьПоПоступлениюТоваровУслуг(
Знач ДокументОснование,
ДанныеЗаполнения)
УстановкаЦенНоменклатуры = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
// Заполним данные шапки документа.
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВидыЦен.Ссылка,
| ВидыЦен.УстанавливатьЦенуПриВводеНаОсновании,
| ВидыЦен.ПометкаУдаления
|ПОМЕСТИТЬ ВидыЦен
|ИЗ
| Справочник.ВидыЦен КАК ВидыЦен
|ГДЕ
| ВидыЦен.УстанавливатьЦенуПриВводеНаОсновании
| И ВидыЦен.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДействияВидовЦен.Действует)
| И НЕ ВидыЦен.ПометкаУдаления
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ПриобретениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
| ПриобретениеТоваровУслугТовары.Характеристика КАК Характеристика,
| ПриобретениеТоваровУслугТовары.Серия,
| ПриобретениеТоваровУслугТовары.Упаковка КАК Упаковка,
| ВидыЦен.Ссылка КАК ВидЦены,
| 0 КАК Цена
|ИЗ
| Документ.ПриобретениеТоваровУслуг.Товары КАК ПриобретениеТоваровУслугТовары
| ЛЕВОЕ СОЕДИНЕНИЕ ВидыЦен КАК ВидыЦен
| ПО ИСТИНА
|ГДЕ
| ПриобретениеТоваровУслугТовары.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", ДокументОснование);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не требуется вводить установку цен номенклатуры на основании документа %1'"),
ДокументОснование);
ВызватьИсключение Текст;
Иначе
ЭтотОбъект.ДокументОснование = ДокументОснование;
ЗагрузитьТовары(УстановкаЦенНоменклатуры, РезультатЗапроса.Выгрузить());
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗагрузитьТовары(УстановкаЦен, ТаблицаТовары)
ИспользуетсяЦенообразование25 = ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25();
Если ИспользуетсяЦенообразование25 Тогда
Если ТаблицаТовары.Колонки.Найти("Упаковка") = Неопределено Тогда
ТаблицаТовары.Колонки.Добавить("Упаковка", Новый ОписаниеТипов("СправочникСсылка.УпаковкиЕдиницыИзмерения"));
КонецЕсли;
Если ТаблицаТовары.Колонки.Найти("Серия") = Неопределено Тогда
ТаблицаТовары.Колонки.Добавить("Серия", Новый ОписаниеТипов("СправочникСсылка.СерииНоменклатуры"));
КонецЕсли;
Если ТаблицаТовары.Колонки.Найти("Характеристика") = Неопределено Тогда
ТаблицаТовары.Колонки.Добавить("Характеристика", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
КонецЕсли;
СтруктураНастроек = Новый Структура();
СтруктураНастроек.Вставить("ТаблицаТоваров", ТаблицаТовары);
СтруктураНастроек.Вставить("ИмяМакетаСхемыКомпоновкиДанных", "Макет2_5");
СтруктураНастроек.Вставить("КомпоновщикНастроек", Неопределено);
СтруктураНастроек.Вставить("ВестиУчетСертификатовНоменклатуры", Ложь);
СтруктураНастроек.Вставить("ИспользуетсяОтборПоВнешнемуИсточникуДанных", Истина);
СтруктураНастроек.Вставить("ОбязательныеПоля" , Новый Массив);
СтруктураНастроек.ОбязательныеПоля.Добавить("Номенклатура");
СтруктураНастроек.ОбязательныеПоля.Добавить("Характеристика");
СтруктураНастроек.ОбязательныеПоля.Добавить("ХарактеристикаЦО");
СтруктураНастроек.ОбязательныеПоля.Добавить("Серия");
СтруктураНастроек.ОбязательныеПоля.Добавить("СерияЦО");
СтруктураНастроек.ОбязательныеПоля.Добавить("Упаковка");
СтруктураНастроек.ОбязательныеПоля.Добавить("УпаковкаЦО");
СтруктураНастроек.ОбязательныеПоля.Добавить("ВидЦены");
СтруктураРезультата = Обработки.ПодборТоваровПоОтбору.ПодготовитьСтруктуруДанных(СтруктураНастроек);
Товары2_5.Загрузить(СтруктураРезультата.ТаблицаТоваров);
Иначе
Товары.Загрузить(ТаблицаТовары);
КонецЕсли;
УстановкаЦен.Дата = ТекущаяДатаСеанса();
УстановкаЦен.Записать(РежимаЗаписиДокумента.Проведение);
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Конфигурация "Весовая ред. 3.0" для Платформы 1С 8.3
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- [БП 3.0] Свертка БП 2.0 или БП 3.0 документами "Ввод начальных остатков" в БП 3.0 beta
- Разработка и сценарное тестирование с Vanessa-ADD. Практические примеры сценариев. Шаги встроенной библиотеки
- SynchroWB — интеграция 1С и Wildberries: автоматизация заказов и остатков по API с УТ, КА, ERP, УНФ, Розница 3
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот