Решено Lotus, mssql и 1с - что-то вроде интеграции

anna

Lotus team
03.06.2014
400
7
#1
Снова пофлеймить, товарищи. Вот здесь http://codeby.net/forum/threads/5834/page-3 пишут про интеграцию через xml, но что-то я не понимаю, о чем это?
А пока - нужно работать с одной табличкой в mssql. Пользуемся odbc. Все бы ничего, но почему-то из некоторых полей GetValue отдает неполные данные (вместо 4 символов - три). Это что такое приключилось?
 

alexas1

Lotus team
10.04.2014
723
144
#2
пишут про интеграцию через xml, но что-то я не понимаю
выгрузка из 1С подготовленного отчёта в XML и засасывание его в нотус с генерацией доков на его основании (тут вариантов море).
Как видно из техники, это полуавтомат. И не реалтайм.
отдает неполные данные (вместо 4 символов - три)
Эт ХЗ. Я строил свои (не одинэсные) таблички в MSSQL для обмена данными с нотусом реалтайм, проблем не наблюдалось (тоже одбц)
 

savl

Lotus team
28.10.2011
2 131
102
#3
пишут про интеграцию через xml, но что-то я не понимаю, о чем это?
В 1С делается скрипт для выгрузки данных в файл xml, куда-то.
Лотус читает этот файл и записывает данные в базу.

GetValue отдает неполные данные (вместо 4 символов - три)
Возможно идет обрезка из-за пробела или другого символа, который воспринимается как ненужный.

Если есть возможность, то посмотрите
Для просмотра контента необходимо: Войти или зарегистрироваться

еще вариант:
Lotus->SQL ->1с
Lotus<SQL <-1с
Если 1С уже sql, то можно дергать на прямую.

У меня для Excel стоит надстройка, открывать dbf как xls, так что можно попробовать через офис дергать прямо из базы.
Но на свой страх и рсик.
 

garrick

Lotus team
26.10.2009
894
61
#4
На сколько я помню, 1С не имеет определённой структуры данных. Таблицы и имена полей генерятся автоматически и могут отличатся на разных установках даже при одинаковой конфигурации 1С. Поэтому прямой доступ к БД 1С крайне нежелателен. Правильно говорят - надо через XML, причём в обе стороны, т.к. 1С тоже можно научить загружать XML, созданные в Lotus Notes.

По поводу трёх символов вместо четырёх тоже придерживаюсь мнения что там что-то лишнее после третьего символа, его не видно, но оно там есть и ODBC воспринимает это как конец строки.
 

alexas1

Lotus team
10.04.2014
723
144
#5
На сколько я помню, 1С не имеет определённой структуры данных.
1 Есть файл метаданных базы 1с. На его основе можно лепить вьюшки в сиквел автоматом (после каждого обновления) и получать через них реалтайм связку с нотусом.
2 Если винда - OLE и COM в помощь. Тоже реалтайм без всякого гемора.
XML, канеш, универсально но как-то не кошерно (хотя, смотря какая интеграция нужна). Имхо
 

anna

Lotus team
03.06.2014
400
7
#11
Оказывается, обрезается, потому что там тупо данные хранятся в nvarchar недостаточной длины - nvarchar(4) (а надо хранить 4 цифры :)), мсдн говорит, что нужно либо правильный тип данных ставить, либо добавлять 2 байта на специнформацию. %-)
Зато они там номер месяца торжественно хранят в поле nvarchar длиной 20 байт! Эх, молодцы!
Поскольку нам нужно только читать одну табличку.... да и не допроситься мне будет вебсервисов.
 

savl

Lotus team
28.10.2011
2 131
102
#12
@garrick, а нам не дали webService :(
делаем файликами xml , но в одну сторону.
Предусматривали sql шину для обмена, на mysql, но отдельный продукт не захотели брать.
 

alexas1

Lotus team
10.04.2014
723
144
#13
да и не допроситься мне будет вебсервисов.
??? достаточно опубликовать базу на любом веб сервере. И вуаля - можно её открыть в бровзере. 5 минут работы в конфигураторе (если веб сервер уже стоит)
 

alexas1

Lotus team
10.04.2014
723
144
#16
Да лехко. Из 1С в домино, и через OLE и, хоть, через веб. Я говорю, что инициатор подключения - 1С. К тому же трудно предположить, что ибм похерит виндовый клиент, а с него, как с посредника, всегда оле-коннект можно слабать, если говорить о инициаторе - нотус.
Но лучше добавить в базу 1с документ для обмена с нотусом, опубликовать её в веб, получить к этому доку хттп доступ из домино, так ващще работа макс. на день. Такшта, я за веб доступ к 1с из домино.