Имя: Пароль:
1C
1С v8
Интеграция 1С с iFOBS Document Integration Tool
0 rene_den
 
27.09.16
16:52
День добрый коллеги,
Столкнулся с проблемой. Нужно программно из 1С8 создать доки в клиентбанке. Есть DLL и описание к ней. С помощью нее через com соединение подключаемся и работаем с клиентбанком.
Из того что получилось:
ОбъектiFOBSDocIntegrator = Новый COMОбъект("iFOBSDocIntegrator.DocOperation");
        Результат = ОбъектiFOBSDocIntegrator.Login("***","***","***","D:\***_key\***_Cert\");

А теперь нужно выполнить функцию InsertDocs
function InsertDocs(const ADocList: WideString): WideString; safecall;
Пример XML-строки, передаваемой в качестве параметра функции InsertDocs:
<?xml version="1.0" encoding="windows-1251"?>
<ROWDATA>
    <ROW ROWNUM="1" DOCUMENTDATE="20051101" DOCUMENTNO="58" AMOUNT="10025" OURBANKID="351715" ACCOUNTNO="2600201071" CORRBANKID="351715" CORRACCOUNTNO="10018010911001" CORRIDENTIFYCODE="14350784" CORRCOUNTRYID="804" CORRSNAME="Наименование корресп." DETAILSOFPAYMENT="Назн. плат. в т.ч. НДС" PRIORITY="50 CURRENCYID="980">sign</ROW>
    <ROW ROWNUM="2" DOCUMENTDATE="20051102" DOCUMENTNO="59" AMOUNT="157600" OURBANKID="351715" ACCOUNTNO="2600201071" CORRBANKID="320724" CORRACCOUNTNO="26000052" CORRIDENTIFYCODE="14350784" CORRCOUNTRYID="804" CORRSNAME="Наименование корресп.2" DETAILSOFPAYMENT="Назначение платежа" PRIORITY="50" SRVID="18111" USER1="BUH1" USER2="BUH2" CURRENCYID="980">insert</ROW>
    <ROW ROWNUM="3" DOCUMENTDATE="20051101" DOCUMENTNO="60" AMOUNT="12500" OURBANKID="351715" ACCOUNTNO="2600203071" CORRBANKID="320724" CORRACCOUNTNO="26000051" CORRIDENTIFYCODE="9999" CORRCOUNTRYID="804" CORRSNAME="Наименование корресп.3" DETAILSOFPAYMENT="Назначение платежа" PRIORITY="50" SRVID="18113" USER1="BUH1" USER2="BUH2 CURRENCYID="980">sign</ROW>
</ROWDATA>

Только никак не могу даже представить как это сделать из 1С8.
1 rene_den
 
27.09.16
16:54
Функция InsertDocs, InsertFxDocs используется добавления новых документов. В качестве параметра в функцию передается список документов ADocList  (в формате XML), которые необходимо добавить. Внутри тэга <ROW .../> каждого документа должен быть указан текст с требуемой операцией: «sign» — подписания первой и второй подписью документа,  «sign1» — для подписания первой подписью документа,  «sign2» — для подписания второй подписью документа или «insert» для вставки документа без подписания (см. пример формата XML ниже).  В системе iFOBS осуществляется вставка документа осуществляется по уникальному идентификатору SRVID (значения остальных полей игнорируются). В качестве результата функции возвращается тот же список ADocList, с сообщениями о наложенных подписях или с текстом ошибки для каждого документа.    

Список документов находится в корневом тэге XML <ROWDATA>. Внутри него заключены тэги <ROW .../> с документами. Каждому документу соответствует строго один тэг <ROW .../>. Информация о реквизитах документа задается атрибутами этого тэга. Каждый документ может быть уникально идентифицирован в рамках системы по значению атрибута SRVID. Соответствие атрибутов реквизитам документа задано в таблице:приведена таблица с перечнем реквизитов(номер дока, дата дока и т.п.)
2 Кирпич
 
27.09.16
17:05
(0) ну так и пиши ОбъектiFOBSDocIntegrator.InsertDocs(ТекстДокументов)
3 Кирпич
 
27.09.16
17:06
аааа. подписывать надо...
4 rene_den
 
27.09.16
17:50
(3) ???
5 HardBall
 
27.09.16
18:08
(0) Чем тебе не нравится (2) .
Что конкретно не получается?
6 rene_den
 
27.09.16
18:14
В качестве параметра в функцию передается список документов ADocList  (в формате XML), которые необходимо добавить. Внутри тэга <ROW .../> каждого документа должен (из (1))
7 rene_den
 
27.09.16
18:17
(5) Или вы имеете в виду забить на (6) и просто тестом вот так и передавать: <ROWDATA>
    <ROW ROWNUM="1" DOCUMENTDATE="20051101" DOCUMENTNO="58" AMOUNT="10025" OURBANKID="351715" ACCOUNTNO="2600201071" CORRBANKID="351715" CORRACCOUNTNO="10018010911001" CORRIDENTIFYCODE="14350784" CORRCOUNTRYID="804" CORRSNAME="Наименование корресп." DETAILSOFPAYMENT="Назн. плат. в т.ч. НДС" PRIORITY="50 CURRENCYID="980">sign</ROW>
    <ROW ROWNUM="2" DOCUMENTDATE="20051102" DOCUMENTNO="59" AMOUNT="157600" OURBANKID="351715" ACCOUNTNO="2600201071" CORRBANKID="320724" CORRACCOUNTNO="26000052" CORRIDENTIFYCODE="14350784" CORRCOUNTRYID="804" CORRSNAME="Наименование корресп.2" DETAILSOFPAYMENT="Назначение платежа" PRIORITY="50" SRVID="18111" USER1="BUH1" USER2="BUH2" CURRENCYID="980">insert</ROW>
    <ROW ROWNUM="3" DOCUMENTDATE="20051101" DOCUMENTNO="60" AMOUNT="12500" OURBANKID="351715" ACCOUNTNO="2600203071" CORRBANKID="320724" CORRACCOUNTNO="26000051" CORRIDENTIFYCODE="9999" CORRCOUNTRYID="804" CORRSNAME="Наименование корресп.3" DETAILSOFPAYMENT="Назначение платежа" PRIORITY="50" SRVID="18113" USER1="BUH1" USER2="BUH2 CURRENCYID="980">sign</ROW>
</ROWDATA>
8 rene_den
 
28.09.16
15:34
Попробовал так:
        ВремТекст = "<?xml version=""1.0"" encoding=""windows-1251""?><ROWDATA><ROW ROWNUM=""1"" DOCUMENTDATE=""20051101"" DOCUMENTNO=""58"" AMOUNT=""10025"" OURBANKID=""351715"" ACCOUNTNO=""2600201071"" CORRBANKID=""351715"" CORRACCOUNTNO=""10018010911001"" CORRIDENTIFYCODE=""14350784"" CORRCOUNTRYID=""804"" CORRSNAME=""Наименование корресп."" DETAILSOFPAYMENT=""Назн. плат. в т.ч. НДС"" PRIORITY=""50 CURRENCYID=""980"">sign</ROW></ROWDATA>";
        РезInsertDocs = ОбъектiFOBSDocIntegrator.InsertDocs(ВремТекст);

Вообще 1С вылетает с ошибкой.
9 Кирпич
 
28.09.16
16:16
PRIORITY=""50

PRIORITY=""50""
10 rene_den
 
29.09.16
17:07
(9) тот же результат (((
11 rene_den
 
29.09.16
17:09
Я думаю проблема тут :"в качестве параметра в функцию передается список документов ADocList  (в формате XML), которые необходимо добавить."
вопрос как создать  "список документов ADocList  (в формате XML)"   в 1С?
12 Кирпич
 
29.09.16
17:20
где взять эту iFOBS Document Integration Tool?
13 rene_den
 
29.09.16
17:45
Могу кинуть на мыло. Но у тебя нет логина и пароля чтоб залогинится. Или ты ее раздебажить хочешь попробовать?
14 Кирпич
 
29.09.16
17:52
(13) "у тебя нет логина и пароля чтоб залогинится"
ну тогда не надо