Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Тематические форумы > Разработка расширений / TYPO3 extension development

Ответ
 
Опции темы Опции просмотра
Старый 02.03.2008, 18:12   #1
azukari
Новенький
 
Регистрация: 23.01.2007
Сообщений: 25
По умолчанию Интеграция с Typo3 (CommerceML, CML, XML, 1С)

Привет всем.

Немного истории

Потребовалось мне замутить интеграцию 1С и Тайпо3. Я поспрашивал среди ребят, как кто с этим сталкивался. Делом откликнулся Паша Антонов, подарил свой бэкенд модуль для обработки формата XML по стандарту CommerceML и внесения данных в базу, за что ему благодарность, уважение и их воплощение в виде моего интересного расширения. Теперь о главном.

Bodytext

Я начал адаптировать расширение к своим нуждам. Короче говоря, получился у меня модуль для внесения в БД Тайпо3 любого массива данных в формате XML.

Я бы хотел поделиться этим расширением с сообществом, дабы нам всем вместе сделать его более универсальным, богатым всякими возможностями и примочками. Что же мы имеем сейчас?

Расширение

Сейчас расширение представляет из себя be-модуль, который берет входящий файл XML и на основе админской конфигурации вносит изменения в БД. Рассмотрим, что же поддерживает модуль. Я буду говорить применительно к 1С, но это может быть любая программа, способная экспортировать данные в XML.

Поддерживается внесение нескольких таблиц с внешними ключами. То есть на основе внешних ключей можно создавать связи между таблицами.

Поддерживаются дополнительные ключи. Например, в 1С записи стыкуются по полю, скажем, xmlid. На основе полученных с помощью этого поля связей модуль проставляет соответствующие pid товарам на страницах.

Поддерживается еще вот такая фигня. Например есть в 1С таблица, которая в БД Тайпо3 не нужна. Но с ней есть связь, например, товаров и какому-то полю в таблице товаров следует задать значение определенного поля связанной записи во внешней таблице.

Поддерживается предпроцессинг существующих записей. Например, всем существующим записям, которым больше 1 месяца, проставить поле hidden=1, скрыть.

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

Поскольку мне достался нормальный такой XML на примерно 25 тыс. записей, его парсинг пришлось сделать поэтапным. То есть запускаешь модуль и он там шарашит и информаирует, что он сейчас конкретно делает.

Все действия держатся в сессиях и внутренних файлах. То есть если во время парсинга у вас вырубится интернет, ничего страшного - через пару минут (или через месяц) вы придете и продолжите работу. Возможно есть и другие решения например запуск cli-скрипта по крону или без крона.

Чего не хватает?

Не хватает гибкости предпроцессинга. Не хватает четкости в обслуживании сессий и временных файлов. Нет поддержки М-М отношений.

Что будем делать?

Будем фигачить. Для этого предлагаю воспользоваться ресурсом assembla.com, который предоставляет SVN, tickets, wiki и другие полезные в разработке сервисы.

Сейчас пытаюсь найти время чтобы залить модуль в SVN, дабы широкая общественность получила в нему доступ и соответственно попыталась улучшить ситуацию.

UPD

Я выложил версию xml_import

Проект
http://www.assembla.com/spaces/xml_import

SVN
http://svn2.assembla.com/svn/xml_import

На данный момент образец xml предоставить не могу, да и оригинальный не нужен такой - файл весит 11мб. Зато образец конфигурации лежит в doc/ Этот файл надо включить в localconf.php

Все желающие пишут сюда свои логины assembla и получают доступ на запись.

Последний раз редактировалось azukari; 29.03.2008 в 01:49
azukari вне форума   Ответить с цитированием
Старый 28.03.2008, 22:38   #2
filippoff
Senior Member
 
Аватар для filippoff
 
Регистрация: 22.01.2006
Адрес: Санкт-Петербург
Сообщений: 285
Отправить сообщение для filippoff с помощью ICQ Отправить сообщение для filippoff с помощью Skype™
По умолчанию

а как насчёт организации прямого взаимодествия typo3 с базой 1С?
filippoff вне форума   Ответить с цитированием
Старый 29.03.2008, 00:07   #3
azukari
Новенький
 
Регистрация: 23.01.2007
Сообщений: 25
По умолчанию

Цитата:
Сообщение от filippoff Посмотреть сообщение
а как насчёт организации прямого взаимодествия typo3 с базой 1С?
Посмотреть надо. Честно говоря по 1С даже по форматам экспорта материалов маловато. Ни примеров, ни человеческого объяснения, ни мануалов, нихрена. Не думаю, что с протоколами взаимодействия дела обстоят лучше.
azukari вне форума   Ответить с цитированием
Старый 29.03.2008, 00:21   #4
filippoff
Senior Member
 
Аватар для filippoff
 
Регистрация: 22.01.2006
Адрес: Санкт-Петербург
Сообщений: 285
Отправить сообщение для filippoff с помощью ICQ Отправить сообщение для filippoff с помощью Skype™
По умолчанию

ну, я примерно так и полагаю, что ничего не понятно.
просто как-раз всплыла примерно такая задача: предприятие работает на 1С, предполагается создание сайта на локальном сервере, на PostgreSQL.. местный системный администратор уверяет, что нет ничего проще, чем тягать данные прямо из существующей базы.. но меня терзают смутные сомнения. все решения, с которыми я сталкивался основаны именно на импорте экспортированных из 1С файлов, вряд ли все специально создают себе такие сложности.
filippoff вне форума   Ответить с цитированием
Старый 29.03.2008, 00:35   #5
azukari
Новенький
 
Регистрация: 23.01.2007
Сообщений: 25
По умолчанию

Цитата:
Сообщение от filippoff Посмотреть сообщение
ну, я примерно так и полагаю, что ничего не понятно.
просто как-раз всплыла примерно такая задача: предприятие работает на 1С, предполагается создание сайта на локальном сервере, на PostgreSQL.. местный системный администратор уверяет, что нет ничего проще, чем тягать данные прямо из существующей базы.. но меня терзают смутные сомнения. все решения, с которыми я сталкивался основаны именно на импорте экспортированных из 1С файлов, вряд ли все специально создают себе такие сложности.
А ну в принципе задача интересная. Это будет такой конкретный камень в огород битрикса.
azukari вне форума   Ответить с цитированием
Старый 29.03.2008, 01:21   #6
filippoff
Senior Member
 
Аватар для filippoff
 
Регистрация: 22.01.2006
Адрес: Санкт-Петербург
Сообщений: 285
Отправить сообщение для filippoff с помощью ICQ Отправить сообщение для filippoff с помощью Skype™
По умолчанию

пока не ясно даже в принципе как это всё будет выглядеть. typo3 на postgre вещь относительно нестандартная, да и о dbal у меня доволно смутные представления.
вообще, у 1С есть web-расширение, позволяющее как я понял, использовать данные базы на любом сайте. но документации я не нашёл, только общие слова.
filippoff вне форума   Ответить с цитированием
Старый 29.03.2008, 01:49   #7
azukari
Новенький
 
Регистрация: 23.01.2007
Сообщений: 25
По умолчанию

Я выложил версию xml_import

Проект
http://www.assembla.com/spaces/xml_import

SVN
http://svn2.assembla.com/svn/xml_import

На данный момент образец xml предоставить не могу, да и оригинальный не нужен такой - файл весит 11мб. Зато образец конфигурации лежит в doc/ Этот файл надо включить в localconf.php

Все желающие пишут сюда свои логины assembla и получают доступ на запись.
azukari вне форума   Ответить с цитированием
Старый 29.03.2008, 14:23   #8
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Цитата:
Сообщение от filippoff Посмотреть сообщение
пока не ясно даже в принципе как это всё будет выглядеть. typo3 на postgre вещь относительно нестандартная, да и о dbal у меня доволно смутные представления.
вообще, у 1С есть web-расширение, позволяющее как я понял, использовать данные базы на любом сайте. но документации я не нашёл, только общие слова.
Лучше решение было бы реализовать выгрузку/загрузку через Web-сервисы того же CommerceML.
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 29.03.2008, 15:20   #9
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Мой логин - voidus
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 29.03.2008, 19:38   #10
filippoff
Senior Member
 
Аватар для filippoff
 
Регистрация: 22.01.2006
Адрес: Санкт-Петербург
Сообщений: 285
Отправить сообщение для filippoff с помощью ICQ Отправить сообщение для filippoff с помощью Skype™
По умолчанию

Цитата:
Сообщение от Pavel Antonov Посмотреть сообщение
Лучше решение было бы реализовать выгрузку/загрузку через Web-сервисы того же CommerceML.
выгрузку - через файлы? речь шла о прямой работе с базой 1С предприятия. правда, я вижу реальную возможность делать только чтение, поскольку встаёт вопрос о проводках и прочих радостях.
filippoff вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
интеграция Typo3 и имеющегося flash шаблона PHWizard Работа и заказы / Job Offer and Request 0 12.01.2008 00:34
требуется интеграция html в TYPO3 lotus01 Работа и заказы / Job Offer and Request 0 23.10.2007 23:28
Есть ли в Typo3 интеграция с календарем Google? Manas Общие вопросы 2 05.06.2007 17:33
Интеграция шаблона в TYPO3? Limer =) Общие вопросы 0 20.01.2007 18:03
интеграция логина TYPO3 xt:Commerce Sazykin Работа и заказы / Job Offer and Request 2 10.12.2006 02:57


Часовой пояс GMT +4, время: 05:14.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория