Имя: Пароль:
1C
1С v8
v8: База зависает при проведении
,
0 frostixxx
 
02.03.12
09:32
Всем привет, столкнулся со следующей проблемой, при проведении документов(новых), база виснет с концами, но если перепроводить документы уже проведенные то все нормально, с чем может быть связано? База УТ 10.3.7.9, серверная.
1 Wobland
 
02.03.12
09:32
а что там происходит при оперативном проведении?
2 Maxus43
 
02.03.12
09:34
предлагаю включить замер, подождать пока висит пару минут и глянуть где спотыкается
3 frostixxx
 
02.03.12
09:35
Проблема с реализациями. Да ничего, стандартное проведение, добавлено авто создание закрытия заказа покупателя.
4 hhhh
 
02.03.12
09:39
(3) формы может там получаете?
5 frostixxx
 
02.03.12
09:46
(4)Нет
6 frostixxx
 
02.03.12
09:50
Зависает на куске кода

Для Каждого Движение ИЗ ДокументОбъект.Движения Цикл
       Если Движение.Количество() > 0 Тогда
           Движение.Очистить();
       КонецЕсли;
КонецЦикла;
7 Wobland
 
02.03.12
09:51
(6) идиёт. чисти все движения одним махом
8 Wobland
 
02.03.12
09:51
или вообще удалять движения автоматически
9 frostixxx
 
02.03.12
09:52
Ну во первых мб как-то без выражений общаться будем, это не мной написано, я лишь пытаюсь разобраться в чем херня и по идее эта коллекция вообще должна быть пустой ибо документ новый....
10 Wobland
 
02.03.12
09:53
(9) извини, не сдержался.
как вариант: набор=регистр.отбор.регистратор.установить() и набор.записать()
11 Maxus43
 
02.03.12
09:54
(9) переписывай это ересь) зачем вобще этот код я лично не понимаю.
12 Wobland
 
02.03.12
09:54
вообще, зачем в проведении удалять движения?
13 Feanor
 
02.03.12
10:03
(12) в новой концепции 8.2 это уже актуально
14 frostixxx
 
02.03.12
10:07
Мда.... болезнь прошла сама собой..... и как всегда хер знает почему)
15 Maxus43
 
02.03.12
10:07
(13) если написать всё красиво - не понадобится. Данные надо собирать запросом, и юзать Границу если не надо текущих движений. В частных случаях может и надо очищать, но не думаю что (6) тот случай...
16 Feanor
 
02.03.12
11:20
(15) есть мнение, что если не использовать очистку движений на сдаче спеца, то сдать не получится.
17 Maxus43
 
02.03.12
11:22
(16) может быть, но так же есть мнение что это делается не как в (6), а нормальными механизмами)
18 DrShad
 
02.03.12
11:31
(17) +100500
19 Feanor
 
02.03.12
11:39
(17) я таки не понимаю, чем именно тебе не угодил код в (6) )
20 Maxus43
 
02.03.12
11:46
(19) одним видом глаза режет)
21 Feanor
 
02.03.12
11:46
(20) а кроме эстетических? ))
22 Maxus43
 
02.03.12
11:58
(21) с набором записей надо работать а не напрямую с движениями объекта. так сделано в типовых, так делают большинство :)
23 Feanor
 
02.03.12
12:00
(22) в чем принципиальная разница?
24 Maxus43
 
02.03.12
12:05
Движения - только в контексте объекта, набор записей - независим...
Больше манёвра. смотрим типовую процедуру УдалитьДвиженияРегистратора
25 Feanor
 
02.03.12
12:06
(24) т.е. категоричное "фи" только в неуниверсальности?
26 Maxus43
 
02.03.12
12:06
(24) + Если до записи объекта с кодом (6) сделаем запрос к движениям - они будут ещё
27 Feanor
 
02.03.12
12:07
(26) а кто сказал, что в (6) делается потом запрос к остаткам?
28 Maxus43
 
02.03.12
12:07
(25) ну оно ещё и зависает у автора. с этим надо кстати разбираться почему
29 Feanor
 
02.03.12
12:07
(28) уже не зависает )
30 Maxus43
 
02.03.12
12:08
(27) не говорили, я к тому что движения по факту ещё в базе храняться
31 Feanor
 
02.03.12
12:08
(30) пусть хранятся, мб так задумано разработчиком :)
32 Maxus43
 
02.03.12
12:13
я бы так не сделал... хз что там разработчик задумывал)
33 Feanor
 
02.03.12
12:14
(32) т.е. не понимая в целом, что нужно от этих 5 строчек кода, ты утверждаешь, что так не сделал бы?
34 Maxus43
 
02.03.12
12:19
(33) от них нужно удалить движения, это факт.
Если бы мне для чего-либо нужны были старые движения - запрос + выгрузка в ТЗ. Потом удаление одной строчкой ОбщегоНазначения.УдалитьДвиженияРегистратора(ЭтотОбъект, Отказ);
код (6) за рамками даного объекта бесполезен.
Кода больше но ИМХО - по феншую
35 Feanor
 
02.03.12
12:22
(34) предположи, что это 8.2, у документа удаление движений "Не удалять движения", получать остатки не требуется. Внимание, вопрос. Зачем в данном случае две записи во все регистры, когда можно обойтись одной?
36 Maxus43
 
02.03.12
12:27
(35) в этом случае вобще нет необходимости удаления движений, просто запись новых движений с замещением
37 Feanor
 
02.03.12
12:36
(36) согласен )