Имя: Пароль:
1C
 
Регистр сведений подчиненный регистратору
0 YFred
 
29.09.15
14:44
Пытаюсь перезаписать набор записей в регистр сведений подчиненный регистратору, выходит ошибка о том что запись не уникальна. Что ха херь, я же указываю что запись с замещением существующих Записать(Истина)?

    НаборЗаписей =   РегистрыСведений.СтатусЕГАИС.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(Документ);

        НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.Документ = Документ;
    НоваяЗапись.Статус  = НовыйСтатус;
    НоваяЗапись.Примечание = ТекстСообщения;
        
    НаборЗаписей.Записать(Истина);
1 Fragster
 
гуру
29.09.15
14:46
регистратор не является измерением с основным отбором
2 ЧеловекДуши
 
29.09.15
14:52
А период, кто будет указывать?
3 ЧеловекДуши
 
29.09.15
14:52
+ И да Регистратор не гарантирует Периодичность :)
4 Fragster
 
гуру
29.09.15
14:53
(2) а почему вы думаете, что регистр периодический?
5 ЧеловекДуши
 
29.09.15
14:54
Потому ,что он подчинен регистратору :)

И да, не увидел команду "Прочитать()"... Отбор в (0) не работает :)
6 Fragster
 
гуру
29.09.15
14:55
7 ЧеловекДуши
 
29.09.15
14:59
(6) Ваше право, молодца, ... Самое главное, зачем 1С позволила создавать такую структуру в которой заведомом должно быть Измерение, уникальное :)
8 Fragster
 
гуру
29.09.15
15:02
(7) про прочитать тоже куита
9 YFred
 
29.09.15
15:04
Причем тут уникальное не уникальное у меня есть отбор по регистратору, когда я записываю 1с должно заменить все записи сделанные этим регистратором новым набором, я же записываю с замещением. Кто умный, напишите как правильно
10 ЧеловекДуши
 
29.09.15
15:05
(0) Если так хочется писать...

Движения = ДокЕКАИС.Движения;
Движения.СтатусЕГАИС.Записывать = Истина;
Движения.СтатусЕГАИС.Очистить();

ТЗДвижения = Новый ТаблицаЗначений;
//Колонки сам пропишешь
    НоваяЗапись = ТЗДвижения.Добавить();
    НоваяЗапись.Документ = Документ;
    НоваяЗапись.Статус  = НовыйСтатус;
    НоваяЗапись.Примечание = ТекстСообщения;                
                Движения.СтатусЕГАИС.Загрузить(ТЗДвижения);
Движения.Записать();
11 ЧеловекДуши
 
29.09.15
15:06
(9) А побоку :)
12 ЧеловекДуши
 
29.09.15
15:06
(9) То что ты делаешь в (0), мне непонятно :)
13 Fragster
 
гуру
29.09.15
15:08
(9) -> (1)
14 YFred
 
29.09.15
15:23
ладно все понял, моя ошибка в том, что я использую регистр сведений подчененный регистратору, надо было независимый использовать, т.к. я пишу в него данные не при проведении документов а из обработки.
15 ЧеловекДуши
 
29.09.15
16:00
(14) Из обработки, смотри в (10)... :)
16 ЧеловекДуши
 
29.09.15
16:01
+(14) Документ не надо проводить!!!

Ну на просто Поставить флажек "Проведен" и тихо, его записать :)
17 ЧеловекДуши
 
29.09.15
16:03
+ Если быть точнее, то делай так

ДокЕКАИС = Документы.ДокЕКАИС.СоздатьДокумент();
ДокЕКАИС .Дата = ТекущаяДата();
ДокЕКАИС .Записать(РежимЗаписиДокумента.Запись);
                
Движения = ДокЕКАИС.Движения;
Движения.СтатусЕГАИС.Записывать = Истина;
Движения.СтатусЕГАИС.Очистить();

ТЗДвижения = Новый ТаблицаЗначений;
//Колонки сам пропишешь

    НоваяЗапись = ТЗДвижения.Добавить();
    НоваяЗапись.Документ = Документ;
    НоваяЗапись.Статус  = НовыйСтатус;
    НоваяЗапись.Примечание = ТекстСообщения;                
                Движения.СтатусЕГАИС.Загрузить(ТЗДвижения);
Движения.Записать();
18 ЧеловекДуши
 
29.09.15
16:04
(17) +

ДокЕКАИС = Документы.ДокЕКАИС.СоздатьДокумент();
ДокЕКАИС .Дата = ТекущаяДата();
ДокЕКАИС .Проведен = Истина;
ДокЕКАИС .Записать(РежимЗаписиДокумента.Запись);
19 ЧеловекДуши
 
29.09.15
16:04
+ Немого опечаталси :)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан