Имя: Пароль:
1C
1С v8
Удаление записей из регистра сведений
0 Kvitok8320
 
02.09.13
06:13
Добрый день, подскажите пожалуйста:
В процессе писания, понял, что нужен еще один ресурс в регистре сведений - дописал - попытался перепровести документ - программа выдала, что запись с такими ключевыми полями уже существует.
Отменил документ - снова попытался провести и та же фигня ....
вопрос - как теперь записи из регистра убрать? Только программно?
1 Лодырь
 
02.09.13
06:20
Удаление движений у тебя вообще стоит?
2 Kvitok8320
 
02.09.13
06:32
Нет не стоит (я понимаю, почему не удалились движения ..., не понятно, как дописывать теперь)
3 skunk
 
02.09.13
06:33
если не стоит то тебе нужно либо ничего не делать ... либо удалить записи, те которые будешь изменять
4 Loyt
 
02.09.13
06:35
(0) Регистр-то хоть регистратору подчинён, или свободный?
5 Kvitok8320
 
02.09.13
06:35
(3) это понятно. а как их удалить - прямым делитом не хотят удаляться ...
6 Kvitok8320
 
02.09.13
06:36
(4) да, подчинен
7 Лодырь
 
02.09.13
06:37
(2) В смысле непонятно как дописывать?
Если регистр подчинен регистратору, то либо тупо выставить удаление движений "автоматически" в конфе у этого документа, либо в процедуре обработки проведения удалить их через Движения.ИмяРегистра.Очистить().
Если регистр НЕ подчинен регистратору, то вычистить програмно. Потом завести реквизит "ДокументБлаблабла" у записи регистра и писать туда ссылку на твой документ, а при отмене проведения их отлавливать и убивать с особым цинизмом.
8 skunk
 
02.09.13
06:37
(5)отбираешь нужные записи отбором ... и записываешь
9 Kvitok8320
 
02.09.13
06:39
ок, спасибо, буду делать!
10 Heckfy
 
02.09.13
08:48
Регистр=РегистрыСведений.ТвойРегистр;
    НаборЗаписей=Регистр.СоздатьНаборЗаписей();
    НаборЗаписей.Записать();

Грохнет все записи.
11 skunk
 
02.09.13
08:49
(10)при большом объеме данных регистра черевато падением базы
12 Heckfy
 
02.09.13
08:55
(11) Ну тогда менеджер.
ЗЫ: Не думаю, что у топикстартера в регистре мульён записей.
13 Kvitok8320
 
02.09.13
09:46
(10) Ругается ....

{Обработка.ОчисткаРегистраСведений.Форма.Форма.Форма(5)}: Ошибка при вызове метода контекста (Записать)
НаборЗаписей.Записать();
по причине:
Ошибка записи! Не установлен отбор по регистратору (Регистр сведений: Договоры займа условия)
14 Rie
 
модератор
02.09.13
09:47
(13) А установить отбор по регистратору - религия не позволяет?
15 Kvitok8320
 
02.09.13
09:53
(14) ..... не позволил себе усомниться в правильности и полноте предложенной схемы :)
16 Kvitok8320
 
02.09.13
11:48
ну вот как-то так получилось - вроде работает

Процедура КнопкаВыполнитьНажатие(Кнопка)
    документ=документы.ДоговорЗайма.Выбрать();
    пока документ.следующий() цикл
    Регистр=РегистрыСведений.ДоговорыЗаймаУсловия;
    НаборЗаписей=Регистр.СоздатьНаборЗаписей();
    наборзаписей.Отбор.Регистратор.Значение=документ.Ссылка;
    НаборЗаписей.Записать();
    конеццикла;
КонецПроцедуры
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший