Имя: Пароль:
1C
1С v8
Операции введенные вручную.
0 анастасия137
 
07.01.13
21:08
Создана проводка Операции введенные вручную. Данные считываются из dbf файла. Но сумма операции не считается. Как программно посчитать сумму операции?

Процедура КнопкаВыполнитьНажатие(Кнопка)    
БД = Новый XBase;            
БД.ОткрытьФайл(ПолноеИмяФайла);
ВыбраннаяОрганизация = Организация;    
ДатаЗаписи = ТекущаяДата();
Документ = Документы.ОперацияБух.СоздатьДокумент();
Документ.Дата = ДатаЗаписи;
Документ.Организация = ВыбраннаяОрганизация;
Документ.Комментарий = сокрлп(БД.new);
Документ.Содержание = сокрлп(БД.new);
Документ.Записать();
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Документ.Ссылка);
//???????
СуммаОперации=0;
//???????
БД.Первая();
Пока БД.Вконце() = Ложь Цикл
   Движение = НаборЗаписей.Добавить();
   Движение.Регистратор = Документ.Ссылка;
   Движение.Период = ДатаЗаписи;
   Движение.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.1");
   Движение.СубконтоДт.НоменклатурныеГруппы = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию(сокрлп(БД.house));
   Движение.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("20.01");
       Если Движение.СчетКт.УчетПоПодразделениям Тогда
       Движение.ПодразделениеКт = подразделение;
       КонецЕсли;
   Движение.СубконтоКт.НоменклатурныеГруппы = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию(сокрлп(БД.house));
   Движение.СубконтоКт.СтатьиЗатрат=статьиЗатрат;
   Движение.Организация = ВыбраннаяОрганизация;
   Движение.Сумма = БД.sum;
   НаборЗаписей.Записать();
//???????
       Документ.СуммаОперации=СуммаОперации+Бд.sum;
//???????
   БД.Следующая();
КонецЦикла;
Сообщить("Документ /-Операции, введенные вручную-/ создан");
БД.ЗакрытьФайл();
КонецЕсли;
КонецПроцедуры

Процедура КаталогНачалоВыбора(Элемент, СтандартнаяОбработка)
2 ИначеЕсли
 
07.01.13
21:11
Движение.Сумма = БД.sum;

БД.sum - тип значения какой?
3 анастасия137
 
07.01.13
21:12
число
4 aka AMIGO
 
07.01.13
21:14
Документ.СуммаОперации=Документ.СуммаОперации+Бд.sum;
так, хотя-бы..
5 анастасия137
 
07.01.13
21:15
так я и написала не считает
6 rphosts
 
07.01.13
21:15
(5) вы не так написали, вниматеьно смотрите на свой код
7 aka AMIGO
 
07.01.13
21:16
+4
или в цикле
СуммаОперации=СуммаОперации+Бд.sum;
а после цикла
Документ.СуммаОперации=СуммаОперации+Бд.sum;
9 aka AMIGO
 
07.01.13
21:17
(8) я поспешил? :)
10 rphosts
 
07.01.13
21:18
(9) не, намана, те кому нужно в будуще отследят.... вопрос-то совсем простой.
11 анастасия137
 
07.01.13
21:19
в какой цикл записать
   СуммаОперации = 0;
   Для каждого Движение Из
       
   //ЗДЕСЬ НЕ ЗНАЮ!
   Документы.ОперацияБух.ПолучитьФормуДокумента().ЭлементыФормы.ТабличноеПолеДвиженияБУ.Значение
   //ЗДЕСЬ НЕ ЗНАЮ!

   Цикл
   СуммаОперации = СуммаОперации + БД.sum;
   КонецЦикла;
12 aka AMIGO
 
07.01.13
21:22
(11) в твой цикл.. не плоди циклы вновь.. всё в твоем коде есть
13 rphosts
 
07.01.13
21:25
Документы.ОперацияБух.ПолучитьФормуДокумента().ЭлементыФормы.ТабличноеПолеДвиженияБУ.Значение;


этот-тут зачем нам? это-то какое отношение к вопросу имеет?

смотрите (7) - там всё что нужно написано!

достаточно взять (0) и применить (7).

ветка должна соответствовать нулевому посту! Там вопрос "КАК" а не "СДЕЛАЙТЕ ЗА МЕНЯ".
14 ИначеЕсли
 
07.01.13
21:30
Документ.Записать() не хватает ещё.
15 анастасия137
 
07.01.13
21:39
Всем спасибо за помощь)
Программист всегда исправляет последнюю ошибку.