Имя: Пароль:
1C
1С v8
изменение реквизита независимого непериодического регистра сведений
0 fgaabbb
 
05.03.13
06:57
есть следующий код:

Запрос = Новый Запрос;
Запрос.Текст =
   "  ВЫБРАТЬ
   |КонтПорядковыйНомерОтправкиВРСАКМБ.Организация,
   |КонтПорядковыйНомерОтправкиВРСАКМБ.Документ,
   |КонтПорядковыйНомерОтправкиВРСАКМБ.НомерСообщенияПоДокументу,
   |КонтПорядковыйНомерОтправкиВРСАКМБ.НомерОтправки,
   |КонтПорядковыйНомерОтправкиВРСАКМБ.НомерДокумента,
   |КонтПорядковыйНомерОтправкиВРСАКМБ.ТекущийСтатус,
   |КонтПорядковыйНомерОтправкиВРСАКМБ.ДатаВремяОтправки,
   |КонтПорядковыйНомерОтправкиВРСАКМБ.КПолучениюВходящих,
   |КонтПорядковыйНомерОтправкиВРСАКМБ.Отзыв,
   
   |КонтСообщенияОбменаРСАКБМ.Объект КАК Объект,
   |ВЫРАЗИТЬ(КонтСообщенияОбменаРСАКБМ.ТекстСообщения КАК Строка(300))
       
   |ИЗ
   |РегистрСведений.КонтСообщенияОбменаРСАКБМ КАК КонтСообщенияОбменаРСАКБМ
   |    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтПорядковыйНомерОтправкиВРСАКМБ КАК КонтПорядковыйНомерОтправкиВРСАКМБ
   |    ПО КонтСообщенияОбменаРСАКБМ.Объект = КонтПорядковыйНомерОтправкиВРСАКМБ.Документ
   |
   |УПОРЯДОЧИТЬ ПО
   |    Объект";

   Результат = Запрос.Выполнить();

   Выборка = Результат.Выбрать();
   
   МенеджерЗаписи = РегистрыСведений.КонтПорядковыйНомерОтправкиВРСАКМБ.СоздатьМенеджерЗаписи();
   
   Пока Выборка.Следующий() Цикл
               
       Если найти(СокрЛП(Выборка.поле1), СокрЛП(СтрОшибка))> 0 тогда
           //измерения:
           МенеджерЗаписи.Организация = Выборка.Организация;
           МенеджерЗаписи.Документ = Выборка.Документ;
           МенеджерЗаписи.НомерСообщенияПоДокументу = Выборка.НомерСообщенияПоДокументу;
           //МенеджерЗаписи.Прочитать();
                       //ресурсы:
           МенеджерЗаписи.НомерОтправки   =  Выборка.НомерОтправки   ;
           МенеджерЗаписи.НомерДокумента   =  Выборка.НомерДокумента   ;
                       //реквизиты:
           МенеджерЗаписи.ДатаВремяОтправки   =  Выборка.ДатаВремяОтправки   ;
           МенеджерЗаписи.КПолучениюВходящих   =  Выборка.КПолучениюВходящих   ;
           МенеджерЗаписи.Отзыв   =  Выборка.Отзыв   ;
           //меняю:
           МенеджерЗаписи.ТекущийСтатус = Перечисления.КонтСтатусыСообщенийРСАКБМ.КОтправке;
           
           МенеджерЗаписи.Записать(истина);
           Сообщить("изменили запись " + Выборка.Документ + " " + Выборка.НомерДокумента  + " новый статус - к отправке");
       КонецЕсли;
               
   КонецЦикла;

т.е. нахожу все записи с определенной ошибкой (СтрОшибка), через менеджер записи позиционируюсь на конкретной записи... Но изменения не происходит, что я делаю не так?
1 1Сергей
 
05.03.13
07:03
надо получить запись из Менеджера записи
2 kosts
 
05.03.13
07:07
Создания менеджера нужно поместить в цикл
3 DmitryBratsk
 
05.03.13
07:16
НЗ = РегистрыСведений.ТвойРегистр.СоздатьНаборЗаписей();
НЗ.Прочитать();
Для Каждого Запись из НЗ Цикл
   Запись.Реквизит = ТвоеЗначение;
КонецЦикла;

НЗ.Записать();
4 fgaabbb
 
05.03.13
07:45
ну, чтоб не была без окончательного решения ветка:
решено через набор значений, а не менеджер записи, по совету (3):

НЗ = РегистрыСведений.КонтПорядковыйНомерОтправкиВРСАКМБ.СоздатьНаборЗаписей();
           
           НЗ.Отбор.организация.установить(Выборка.Организация);    НЗ.Отбор.Документ.установить(Выборка.Документ);
НЗ.Отбор.НомерСообщенияПоДокументу.установить(Выборка.НомерСообщенияПоДокументу);

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