Имя: Пароль:
1C
 
непонятки при использовании метода Расчитать
0 mpbakunov
 
19.05.10
13:03
Доброго дня!

ПРОБЛЕМА!!!  
вот код который в рабочей и нулевой базе одинаков:

Ит = СоздатьОбъект("БухгалтерскиеИтоги");
   
   Ит.ИспользоватьРазделительУчета(Фирма);
   Ит.ИспользоватьСубконто(ВидыСубконто.НеоборотныеАктивы);
   Ит.ИспользоватьСубконто(ВидыСубконто.НалогиОтчисления);
   Ит.ВыполнитьЗапрос(,ТекущийДокумент(),"ОС1,ОС2,ОС3,ОС4");
   
   ТаблицаБалСтоимость = СоздатьОбъект("ТаблицаЗначений");
   ТаблицаБалСтоимость.НоваяКолонка("СчетГруппы");
   ТаблицаБалСтоимость.НоваяКолонка("Объект");
   ТаблицаБалСтоимость.НоваяКолонка("Норма");
   ТаблицаБалСтоимость.НоваяКолонка("Стоимость");
       
   //Перенесем итоги в таблицу значений
   Ит.ВыбратьСчета();
   Пока Ит.ПолучитьСчет()=1 Цикл
       
       //По группе в целом
       ТаблицаБалСтоимость.НоваяСтрока();
       ТаблицаБалСтоимость.СчетГруппы = Ит.Счет;
       ТаблицаБалСтоимость.Объект = 0;
       ТаблицаБалСтоимость.Норма = 0;
       ТаблицаБалСтоимость.Стоимость = Ит.СКД();
       
       Ит.ВыбратьСубконто(1);
       Пока Ит.ПолучитьСубконто(1) = 1 Цикл
           Ит.ВыбратьСубконто(2);
           Пока Ит.ПолучитьСубконто(2) = 1 Цикл
               //По объектам и по нормам
               ТаблицаБалСтоимость.НоваяСтрока();
               ТаблицаБалСтоимость.СчетГруппы = Ит.Счет;
               Если ПустоеЗначение(Ит.Субконто(1)) = 0 Тогда
                   ТаблицаБалСтоимость.Объект = Ит.Субконто(1);
               Иначе
                   ТаблицаБалСтоимость.Объект = 0;
               КонецЕсли;
               Если ТаблицаБалСтоимость.Объект = 0 Тогда
                   //Норма нужна только для группы без пообъектного учета
                   ТаблицаБалСтоимость.Норма = Ит.Субконто(2);
               Иначе
                   ТаблицаБалСтоимость.Норма = 0;
               КонецЕсли;    
               ТаблицаБалСтоимость.Стоимость = Ит.СКД();
           КонецЦикла;    
       КонецЦикла;
   КонецЦикла;
   
   Ит = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит.Рассчитать(,ТекущийДокумент(),"НА.1;НА.2",,,Фирма);

в нулевой я только ввел ввод в эксплуатацию ОС на сумму 1000грн где сформировался счет ОС2 (балансовая стоимость ОС в налоговом учете 2 группа) и датой чуть позже документ ликвидация (списание) этого ОС

в режиме отладки в нулевой Бд на строке после
Ит.Рассчитать(,ТекущийДокумент(),"НА.1;НА.2",,,Фирма);

выражение
Ит.СКД("ОС2",,,) = 1000, т.е после метода расчитать по совершенно другим счетам итоги по ОС2 сохраняются

а в рабочей БД
Ит.СКД("ОС2",,,) = 0 хотя есть остатки.

все просмотрел вроде, но никак не пойму почему в одном случает итоги первым счетам сохраняются после расчета по другим счетам, а во втором случае нет!?
1 zak555
 
19.05.10
13:13
какая аналитика у НА.1;НА.2 ???
2 mpbakunov
 
19.05.10
13:28
(1) Необоротный актив
3 mpbakunov
 
19.05.10
13:32
а вообще у меня такое чувство, что таблица предыдущих временных итогов при использовании метода Рассчитать иногда не очищается, например если очистка происходит блоками и при рассчете итогов по новым счетм еще хватает места. это как бы объясняет то, что нулевая база содержит только 2 проводки а в рабочей базе данных уже много. Ваши мнения!?
4 zak555
 
19.05.10
13:40
Ит.ИспользоватьРазделительУчета(Фирма);
   Ит.ИспользоватьСубконто(ВидыСубконто.НеоборотныеАктивы);
   Ит.ИспользоватьСубконто();
   Ит.ВыполнитьЗапрос(,ТекущийДокумент(),"ОС1;ОС2;ОС3;ОС4;НА.1;НА.2");
5 zak555
 
19.05.10
13:41
+ ОС1, ОС2 ... группа-счёт ?
6 Шапокляк
 
19.05.10
13:41
А ТекущийДокумент() - это что? может, он какой был такой остался, а списание ОС позже него?
7 mpbakunov
 
19.05.10
13:42
(5)
8 mpbakunov
 
19.05.10
13:42
(5) счет
9 mpbakunov
 
19.05.10
13:42
(6) позиция документа
10 1Сергей
 
19.05.10
13:56
(9) ТекущийДокумент уже записан в этот момент?
11 mpbakunov
 
19.05.10
14:20
хорошо! по другому задам вопрос. В каких случаях метод Рассчитать объекта бухИтоги по новым счетам  оставляет значения итогов по счетам расчитанных ранее?
12 Шапокляк
 
19.05.10
14:27
(11) т.е. Вы хотит, чтобы в одном бъекте были итоги по разным счетам, при этом по одним - на один момент времени, а по другим на другой? Вряд ли это возможно. А что мешает создать еще один объект бухитоги и рассчитать его как Вам нужно?
13 mpbakunov
 
19.05.10
14:51
(12) я не хочу этого . я заметил такое аномальное поведение метода Расчитать()
14 zak555
 
19.05.10
15:02
(13) зачем рассчитать, если всё делается одним запросом !!!