Имя: Пароль:
1C
1C 7.7
v7: не отображаются остатки
,
0 vol4arka
 
07.10.12
21:45
Иногда не отображаются остатки по субконто, по которым нет оборотов в даном периоде. Подскажите в чем моя ошибка

Процедура Сформировать()
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит.ИспользоватьСубконто(ВидыСубконто.Корма,,1,1);
   Если Ит.ВыполнитьЗапрос (НачДата, КонДата, "23",, , ,"День",4)=0 Тогда
       Возврат;
   КонецЕсли;  
   Ит.ВыбратьПериоды(,,,);
   Пока Ит.ПолучитьПериод() = 1 Цикл
       Ит.ВыбратьСубконто(,1,,,,,);
       Пока Ит.ПолучитьСубконто() = 1 Цикл
           Если Ит.Субконто().ЭтоГруппа()=0 Тогда
               Остаток=Ит.СКД(3)-Ит.СКК(3);
           КонецЕсли;
       КонецЦикла;
   КонецЦикла;      
КонецПроцедуры
1 zladenuw
 
07.10.12
21:53
а как это понять иногда :)
2 vol4arka
 
07.10.12
21:55
Если всегда то это меняет дело?
3 xajak85
 
07.10.12
21:56
по отладку смотрел какую цикл не выполняется?
4 vol4arka
 
07.10.12
21:57
Все выполняется, субконто отображается, но СКД и СКК =0
5 xajak85
 
07.10.12
21:59
(4) попробуй ВыбратьПериоды, после ВыбратьСубконто()-ПолучитьСубконто()
6 vol4arka
 
07.10.12
22:05
(5) не, мне нужно получить таблицу вида


Дата      Приход расход Остаток    Приход Расход Остаток ..

                Свекла                     Морковь
01.10      100    50     50           200    100   100   ..
02.10      200           250
7 xajak85
 
07.10.12
22:06
(6) Ты потом должен сам получить эту таблицу
8 vol4arka
 
07.10.12
22:09
(6)Так как ты советуеш не получается
9 vol4arka
 
07.10.12
22:09
(7)
10 viktor_vv
 
07.10.12
22:13
Выводи двумя циклами.

Первым шапку с номенклатурой и остатками

       Ит.ВыбратьСубконто(,1,,,,,);
       Пока Ит.ПолучитьСубконто() = 1 Цикл
           Если Ит.Субконто().ЭтоГруппа()=0 Тогда
               Остаток=Ит.СКД(3)-Ит.СКК(3);
           КонецЕсли;
       КонецЦикла;

Вторым циклом уже тело, твоим циклом, только там параметры в выбрать субконто посмотри, нет под рукой семерки, чтобы цикл по всем вошедшим в запрос шел.
11 vol4arka
 
07.10.12
22:16
(10) все верно, все вошедшие в запрос попадают в цикл, но почему-то остатки= 0???
12 vol4arka
 
07.10.12
22:18
к примеру, результат должен быть
     Свекла                     Морковь
01.10      100    50     50                  100  
02.10      200           250


а получается

     Свекла                     Морковь
01.10      100    50     50          
02.10      200           250
13 xajak85
 
07.10.12
22:19
давай с перву проблему найдем, а потом будем думать как получить верную таблицу
14 viktor_vv
 
07.10.12
22:21
Ну попробуй вывести все значения : Остаток на начало, обороты и остаток на конец, причем отдельно дебет и кредит.
15 viktor_vv
 
07.10.12
22:21
Посмотри что там выведется.
16 vol4arka
 
07.10.12
22:34
(15)все 0
17 vol4arka
 
07.10.12
22:36
но если есть оборот по этому субконто, то остаток вычисляетс яверно
18 vol4arka
 
07.10.12
22:38
Дата      Приход расход Остаток    Приход Расход Остаток ..

                Свекла                     Морковь
01.10      100    50     50            
02.10      200           250         200    100   200


Остаток по моркови 200, так как реальный остаток 100 на 01.10
19 Cthulhu
 
07.10.12
23:03
Ит.ВыбратьПериоды(,,,1)
Ит.ВыбратьСубконто(,0,,,1)
20 vol4arka
 
07.10.12
23:16
(19) Так не работает вообще
21 vol4arka
 
07.10.12
23:17
Работает только так:

Процедура Сформировать()
Ит = СоздатьОбъект("БухгалтерскиеИтоги");  
Ит1 = СоздатьОбъект("БухгалтерскиеИтоги")
   Ит.ИспользоватьСубконто(ВидыСубконто.Корма,,1,1);
   Если Ит.ВыполнитьЗапрос (НачДата, КонДата, "23",, , ,"День",4)=0 Тогда
       Возврат;
   КонецЕсли;  
   Ит.ВыбратьПериоды(,,,);
   Пока Ит.ПолучитьПериод() = 1 Цикл
       Ит.ВыбратьСубконто(,1,,,,,);
       Пока Ит.ПолучитьСубконто() = 1 Цикл
           Если Ит.Субконто().ЭтоГруппа()=0 Тогда
               Дат=Ит.НачДата;
               Ит1 = СоздатьОбъект("БухгалтерскиеИтоги");
               Ит1.ИспользоватьСубконто(ВидыСубконто.Корма,Ит.Субконто(),,);
               Если Ит1.ВыполнитьЗапрос (Дат, Дат, "23",, , ,"День",)=0 Тогда
                   Возврат;
               КонецЕсли;  
               Остаток=Ит1.СКД(3)-Ит1.СКК(3);
           КонецЕсли;
       КонецЦикла;
   КонецЦикла;      
КонецПроцедуры

Проще варианта не нашел, но он есть!
22 vol4arka
 
08.10.12
10:02
Всем спасибо, особенно  viktor_vv