Имя: Пароль:
1C
1C 7.7
v7: Ошибка в отчете. БухИоги
,
0 derk153
 
15.12.11
12:16
При формировании отчета выбывает ошибку:
Ит.ВыбратьСубконто(1,,,,,"ИнвенНомер"); // упорядочим по инвентарным номерам
{Отчет.ИзносОСиНМА.Форма.Модуль(92)}: Данная операция допустима только в режиме запроса по аналитике !

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

По идее все же должно работать...
1 chief accountant
 
15.12.11
12:21
Ит.ИспользоватьСубконто(ВидыСубконто.ОсновныеСредства,,1,0);
2 derk153
 
15.12.11
12:31
...причем ошибка появляется только в отладчике
3 chief accountant
 
15.12.11
12:40
(2) У ИнвенНомер сортировка включена?
4 derk153
 
15.12.11
12:42
(3) Да, включена
5 chief accountant
 
15.12.11
12:49
(4) попробовал (1)?
6 derk153
 
15.12.11
12:51
Вот процедура полностью:

Процедура Сформировать()  
   
   Таб = СоздатьОбъект("Таблица");  
   

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

   НА = Ит.Субконто(1);
           

               Пока Ит.ПолучитьСубконто(1) = 1 Цикл
                   //НормаАморт = Ит.Субконто(1);                                                                        
                   БалСтоимость = 0;//Ит1.СНД(СчетНА,,,НА);
                   //Если БалСтоимость = 0 Тогда            // Если документ печ-ся за предыд.периоды
                   //    Продолжить;    
                   //КонецЕсли;
                   //Кво = Формат(Ит1.СНД(СчетНА,"К",,НА),"Ч13.3");
                   Кво = 1;
                   АмортСумма = 0;// = Ит.КО();
                   
                   Наименование = "Инв.№"+?(ПустоеЗначение(НА.ИнвенНомер)=1,"    ",Сокрлп(НА.ИнвенНомер))
                   +", "+НА.Наименование;
                   Таб.ВывестиСекцию("Строка");
                   //ИтАмортСумма = ИтАмортСумма + АмортСумма;
                   //ИтБалСтоимость = ИтБалСтоимость + БалСтоимость;
               КонецЦикла;
               

   
   Таб.ТолькоПросмотр(1);
   Таб.Показать("","");
КонецПроцедуры



Скорей всего в НА не передается Ит.Субконто(1),
но при отладке выдает совсем другую ошибку, что пр исполнении
7 derk153
 
15.12.11
12:51
(5) Да, тоже самое
8 chief accountant
 
15.12.11
12:53
(7) Вот код - железно работающий:
   Би  = СоздатьОбъект("БухгалтерскиеИтоги");
   Би.ИспользоватьРазделительУчета(ВыбраннаяФирма);
   Би.ИспользоватьСубконто(ВидыСубконто.Номенклатура,,1,0);
   Би.ИспользоватьСубконто(ВидыСубконто.ФКР,,1,0);
   Би.ИспользоватьСубконто(ВидыСубконто.МестаХранения,,1,0);
   Би.ВыполнитьЗапрос(Дата1,Дата1,СчетаДляЗапроса);

   Если Сортировать=2 Тогда  
       Би.ВыбратьСубконто(1,,,,,"Код");
   ИначеЕсли Сортировать=3 Тогда
       Би.ВыбратьСубконто(1,,,,,"Наименование");
   ИначеЕсли Сортировать=4 Тогда
       Би.ВыбратьСубконто(1,,,,,"НомНомер");
   Иначе
       Би.ВыбратьСубконто(1);
   КонецЕсли;
   Пока Би.ПолучитьСубконто(1) = 1 Цикл
9 derk153
 
15.12.11
15:46
ну... не вижу принципиальной разницы в моем коде и коде (8)

Ключевые процедуры есть и там и там:
  БИ.ИспользоватьСубконто(....)
  БИ.ВыполнитьЗапрос(....)
  БИ.ПолучитьСубконто(1)
10 medved_kot
 
16.12.11
00:33
Если ошибка при отладке отличается от ошибки без отладчика, то возможно дело в переменных (функциях), значения которых вы пытаетесь получить в отладчике. Т.е. значение переменной (функции) в отладчике устанавливается раньше чем задумано писателем кода.
Основная теорема систематики: Новые системы плодят новые проблемы.