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