Имя: Пароль:
1C
1С v8
Не работает очистка набора записей
,
0 megabax
 
02.05.17
14:32
Народ, подскажите, пожалуйста, почему вот такой код не очищает набор записей?
НЗ=РегистрыСведений.ПРОФИТ_Обеспечения.СоздатьНаборЗаписей();
НЗ.Отбор.Договор.Значение=СвязанныйДоговор;
НЗ.Отбор.Договор.ВидСравнения=ВидСравнения.Равно;
НЗ.Отбор.Договор.Использование=Истина;
НЗ.Прочитать();
НЗ.Очистить();
НЗ.Записать(Истина);
1 ejikbeznojek
 
02.05.17
14:34
Я бы для начала отладкой посмотрел сколько строк в НЗ, после строчки НЗ.Прочитать();
и заполнился ли НЗ.Отбор.Договор.Значение
2 megabax
 
02.05.17
14:36
(1) После прочитать несколько строк, те, которые надо
3 Alexandr_U1982
 
02.05.17
14:38
(0)
НЗ=РегистрыСведений.ПРОФИТ_Обеспечения.СоздатьНаборЗаписей();
НЗ.Отбор.Договор.Значение=СвязанныйДоговор;
НЗ.Отбор.Договор.ВидСравнения=ВидСравнения.Равно;
НЗ.Отбор.Договор.Использование=Истина;
НЗ.Записать(Истина);

Зачем читать, если все равно хочешь очистить?
4 megabax
 
02.05.17
14:38
(3) И так и так пробовал, не работает.
5 Lexey_
 
02.05.17
14:40
(4) что значит "не работает"?
6 megabax
 
02.05.17
14:40
(5) Значит не удаляет записи регистра накопления.
7 kovalev_oleg
 
02.05.17
14:41
(0) регистр сведений подчинен регистратору ?
8 megabax
 
02.05.17
14:44
(7) Нет
9 Михаил Козлов
 
02.05.17
14:46
(6) Так накопления или сведений?
10 Ц_У
 
02.05.17
14:47
(9) сведений
(8) а если так
НЗ.Отбор.Договор.Установить(СвязанныйДоговор)
11 Ц_У
 
02.05.17
14:48
(10) + Ссылка, а то может там объект?
12 kovalev_oleg
 
02.05.17
14:48
1)Ошибку дает ?
2) В "связанном договоре" что именно и какой тип данных ?
13 megabax
 
02.05.17
14:48
(9) Сведений
14 megabax
 
02.05.17
14:48
(12) Ошибку не дает. В связном договоре ссылка на договор
15 kovalev_oleg
 
02.05.17
14:54
1) что в процедурах модуля регистра ?
2) не срабатывает ли подписка на событие  на этот регистр при записи или перед записью ?
16 Buster007
 
02.05.17
14:54
(3)
НЗ=РегистрыСведений.ПРОФИТ_Обеспечения.СоздатьНаборЗаписей();
НЗ.Отбор.Договор.Установить(СвязанныйДоговор);
НЗ.Записать();
17 Alexandr_U1982
 
02.05.17
14:55
Попробуй еще вот так

НЗ=РегистрыСведений.ПРОФИТ_Обеспечения.СоздатьНаборЗаписей();
НЗ.ОбменДанными.Загрузка = Истина;
НЗ.Отбор.Договор.Установить(СвязанныйДоговор);
НЗ.Записать();
18 Alexandr_U1982
 
02.05.17
14:56
Может у тебя там какие-нибудь подписки на события срабатывают?
В модуле набора записей регистра есть обработчики событий "ПередЗаписью" или "ПриЗаписи"?
19 Ц_У
 
02.05.17
15:01
(14)
НЗ.Записывать = Истина;
Пожалуйста :)
20 igork1966
 
02.05.17
15:03
(19) это тут причем?
21 megabax
 
03.05.17
08:26
Спасибо всем, действительно дело было в событиях и удаленные движения тупо восстанавливались.
22 Naf2017
 
03.05.17
08:38
(0) много букв и лишних действий, достаточно:

НЗ=РегистрыСведений.ПРОФИТ_Обеспечения.СоздатьНаборЗаписей();
НЗ.Отбор.Договор.Установить(СвязанныйДоговор);
НЗ.Записать();