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

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

Метки:

Ошибка: Поле агрегатного объекта не обнаружено [ПрямыеРасчеты]

Я
   mrdronru
 
17.11.04 - 09:37
Хелп!
У меня есть отчет (ERT) для экспорта платежек из 1С Версия 7.7 в Банк-Клиент. И этот отчет дает ошибку: Поле агрегатного объекта не обнаружено [ПрямыеРасчеты]
Как я понял объект РасчетныйСчет не имеет такого атрибута.
Как узнать про правильные атрибуты объекта РасчетныйСчет?
Есть ли такой атрибут [ПрямыеРасчеты?

На всякий случай ниже привел ключевые строчки отчета

Процедура Выполнить()
 
E=CreateObject("Evrolink.Application");
Док=CreateObject("Документ");
Док.ПолучитьДокумент()
docid=E.CreateDoc(doccode,"");
BeginTransaction();
E.SetDocField(docid,1,Док.НомерДок);
E.SetDocField(docid,5,Константа.НазваниеОрганизации);

В СЛЕДУЮЩЕЙ СТРОЧКЕ ОШИБКА: Поле агрегатного объекта не обнаружено [ПрямыеРасчеты]

Если Док.РасчетныйСчет.ПрямыеРасчеты=1 Тогда
     БанкПл=Док.РасчетныйСчет.Банк+" "+Док.РасчетныйСчет.ГородБанка;
...
Иначе
...
КонецЕсли;
 
E.SaveDoc(docid);
E.CloseDoc(docid);
CommitTransaction();
КонецПроцедуры
 
 
   laeg
 
1 - 17.11.04 - 09:51
А вид документя будет Дядя вася задавать ?
   laeg
 
2 - 17.11.04 - 09:56
+(1)
Нет такого аттрибута
Открыть пофигуратор и посмотреть, какие реквизиты есть у справочника РасчетныеСчета
   mrdronru
 
3 - 17.11.04 - 10:39
> А вид документя будет Дядя вася задавать?
Я же привел не весь отчет. Там вообще-то цикл в котором проверяется тип выбранного документа.

Процедура Выполнить()
 Док=CreateObject("Документ");
 Док.ВыбратьДокументы(Data1,Data2);
While Док.ПолучитьДокумент() = 1 do
   if Find("ПлатежноеПоручение",Док.Вид()) = 0 then
     Continue;
   endif;
   if (Flag = 1) and (Док.Проведен() = 1) then
     Continue;
   endif;

...

EndDo;
КонецПроцедуры
   mrdronru
 
4 - 17.11.04 - 10:42
> Нет такого аттрибута
> Открыть пофигуратор и посмотреть, какие реквизиты есть у справочника
> РасчетныеСчета
Конечно такого нет.
Если я приведу весь код это будет наглость. дело в том, что к 1С я только приступил. И мне отнего только и нужно, чтобы этот отчет заработал. Возможно, что я никогла больше и не столкнусь с 1С.
   mrdronru
 
5 - 17.11.04 - 10:43
Фраза "Если я приведу весь код это будет наглость." из предыдущего поста это вопрос :)
   wolk
 
6 - 17.11.04 - 10:45
(5) - приводи весь. Кстати, писать в 1С на английском - это очень плохой тон. Очень, больше никогда так не делай.
   GrayT
 
7 - 17.11.04 - 10:51
(6)Раскажи это Питу, а то он такой невоспитанный
   GrayT
 
8 - 17.11.04 - 10:57
(0)Какая у тебя конфа и откуда у тебя этот отчет?
1. Возможно отчет писася под измененную конфу - в стандартной бухне нет реквизита ПрямыеРасчеты у спр.БанковскиеСчета
2. Незаполненный правильно документ
   mrdronru
 
9 - 17.11.04 - 11:17
> Очень, больше никогда так не делай.
Этот отчет нам попал вместе с системой Клиент-Банк для экспорта платежек из 1С.
Система КБ древняя как DOS и программистов, писавших ее уже нет. Поэтому в банке разводят руками - пишите сами.


> приводи весь.

Процедура ПриОткрытии()
 Data1=НачалоПериодаБИ();
 Data2=КонецПериодаБИ();
 Flag=1;
КонецПроцедуры

Процедура LogMsg(txt)
 LogMessageWrite(txt);
 Message(txt);
КонецПроцедуры

Функция ФормирСуммаНДС(Дк,Подст)
 СтрПодст="";
    СтрСумма="";
 СтрНДС="";
 СтрКон="";
 Номер=Подст.ПорядковыйНомер();
 Если (Номер=1) ИЛИ (Номер=3) Тогда
     СтрСумма="Сумма "+СокрЛ(Формат(Дк.Сумма,"Ч15.2-"));
 КонецЕсли;
 Если (Номер=1) ИЛИ (Номер=2) Тогда
  Если Дк.НДС=0 Тогда
   СтрНДС=", без налога (НДС)";
  Иначе
   СтрНДС=", в т.ч. НДС("+Дк.СтавкаНДС+"%) "+СокрЛ(Формат(Дк.НДС,"Ч15.2-"));
  КонецЕсли;
 КонецЕсли;
 СтрПодст=СтрСумма+СтрНДС;
 Если ПустаяСтрока(СтрПодст)=0 Тогда
  СтрПодст=СтрПодст+"."
 КонецЕсли;
 Возврат СтрПодст;
КонецФункции

Процедура Выполнить()
 LogMsg("Начало экспорта П/Поручений в Евролинк");
 E=CreateObject("Evrolink.Application");
 E.LogMsg("Начало импорта П/Поручений из 1С:Бухгалтерии");
 Док=CreateObject("Документ");
 Док.ВыбратьДокументы(Data1,Data2);
 While Док.ПолучитьДокумент() = 1 do
 //Проверка вида документа

   if Find("ПлатежноеПоручение",Док.Вид()) = 0 then
     Continue;
   endif;
 //Проверка проведения

   if (Flag = 1) and (Док.Проведен() = 1) then
     Continue;
   endif;
   doccode=16;
   if Find(Док.ВидПлатежа,"телеграфом") <> 0 then
    doccode=17;
   else if Find(Док.ВидПлатежа,"электронно") <> 0 then
      doccode=18;
    endif;
   endif;
   docid=E.CreateDoc(doccode,"");
  if docid = 0 then
   Предупреждение("Ошибка при проведении документа! Проверте текущую среду
в БанкКлиенте!");
    break;
   endif;
   BeginTransaction();
   E.SetDocField(docid,1,Док.НомерДок);
   dd=StrReplace(Формат(Док.ДатаДок,"ДДММГГ"),".","");
   if Strlen(dd) > 6 then
     dd=Mid(dd,1,4)+Mid(dd,7,2);
   endif;
   E.SetDocField(docid,2,dd);
   dd=StrReplace(Формат(Док.СрокПлатежа,"ДДММГГ"),".","");
   if Strlen(dd) > 6 then
     dd=Mid(dd,1,4)+Mid(dd,7,2);
   endif;
   E.SetDocField(docid,3,dd);
   E.SetDocField(docid,4,Док.Очередность);
   E.SetDocField(docid,5,Константа.НазваниеОрганизации);

   Если Док.РасчетныйСчет.ПрямыеРасчеты=1 Тогда
    БанкПл=Док.РасчетныйСчет.Банк+" "+Док.РасчетныйСчет.ГородБанка;
    БикПл=Док.РасчетныйСчет.БИКБанка;
    КСПл=Док.РасчетныйСчет.КоррСчетБанка;
   Иначе
  БанкПл=Док.РасчетныйСчет.БанкРасчетный+"
"+Док.РасчетныйСчет.ГородБанкаРасчетного;
  БикПл=Док.РасчетныйСчет.БИКБанкаРасчетного;
    КСПл=Док.РасчетныйСчет.КоррСчетБанкаРасчетного;
   КонецЕсли;

   E.SetDocField(docid,6,БанкПл);
   E.SetDocField(docid,7,БикПл);
   E.SetDocField(docid,8,Док.РасчетныйСчет.Номер);
   E.SetDocField(docid,9,КСПл);
   E.SetDocField(docid,10,Константа.ИННОрганизации);
   E.SetDocField(docid,11,Формат(Док.Сумма,"Ч15.2"));
   E.SetDocField(docid,12,"RUR");
   E.SetDocField(docid,13,Док.Контрагент.ПолнНаименование);

   Если Док.СчетКонтрагента.ПрямыеРасчеты=1 Тогда
    БанкПол=Док.СчетКонтрагента.Банк+" "+Док.СчетКонтрагента.ГородБанка;
    БикПол=Док.СчетКонтрагента.БИКБанка;
 КС=Док.СчетКонтрагента.КоррСчетБанка;
   Иначе
  БанкПол=Док.СчетКонтрагента.БанкРасчетный+"
"+Док.СчетКонтрагента.ГородБанкаРасчетного;
  БикПол=Док.СчетКонтрагента.БИКБанкаРасчетного;
    КС=Док.СчетКонтрагента.КоррСчетБанкаРасчетного;
   КонецЕсли;


   СтрСуммаНДС=TrimAll(Док.Содержание)+"
"+TrimAll(ФормирСуммаНДС(Док,Док.АвтоПодстСуммыНДС));

   E.SetDocField(docid,14,БанкПол);
   E.SetDocField(docid,15,БикПол);
   E.SetDocField(docid,16,Формат(Док.СчетКонтрагента,"Sn"));

   E.SetDocField(docid,17,КС);
   E.SetDocField(docid,18,Док.Контрагент.ИНН);
   E.SetDocField(docid,19,Формат(Док.Сумма,"ЧПДС"));
   E.SetDocField(docid,20,СтрСуммаНДС);

   E.SignDoc(docid,"","");
   E.SignDoc(docid,"","");

   E.SaveDoc(docid);
   E.CloseDoc(docid);
   Док.Провести();
   if Док.Проведен() = 1 then
    CommitTransaction();
   else
    Предупреждение("Ошибка при проведении документа!");
    RollBackTransaction();
    break;
   endif;
   msg="П/Поручение N"+TrimAll(Док.НомерДок)+"
Получатель:"+Док.Контрагент.ПолнНаименование;
   E.LogMsg(msg);
   LogMsg(msg);
 EndDo;
 E.LogMsg("Конец импорта П/Поручений из 1С:Бухгалтерии");
 LogMsg("Конец экспорта П/Поручений в БанкКлиент");
 DoMessageBox("Обработка закончена!");
КонецПроцедуры
   GrayT
 
10 - 17.11.04 - 11:20
Ответь на 8
 
  Рекламное место пустует
   mrdronru
 
11 - 17.11.04 - 12:15
(0)Какая у тебя конфа и откуда у тебя этот отчет?
Как я уже написал этот отчет нам попал вместе с системой Клиент-Банк для экспорта платежек из 1С. Конфигурация 1С для НКО (некомерческих орг-ций).

1. Возможно отчет писася под измененную конфу - в стандартной бухне нет реквизита ПрямыеРасчеты у спр.БанковскиеСчета.

Как я уже понял отчет вообще писался непонятно подо что.

2. Незаполненный правильно документ.

Документы правильные.


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