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

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

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

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

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