Имя: Пароль:
1C
1С v8
Изменить регистратор в непериодическом подчиненном регистратору РС
,
0 Alexey87
 
09.01.13
16:02
Есть непериодический, подчиненный регистратору РС.
Необходимости хранить историю нет, поэтому - непериодический.
Записи в РС должны добавляться только регистратором - поэтому подчиненный регистратору.
Структура регистра:
Измерение 1
Измерение 2
Ресурс 1
Необходимо в случае если в новом документе введена величина "Ресурс 1" отличная от уже существующей записи с ресурсом "Ресурс 1" в РС, перезаписать саму величину "Ресурс 1" и регистратор для записи.

Изменить регистратор другим документом не получается: делаем отбор по старому регистратору, потом циклом для каждой записи меняем регистратора - после записи набора записей встает старый регистратор.

Подскажите, как решить проблему?
1 5 Элемент
 
09.01.13
16:07
>> после записи набора записей встает старый регистратор
Обращаешься через свойство Движения?
2 Alexey87
 
09.01.13
16:09
(1)Нет
Создаю набор записей, делаю отбор по старому регистратору, читаю набор записей, потом циклом прохожусь по каждой записи из набора, меню регистратор, записываю НЗ. В результате ничего не меняется.

Выходит, что записи непериодического регистра, подчиненного регистратору, могут изменяться только тем документом, который их сделал?
3 Alexey87
 
09.01.13
16:13
Двумя наборами записей тоже не катит:

НаборЗаписей1 = РегистрыСведений.МойРегистр.СоздатьНаборЗаписей();
НаборЗаписей2 = РегистрыСведений.МойРегистр.СоздатьНаборЗаписей();

       ..................

НаборЗаписей1.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей1.Прочитать();
НаборЗаписей1.Записать(Истина);
           
НаборЗаписей2.Отбор.Регистратор.Установить(Ссылка);
НаборЗаписей2.Прочитать();
Запись = НаборЗаписей2.Добавить();

.........            
Запись.Регистратор = Ссылка;
.........
                                   
НаборЗаписей2.Записать(Истина);
4 hhhh
 
09.01.13
16:22
(3) а что конкретно не катит? Вроде правильно написано.
5 Alexey87
 
09.01.13
16:24
(4)Ошибка при вызове метода контекста (Записать)

по причине:
Запись с такими ключевыми полями существует!
6 hhhh
 
09.01.13
16:26
(4)+ а, понял.

НаборЗаписей1.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей1.Прочитать();
ТЗ = НаборЗаписей1.Выгрузить();
ТЗ.ЗаполнитьЗначения(Ссылка, "Регистратор");
НаборЗаписей1.Очистить();
НаборЗаписей1.Записать(Истина);
           
НаборЗаписей2.Отбор.Регистратор.Установить(Ссылка);
НаборЗаписей2.Загрузить(ТЗ);

                                   
НаборЗаписей2.Записать(Истина);
7 Reset
 
09.01.13
16:26
А если перепровести первый документ, оно вернет все взад?
8 hhhh
 
09.01.13
16:28
да, надо в документе какой-нибудь реквизит добавить, типа ФормироватьПроводки.
9 Reset
 
09.01.13
16:29
как то оно противоречит

"Необходимости хранить историю нет"
"Записи в РС должны добавляться только регистратором"
10 Reset
 
09.01.13
16:31
(8) Для каждой строки документа? Я так понял, что он может захотеть и частично удалять движения (ну то есть новый документ меняет состояние только для одного сочетания измерений из нескольких, установленных старым)
11 Reset
 
09.01.13
16:32
Имхо кривая реализация. Или делать классически периодический регистр, или отказываться от подчинения регистратору
12 Reset
 
09.01.13
16:33
Грубо говоря для (0) вообще РС не нужен, делаем отбор по табл части с масксимум по дате дркумента и все
13 Reset
 
09.01.13
16:34
(12) глупость по моему сказал.
ну ладно
14 Alexey87
 
09.01.13
16:35
(9)история нужна в том понимании, чтобы можно было узнать каким документом в РС были внесены изменения
(12)это только выжимка из задачи
15 Alexey87
 
09.01.13
16:35
(14)+ и чтобы ручками вообще никто не смог ничего добавлять или править в РС
16 Alexaha
 
09.01.13
16:37
(15) ну это как раз правами решается (редактирование)
17 Reset
 
09.01.13
16:37
(14) "история нужна в том понимании"
Можно сделать независымый регистр с ресурсом - ПоследнийПроведенныйДокументПоЭтимИзмерениям
18 Reset
 
09.01.13
16:39
(17) Хотя это те же яйца
19 Alexaha
 
09.01.13
16:39
(14) "история нужна в том понимании, чтобы можно было узнать каким документом в РС были внесены изменения" - и при этом ты пытиаешься изменить регитсратор? или это противоречие иди я чего то не понимаю
20 Reset
 
09.01.13
16:40
Ну короче имхо: использование документов подразумевает периодичность движений - все что я пытался сказать.
21 Alexey87
 
09.01.13
16:41
(16),(19) в этой части задача заказчиком поставлена так, не стоит к этому придираться, не в этом суть
22 Reset
 
09.01.13
16:42
(21) Хреново поставлена
23 Reset
 
09.01.13
16:43
Не должно быть разного результата при
проведении Док1 потом Док2
и Док2 потом Док1
24 Alexaha
 
09.01.13
16:43
(21) далеко не всегда стоит делать так как хочет заказчик
25 Леха Дум
 
09.01.13
16:46
(21) поставят задачу каждый кирпич в доме заменить на стопку салфеток не разбирая весь дом сразу - тоже ломанешься делать?
26 Defender aka LINN
 
09.01.13
16:49
(0) Бред какойта
27 Alexey87
 
09.01.13
16:50
в ветке был задан конкретный вопрос
в (6) мне на него ответили, за что hhhh спасибо, а уж как дальше быть я сам решу
28 Alexaha
 
09.01.13
16:56
(27) да ради бога, только ответь себе на такой простой вопрос: что будет после того как после второго дока будет снова перепроведен первый?
Основная теорема систематики: Новые системы плодят новые проблемы.