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