Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 12:57

Регистр сведений запись по регистратору

Автор stillenough, 25 дек 2014, 12:15

0 Пользователей и 1 гость просматривают эту тему.

stillenough

Есть регистр сведений, подчиненный регистратору. В регистраторе есть табличная часть, каждая запись которой должна упасть в регистр. Выполняется след.код, с 1 записью работает, если несколько - пишет ошибку. Отбор установлен только по регистратору и когда вторая строка пытается записаться - естественно она дублируется. Но установить отбор еще по 1 измерению нельзя. Как поступить в ситуации?
НаборЗаписей = РегистрыСведений.ПромежуточнаяСебестоимость.СоздатьНаборЗаписей(); 
НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
Для каждого СтрокаВыпуска из Выпуск Цикл
...
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Период = Дата;
НоваяЗапись.Номенклатура = СтрокаВыпуска.Номенклатура;
НоваяЗапись.Материал = строка.Номенклатура;
НоваяЗапись.Подразделение = ПодразделениеОрганизации1;
НоваяЗапись.Склад = Склад;
НоваяЗапись.РасходМатериала = строка.Количество;
НоваяЗапись.Количество = СтрокаВыпуска.Количество;
НоваяЗапись.СебестоимостьТкани = ?(кол = 0,0,сум / кол); // себестоимость на единицу материала
НоваяЗапись.ОстатокЛоскута = РаспределитьНормуЛоскута(СтрокаВыпуска.Номенклатура);
КонецЦикла;
КонецЦикла;
НаборЗаписей.Записать();

cska-fanat-kz

зачем через набор записей записывать если у вас подчинено регистратору?

НоваяЗапись = Движения.ПромежуточнаяСебестоимость.Добавить();
НоваяЗапись.Период                     = Дата;
        НоваяЗапись.Номенклатура             = СтрокаВыпуска.Номенклатура;
        НоваяЗапись.Материал                 = строка.Номенклатура;
        НоваяЗапись.Подразделение             = ПодразделениеОрганизации1;
        НоваяЗапись.Склад                     = Склад;
        НоваяЗапись.РасходМатериала            = строка.Количество;
        НоваяЗапись.Количество                 = СтрокаВыпуска.Количество;
        НоваяЗапись.СебестоимостьТкани        = ?(кол = 0,0,сум / кол); // себестоимость на единицу материала
        НоваяЗапись.ОстатокЛоскута            = РаспределитьНормуЛоскута(СтрокаВыпуска.Номенклатура);

соответственно ругнется только если повторится например номенклатура (я просто хз что у вас за измерения)
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

stillenough

вставил ваш код в обработку проведения - ни одной записи в регистр не упало.
НоваяЗапись = Движения.ПромежуточнаяСебестоимость.Добавить();
НоваяЗапись.Период = Дата;
НоваяЗапись.Регистратор = Ссылка;

Пользовался набором, т.к. такие примеры в сети нашел

--
Все, разобрался. Спасибо
Движения.ПромежуточнаяСебестоимость.Записывать = Истина;


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск