Имя: Пароль:
1C
1C 7.7
v7: Удаление проводок у операции
0 kupec
 
09.07.13
10:58
Опер=СоздатьОбъект("Операция");
Опер.НайтиОперацию(ОперацияПриемки);
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку()=1 Цикл
   Опер.УдалитьПроводку();
КонецЦикла;
Опер.Записать();
Сообщить(Опер.КоличествоПроводок());


Вот такая процедура, почему то проводки не удаляются, по команде сообщить выдает изначальное количество проводок, куда копать ??? помогите пожалуйста!
1 KishMish
 
09.07.13
11:04
конретно поэтой проблеме не могу сказать така как надо тестить.
а вообще может достаточно будет удалить операцию, или выключить проводки?
2 kupec
 
09.07.13
11:07
(1) дело в том, что операция "динамическая", проводки постоянно обновляются, т.е. прежде чем записать новые надо удалить старые, а вот они почему то не удалюятся (((
3 KishMish
 
09.07.13
11:15
(2) как выход
1. Использовать бух справку - если есть
2. Грохать операцию - создавать такую же с тем же номером.
если конечно если нет ссылок на эту операцию, а так..
ты вообще-то такой функционал у документа. Удалять проводки перед перепроведением.
4 ЧеловекДуши
 
09.07.13
11:16
(0) Удаляй операции по документно, а не скопом :)
5 kupec
 
09.07.13
11:17
(4) операция одна. никакого удаления скопом нет !
6 kupec
 
09.07.13
11:18
(3) это не документ а просто операция
7 mr_K
 
09.07.13
11:19
Это как из ТЗ удалять строки из выборки, которая сбивается.
8 Franchiser
 
гуру
09.07.13
11:20
попробуй как в типовой бухе сделано:
Операция = СоздатьОбъект("Операция");
           Операция.НайтиОперацию(ОбъектБД);  
           
           //Удаление проводок.
           Если Операция.КоличествоПроводок() > 0 Тогда
               
               Пока Операция.ВыбратьПроводки() = 1 Цикл
                   
                   Операция.ПолучитьПроводку();
                   Операция.УдалитьПроводку();
                   
               КонецЦикла;
               
               Операция.Записать();
               
           КонецЕсли;
9 kupec
 
09.07.13
11:25
(7) пробовал и так:
Пока Опер.КоличествоПроводок()>0 Цикл
Опер.ПолучитьПроводкуПоНомеру(1);
Опер.УдалитьПроводку();
КонецЦикла;
Опер.Записать();

Самое интересное что цикл прерывался а операция та с проводками и была
10 kupec
 
09.07.13
11:26
(8) не прокатило
11 kupec
 
09.07.13
11:27
Разобрался (вроде) .....
   операция была помечена на удаление, после снятия с удаления все нормально стало удаляться, спасибо за помощь!
12 Franchiser
 
гуру
09.07.13
11:28
(10) в отладчике посмотри, в цикл входит вообще? Надеюсь у тебя ОперацияПриемки на форме выбирается, может на нем еще спозиционироваться надо?
13 kupec
 
09.07.13
11:33
(12) в цикл входит операция выбрана ))))
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан