Имя: Пароль:
1C
1С v8
Запись данных в регистр накопления текущей строки
0 Barry
 
01.03.23
20:12
Создал событие при изменении на реквизите Стоимость и пытаюсь так сказать в табличной части изменить стоимость из регистра накопления, при нажатии на enter изменения должны записываться только для текущей строки, но ничего не меняется, в чем причина?

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

    Строка = Элементы.ДвиженияПоРегиструНакопления.ТекущиеДанные;
    Регистр.Получить().Стоимость = Строка.Стоимость;

    Регистр.Записать();    

        
КонецПроцедуры
1 mikecool
 
01.03.23
20:34
 Регистр.Получить() - вот здесь что ты видишь?
2 RomanYS
 
01.03.23
20:37
(0) на клиенте регистры? - это фантастика
3 Barry
 
01.03.23
21:57
(1) Регистр.Получить()    {<Неизвестный модуль>(1)}: Недостаточно фактических параметров
4 Barry
 
01.03.23
22:43
Вот так работает, но мне не нужно для каждого элемента, а только для текущего сделать

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

    Строка = Элементы.ДвиженияПоРегиструНакопления.ТекущиеДанные;
  

    Для Каждого Стр Из Регистр Цикл
    
    Стр.Стоимость = Строка.Стоимость;
    
    КонецЦикла;

    Регистр.Записать();
5 Barry
 
02.03.23
09:27
Может как-то можно без цикла обратиться к ресурсу?
6 Михаил Козлов
 
02.03.23
12:10
В наборе должна быть только (и обязательно) 1 запись?
Стр = Регистр.Получить(0);
Стр.Стоимость = ...;
7 Barry
 
02.03.23
14:16
В табличной частм может быть несколько записей
8 НафНаф
 
02.03.23
14:44
1. определиться, что такое "текущая запись" в только что прочитанном наборе записей регистра
9 Barry
 
02.03.23
14:51
(8) есть регистр и есть документ в запросе, выбираем на форме нужный документ, далее нажимаем показать нам в табличную части выводятся движения, допустим 5 записей с нужными реквизитами. Я становлюсь допустим на 2 строчку и редактирую реквизит Стоимость. Нажимаю enter и все запись прошла в регистр.
10 Serg_1960
 
02.03.23
15:15
Имхо, нужно понять и осознать: совокупность записей, подчиненных одному регистратору, является той минимальной "гранулой" изменения регистра, которую нельзя далее раздробить на более мелкие части (на отдельные записи) - можно считывать и записывать весь набор записей по регистратору. Если Вам циклы не нравятся, то можно выгрузить набор в таблицу и наложить произвольный отбор на записи таблицы или выполнить поиск нужной строки в таблице. При условии, что номера строк документа записываются в регистр.

PS: имхо, методологически неверно, не изменяя документ, изменять его движения. Или изменять объект в его форме и перезаписывать его движения- редактирование документа м.б. отменено юзверями.
11 Barry
 
02.03.23
16:27
(10) если что, то это у нас внешняя обработка
12 mikecool
 
02.03.23
19:25
создай реквизит с типом РН....
выведи на форму
ставь отбор по документу, редактируй
13 Михаил Козлов
 
03.03.23
11:36
Вы хотите движения документа редактировать в обход документа? Т.е. в документе стоимость = 1, а в регистре 2?