Имя: Пароль:
1C
1С v8
обновление регистра,дозапись
0 _barracuda_
 
26.03.18
12:47
добрый день.подскажите как можно дозаписать данные.например есть код где записываеться регистр но по разным причинам ресурс Сумма может быть пустым.так вот при закрытии документа ндо проверить если регистр есть то проверить наличие суммы если ее нет то дозаписать ее: ну наверное так?
             НаборЗаписейЗанятыхЯчеек= РегистрыСведений.ЗанятыеЯчейки.СоздатьНаборЗаписей();
            НаборЗаписейЗанятыхЯчеек.Отбор.ДатаНачала.Установить(Строка.ДатаНачала);
            НаборЗаписейЗанятыхЯчеек.Отбор.ДатаОкончания.Установить(Строка.ДатаОкончания);        
            НаборЗаписейЗанятыхЯчеек.Отбор.Ячейка.Установить(Строка.Ячейка);
                            
            НаборЗаписейЗанятыхЯчеек.Прочитать();
                    
                    НаборЗаписейЗанятыхЯчеек.СтоимостьЕденицы = Сумма;!!!!!!!!

                    НаборЗаписейЗанятыхЯчеек.Записать();
1 Малыш Джон
 
26.03.18
12:51
РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Имя регистра сведений>)

Элементы коллекции:
РегистрСведенийЗапись

Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.
2 _barracuda_
 
26.03.18
12:51
(1)можно пример?
3 RomaH
 
naïve
26.03.18
13:41
(0) запросом с соединением двух таблиц
4 _barracuda_
 
26.03.18
13:43
(3)зачем такая жесть?
5 _barracuda_
 
26.03.18
13:45
вот нашел делаю похоже http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=610987  но у меня почему то создается запись дополнительная а не меняется существующая

НаборЗаписейЗанятыхЯчеек= РегистрыСведений.ЗанятыеЯчейки.СоздатьМенеджерЗаписи();
            НаборЗаписейЗанятыхЯчеек.ДатаНачала=(Строка.ДатаНачала);
            НаборЗаписейЗанятыхЯчеек.ДатаОкончания=(Строка.ДатаОкончания);        
            НаборЗаписейЗанятыхЯчеек.Ячейка=(Строка.Ячейка);
                            
            НаборЗаписейЗанятыхЯчеек.Прочитать();
                    
                    НаборЗаписейЗанятыхЯчеек.СтоимостьЕденицы = Сумма;!!!!!!!!

                    НаборЗаписейЗанятыхЯчеек.Записать();
6 _barracuda_
 
26.03.18
13:47
все время создается  новая и пишет период не может быть пустым
7 oslokot
 
26.03.18
13:48
все правильно
8 oslokot
 
26.03.18
13:48
так и будет
9 _barracuda_
 
26.03.18
13:51
(8)а как надо?
10 oslokot
 
26.03.18
13:54
после того как прочитал записи, надо спозиционироваться на нужной и уже ее то и обновить
11 RomaH
 
naïve
26.03.18
13:59
(4) жесть - это, то что у тебя получится - а запросом создать правильный набор - самое оно
12 Малыш Джон
 
26.03.18
14:17
НаборЗаписейЗанятыхЯчеек= РегистрыСведений.ЗанятыеЯчейки.СоздатьНаборЗаписи();
НаборЗаписейЗанятыхЯчеек.ДатаНачала=(Строка.ДатаНачала);
НаборЗаписейЗанятыхЯчеек.ДатаОкончания=(Строка.ДатаОкончания);        
НаборЗаписейЗанятыхЯчеек.Ячейка=(Строка.Ячейка);
                            
НаборЗаписейЗанятыхЯчеек.Прочитать();
                    
Для Каждого Запись Из НаборЗаписейЗанятыхЯчеек Цикл                    
  Запись.СтоимостьЕдиницы = Сумма;
КонецЦикла;

НаборЗаписейЗанятыхЯчеек.Записать();
13 Малыш Джон
 
26.03.18
14:18
НаборЗаписейЗанятыхЯчеек= РегистрыСведений.ЗанятыеЯчейки.СоздатьНаборЗаписи();
НаборЗаписейЗанятыхЯчеек.Отбор.ДатаНачала.Установить(Строка.ДатаНачала);
НаборЗаписейЗанятыхЯчеек.Отбор.ДатаОкончания.Установить(Строка.ДатаОкончания);        
НаборЗаписейЗанятыхЯчеек.Отбор.Ячейка.Установить(Строка.Ячейка);
                            
НаборЗаписейЗанятыхЯчеек.Прочитать();
                    
Для Каждого Запись Из НаборЗаписейЗанятыхЯчеек Цикл                    
  Запись.СтоимостьЕдиницы = Сумма;
КонецЦикла;

НаборЗаписейЗанятыхЯчеек.Записать();
14 _barracuda_
 
26.03.18
15:13
(13)в данном случае все измерения надо указывать абсолютно?или ключевыЕ?
15 Малыш Джон
 
26.03.18
15:20
(14) те, по которым нужно делать отбор.  Отбор в наборе записей помогает отобрать только нужные записи. Ставить его не обязательно, можешь и без него, если нужно весь регистр прочитать.
16 _barracuda_
 
26.03.18
15:27
(15)Поле объекта не обнаружено (СтоимостьЕдиницы)
17 _barracuda_
 
26.03.18
15:28
а сорри.не правильно записал Спасибо огромное.Удачного дня!
18 _barracuda_
 
26.03.18
15:28
(15)!!!!!
19 arsik
 
гуру
26.03.18
15:30
Вообще то в модуле проведения есть свойство Движения
Через него делай.
20 arsik
 
гуру
26.03.18
15:32
Для Каждого МоеДвижение из Движения.ЗанятыеЯчейки Цикл
   Если МоеДвижение.Сумма = 0 Тогда
      МоеДвижение.Сумма = 21;
   КонецЕсли;
КонецЦикла;
21 _barracuda_
 
26.03.18
15:35
(20)Спасибо!