Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Поле агрегатного объекта не обнаружено
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
wmatik
Ситуация в следующем, необходимо в отчет вывести данные из документа "Банковская выписка", следующие реквизиты: Контрагент, Сумму и Сумма должна переводиться в национальную валюту. Я придумала следующую схему для перевода валюты, в документе есть Текст в котором отображается Валюта, вытягивать оттуда валюту, не важно по коду или кратному сокращению, но когда я вначале решила просто вывести колонку с Кодом Валюты выдается ошибка "Поле агрегатного объекта не обнаружено (Валюта)":
//*******************************************
Процедура Сформировать()
    Док = СоздатьОбъект("Документ.БанковскаяВыписка");    
    ТЗ = СоздатьОбъект("ТаблицаЗначений");  
    ТЗ.НоваяКолонка("Контрагент");
    ТЗ.НоваяКолонка("Сумма");
    ТЗ.НоваяКолонка("ВидыЗатрат");
    ТЗ.НоваяКолонка("Валюта");
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Таб.ВывестиСекцию("Шапка");
    Если Док.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода) = 0 Тогда
        Таб.Показать();
        Возврат;
    КонецЕсли;      
        Номер = 0;
    Пока Док.ПолучитьДокумент() = 1 Цикл    
        //Сообщить(Док.Валюта.Кратко);    

        Док.ВыбратьСтроки();
        Пока Док.ПолучитьСтроку() = 1 Цикл
            Если (ПустоеЗначение(ВыбКод) = 0)и((Лев(СокрЛП(Док.ВидыЗатрат),СтрДлина(СокрЛП(ВыбКод))) <> СокрЛП(ВыбКод))или(СтрДлина(СокрЛП(ВыбКод))>СтрДлина(СокрЛП(Док.ВидыЗатрат)))) Тогда
                Продолжить;
            КонецЕсли;  
               Если ПустоеЗначение(Док.Субконто1) = 1 Тогда
                Продолжить;
            КонецЕсли;  
            Если Док.Проведен() = 0 Тогда
                Продолжить;
            КонецЕсли;    
            Если ПустоеЗначение(Док.РСчет) = 1 Тогда
                Продолжить;
            КонецЕсли;

            ТЗ.НоваяСтрока();
            ТЗ.Контрагент = Док.Субконто1;
                        Сообщить(Док.Валюта.Код);
            ТЗ.Валюта = Док.Валюта.Код;
            ТЗ.Сумма = Док.СуммаСНДС;        
        КонецЦикла;
        Если ТЗ.КоличествоСтрок() = 0 Тогда
            Продолжить;
        КонецЕсли;    
    КонецЦикла;

    ТЗ.Свернуть("Контрагент", "Сумма");     //Суммирование значений у повторяющихся контрагентов

    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку() = 1 Цикл

        Номер = Номер + 1;
        Таб.ВывестиСекцию("Строка");
        Итого = Итого + ТЗ.Сумма;
    КонецЦикла;  
    ТЗ.УдалитьСтроки();    
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры

Подскажите пожалуйста почему не выводится валюта? Причем через сообщить все верно выводится
Vofka
На какой строке ругается?
wmatik
ругается на всех строках, когда выводятся контрагенты, но когда из цикла по строкам убираю все равно ругается
Cthulhu
1) "на все строках" - ответ странный и неправильный.
2) после свертки ТЗ колонка "Валюта" в ней отсутствут - и именно по свернутой ТЗ в отчет выводится секция "Строка". ни на какие мысли не наталкивает?
3) на всякий случай универсальное правило при формировании таблицы отчета: если сообщение об ошибке выводится, но формирование отчета не прерывается - значит сообщения об ошибках вызваны вычислением значений в ячейках (или в расшифровках) шаблона таблицы при их выводе.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.