Отбор+изменение набора записей регистра накопления - как быть? #538640


#0 by Тим
Мое почтение! Коллеги, только начинаю разбираться с 1С8. Возникла задача изменить подмножество записей регистра накопления(Р1), на основании данных другого регистра(Р2). Поскольку язык запросов 8.1 не поддерживает аналог SQL-инструкции UPDATE, пока нашёл единственный алгоритм действий - запросом к регистру Р1 получаю набор записей для изменения  - СоздатьНаборЗаписей, причём без какого либо отбора, т.к. регистраторов несколько. Выгружаю в таблицу значений. В цикле обхода таблицы значений вызываю запрос к Р2 с параметрами. Если результат запроса непустой, то исправляю запись. Затем загружаю исправленную таблицу, вызываю Записать. Пробую этот метод - пустой результат. В документации написано- Прочитать Описание: Считывает записи из базы данных по установленному отбору. А если нет ограничения? Пробую Отбор.Регистратор.Использование = Ложь; - безуспешно, "Значение данного реквизита изменять нельзя!".
#1 by amiko
Разве регистр накопления можно "оторвать" от регистратора?
#2 by Тим
Если несколько регистраторов - как быть? Только ещё один внешний цикл - сначала перебор регистраторов, а потом внутри перебор по их движениям? Может, есть вообще совсем иной способ править записи регистра накопления?
#3 by amiko
Если смотреть типовые механизмы и следовать им, то порядок действий как раз такой: 1. Сначала запрос к регистру для выборка всех записей с    |УПОРЯДОЧИТЬ ПО    |    Регистратор,    |    НомерСтроки 2. Затем выбрать из запроса: Как-то так. Тут надо понимать саму задачу.
#4 by Тим
Похоже, только так и остаётся действовать. amiko, благодарен за участие! Впрочем, если есть другие мнения... :)
#5 by hhhh
тут жестко, только по регистраторам.
#6 by Тим
- спасибо за подтверждение
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С