Имя: Пароль:
1C
1С v8
как изменить запись в регистре сведений подчиненному регистратору?
0 vqwy
 
22.01.13
15:04
как изменить одну запись в регистре сведений подчиненному регистратору?
1 Нуф-Нуф
 
22.01.13
15:04
получить набор записей и изменить
2 vqwy
 
22.01.13
15:06
(1)
КИ = РегистрыСведений.РаботникиОрганизаций.СоздатьНаборЗаписей();
           
           КИ.Отбор.Регистратор.Установить(Документы.ПереносДанных.ПолучитьСсылку());
           КИ.Отбор.Регистратор.Использование = Истина;
           КИ.Прочитать();

       данные = КИ.Добавить();
               данные.Организация= Справочники.Организации.НайтиПоКоду("000000001");
               данные.Период=дата("20120101000000");    
               данные.Сотрудник = Справочники.СотрудникиОрганизаций.НайтиПоНаименованию("Герасимова Ольга Викторовна");
               данные.ПодразделениеОрганизации = Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию("ПИЩЕБЛОК");
               данные.Должность = Справочники.ДолжностиОрганизаций.НайтиПоНаименованию("Повар 3р");
              данные.ОбособленноеПодразделение= Справочники.Организации.НайтиПоКоду("000000001");
               данные.ЗанимаемыхСтавок = 1;
               данные.ПричинаИзмененияСостояния = "начать";
               данные.ГрафикРаботы=Справочники.ГрафикиРаботы.НайтиПоНаименованию("пятидневка");
               КИ.Записать(Ложь);
3 vqwy
 
22.01.13
15:07
(1) он создают еще одну запись, а надо заменить в существующей период только
4 Reset
 
22.01.13
15:07
КИ.Отбор.Регистратор.Установить(Документы.ПереносДанных.ПолучитьСсылку());
5 Reset
 
22.01.13
15:07
(4) В смысле неверна эта строка ;)
6 lapinio
 
22.01.13
15:08
Записать(Истина)
7 Reset
 
22.01.13
15:09
Строка (4) создает каждый раз новый набор с "битой" ссылкой.
"Битой" в данном контексте - ссылкой без объекта.
8 vqwy
 
22.01.13
15:10
(6) Записать(Истина) все равно две записи
9 Нуф-Нуф
 
22.01.13
15:10
Документы.ПереносДанных.ПолучитьСсылку() - это что?
10 vqwy
 
22.01.13
15:11
(7) что тогда нужно сделать??
11 Reset
 
22.01.13
15:11
(8) Тебе нужно вникнуть в смысл фразы "регистре сведений подчиненному регистратору"
12 Нуф-Нуф
 
22.01.13
15:11
(10) тебе нужна ссылка на конкретный документ, у которого ты хочешь поменять записи
13 Reset
 
22.01.13
15:12
(10) Найти или создать документ, и провести или поправить его движения.
14 lapinio
 
22.01.13
15:13
Я делала так и все получилась

   Соб=Перечисления.СобытияДокументов.Открыт;    
   Обход=ДокументыПеремещениеОС();    
   Для каждого стр Из Обход Цикл
       Ссылка=стр.Ссылка;
       История=РегистрыСведений.ИсторияСобытийДокумента.СоздатьНаборЗаписей();
       История.Отбор.Документ.Установить(Ссылка);
       История.Прочитать();    
       Массив=Новый Массив;
       Массив.Добавить(История);
       Кол=Массив.Количество();
       Если Кол>=1 Тогда
           Продолжить;
       Иначе
           Пользователь=стр.Исполнитель;
           ДатаСог=стр.ДатаСогласования;
           НоваяЗапись=История.Добавить();
           НоваяЗапись.Документ=Ссылка;
           НоваяЗапись.Пользователь=Пользователь;
           НоваяЗапись.ДатаСобытия=ДатаСог;
           НоваяЗапись.Событие=Соб;
           История.Записать();
       КонецЕсли;
   КонецЦикла;
15 Reset
 
22.01.13
15:15
(14) Молодчинка.
Вот этот момент весьма забавен:

       Массив=Новый Массив;
       Массив.Добавить(История);
       Кол=Массив.Количество();
       Если Кол>=1 Тогда
           Продолжить;
       Иначе
16 lapinio
 
22.01.13
15:16
Это было давно и надо было быстро сделать сам знаю -)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан