Имя: Пароль:
1C
1C 7.7
v7: Как удалить из операции все проводки?
0 megabax
 
28.04.15
13:40
Деаю вот так:
        Док.ВыбратьПроводки();
        пока Док.ПолучитьПроводку()=1 цикл
            Док.УдалитьПроводку();            
        конеццикла;
что то не удаяется, а что то типа УдалитьВсеПроводки ии очистить я что то у операци не вижу.
1 Новый участник
 
28.04.15
13:41
77? Кажется, сперва надо получить операцию, а у неё выбрать проводки.
2 megabax
 
28.04.15
13:43
Операция получена. До этого идет вот такой код:
        Док = СоздатьОбъект("Операция");
        Док.ВыбратьПоЗначению(НачГода(ТекущаяДата()), КонГода(ТекущаяДата()), "Код8", Код8);
        если Док.ПолучитьОперацию() > 0 тогда
            //ТекДок = Док.ТекущийДокумент();
        иначе    
            Док.Новая();
        КонецЕсли;  
        Док.Код8=Код8;
        Док.ВключитьПроводки(0);
        Док.Содержание="Реализация товаров №"+Узел.ПолучитьАтрибут("Номер")+" от "+Узел.ПолучитьАтрибут("Дата");      
        Док.ДатаОперации=Узел.ПолучитьАтрибут("Дата");
        Док.СуммаОперации=Узел.ПолучитьАтрибут("Сумма");
3 ДенисЧ
 
28.04.15
13:43
а кто сказал, что такая функция должна быть?
4 megabax
 
28.04.15
13:45
(3) Дык логично же что такая функция быть дожна, иначе как удалить все проводки? Вот в документе же есть метод для удаления всех строк ТЧ
5 ДенисЧ
 
28.04.15
13:46
(4) Если ты такой логичный, то почему до сих пор не работаешь в фирме 1с? ))
6 шаэс
 
28.04.15
13:48
(0) а на этом код заканчивается?
7 megabax
 
28.04.15
13:49
(6) Нет, даьше идет вот так:
        Док.НоваяПроводка();
        Док.Дебет.Счет=СчетПоКоду("62.1");  
        Док.Дебет.Субконто(1,Контрагент);
        Док.Дебет.Субконто(2,Договор);
        Док.Кредит.Счет=СчетПоКоду("90.1");  
        Док.Кредит.Субконто(1,ВидДеятеьности);    
        Док.Сумма=Узел.ПолучитьАтрибут("Сумма");  
        Док.ЗаписатьПроводки();
        Док.ВключитьПроводки(1);
        Док.Записать();
8 vladko
 
28.04.15
13:51
(0) у тебя через этот алгоритм проводки удаляются через одну.
пользуйся другим:
Док.ВыбратьПроводки();
Для н = -Док.КоличествоПроводок() По -1 Цикл
Док.ПолучитьПроводкуПоНомеру(-н);
Док.УдалитьПроводку();
КонецЦикла
тогда всё удалиться. Этот же алгоритм можно применять к другим выборкам, например, к табличным частям документов
9 ale-sarin
 
28.04.15
13:52
Пока Операция.ВыбратьПроводки()    = 1 Цикл
    Операция.ПолучитьПроводку();
    Операция.УдалитьПроводку();
КонецЦикла;
10 megabax
 
28.04.15
14:06
Что то все равно не помогает. Сдеал даже вот так:
        Пока Док.ВыбратьПроводки() = 1 Цикл
            Док.ПолучитьПроводку();
            Док.УдалитьПроводку();
        КонецЦикла;    
        
        Док.ЗаписатьПроводки();
и все равно в операции куча одинаковых проводок, оставшихс яот предыдущих загрузок