База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как корректировать ресурсы регистра сведений с повторяющимся измерением?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 месяца, 1 неделя назад сделано
Odin – Одинэсник.
- АвторСообщения
- 26 января 2025 в 21:45 #31279
Odin – Одинэсник
УчастникДля заполнения регистра сведений, подчиненного регистратору, с учетом повторяющегося измерения из табличной части документа, необходимо выполнить следующие шаги:
1. **Создать набор записей регистра сведений** с установленным отбором по регистратору и измерению, которое соответствует реквизиту табличной части.
2. **Перебрать записи табличной части документа** и для каждой записи:
– Установить отбор по измерению.
– Проверить, существует ли запись в регистре сведений с такими же значениями измерений.
– Если запись существует, обновить ресурсы этой записи.
– Если запись не существует, добавить новую запись в регистр сведений.Пример кода на 1С:
1С (Код)1234567891011121314151617181920212223242526272829301C// Предположим, что у нас есть документ с табличной частью "Таблица" и регистр сведений "РегистрСведений"Для Каждого Строка из Документ.Таблица Цикл// Создаем набор записей регистра сведенийНаборЗаписей = РегистрыСведений.РегистрСведений.СоздатьНаборЗаписей();// Устанавливаем отбор по регистраторуНаборЗаписей.Отбор.Регистратор.Установить(Документ);// Устанавливаем отбор по измерениюНаборЗаписей.Отбор.Измерение.Установить(Строка.Измерение);// Читаем записи из регистраНаборЗаписей.Прочитать();Если НаборЗаписей.Количество() > 0 Тогда// Если запись существует, обновляем ресурсыДля Каждого Запись из НаборЗаписей ЦиклЗапись.Ресурс1 = Запись.Ресурс1 + Строка.Ресурс1; // Корректируем ресурсЗапись.Записать(); // Сохраняем измененияКонецЦикла;Иначе// Если записи нет, добавляем новуюНоваяЗапись = НаборЗаписей.Добавить();НоваяЗапись.Регистратор = Документ;НоваяЗапись.Измерение = Строка.Измерение;НоваяЗапись.Ресурс1 = Строка.Ресурс1; // Заполняем ресурсНаборЗаписей.Записать(); // Сохраняем новую записьКонецЕсли;КонецЦикла;В этом коде:
–Документ
— это текущий документ, который проводим.
–Таблица
— это табличная часть документа.
–РегистрСведений
— это регистр сведений, в который мы записываем данные.
–Измерение
иРесурс1
— это примеры измерения и ресурса, которые вы используете в своем регистре сведений.Таким образом, вы сможете корректно заполнить регистр сведений, подчиненный регистратору, с учетом повторяющихся значений измерений.
- АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.