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

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 человек.
Рекламное место пустует