Имя: Пароль:
1C
1C 7.7
v7: проблема с выбором субконто
0 Истари
 
21.04.12
15:42
собственно проблема у счета есть 2 субконто Виды затрат и филиалы. когда делаю запрос по итогам, выбирается только одно субконто. как только пытаюсь выбрать второе субконто обработка падает в бесконечный цикл и в отладчике показывает

Ит.Субконто(1) = пустота
Ит.Субконто(2) = пустота

собственно код


Ит=СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.ВидыЗатрат);
Ит.ИспользоватьСубконто(ВидыСубконто.Филиалы);
Ит.ВключатьСубСчета(-1);
Ит.ВыполнитьЗапрос(НачМесяца(ДатаДок),КонМесяца(ДатаДок),"93");
Ит.ВыбратьСубконто(ВидыСубконто.ВидыЗатрат);
Пока Ит.ПолучитьСубконто(ВидыСубконто.ВидыЗатрат) = 1 Цикл
Ит.ВыбратьСубконто(ВидыСубконто.Филиалы);
Пока Ит.ВыбратьСубконто(ВидыСубконто.Филиалы) = 1 Цикл
 СуммаПлюс=0;
 СуммаПлюс2=0;
 СчетВр=Ит.Счет;
 Сумма=0;
 Кво=0;
 СуммаВал=0;
 Сумма=Ит.ДО(1)-Ит.КО(1);
 Табл2.НоваяСтрока();
 Табл2.СчетК=Ит.Счет;
 Табл2.СубкД1=Ит.Субконто(ВидыСубконто.Филиалы);
 Табл2.СубкД2=0;
 Табл2.СубкД3=0;
 Табл2.СубкК1=Ит.Субконто(ВидыСубконто.ВидыЗатрат);
 Табл2.СубкК2=Ит.Субконто(ВидыСубконто.Филиалы);
 Табл2.СубкК3=0;
 Табл2.Сумма=Сумма;
 Табл2.Кво=Кво;
 Табл2.Валюта=0;
 Табл2.СуммаВал=СуммаВал;
 ЧислоКода=Сред(СчетВр.Код,2,1);
 Если (Число(ЧислоКода)>=0) и (Число(ЧислоКода)<5) Тогда
  Табл2.СчетД=СчетПоКоду("79.1");
 ИначеЕсли (Число(ЧислоКода)>=5) и (Число(ЧислоКода)<7) Тогда
  Табл2.СчетД=СчетПоКоду("79.2");
 ИначеЕсли (Число(ЧислоКода)>=7) Тогда
  Табл2.СчетД=СчетПоКоду("79.3");
 КонецЕсли;
КонецЦикла;
КонецЦикла;
1 AlexWolf
 
21.04.12
15:52
ВыбратьСубконто часто применяешь
2 AlexWolf
 
21.04.12
15:59
(1) хотя нет, это я протупил...
тут думаю реиндекс и пересчет бухитогов.
3 Истари
 
21.04.12
16:02
сейчас попробуем...с проблемой такой не сталкивался...при чем на одних счетах работает корректно а на других вот так падает
4 Истари
 
21.04.12
16:07
(2) нет, все равно падает в бесконечный цикл
5 Истари
 
21.04.12
16:25
собственно падает когда выбираю именно субконто "Филиалы"...
не пойму в чем дело
6 bolder
 
21.04.12
16:26
(1)(2) Все правильно пишешь, нельзя в цикле так писать.
7 bolder
 
21.04.12
16:27
(6)+ Втрой цикл переписать нужно.
8 Истари
 
21.04.12
16:27
(6)конструкция с одним субконто тоже валится в цикл

Ит=СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.ВидыЗатрат);
Ит.ИспользоватьСубконто(ВидыСубконто.Филиалы);
Ит.ВыполнитьЗапрос(НачМесяца(ДатаДок),КонМесяца(ДатаДок),"93");
Ит.ВыбратьСубконто(ВидыСубконто.Филиалы);
Пока Ит.ВыбратьСубконто(ВидыСубконто.Филиалы) = 1 Цикл
9 bolder
 
21.04.12
16:29
(8) неправильное использование ИспользоватьСубконто детектед.
10 Истари
 
21.04.12
16:30
(9) поясни
11 Истари
 
21.04.12
16:34
(9) где ты увидел неправильное использование?

   Ит=СоздатьОбъект("БухгалтерскиеИтоги");
   Ит.ИспользоватьСубконто(ВидыСубконто.ВидыЗатрат);
   Ит.ИспользоватьСубконто(ВидыСубконто.Филиалы);
   Ит.ВыполнитьЗапрос(НачМесяца(ДатаДок),КонМесяца(ДатаДок),"93");
   Ит.ВыбратьСубконто(1);
   Пока Ит.ПолучитьСубконто(1) = 1 Цикл
       Ит.ВыбратьСубконто(2);
       Пока Ит.ВыбратьСубконто(2) = 1 Цикл
12 Истари
 
21.04.12
16:35
мне нужно выбрать отдельные суммы в разрезе виды затрат и филиалов...на другом счете такая конструкция проходит нормально
13 bolder
 
21.04.12
16:58
(11) это же очевидно: последняя строчка кода должна быть
ит.Получитьсубконто(2)
14 Эльниньо
 
21.04.12
17:04
Ит.ВыполнитьЗапрос(НачМесяца(ДатаДок),КонМесяца(ДатаДок),"93");
   Ит.ВыбратьСубконто(1);
   Пока Ит.ПолучитьСубконто(1) = 1 Цикл
       Ит.ВыбратьСубконто(2);
//        Пока Ит.ВыбратьСубконто(2) = 1 Цикл   //Чудило ты, мля
       Пока Ит.ПолучитьСубконто(2) = 1 Цикл
15 Эльниньо
 
21.04.12
17:04
+(14) Все советчики тоже
16 Истари
 
21.04.12
17:07
(14) мля, не могли показать сразу))
приелся уже код этот

спасибо всем
17 bolder
 
21.04.12
17:07
(15) ну и чем моя это отличается от (13)?
18 Истари
 
21.04.12
17:08
(17) тем что я был уверен на все 100 что последней строкой у меня и так стоит получить субконто =) машинально не то набрал
19 bolder
 
21.04.12
17:10
Не (15) конкретно наехал, требую сатисфакции, он что (13) тупо подставить в последнюю строчку (11) как написано в (13) не понял?
20 bolder
 
21.04.12
17:12
(15) Копипастер ты, а не советчик))
21 Эльниньо
 
21.04.12
17:13
(19) (6)(7)(9) )))
22 Истари
 
21.04.12
17:14
он все равно нагляднее ткнул носом :D
23 bolder
 
21.04.12
17:19
Ну если вам (13) не помогло, то (9) вам пусть (21) объяснит)).
24 bolder
 
21.04.12
17:20
(23) это по поводу кода в(8).
25 bolder
 
21.04.12
17:22
Понятно хоть, почему (8) не работает, знатоки ?))
26 Истари
 
21.04.12
17:23
ну вырезал я там кусок из (0) просто) переписывать лень было т.к. уверен был что там и так стоит получитьсубконто)
27 AlexWolf
 
21.04.12
17:24
я таки был прав (1), не ругайтесь
а потом не прав (2)
))))
28 bolder
 
21.04.12
17:27
О чем и речь, но приходит(15) и всех обси...рает)).Нормально , так?
29 Эльниньо
 
21.04.12
17:30
(28) Какие мы нежные.
Где ч/ю обронил? Сходи поищи, пока не подобрали.
30 bolder
 
21.04.12
17:32
(29) Кто слово мля выкинул?Что неправильно я посоветовал начиная с (6) по (11)?