Имя: Пароль:
1C
1С v8
как изменить реквизит в движениях документа
0 Тессеракт
 
09.04.20
15:55
Добрый день.
бух 3.0 типовая
Есть документ Операция по платежной карте. В нем указано подразделение. Однако в движениях подразделение пустует. Документ подтянут из УТ 11, где не было разбивки по подразделениям.
Через ИР запросом получил все движения где подразделение пустое, и напротив вывел подразделения из регистратора. Теперь обработчиком результата хочу заполнить подразделение у движения, однако выдает ошибку.
Код обработки результата: Строка кода 4: Поле объекта недоступно для записи (Подразделение)

запрос:
ВЫБРАТЬ
    ХозрасчетныйОстаткиИОбороты.Регистратор КАК Регистратор,
    ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
    ХозрасчетныйОстаткиИОбороты.Подразделение КАК Подразделение,
    ХозрасчетныйОстаткиИОбороты.СуммаОборот КАК СуммаОборот,
    ХозрасчетныйОстаткиИОбороты.Регистратор.ПодразделениеОрганизации КАК РегистраторПодразделениеОрганизации
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Нач, &Кон, Регистратор, , , , ) КАК ХозрасчетныйОстаткиИОбороты
ГДЕ
    ХозрасчетныйОстаткиИОбороты.Регистратор = &ссылка
    
    обработка результата:
        РезЗап = мРезультатЗапроса.Выбрать();
        пока РезЗап.Следующий()  цикл
            реззап.Подразделение = РезЗап.РегистраторПодразделениеОрганизации;
            реззап.Записать();
        конеццикла;

Как правильно выполнить редактирование движения?
1 vicof
 
09.04.20
16:02
Потому что надо менять на запос, а запись регистра
2 vicof
 
09.04.20
16:02
не запрос*
3 GGDots
 
09.04.20
16:02
(0) менять поле выборки запроса - не самая лучшая идея. Создай набор записей / установи отбор по своему регистратору (&ссылка) / Прочитай их / и затем уже в цикле меняй реквизит
4 GGDots
 
09.04.20
16:05
Краткая инструкция:

Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(Ссылка);
Набор.Прочитать();
Для каждого Запись из Набор Цикл
    
        Запись.Подразделение = Ссылка.ПодразделениеОрганизации;
  
КонецЦикла;
Набор.Записать();