:: Вопросы по 1С
Экспорт контрагентов из 1С в другое приложение
matod
Автор

Сообщений: 3062
Откуда: Иркутск
Дата регистрации: 31.10.2001
Возникла следующая задача: в организации стоит 1С предприятие 8.0 с базой на MS Sql сервере. Есть также небольшое приложение на VFP 9 с базой на mySQL, содержащее картотеку организаций. Пользователи приложения хотят, чтобы все контрагенты из БД 1С попадали в базу приложения с минимальным участием пользователя. В обратном направлении экспорт не нужен. Синхронизация уже добавленных (пока) не нужна. Т.е. главное, чтобы новые попадали из БД 1С в БД приложения.

По времени не критично, т.е. достаточно если они будут экспортироваться раз в несколько часов, но желательно, чтобы была возможность это сделать по команде от ответственного пользователя немедленно.

В приложении по каждой организации хранится следующая инфа:
1. Организационно-правовая форма (ОПФ: ООО, ЗАо и т.п.)
2. Полное название организации (без ОПФ) - не обязательное.
3. "Почтовое" название (с общепринятыми сокращениями и т.п.)
4. Адрес почтовый
5. Адрес юридический (если не совпадает с п. 4)
6. Телефоны (в виде текстового поля)
7. e-mail, web - адреса (в виде связанной таблички)
8. Информация о сотрудниках (ФИО, должность, телефон, e-mail)
9. Примечание

Поскольку с 1С практически не знаком, прошу помочь со следующими вопросами:

1. Какие из перечисленных выше показателей я могу вытащить из 1С и в каком виде (сплошной текст или какая-то более нормализованная структура).

2. Каким путем организовать экспорт:

2.1 Средствами 1С (Не желательно. Т.к. сам я туда даже близко
подходить не хочу. И не хотелось бы зависеть в данном вопросе от спеца по 1С.
Разве что такой путь будет гораздо проще всех остальных)

2.2 Средствами MS SQL. Но для этого мне надо будет знать как хранятся данные в бд 1С: таблицы, поля, есть ли какие-то особенности хранения, типа истории значений и т.п. - доступна ли такая информация и насколько сложно будет её освоить и применить.

2.3 На стороне mySQL. Мне этот вариант не очень нравится, т.к. тоже требует знания структуры БД 1С + плохо знаком с этим сервером и не уверен, что смогу сделать нужную ХП и запустить ее по расписанию.

2.4 Что-то еще...

3. Добавлять только новые записи. Ну, это в принципе понятно - в БД приложения можно хранить UID организации из 1С и при загрузке проверять.

Надо как обычно "вчера", сделать это надо просто и быстро. Хотя бы определиться с направлением. Буду рад предложениям, советам, а то в голове как-то целостная картина не выстраивается ...
Ratings: 0 negative/0 positive
Re: Экспорт контрагентов из 1С в другое приложение
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
1. Вытащить ты можешь всё, что захочешь
2. Придется разобраться или в каких таблицах на SQLе хранится инфа о контрагентах, или с объектной моделью эСки (там ничего сложного, интернет и БЖК тебе помогут)
3. Если будешь делать через OLE, то, соответственно, на машине, откуда будет идти синхронизация, должна стоять 1С


------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.




Исправлено 1 раз(а). Последнее : AleksM, 25.01.10 10:06
Ratings: 0 negative/0 positive
Re: Экспорт контрагентов из 1С в другое приложение
Serj

Сообщений: 335
Откуда: Новосибирск
Дата регистрации: 12.07.2005
matod
2.3 На стороне mySQL. Мне этот вариант не очень нравится, т.к. тоже требует знания структуры БД 1С + плохо знаком с этим сервером и не уверен, что смогу сделать нужную ХП и запустить ее по расписанию.
Да может быть, что ХП и не понадобится. Есть же команда LOAD DATA:
dev.mysql.com
Ratings: 0 negative/0 positive
Re: Экспорт контрагентов из 1С в другое приложение
oleg_km

Сообщений: 487
Откуда: СПб
Дата регистрации: 02.12.2002
matod
2.1 Средствами 1С (Не желательно. Т.к. сам я туда даже близко
подходить не хочу. И не хотелось бы зависеть в данном вопросе от спеца по 1С.
Разве что такой путь будет гораздо проще всех остальных)

Самый надежный способ. И если вы контачите с 1С, то азы 1С лучше знать, а для данной задачи достаточно азов. И вообще, у меня 1С-ники ваяют на VC++ COM-DLL, не поверю что фокспрошник не сможет осилить 1С
Ratings: 0 negative/0 positive
Re: Экспорт контрагентов из 1С в другое приложение
medstrax
Забанен

Сообщений: 5964
Дата регистрации: 23.03.2007
оле здесь зло.
с одной стороны выгружаем в хмл
с другой грузим.
оле неоправданные расходы
Ratings: 0 negative/0 positive
Re: Экспорт контрагентов из 1С в другое приложение
oleg_km

Сообщений: 487
Откуда: СПб
Дата регистрации: 02.12.2002
OLE не обязательно класть в XML. Что мешает реквизыты ссылки сразу подставлять в запрос на добавление MySQL. Просто мне кажется для человека, не знакомого с 1С еще неудобнее будет ковыряться в данных на SQL. Тем более 1С 8.0, насколько я помнь, под ней нет функции, отображающей, какие данные лежат в каких таблицах. Если задача очень статичная, то можно разок разобраться и гружить из MS SQL, но если конфигурация будет обновляться, то мне кажется лучше разобраться с 1С
Ratings: 0 negative/0 positive
Re: Экспорт контрагентов из 1С в другое приложение
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Я бы привернул еще один план обмена - что бы выгружать только измененных и новых контрагентов, одна обработка - если изверентесь - то писать можно напрямую на сервер или куда там надо. После выгрузки контрагента - сбрасывал флаг изменения плана обмена - и гоняйте его хоть каждый час - не вижу проблем - на 1С это можно написать достаточно быстро (или это мне теперь так кажется )


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Экспорт контрагентов из 1С в другое приложение
alw39

Сообщений: 17
Дата регистрации: 04.12.2009
Выгружать средствами 1с,вот примерная выгрузка в дбф
Дбф создана и ее поля соотверствуют структуре выгружаемых реквизитов справочника(строка,цифра,дата),не эабываем что некоторые реквизиты бывают переодическими их выгружать используя текущую дату см ЖКК
Процедура выгрузить()
ДБФ=СоздатьОбъект("XBase");
ДБФ.ОткрытьФайл("c:\xxxx.dbf",,0);
Если ДБФ.Открыта()=0 Тогда
Предупреждение("Не открыта БД");
Возврат;
КонецЕсли;
Контр=СоздатьОбъект("СправочникКонтроагенты");
Контр.ВыбратьЭлементы();
Пока Контр.ПолучитьЭлемент()=1 Цикл
ДБФ.Добавить();
//заполняем нужные поля
ДБФ.ххх=Контр.Наименование;
........................
........................
ДБФ.Записать();
КонецЦикла;
ДБФ.ЗакрытьФайл();
КонецПроцедуры
Ratings: 0 negative/0 positive
Re: Экспорт контрагентов из 1С в другое приложение
matod
Автор

Сообщений: 3062
Откуда: Иркутск
Дата регистрации: 31.10.2001
Всем спасибо за информацию.
По крайней мере возможные варианты обозначились. На следующей неделе буду пробовать...
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 1 (Гостей: 1)

© 2000-2024 Fox Club 
Яндекс.Метрика