Добавление строк в операцию

1. sashulyT 201 15.03.07 11:37 Сейчас в теме
Пигу я обработочку в которой перебираются операции введенные вручную и добавляются определнные проводки. С толкнулся с проблеммой: если в выборке несколько операций то на второй в момент присвоения Дебет.счет = ... вылетает ошибка "Нельзя изменять записанные проводки!"

код примерно такой:

Опер.НоваяПроводка();
Опер.Дебет.Счет = Сч10;
...
Опер.Кредит.Счет = ...
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. sashulyT 201 15.03.07 13:34 Сейчас в теме
Полный такой:
тз = СоздатьОбъект("ТаблицаЗначений");
    тз.НоваяКолонка("пайщик"); 
    тз.НоваяКолонка("договор");
    тз.НоваяКолонка("Сумма");
    
    Док = СоздатьОбъект("Операция"); 
    
    Док.ВыбратьОперации(ВыбНачПериода, ВыбКонПериода);
    Пока ДОк.ПолучитьОперацию()=1 Цикл  
        Если доК.Документ.вид()<>"Операция" Тогда
            продолжить;
        КонецЕсли;
        
        Док.ВыбратьПроводки();
        Пока док.ПолучитьПроводку()=1 Цикл
            Если (Док.Дебет.Счет = СчетПОкОду("76.7")) и (Док.Кредит.Счет = СчетПОкОду("76.10")) Тогда 
                тз.НоваяСтрока();
                Тз.пайщик     = Док.Дебет.Субконто(1);  
                Тз.договор     = Док.Дебет.Субконто(2); 
                Тз.сумма     = Док.Сумма;
               КонецЕсли;
        КонецЦикла;   
        
            тз.выбратьСТроки();
            Пока Тз.ПолучитьСтроку()=1 Цикл
                    док.НоваяПроводка();
                    док.Дебет.Счет     = СчетПОкОду("76.7"); 
                    док.Дебет.Субконто(1, Тз.пайщик); 
                    док.Дебет.Субконто(2, Тз.договор);
                    
                    док.Кредит.Счет     = СчетПОкОду("86.1.2");
                    док.Кредит.Субконто(1, Тз.пайщик); 
                    док.Сумма = Тз.Сумма * 0.6; 
                    док.ЗаписатьПроводки();        
                    
                    
                    док.НоваяПроводка(); 
                    док.Дебет.Счет     = СчетПОкОду("76.7");
                    док.Дебет.Субконто(1, Тз.пайщик); 
                    док.Дебет.Субконто(2, Тз.договор);
                    
                    док.Кредит.Счет     = СчетПОкОду("91.2");    
                    док.Кредит.Субконто(1, ПДР); 
                    док.Сумма = Тз.Сумма * 0.4; 
                    
                    док.ЗаписатьПроводки();            
            КонецЦикла; 
        тз.УдалитьСтроки();
        
    КонецЦикла;

Показать


еще вопрос: пробывал код вставить с помощью теков code, как сделать чтоб было выравнивание и цветовая посветка?
2. Vitek 15.03.07 11:41 Сейчас в теме
а как перебирается? код в студию
3. sashulyT 201 15.03.07 11:50 Сейчас в теме
    Док = СоздатьОбъект("Операция"); 
    Док.ВыбратьОперации(ВыбНачПериода, ВыбКонПериода);
    Пока ДОк.ПолучитьОперацию()=1 Цикл  
        Если доК.Документ.вид()<>"Операция" Тогда
            продолжить;
        КонецЕсли;
               КонецЦикла;


Показать


так
4. CheBurator 2725 15.03.07 13:21 Сейчас в теме
кода мало...
давай полный кусок
6. Vitek 15.03.07 13:44 Сейчас в теме
ЗаписатьПроводки();
Синтаксис:
ЗаписатьПроводки()
Назначение:
Предназначен для записи в информационную базу уже добавленных и заполненных проводок операции.
Замечание:
Метод может использоваться только для атрибута ''Операция'' документа в момент проведения (в процедуре ОбработкаПроведения). При этом происходит обновление бухгалтерских итогов. Это позволяет при проведении документа обращаться к бухгалтерским итогам, уже измененным проводками, записанными этим документом. После выполнения метода ЗаписатьПроводки() и до окончания процедуры ОбработкаПроведение уже невозможно изменять или удалять проводки, добавленные до вызова этого метода.
Данный метод имеет смысл использовать, только в том случае, если существует необходимость обращения к итогам, измененным проводками записываемой операции. При записи сложной проводки, если у главной корреспонденции сложной проводки не указана сумма (равна 0), то она автоматически вычисляется на основании подчиненных корреспонденций.

может лучше операция.записать()? :-)
7. sashulyT 201 15.03.07 13:56 Сейчас в теме
Определенно так лучше :)

тогда контр вопрос: почему на первой операции прокатывало?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот