Имя: Пароль:
1C
1С v8
Запись с такими ключевыми полями существует!
0 Gsoom2010
 
11.01.12
16:13
Добрый день.

Всё довольно просто, но найти решение в интернете не получается.

Из документа идёт запись в регистр сведений.
Регистр сведений Периодический (по позиции регистратора), зависимый.

Процедура проведения простая:
       Движения.РегистрПеремещений.Записывать = Истина;    
       Движение = Движения.РегистрПеремещений.Добавить();
       Движение.Период = Дата;
       Движение.ГрузоваяНакладная = Ссылка;
       Движение.Подразделение = СоздавшееПодразделение;
       Движение.Статус = Перечисления.СтатусыПеремещений.Принят;

Проблема в том что при изменении документа и его повторном проведении выдаётся естественная ошибка "Запись с такими ключевыми полями существует!". Как обработать такую "ошибку"?
1 GLazNik
 
11.01.12
16:14
Очистить движения?
2 Gsoom2010
 
11.01.12
16:23
Наверное так выйдет. Попробую.
3 Gsoom2010
 
11.01.12
16:28
(1) Спасибо! Сделал так:

   Если Движения.Найти("РегистрПеремещений") = Неопределено тогда
       Движения.РегистрПеремещений.Записывать = Истина;    
       Движение = Движения.РегистрПеремещений.Добавить();
       Движение.Период = Дата;
       Движение.ГрузоваяНакладная = Ссылка;
       Движение.Подразделение = СоздавшееПодразделение;
       Движение.Статус = Перечисления.СтатусыПеремещений.Принят;
       Сообщить("Провели Движения");
   Иначе    
       Сообщить("Перепроводка. Не обрабатываем");
   КонецЕсли;

Вдруг у кого-нибудь тоже будет тупняк...
4 Maxus43
 
11.01.12
16:31
(3) очищай движения перед проведением, не думай даже перепроведение это или нет
5 Humandra
 
11.01.12
16:32
(3) Вот это точно косяк будет!
Можешь получить расхождение между регистром и документом.
6 andrewks
 
11.01.12
16:32
(3) а если что-то поменяли?
7 Gsoom2010
 
11.01.12
16:32
Как предлагаете делать?
8 Мизантроп
 
11.01.12
16:33
"Удалять движения автоматически"
9 Gsoom2010
 
11.01.12
16:43
(8) Извиняюсь за тупняк.

Понял о чём вы говорите.
Поставил Документу в свойствах Движений параметр Удаление движений: "Удалять автоматически".

Спасибо. Пойду просплюсь.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший