Отбор по измерению в регистре накопления для создания набора записей
Здравствуйте, создал РН СебестоимостьТоваров, но движения мне нужно делать без проведения регламентным пишу такой код по созданию набора записей дает ошибку:
Поле объекта не обнаружено (Номенклатура)
{ОбщийМодуль.РасчетныйМодуль.Модуль(85)}: НаборЗаписей.Отбор.Номенклатура.Установить(ВыборкаОстатки.Номенклатура);
{ВнешняяОбработка.РС.Форма.Форма.Форма(5)}: РасчетныйМодуль.РасчетСебестоимости();
{ВнешняяОбработка.РС.Форма.Форма.Форма(15)}: Команда1НаСервере()
Понимаю что не видит измерение Номенклатура в регистре, но не понимаю почему. В отладке показывает в отборе только регистратор. Но мне записи нужно только чтобы по номенклатуре замещались и были накопленные о текущей средней себестоимости. Т.к. каждый день будет считаться себестоимость регламентным, То нам нужны только средние текущие показатели. Получается без отбора по регистратору не сделать запись только по номенклатуре. Или это нужно тогда использовать регистр сведений? Не допонимаю немного
Поле объекта не обнаружено (Номенклатура)
{ОбщийМодуль.РасчетныйМодуль.Модуль(85)}: НаборЗаписей.Отбор.Номенклатура.Установить(ВыборкаОстатки.Номенклатура);
{ВнешняяОбработка.РС.Форма.Форма.Форма(5)}: РасчетныйМодуль.РасчетСебестоимости();
{ВнешняяОбработка.РС.Форма.Форма.Форма(15)}: Команда1НаСервере()
Понимаю что не видит измерение Номенклатура в регистре, но не понимаю почему. В отладке показывает в отборе только регистратор. Но мне записи нужно только чтобы по номенклатуре замещались и были накопленные о текущей средней себестоимости. Т.к. каждый день будет считаться себестоимость регламентным, То нам нужны только средние текущие показатели. Получается без отбора по регистратору не сделать запись только по номенклатуре. Или это нужно тогда использовать регистр сведений? Не допонимаю немного
НаборЗаписей = РегистрыНакопления.СебестоимостьТоваров.СоздатьНаборЗаписей();
Пока ВыборкаОстатки.Следующий() Цикл
КоличествоРасчитываемое = 0;
ЦенаРасчитываемая = 0;
Если ВыборкаОстатки.Склад = СкладОсновной Тогда
КоличествоРасчитываемое = ВыборкаОстатки.Количество;
ЦенаРасчитываемая = ВыборкаОстатки.Сумма;
Иначе
ОтдельнаяСтоимостьАренды = ВыборкаОстатки.Количество * ВыборкаСтоимостьАренды.СтоимостьХранения;
КоличествоРасчитываемое = КоличествоРасчитываемое + ВыборкаОстатки.Количество;
ЦенаРасчитываемая = (ЦенаРасчитываемая + ВыборкаОстатки.Сумма + ОтдельнаяСтоимостьАренды) / КоличествоРасчитываемое;
КонецЕсли;
НаборЗаписей.Отбор.Номенклатура.Установить(ВыборкаОстатки.Номенклатура);
НоваяЗапись = НаборЗаписей.ДобавитьПриход();
НоваяЗапись.Период = ТекущаяДата();
НоваяЗапись.Номенклатура = ВыборкаОстатки.Номенклатура;
НоваяЗапись.Себестоимость = ЦенаРасчитываемая;
КонецЦикла;
ПоказатьПо теме из базы знаний
- REGTool Полезные операции с регистрами накопления
- 50+ советов для успешной сдачи 1С: Специалист по платформе
- Универсальный отчет для сравнения записей регистров накопления между базами по COM-соединению, для обычных форм
- Комплексный контроль остатков. Для одного или сразу нескольких логически связанных регистров накопления. Универсальное решение уровня данных для контроля не только складских остатков
- Ключи аналитик учета в ЕРП, КА, УТ
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
РегНакоп = РегистрыНакопления.ОстаткиТоваров.СоздатьНаборЗаписей();
РегНакоп.Отбор.Регистратор.Установить(ТС.Ссылка);
РегНакоп.Прочитать();
Для каждого Запись Из РегНакоп Цикл
Если Запись.МестаХранения = Танк Тогда
Запись.МестаХранения = Константы.ОсновнойМестаХранения.Получить();
КонецЕсли;
КонецЦикла;
РегНакоп.Записать();
РегНакоп.Отбор.Регистратор.Установить(ТС.Ссылка);
РегНакоп.Прочитать();
Для каждого Запись Из РегНакоп Цикл
Если Запись.МестаХранения = Танк Тогда
Запись.МестаХранения = Константы.ОсновнойМестаХранения.Получить();
КонецЕсли;
КонецЦикла;
РегНакоп.Записать();
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот