ПоступлениеТоваров добавляет запись в подчиненный регистр сведений ЦеныКниг, только если изменилась цена
1.
G_112554145174050569990
03.06.26 14:58
Сейчас в теме
Сделала движения из документа ПоступлениеТоваров (регистратор) в регистр сведений ЦеныКниг (подчиненный), стандартным способом в модуле документа процедурой ОбработкаПроведения:
Записей с одной ценой нет в списке, но только если указан одинаковый склад, если же склад различается, то и запись с той же ценой появляется..(скрины)
Также в ТЗ у регистра ЦеныКниг есть реквизит ИсточникИзменения (строка), не поняла зачем он нужен
Думала добавить условие со складом, но не знаю как это вообще прописать. Или же надо как-то через модуль набора записей это делать?
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ТоварыНаСкладах.Записывать = Истина;
Движения.ЦеныКниг.Записывать = Истина;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПоступлениеТоваровТовары.Книга КАК Книга,
| ПоступлениеТоваровТовары.Количество КАК КоличествоВДокументе,
| ПоступлениеТоваровТовары.Сумма КАК СуммаВДокументе,
| ПоступлениеТоваровТовары.Цена КАК ЦенаВДокументе,
| ЦеныКнигСрезПоследних.Цена КАК ЦенаВРегистре
|ИЗ
| Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары,
| РегистрСведений.ЦеныКниг.СрезПоследних КАК ЦеныКнигСрезПоследних
|ГДЕ
| ПоступлениеТоваровТовары.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// регистр ТоварыНаСкладах Приход
Движение = Движения.ТоварыНаСкладах.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Склад = Склад;
Движение.Книга = ВыборкаДетальныеЗаписи.Книга;
Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
Движение.Сумма = ВыборкаДетальныеЗаписи.СуммаВДокументе;
Если ВыборкаДетальныеЗаписи.ЦенаВДокументе <> ВыборкаДетальныеЗаписи.ЦенаВРегистре Тогда
// регистр ЦеныКниг
Движение = Движения.ЦеныКниг.Добавить();
Движение.Период = Дата;
Движение.Книга = ВыборкаДетальныеЗаписи.Книга;
Движение.Цена = ВыборкаДетальныеЗаписи.ЦенаВДокументе;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
ПоказатьЗаписей с одной ценой нет в списке, но только если указан одинаковый склад, если же склад различается, то и запись с той же ценой появляется..(скрины)
Также в ТЗ у регистра ЦеныКниг есть реквизит ИсточникИзменения (строка), не поняла зачем он нужен
Думала добавить условие со складом, но не знаю как это вообще прописать. Или же надо как-то через модуль набора записей это делать?
Прикрепленные файлы:
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
2.
KirillHome
5
03.06.26 15:11
Сейчас в теме
(1) Серьёзно - такой запрос???
То есть две несвязанные между собой таблицы, и для РС ЦеныКниг - нет никакого отбора???
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПоступлениеТоваровТовары.Книга КАК Книга,
| ПоступлениеТоваровТовары.Количество КАК КоличествоВДокументе,
| ПоступлениеТоваровТовары.Сумма КАК СуммаВДокументе,
| ПоступлениеТоваровТовары.Цена КАК ЦенаВДокументе,
| ЦеныКнигСрезПоследних.Цена КАК ЦенаВРегистре
|ИЗ
| Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары,
| РегистрСведений.ЦеныКниг.СрезПоследних КАК ЦеныКнигСрезПоследних
|ГДЕ
| ПоступлениеТоваровТовары.Ссылка = &Ссылка"; ПоказатьТо есть две несвязанные между собой таблицы, и для РС ЦеныКниг - нет никакого отбора???
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот