Вход | Регистрация

1С:Предприятие ::

Метки:Приемы программирования

БИ+ТЗ = Проблема

Я
   Sveta
 
24.08.04 - 07:55
Помогите разобраться вылетает с вот такой ошибкой в отчете:

ТЗ.Дог=БИ.Субконто(ВидыСубконто.Договоры);
{F:\33.ERT(44)}: Поле агрегатного объекта не обнаружено (Дог)

Помогите разобраться в чем проблема!

Текст Модуля:
________________________________________________________________________________

Процедура Сформировать()
    Перем ТЗ,ТЗ2;
    Сч622=СчетПоКоду("62.2");
    Сч621=СчетПоКоду("62.1");
    ДатаОп=?(КонМес=1,КонМесяца(ДатаЗач),ДатаЗач);
    
    Операция=СоздатьОбъект("Операция");
    БИ=СоздатьОбъект("БухгалтерскиеИтоги");
    
    БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
    БИ.ИспользоватьСубконто(ВидыСубконто.Договоры);
    БИ.ВыполнитьЗапрос(,ДатаОп,"62.1, 62.2");
    
    ТЗ=СоздатьОбъект("ТаблицаЗначений");
    ТЗ.НоваяКолонка("Дог","ВидыСубконто.Договоры",,,"Договор");
    ТЗ.НоваяКолонка("Сумма", "Число", 18, 2, "Сумма", 20);
    
    ТЗ2=СоздатьОбъект("ТаблицаЗначений");
    ТЗ2.НоваяКолонка("Дог2","ВидыСубконто.Договоры",,,"Договор");
    ТЗ2.НоваяКолонка("Сумма2", "Число", 18, 2, "Сумма", 20);
    
    Операция.Новая();
    Операция.ДатаОперации=ДатаОп;
    Операция.Содержание="Зачет аванса покупателей на "+ДатаОп;
    
       БИ.ВыбратьСубконто(ВидыСубконто.Контрагенты);
    Пока БИ.ПолучитьСубконто(ВидыСубконто.Контрагенты)=1  Цикл
        Итог1=0;
        Итог2=0;
        БИ.ВыбратьСубконто(ВидыСубконто.Договоры,,,,,,1);
        Пока БИ.ПолучитьСубконто(ВидыСубконто.Договоры)=1 Цикл
            
            БИ.ВыбратьСчета();
            Пока БИ.ПолучитьСчет()=1 Цикл
                Если БИ.Счет=Сч621 Тогда
                    ТЗ.НоваяСтрока();
    Вылетает здесь    >>        ТЗ.Дог=БИ.Субконто(ВидыСубконто.Договоры);
                    ТЗ.Сумма=БИ.СКД("С");
                    Итог1=Итог1+БИ.СКД("С");
                ИначеЕсли БИ.Счет=Сч622 Тогда
                    ТЗ2.НоваяСтрока();
    или здесь    >>        ТЗ2.Дог2=БИ.Субконто(ВидыСубконто.Договоры);
                    ТЗ2.Сумма2=БИ.СКК("С");
                    Итог2=Итог2+БИ.СКК("С");
                КонецЕсли;
            КонецЦикла;
        КонецЦикла;
        
        Если ((Итог1<>0) И (Итог2<>0)) Тогда
            ТЗ.ВыбратьСтроки();
            Пока ТЗ.ПолучитьСтроку()=1 Цикл
                ТЗ2.ВыбратьСтроки();
                Пока ТЗ2.ПолучитьСтроку()=1 Цикл
                    
                    Если (ТЗ.Сумма<>0) И (ТЗ2.Сумма2<>0) Тогда
                        МинСум=Мин(ТЗ.Сумма,ТЗ2.Сумма2);
                       //Сообщить(БИ.Субконто(1).Наименование+"/ "+ТАБ2.Договор2.Наименование+" | "+ТАБ.Договор3+"/ "+МинСум);

                        Операция.НоваяПроводка();
                        Операция.Дебет.Счет=Сч622;
                        Операция.Дебет.Контрагенты=БИ.Субконто(1);
                        Операция.Кредит.Договоры=ТЗ2.Дог2;
                        Операция.Кредит.Счет=Сч621;
                        Операция.Кредит.Контрагенты=БИ.Субконто(1);
                        Операция.Кредит.Договоры=ТЗ.Дог;
                        Операция.Сумма=МинСум;
                        Операция.СодержаниеПроводки="Зачет аванса "+БИ.Субконто(1).Наименование+" по "+ТЗ.Дог.Наименование;
                        ТЗ.Сумма=ТЗ.Сумма-МинСум;
                    КонецЕсли;
                    
                    Если ТЗ.Сумма=0 Тогда
                        Прервать;
                    КонецЕсли;
                    
                КонецЦикла;
                
            КонецЦикла;
            
        КонецЕсли;
        
        ТЗ.Очистить();
        ТЗ2.Очистить();
    КонецЦикла;
    Операция.Записать();
КонецПроцедуры
______________________________________________________________________
Заранее спасибо...
 
  Рекламное место пустует
   laeg
 
1 - 24.08.04 - 09:10
Бывает ....

ТЗ.Очистить();
ТЗ2.Очистить();

Смысл этих строчек ??? Может лучше ТЗ.УдалитьСтроки() ???
   Sveta
 
2 - 24.08.04 - 09:19
Пробовал по другому... Все равно в ТЗ второе субконто (договоры) сохранять не хочет...
   Sveta
 
3 - 24.08.04 - 09:31
Все дошло... Я очищала структуру таблицы вместо того чтобы удалять строки...
Спрасибо большое...
   laeg
 
4 - 24.08.04 - 09:34
Намыль обработку, посмотрю на базе.
   laeg
 
5 - 24.08.04 - 09:34
Ну вот ... я же написал тебе в (1)


Список тем форума
  Рекламное место пустует
Здесь во втором сообщении вам дадут решение, а в двадцатом дадут правильное решение. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует