Такого еще никогда не было, и снова то же самое.Теги: #биржа 1С и Битрикс #программирование 1С #сайты на битрикс #фриланс #разработка сайтов #1С-БитриксПРОТИВ.
Черномырдин.
Об обмене данными между программными продуктами семейства 1С и сайтами Битрикс я уже рассказывал в статье.
Интеграция программного обеспечения.
Описание процесса от бизнес-консультанта.
Но тогда я говорил исключительно об общих принципах работы.
В другой статья Я писал о проблемах 1С и Битрикс.
Сегодня я постараюсь не просто описать проблему интеграции сайтов на Битрикс и программных продуктах 1С, но подробно расскажу о возможных подводных камнях, с которыми сталкиваются специалисты, опишу конкретные проблемы, а также возможные пути их решения.Я уже не раз говорил, что программные продукты семейства 1С характеризуются большим количеством ошибок и требуют регулярных обновлений, но после их установки очень часто приходится перенастраивать конфигурацию, а также все плагины, надстройки и обмен данными с другими компонентами, программами, системами.
Не так давно ко мне обратился клиент, представитель веб-студии, именно с такой проблемой.
Вот как выглядело его предложение о сотрудничестве:
Привет! Нам необходимо срочно выполнить синхронизацию сайта и 1С, а точнее загрузить на сайт товары, цены и фото из 1С 8.3 (последней версии).Как и многие коллеги, я тоже зарегистрирован на биржах фриланса, поэтому такие запросы меня не удивляют. У меня было свободное время.Помощь нужна срочно, если вы свободны, напишите мне, как с вами связаться, чтобы рассказать о проблеме подробнее.
заранее спасибо
И хотя этот запрос поступил далеко за полночь, я все же решил взяться за эту задачу.
Как я и предполагал, сайт оказался на Битриксе.
Заказчик предоставил мне удаленный доступ, изложил суть проблемы и я приступил к работе.
Итак, исходные данные следующие:
- Есть 1С Управление торговлей.
По словам клиента - последняя версия
- Интеграция перестала работать.
Сразу после обновлений.
- Клиент утверждал, что он полностью обновился.
- Битрикс последняя версия.
- Что делать?! Все потеряно
Первый шаг.
Версия конфигурации Первое, что я всегда делаю, это проверяю информацию, которую мне предоставляет клиент. А в случае с 1С я обязательно проверяю актуальную версию сам.
В данном случае релиз текущей конфигурации оказался 11.1.9.5. Это означало, что конфигурация не обновилась, версия не последний .
Естественно, я сообщил об этой ошибке клиенту, после чего установил обновления сам.
Конфигурация обновлена.
Интеграция никогда не работала.
При работе с 1С всегда перепроверяйте версию и конфигурацию платформы! Это очень важно! Напомню, что в Trade Management 11 заявлен стандартный модуль обмена данными между УТ.
11 и Битрикс.
Это стандартный встроенный модуль, который должен работать без каких-либо дополнительных настроек.
Но в моем случае после обновлений все равно не заработало.
Когда я начал обмен, ничего просто не произошло.
Шаг второй.
Проверка платформы Затем я проверил версию платформы.
В принципе, стоит сразу проверить.
Лично я советую вам всегда самостоятельно проверять релизы, платформы и конфигурации.
Это настолько важно, что я не боюсь написать об этом еще раз.
Проверяйте актуальность всех выпусков самостоятельно! В моем случае с платформой все было хорошо, релиз был последний, номер 8.3.5.1248, который вышел 31.10.14. (кстати, пока я писал эту статью, вышло еще одно обновление платформы).
Итак, версии платформы и конфигурации в порядке, но обмен не работает. Казалось бы, дальше нужно просто проверить модуль на стороне Битрикса.
Но, как показала практика, чтобы узнать, какой модуль поддерживает обмен от Битрикс, нужно выполнить целый квест. Но не будем забегать вперед. Как и обещал, подробно и по порядку рассказываю, что я делал, как делал и какие решения нашел.
Шаг третий.
Проверка целостности базы данных Итак, первое, что я сделал, это зашёл на сайт Битрикс.
Я зашёл на следующую страницу: http://1c.1c-bitrix.ru/ecommerce/download.php Из представленной там таблицы я сделал вывод, что моя конфигурация в точности соответствует версии модуля обмена.
Как и многие коллеги, попавшие в подобную ситуацию, я обратился за помощью к Интернету.
На одном из форумов (mista.ru) я нашел информацию о том, что если не работает один из видов обмена, то из списка возможных проблем необходимо обязательно исключить нарушение целостности структуры базы данных.
Для выполнения этого действия в 1С есть встроенный инструмент: тестирование и исправление базы данных.
Итак, программой 1С была проведена большая работа и довольно продолжительное время, так как в данном случае база данных была файловой, многие ошибки были исправлены.
Общее время тестирования и коррекции составляет 40 минут. Конечно, нам пришлось долго ждать.
Но всему когда-нибудь приходит конец.
И вот после тестирования запускаем биржу с надеждой на лучшее.
Опять нет результатов.
Шаг четвертый.
Спецмодуль: поможет ли альтернативное решение? После того, как проверка базы не помогла, я вспомнил, что тоже читал на одном из форумов, что один из специалистов Битрикса установил специальный модуль обмена и рекомендовал его всем.
Хорошо.
Я также зашёл в интернет, чтобы поискать этот модуль и выяснить, зачем он нужен.
Я нашел только одну релизную версию этого модуля, предназначенную для версии 4.0.5.1. Подумал, все равно решил попробовать и скачал этот модуль интеграции.
При скачивании я заметил, что версия этого файла на моем сайте далеко не первая.
Мой файл после скачивания назывался так: 4.0.5.1_UT_11.1.2(3).
zip Вот и получается, что я как минимум четвертый человек, который попытался решить эту проблему и скачал этот модуль.
Потом я все равно установил этот модуль.
В архиве к нему идет небольшая брошюра, которая оказалась очень полезной.
Но сама версия файла не давала мне покоя.
И я решил спросить у клиента, какой у меня номер счета? В ответ я услышал, что я уже 5-й или 6-й специалист, который пытается решить эту проблему.
У меня уже есть интерес к спорту.
Обратите внимание: прошло уже больше часа с тех пор, как я начал решать, казалось бы, простую задачу, но задача до сих пор не только не решена, но и пути ее решения до сих пор не определены.
Но все же я установил модуль, который уже устанавливали другие специалисты, чтобы посмотреть, что будет с загрузкой.
Первое, что я увидел, это явные отличия модуля от стандартного варианта обмена от 1С, который должен работать.
Работать с непривычным интерфейсом было очень неудобно.
Более того, все эти действия не принесли никакой пользы.Проверьте версию модуля обмена данными 1С и Битрикс.
Их может быть одновременно несколько: несколько версий, а также несколько разных конфигураций.
После попытки установки дополнительного модуля я заметил следующее сообщение вверху экрана:
Прочитав эту надпись, я подумал, что это последняя, новейшая конфигурация.Но это была моя ошибка.
Только позже я понял, что есть более свежая версия и где ее скачать.
Кроме того, нужно внимательно следить за выбором модуля.
Лично меня сначала смутили вот эти модули для России:
В общем, что я получил в результате всех действий и проверок:Вот как получается трюк.
- Есть стандартный обмен, который заходит в 1С.
Он не работает.
- Есть модуль обмена данными «Для России».
Это тоже не сработало.
- Внизу находится еще один обменный модуль.
Но это тоже не работает.
Есть много разных модулей, но ни один из них работать не хочет. Что еще меня смутило.
Если нажать кнопку «Требования к 1С», то вы увидите следующую таблицу: 1c.1c-bitrix.ru/ecommerce/require_1C.php
Здесь вам тоже придется гадать, что и как скачать.
Новый модуль обмена: особенности установки
Итак, я все-таки скачал новый модуль обмена и внедрил его в Управление торговлей.Естественно, при этом я снял конфигурацию с поддержки.
Как ни странно, но факт: Казалось бы, дополнения созданы специалистами 1С для программных продуктов 1С, но конфигурацию необходимо снять с поддержки.
Для пользователя это означает, что обновления не будут происходить стандартным способом.
При этом на сайте и в документации встречаются предупреждения, которые могут вас даже напугать.
Не забывают напомнить, что если вы допустите какую-либо ошибку, конфигурация может вообще перестать работать.
Не забудьте сделать Бэкап! Обязательно делайте резервные копии любых изменений, так как конфигурация может перестать работать на любом этапе: при обновлении, при внедрении модуля, при выгрузочном тестировании.
В общем, лучше получить лишний Бэкап, чем лишние проблемы.
Итак, я внедрил новый модуль, все проверил, все сделал аккуратно и аккуратно.
Как результат - обмен не работает .
Появляется следующая ошибка:
Неустранимая ошибка Ошибка при выполнении POST-запроса к ресурсу /e1cib/logForm: из-за: Ошибка СУБД: Ошибка SQL: несовместимые типы в выражении из-за: Ошибка SQL: несовместимые типы в выраженииЧто это значит? Что говорит эта информация? Я не понял.Сначала я решил посмотреть на отладчик.
Я потратил около получаса на поиск этой ошибки и вообще ничего не нашел.
Честно говоря, тогда у меня закрались сомнения, что я вообще смогу справиться с задачей.
Я пошел искать дополнительную информацию по этой теме.
И я нашел форум, где наткнулся на эту тему: http://dev.1c-bitrix.ru/community/forums/forum26/topic19114/ЭPAGEN_1=65 Информацию об ошибке я успешно нашел на 65 странице темы.
Ответ модераторов был следующим.Дали ссылку на другую тему, и объяснили, что решение этой проблемы уже есть и по этой теме тоже можно найти много интересного.
Я конечно перешел по ссылке от модераторов и там уже узнал, что проблема в платформе.Разработчик написал по этому поводу следующее:
Наш модуль обмена на данный момент несовместим с платформой 8.3.5.1248. Похоже, в этой платформе поменяли что-то нехорошее.Что это значит? Администратор сайта 1С Битрикс практически признал, что ошибка была в платформе 1С.Для того, чтобы модуль заработал необходимо заменить строки кода: |КОГДА OptionsConfigurationNomenclatureProducts.Characteristic IS NULL |ТО """" На |КОГДА OptionsConfigurationNomenclatureProducts.Characteristic IS NULL |ТО НЕ ОПРЕДЕЛЕНО Соответствующие изменения будут внесены в следующей версии модуля.
После того, как я нашел эту информацию, ошибка была исправлена и обмен в целом заработал.
Но конкретно всё не так.
При выгрузке мы обнаружили, что фото и номенклатура перенеслись, а цены нет. К счастью, я уже знал, что делать с этой проблемой.
На стороне Битрикса, хоть он и не работает при обмене, нужно внести одно изменение, а именно в справочнике цен поставить галочку «Доступно внешним пользователям».
Тоже странный недостаток, я считаю.
Почему-то в документации об этом нюансе не написано ни слова.
И в свое время я искал решение этой проблемы аналогичным методом, т.е.
на ощупь.
Что произошло в конце?
Проблема была успешно решена.Мы с клиентом все настроили, обмен данными стал работать как надо.
Работали на стороне 1С, специалист Битрикс на своей стороне настроил работу с данными.
В итоге на это ушло 3 часа кропотливой работы.
Как было проведено это время?
Каждое действие требует определенного количества времени.Обновления занимают от 10 до 15 минут, индексирование и исправление базы - 40 минут, каждая попытка обмена - от 15 до 18 минут (если проводить полный обмен).
В результате мы потратили много времени на перенастройку того, что работало идеально, прежде чем обновить конфигурацию и платформу 1С.
выводы
Основываясь на собственном опыте, а также на основе внимательного прочтения той же ветки форума с проблемами интеграции и их решениями, я сделал следующие выводы:После того, как я разобрался со всеми нюансами, которые перечислил в пункте 2, мне удалось справиться с проблемой восстановления обмена данными.
- Битрикс никак или плохо взаимодействует с фирмой 1С.
Надпись 1С Битрикс ничего не означает, кроме того, что у этих программных продуктов общие владельцы.
- Настройка, казалось бы, стандартной биржи требует немалых усилий, и всегда есть риск нарваться на ошибки с непредсказуемой стороны.
Те.
При обновлении нужно очень четко понимать, какая конфигурация используется, платформа, какая версия модуля используется, а также нужно проверить, нет ли ошибок по этому модулю.
И еще кое-что интересное из моего личного опыта
Сейчас я работаю над другим проектом и тоже столкнулся с интересной ситуацией.За интеграцию сайта со стороны 1С отвечаем я и специалисты, с которыми я сотрудничаю, а со стороны Битрикс работает сторонний специалист. В принципе мы с самого начала договорились, что нам напишут отдельную загрузку для 1С.
Но в ходе работы специалисты Битрикса сообщили нам, что выполнить данное соглашение невозможно и предложили воспользоваться стандартным обменом.
Что происходит в итоге: Нам необходимо загрузить справочники и модифицированные нами данные в стандартном виде.
Таким образом, мы имеем очевидное противоречие.
Конечно, мы обязательно решим проблему и в этот, и в следующий раз.
Здесь важно понимать, что подобные совпадения и противоречия — постоянные спутники всех, кто занимается интеграцией 1С и Битрикс.
Если вы решили использовать стандартный обмен
Первое, что вам нужно понять, это то, что предлагаемый вам обмен универсален, а значит и сам модуль очень сложен.Более того, даже на этой странице v8.1c.ru/edi/edi_stnd/90/92.htm вы увидите, что существует несколько версий этой биржи, и они регулярно меняются.
И чтобы полностью настроить работу такой биржи, а тем более модифицировать ее под свои нужды, вам придется очень четко понимать, как она работает. Например: Формат скачиваемых данных от УТ 11.1.9.56
Формат выгружаемых данных из УТ 11.1.9.56 с помощью модуля от Битрикс:
То есть мы имеем несогласованность форматов загрузки из 1С и Битрикс для одной и той же версии платформы и конфигурации.Взаимодействие продуктов 1С и 1С-Битрикс реализовано на основе процедур двунаправленного обмена данными.
Обмен данными осуществляется с использованием открытого стандарта обмена коммерческой информацией на основе XML — CommerceML 2.0. Если вы прочтете, что такое CommerceML 2.0, вы будете так же поражены, как и я, насколько сложен этот стандарт по сравнению с другими.
Даже просто описание, т. е.
сам файл схемы описания в формате txt занимает 107 килобайт! И любая ваша ошибка, скорее всего, закончится тем, что биржа вообще перестанет работать.
При использовании стандартного обмена вы вынуждены «подсаживать» и себя, и клиента на постоянный мониторинг изменений, происходящих как на стороне 1С, так и на стороне Битрикс.
С каждым обновлением вы рискуете потерять все внесенные вами на биржу изменения.
В результате вы получите сложный, очень «глючный» механизм, работающий практически независимо от вас.
А если к этому добавить постоянные обновления 1С и Битрикс, то вместо работающего обмена вы столкнетесь с постоянной «головной болью».
Как провести интеграцию?
Я уже давал этот совет и дам его еще раз: биржу нужно писать самому.Помимо механизмов интеграции у вас может возникнуть еще одна проблема: сам модуль опирается на данные, заполненные определенным образом.
И эти правила могут регулярно меняться и меняются.
Итак, в процессе «борьбы с обновлениями» вы освоили платформу, модуль, а потом еще и столкнулись с ошибкой, возникающей из-за неправильного формата данных.
Оказывается, их тоже нужно заполнить определенным, неявным образом.
Помните, как в своем примере я указал на необходимость поставить галочку на стороне 1С Битрикс, о чем, к счастью, я знал.
В противном случае время, затраченное на работу по настройке биржи, затянулось бы еще больше.
И нигде в документации нет ни слова об этой самой «галочке»! В принципе, если вы используете стандартный обмен, то стоит прислушаться к тому, что говорит сама 1С Битрикс словами администратора: - не обновляться (пока 1с говорит - обновить)
Если вы все-таки хотите использовать стандартный модуль, последовательность ваших действий должна быть такой:Скорее всего, в процессе выполнения этих действий будет обнаружена ошибка.
- Проверил версию платформы
- Проверил версию конфигурации
- Проверил версию модуля.
- Мы проверили все базы данных и убедились, что данные подбираются.
- Мы проверили соответствие версий 1С Битрикс и программного продукта 1С.
- Проверил целостность баз данных, если они файловые.
Кроме того, очень важно помнить: Ни при каких обстоятельствах не изменяйте стандартный обмен.
При любых попытках улучшить стандартный обмен вы сталкиваетесь с огромным количеством проблем в дальнейшем, с необходимостью изучать каждое обновление модуля обмена, и каждый раз вносить свои улучшения в новую версию заново.
Как видите, интеграция программных продуктов 1С и сайтов Битрикс – достаточно сложная задача, требующая внимательности и, чаще всего, опыта, и даже это не всегда помогает. К сожалению, помощь по новым ошибкам, которые достаточно стабильно заменяют старые, можно найти только на форумах.
Именно по этой причине я предпочитаю писать обмен сам.
Но если возникнет необходимость, то решение будет найдено (надеюсь).
-
Осторожно: Ваш Iphone Тоже Празднует
19 Oct, 24 -
Чернобыль Часть 5. За Пределами Аэс
19 Oct, 24 -
Деловые Социальные Сети
19 Oct, 24 -
Windows Vista Rc1 Выйдет 5 Сентября
19 Oct, 24