7.7 Детализация итогов по операциям

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем X-Man, 7 мар 2008.

  1. TopicStarter Overlay
    X-Man
    Offline

    X-Man Опытный в 1С

    Регистрация:
    18 май 2007
    Сообщения:
    433
    Симпатии:
    3
    Баллы:
    29
    Здравствуйте, уважаемые профессионалы! Столкнулся со следующей проблемой:
    Код:
    БИ_01_1 = СоздатьОбъект("БухгалтерскиеИтоги"); 
    БИ_01_1.ИспользоватьРазделительУчета(Фирма.ЮрЛицо);
    БИ_01_1.ИспользоватьСубконто(ВидыСубконто.ОсновныеСредства,
    ?(ПустоеЗначение(ОС) = 0,ОС,ПолучитьПустоеЗначение()));    
    
    КонДата = ?(ПустоеЗначение(ДатаОценки) = 0,ДатаОценки,РабочаяДата());
    НачДата = НачГода(КонДата);                                     
    
    БИ_01_1.ВыполнитьЗапрос(НачДата,КонДата,"01.1"); 
    
    БИ_01_1.ВыбратьСчета(); 	    
    
    Пока БИ_01_1.ПолучитьСчет() = 1 Цикл  
    БИ_01_1.ВыбратьСубконто(1
    Ном = 0;
    Пока БИ_01_1.ПолучитьСубконто(1) = 1 Цикл    
    БалансоваяСтоимость = БИ_01_1.СНД();  			
    НаименованиеОС =  БИ_01_1.Субконто(1).Наименование;   
    Если БалансоваяСтоимость = 0 Тогда
    БИ_01_1.ВыбратьПериоды();			
    Пока БИ_01_1.ПолучитьПериод() = 1 Цикл 			
    ВидОперации = БИ_01_1.Операция.Документ.Вид();
    Если (ВидОперации = "ВводВЭксплуатациюОС") ИЛИ (ВидОперации = "Операция") Тогда    
    //ПЕРИОД ВЫБИРАЕТСЯ НО ОПЕРАЦИЯ ПУСТАЯ=>НЕ МОГУ ОБРАТИТЬСЯ К ДОКУМЕНТУ
    БалансоваяСтоимость = БалансоваяСтоимость + БИ_01_1.ДО();
    Если (ВидОперации = "ВводВЭксплуатациюОС") Тогда
    ДатаПостановкиНаУчет = БИ_01_1.НачДата;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;   
    
    БИ_02.ВыбратьСубконто(1);
    БИ_02.ПолучитьСубконто(1,,БИ_01_1.Субконто(1)); 	
    
    НакопленнаяАмортизация = БИ_02.КО();
    ОстаточнаяСтоимость = БалансоваяСтоимость - НакопленнаяАмортизация;     
    
    <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/попытка')">	Попытка			</span>
    НормаАмортОтчислений = (НакопленнаяАмортизация/БалансоваяСтоимость)*100;     
    Исключение
    НормаАмортОтчислений = "НЕ ОПРЕДЕЛЕНА!";
    КонецПопытки;
    
    Если БИ_01_1.Субконто(1).ЭтоГруппа() = 1 <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда			</span>
    Секция = Таб.ПолучитьСекцию("ГруппаОС"); 
    Иначе  
    Ном = Ном+1;
    Инв = БИ_01_1.Субконто(1).Код;
    //	ДатаПостановкиНаУчет = БИ_01_1.Субконто(1).ДатаПриобретения;
    СрокПолезногоИспользования = БИ_01_1.Субконто(1).СрокПолезногоИспользования.Получить(КонДата);
    Секция = Таб.ПолучитьСекцию("ОС"); 
    КонецЕсли;   
    Секция.Область().Расшифровка(БИ_01_1.Субконто(1)); 
    Таб.ВывестиСекцию(Секция);	
    КонецЦикла; 
    
    БалансоваяСтоимость = БИ_01_1.СНД();  
    ОстаточнаяСтоимость = БалансоваяСтоимость - НакопленнаяАмортизацияИтог;	
    <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/попытка')">Попытка			</span>
    НормаАмортОтчислений = (НакопленнаяАмортизация/БалансоваяСтоимость)*100;     
    Исключение
    НормаАмортОтчислений = "НЕ ОПРЕДЕЛЕНА!";
    КонецПопытки;
    
    Что не так? ЗАРАНЕЕ БЛАГОДАРЕН.

    Извиняюсь: вместо БИ_01_1.ВыполнитьЗапрос(НачДата,КонДата,"01.1");
    у меня конечно же
    БИ_01_1.ВыполнитьЗапрос(НачДата,КонДата,"01.1",,,,"Операция");

    ПОМОГИТЕ!!!!

    [warn=Уважаемый!] Вы не первый день на форуме - пора научиться использовать тэг
    Код:
    [/warn]
  2. Snake-84
    Offline

    Snake-84 Опытный в 1С

    Регистрация:
    28 янв 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    а не пробовал в запросе указывать детализацию "Операция"? :)
  3. Akulina
    Offline

    Akulina Опытный в 1С

    Регистрация:
    30 авг 2007
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Что-то мне не нравится вот это
    БИ_01_1.ИспользоватьСубконто(ВидыСубконто.ОсновныеСредства,?(ПустоеЗначение(ОС) = 0,ОС,ПолучитьПустоеЗначение()));

    Первое. Ведь если ОС не пустое, то надо указать тип фильтра 2 (по умолчанию 1).
    Второе. А если пустое, то получается, что итоги разворачиваются по пустому субконто?
  4. Snake-84
    Offline

    Snake-84 Опытный в 1С

    Регистрация:
    28 янв 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    Тут вроде все нормально: в ОСВ примерно так же запросы строятся, хотя по п.1 могут быть варианты, все зависит от циклов обработки итогов.
  5. TopicStarter Overlay
    X-Man
    Offline

    X-Man Опытный в 1С

    Регистрация:
    18 май 2007
    Сообщения:
    433
    Симпатии:
    3
    Баллы:
    29
    Согласен со Snake-84 по поводу фильра
    Я так и написал вроде:) Так в чем дело все-таки?

Поделиться этой страницей