Загрузка данных
Процедура кор_ПриЗаписиПриобретениеТоваровУслуг(Источник, Отказ) Экспорт
Если Отказ ИЛИ Источник.ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
//++ Варнин А.А. - проверка на проведение. Если это запись, то процедура не выполняется 07.07.2026
Проведение = Неопределено;
Если НЕ Источник.ДополнительныеСвойства.Свойство("ПроведениеДокументов", Проведение) Тогда
Возврат;
КонецЕсли;
СвойстваДокумента = Проведение.СвойстваДокумента;
РежимЗаписи = СвойстваДокумента.РежимЗаписи;
Если РежимЗаписи <> РежимЗаписиДокумента.Проведение
И РежимЗаписи <> РежимЗаписиДокумента.ОтменаПроведения Тогда
Возврат;
КонецЕсли;
//++ Варнин А.А. - 07.07.2026
Если Источник.Дата > Дата(2025,12,31,23,59,59) Тогда
Попытка
док_УстановкаЦен = ДокументПоОснованию("УстановкаЦенНоменклатуры", Источник.Ссылка);
Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда
Если ЗначениеЗаполнено(док_УстановкаЦен) И док_УстановкаЦен.Проведен Тогда
док_УстановкаЦен = док_УстановкаЦен.ПолучитьОбъект();
док_УстановкаЦен.Записать(РежимЗаписиДокумента.ОтменаПроведения);
КонецЕсли;
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(док_УстановкаЦен)Тогда
док_УстановкаЦен = док_УстановкаЦен.ПолучитьОбъект();
Иначе
док_УстановкаЦен = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
КонецЕсли;
ЗаполнитьУстановкуЦенНаОснованииПриобретения(Источник.Ссылка, док_УстановкаЦен);
Если док_УстановкаЦен.Товары.Количество() = 0 И док_УстановкаЦен.Товары2_5.Количество() = 0 Тогда
Возврат;
КонецЕсли;
док_УстановкаЦен.ПометкаУдаления = Источник.ПометкаУдаления;
док_УстановкаЦен.Записать(Источник.ДополнительныеСвойства.ПроведениеДокументов.СвойстваДокумента.РежимЗаписи,
Источник.ДополнительныеСвойства.ПроведениеДокументов.СвойстваДокумента.РежимПроведения);
// ----------------------
Исключение
ЗаписьЖурналаРегистрации("кор_ОбработчикПодписок.кор_ПриЗаписиПриобретениеТоваровУслуг",УровеньЖурналаРегистрации.Ошибка,,,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
// ОбщегоНазначения.СообщитьПользователю(ИнформацияОбОшибке());
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьУстановкуЦенНаОснованииПриобретения(ДокументОснование, ДокОбъект)
ДокОбъект.Дата = ДокументОснование.Дата;
ДокОбъект.ДокументОснование = ДокументОснование;
ДокОбъект.Согласован = Истина;
ДокОбъект.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован;
ДокОбъект.ВидыЦен.Очистить();
нВидЦены = ДокОбъект.ВидыЦен.Добавить();
ВидЦеныЗакуп = Справочники.ВидыЦен.НайтиПоРеквизиту("Идентификатор","ЗакупочнаяЦена");
нВидЦены.ВидЦены = ВидЦеныЗакуп;
Запрос = Новый Запрос(
//++Варнин А.А. - переработал запрос. Вместо среза последних взял период в день - 07.07.2026
//"ВЫБРАТЬ
//| ПриобретениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
//| ПриобретениеТоваровУслугТовары.Характеристика КАК Характеристика,
//| ПриобретениеТоваровУслугТовары.Серия КАК Серия,
//| ПриобретениеТоваровУслугТовары.Упаковка КАК Упаковка,
//| &ВидЦеныЗакуп КАК ВидЦены,
//| ПриобретениеТоваровУслугТовары.Цена КАК Цена
//|ИЗ
//| Документ.ПриобретениеТоваровУслуг.Товары КАК ПриобретениеТоваровУслугТовары
//| ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
//| ПриобретениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
//| ПриобретениеТоваровУслугТовары.Характеристика КАК Характеристика,
//| ПриобретениеТоваровУслугТовары.Серия КАК Серия,
//| ПриобретениеТоваровУслугТовары.Упаковка КАК Упаковка,
//| &ВидЦеныЗакуп КАК ВидЦены,
//| МАКСИМУМ(ПриобретениеТоваровУслугТовары.НомерСтроки) КАК НомерСтроки
//| ИЗ
//| Документ.ПриобретениеТоваровУслуг.Товары КАК ПриобретениеТоваровУслугТовары
//| ГДЕ
//| ПриобретениеТоваровУслугТовары.Ссылка = &Ссылка
//|
//| СГРУППИРОВАТЬ ПО
//| ПриобретениеТоваровУслугТовары.Номенклатура,
//| ПриобретениеТоваровУслугТовары.Характеристика,
//| ПриобретениеТоваровУслугТовары.Серия,
//| ПриобретениеТоваровУслугТовары.Упаковка) КАК ВложенныйЗапрос
//| ПО ПриобретениеТоваровУслугТовары.НомерСтроки = ВложенныйЗапрос.НомерСтроки
//|ГДЕ
//| ПриобретениеТоваровУслугТовары.Ссылка = &Ссылка
//| И НЕ ПриобретениеТоваровУслугТовары.Номенклатура В
//| (ВЫБРАТЬ
//| ЦеныНоменклатуры25СрезПоследних.Номенклатура КАК Номенклатура
//| ИЗ
//| РегистрСведений.ЦеныНоменклатуры25.СрезПоследних(&ДатаСреза, ВидЦены = &ВидЦеныЗакуп) КАК ЦеныНоменклатуры25СрезПоследних
//| ГДЕ
//| ЦеныНоменклатуры25СрезПоследних.Регистратор <> &ИсключаемыйРегистратор)");
"ВЫБРАТЬ
| ПриобретениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
| ПриобретениеТоваровУслугТовары.Характеристика КАК Характеристика,
| ПриобретениеТоваровУслугТовары.Серия КАК Серия,
| ПриобретениеТоваровУслугТовары.Упаковка КАК Упаковка,
| &ВидЦеныЗакуп КАК ВидЦены,
| ПриобретениеТоваровУслугТовары.Цена КАК Цена
|ИЗ
| Документ.ПриобретениеТоваровУслуг.Товары КАК ПриобретениеТоваровУслугТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ПриобретениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
| ПриобретениеТоваровУслугТовары.Характеристика КАК Характеристика,
| ПриобретениеТоваровУслугТовары.Серия КАК Серия,
| ПриобретениеТоваровУслугТовары.Упаковка КАК Упаковка,
| &ВидЦеныЗакуп КАК ВидЦены,
| МАКСИМУМ(ПриобретениеТоваровУслугТовары.НомерСтроки) КАК НомерСтроки
| ИЗ
| Документ.ПриобретениеТоваровУслуг.Товары КАК ПриобретениеТоваровУслугТовары
| ГДЕ
| ПриобретениеТоваровУслугТовары.Ссылка = &Ссылка
|
| СГРУППИРОВАТЬ ПО
| ПриобретениеТоваровУслугТовары.Номенклатура,
| ПриобретениеТоваровУслугТовары.Характеристика,
| ПриобретениеТоваровУслугТовары.Серия,
| ПриобретениеТоваровУслугТовары.Упаковка) КАК ВложенныйЗапрос
| ПО ПриобретениеТоваровУслугТовары.НомерСтроки = ВложенныйЗапрос.НомерСтроки
|ГДЕ
| ПриобретениеТоваровУслугТовары.Ссылка = &Ссылка
| И НЕ ПриобретениеТоваровУслугТовары.Номенклатура В
| (ВЫБРАТЬ
| ЦеныНоменклатуры25.Номенклатура КАК Номенклатура
| ИЗ
| РегистрСведений.ЦеныНоменклатуры25 КАК ЦеныНоменклатуры25
| ГДЕ
| ЦеныНоменклатуры25.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И ЦеныНоменклатуры25.ВидЦены = &ВидЦеныЗакуп
| И ЦеныНоменклатуры25.Регистратор <> &ИсключаемыйРегистратор)");
Запрос.УстановитьПараметр("Ссылка", ДокументОснование);
Запрос.УстановитьПараметр("ВидЦеныЗакуп", ВидЦеныЗакуп);
// Запрос.УстановитьПараметр("ДатаСреза", ДокументОснование.Дата);
Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(ДокументОснование.Дата));
Запрос.УстановитьПараметр("КонецПериода", КонецДня(ДокументОснование.Дата));
Запрос.УстановитьПараметр("ИсключаемыйРегистратор", ДокОбъект.Ссылка);
//++Варнин А.А. - 07.07.2026
РезультатЗапроса = Запрос.Выполнить();
ТаблицаТовары = РезультатЗапроса.Выгрузить();
Если ТаблицаТовары.Количество() = 0 Тогда
ДокОбъект.Товары.Очистить();
ДокОбъект.Товары2_5.Очистить();
Возврат;
КонецЕсли;
ИспользуетсяЦенообразование25 = ЦенообразованиеВызовСервера.ИспользуетсяЦенообразование25();
Если ИспользуетсяЦенообразование25 Тогда
Если ТаблицаТовары.Колонки.Найти("Упаковка") = Неопределено Тогда
ТаблицаТовары.Колонки.Добавить("Упаковка", Новый ОписаниеТипов("СправочникСсылка.УпаковкиЕдиницыИзмерения"));
КонецЕсли;
Если ТаблицаТовары.Колонки.Найти("Серия") = Неопределено Тогда
ТаблицаТовары.Колонки.Добавить("Серия", Новый ОписаниеТипов("СправочникСсылка.СерииНоменклатуры"));
КонецЕсли;
Если ТаблицаТовары.Колонки.Найти("Характеристика") = Неопределено Тогда
ТаблицаТовары.Колонки.Добавить("Характеристика", Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры"));
КонецЕсли;
СтруктураНастроек = Новый Структура();
СтруктураНастроек.Вставить("ТаблицаТоваров", ТаблицаТовары);
СтруктураНастроек.Вставить("ИмяМакетаСхемыКомпоновкиДанных", "Макет2_5");
СтруктураНастроек.Вставить("КомпоновщикНастроек", Неопределено);
СтруктураНастроек.Вставить("ВестиУчетСертификатовНоменклатуры", Ложь);
СтруктураНастроек.Вставить("ИспользуетсяОтборПоВнешнемуИсточникуДанных", Истина);
СтруктураНастроек.Вставить("ОбязательныеПоля" , Новый Массив);
СтруктураНастроек.ОбязательныеПоля.Добавить("Номенклатура");
СтруктураНастроек.ОбязательныеПоля.Добавить("Характеристика");
СтруктураНастроек.ОбязательныеПоля.Добавить("ХарактеристикаЦО");
СтруктураНастроек.ОбязательныеПоля.Добавить("Серия");
СтруктураНастроек.ОбязательныеПоля.Добавить("СерияЦО");
СтруктураНастроек.ОбязательныеПоля.Добавить("Упаковка");
СтруктураНастроек.ОбязательныеПоля.Добавить("УпаковкаЦО");
СтруктураНастроек.ОбязательныеПоля.Добавить("ВидЦены");
СтруктураНастроек.ОбязательныеПоля.Добавить("Цена");
СтруктураРезультата = Обработки.ПодборТоваровПоОтбору.ПодготовитьСтруктуруДанных(СтруктураНастроек);
СтруктураРезультата.ТаблицаТоваров.Колонки.Добавить("Валюта");
СтруктураРезультата.ТаблицаТоваров.ЗаполнитьЗначения(Константы.ВалютаРегламентированногоУчета.Получить(),"Валюта");
ДокОбъект.Товары2_5.Загрузить(СтруктураРезультата.ТаблицаТоваров);
Иначе
ДокОбъект.Товары.Загрузить(ТаблицаТовары);
КонецЕсли;
КонецПроцедуры