Имя: Пароль:
1C
1С v8
Программно изменить запись в регистре сведений подчиненному регистратору.
0 igorby
 
19.07.13
14:15
Не хочется перепроводить документ 2012 года по вводу начальных остатков. Уж очень много строк в нем. Нужно поправить всего одну запись в регистре сведений.
Вот так можно?

   ДокЗап = ВыбДок.ПолучитьОбъект();
   НаборЗаписей = РегистрыСведений.СостоянияОСОрганизаций.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Установить(ДокЗап.Ссылка);
   НаборЗаписей.Прочитать();
   Для Каждого Запись Из НаборЗаписей Цикл
       Если  Запись.ОсновноеСредство = ОС Тогда
           Запись.ДатаСостояния = '20120101000000';
       КонецЕсли;
   КонецЦикла;
   НаборЗаписей.Записать();
1 skunk
 
19.07.13
14:17
можно
2 Maxus43
 
19.07.13
14:19
только вот потом док перепроведёшь и всё опять старое. в документе не легче исправить?
3 Галахад
 
гуру
19.07.13
14:19
Чо-та не понял. Отбор только по ссылке. Значить писаться будут все записи.
4 Мыш
 
19.07.13
14:19
Так ещё можно:

   ДокЗап = ВыбДок.ПолучитьОбъект();
   НаборЗаписей = ДокЗап.Движения.СостоянияОСОрганизаций;
   НаборЗаписей.Прочитать();
   Для Каждого Запись Из НаборЗаписей Цикл
       Если  Запись.ОсновноеСредство = ОС Тогда
           Запись.ДатаСостояния = '20120101000000';
       КонецЕсли;
   КонецЦикла;
   НаборЗаписей.Записать();
5 hhhh
 
19.07.13
14:20
(0) но всё равно переписаны будут все записи.
6 Мыш
 
19.07.13
14:20
(3) Для подчиненных регистратору только так.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший