|
Как двух ТЗ сформировать проводки по регистру бухгалтерии | ☑ | ||
---|---|---|---|---|
0
Rizhij_Nikitos
13.10.11
✎
15:19
|
Задача такова из двух ТЗ составить проводки и записать их в регистр бухгалтерии. Почему то выдает ошибку, когда я формирую проводки, вроде бы все делал, как написано уже на других форумах, но почему то ругается. Код такой:
Для каждого СтрокаТЗ1 из ТЗ_СверткаПроводокСчета26Кт Цикл КоличествоПройденныхСтрок2 = 0; СуммаКорректировки = 0; //Сумма которая будет помогать ибегать накапливания погрешностей Для каждого СтрокаТЗ2 из ТЗ_ПроводокСчет20Кт Цикл СтрТЗ_Проводок = ТЗ_Новых_Проводок.Добавить(); СтрТЗ_Проводок.Организация =СтрокаТЗ2.Организация; СтрТЗ_Проводок.Период = СтрокаТЗ2.Период; СтрТЗ_Проводок.Регистратор = СтрокаТЗ2.Регистратор; СтрТЗ_Проводок.СчетДт = СтрокаТЗ2.СчетДт; СтрТЗ_Проводок.СубконтоДт1 = СтрокаТЗ2.СубконтоДт1; СтрТЗ_Проводок.СубконтоДт2 = СтрокаТЗ2.СубконтоДт2; СтрТЗ_Проводок.СубконтоДт3 = СтрокаТЗ2.СубконтоДт3; СтрТЗ_Проводок.СчетКТ = СтрокаТЗ1.СЧетКт; СтрТЗ_Проводок.ПодразделениеКт = СтрокаТЗ1.ПодразделениеКт; //стрТЗ_Проводок.СубконтоКт1 = ТипЗнч(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат.Пустая()); //просчет коэффициента КОЭФФИЦИЕНТ равен сумма из строки таблицы 2 делённая на сумму по всей Таблице 2 Если КоличествоПройденныхСтрок1 <ТЗ_СверткаПроводокСчета26Кт.Количество()-1 Тогда Если КоличествоПройденныхСтрок2 < ТЗ_ПроводокСчет20Кт.Количество()-1 Тогда Коэффициент = СтрокаТЗ2.Сумма/СуммаТЗ_Счет20Кт; стрТЗ_Проводок.Сумма = Окр(СтрокаТЗ1.Сумма*Коэффициент,2); СуммаКорректировки = СуммаКорректировки+Окр(СтрокаТЗ1.Сумма*Коэффициент,2); ИначеЕсли КоличествоПройденныхСтрок2= ТЗ_ПроводокСчет20Кт.Количество()-1 Тогда СтрТЗ_Проводок.Сумма = СтрокаТЗ1.Сумма-СуммаКорректировки; КонецЕсли; ИначеЕсли КоличествоПройденныхСтрок1 = ТЗ_СверткаПроводокСчета26Кт.Количество()-1 Тогда Если КоличествоПройденныхСтрок2 < ТЗ_ПроводокСчет20Кт.Количество()-1 Тогда Коэффициент = СтрокаТЗ2.Сумма/СуммаТЗ_Счет20Кт; стрТЗ_Проводок.Сумма = Окр(СтрокаТЗ1.Сумма*Коэффициент,2); СуммаКорректировки = СуммаКорректировки+Окр(СтрокаТЗ1.Сумма*Коэффициент,2); ИначеЕсли КоличествоПройденныхСтрок2= ТЗ_ПроводокСчет20 Кт.Количество()-1 Тогда СтрТЗ_Проводок.Сумма = СтрокаТЗ1.Сумма-СуммаКорректировки; КонецЕсли; КонецЕсли; // КоличествоПройденныхСтрок2 = КоличествоПройденныхСтрок2+1; КонецЦикла; // КоличествоПройденныхСтрок1 = КоличествоПройденныхСтрок1+1; КонецЦикла; Для каждого строкаТЗ из ТЗ_Новых_Проводок Цикл ЗаполнитьЗначенияСвойств(ТЗ_Проводок.Добавить(),СтрокаТЗ); КонецЦикла; НомерСтрокиТЗ=0; Для каждого строкаТЗ из ТЗ_Проводок Цикл строкаТЗ.НомерСтроки = НомерСтрокиТЗ+1; //строкаТЗ.Индекс = НомерСтрокиТЗ; НомерСтрокиТЗ = НомерСтрокиТЗ+1; КонецЦикла; Где ТЗ_проводок я изначало получил, такой функцией Функция ВозвратТЗсПроводками(ДокументИсточник) Экспорт //Если (ДокументИсточник.Проведен=Ложь) ИЛИ (ДокументИсточник.Пустая()) Тогда // //Предупреждение("Документ не провели, проведите его или выберите другой."); // Возврат Ложь; //КонецЕсли; Движ = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); Движ.Отбор.Регистратор.Установить(ДокументИсточник); Движ.Прочитать(); ТЗ = Движ.Выгрузить(); //КолПред = ТЗ.Количество(); //ТЗ.ВыбратьСтроку("Всего строк "+КолПред); Возврат ТЗ; КонецФункции и теперь хочу к этим добавить новые сформированные, и заного записать, записываю так: Процедура ОчисткаИЗаписьПроводок(ДокументИсточник,ТЗ) Движ = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); Движ.Отбор.Регистратор.Установить(ДокументИсточник); Движ.Очистить(); Движ.Записать(); Движ = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); Движ.Отбор.Регистратор.Установить(ДокументИсточник); Движ.Загрузить(ТЗ); Движ.Записать(); КонецПроцедуры |
|||
1
Рэйв
13.10.11
✎
15:24
|
текст ошибки какой?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |