Битрикс 1с время на которое включить логирование текста запросов и ответов в секундах
import___19e25806-af84-4466-886c-09afbc566612.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Ответ сервера:
MySQL Query Error: create table b_xml_tree_import_1c
(
ID int(11) not null auto_increment,
Без предыстории ничего, кроме как проблемы на стороне MySQL сервера сайта, обозначить нельзя.
Раньше работало?
Сервер с MySQL твой?
Ребут сервера помогает?
Если "да, да, нет" - гуглить "Проверка, восстановление и оптимизация баз MySQL". База иногда устаёт, нужно её в себя привести. Делается из любого менеджера MySQL по правому клику на названии базы. Например, DBForge Studio For MySQL.
(11) Так это важные вводные данные. Да, битрикс не умеет работать паралельно, надо пилить, на стороне 1С дешевле
(13) логи включите на стороне 1С и высылайте разработчикам сайта. Если там параллельный обмен, будет видно. Не понятно, что тут смотреть.
(15) ты же сам говоришь, что тебе указали на зацикливание. Сам-то смотрел логи? чтобы начало обмена шло строго после окончания? Если всё ок, то подключайте административный инструмент)
(17) вероятно, имеется в виду волшебный пендель через руководство в сторону поддержки сайта. Пусть дадут лог, по которому они увидели двойной обмен.
Нужно изучать данные, которые приходят на сайт. Обмен с Битриксом - штука невероятно рукожопно написанная, и всегда доставляет много проблем. Мы в похожем случае достаём из бэкапа копию 1С на тот момент, когда всё точно работало, и запускаем обмен. Сравниваем логи. Чтобы локализовать проблему.
Если из старой копии обмен идёт - то проблема у нас. Чего, кстати, ни разу не бывало.
(21) Осталось попробовать достать из бэкапа копию сайта и базы MySQL до обновления и проверить обмен. Снова обновить Битрикс потом - не проблема.
А вообще здесь нужно обоюдное участие всех заинтересованных лиц, дебажить как со стороны 1С, так и со стороны Битрикса.
Возможно придётся приглашать почасовых специалистов, которые умеют это делать.
была такая ошибка, возникала из-за двух одновременных обменов с сайтом. Один обмен запускался с рабочей базы, другой из копии. Проверьте все копии баз, может где-то включен обмен по расписанию
(21) а если почистить таблицу b_xml_tree_import_1c?
Если не поможет вообще удалить.
само собой сначала бэкап
Эта статья предназначена для тех, кто уже представляет себе механизм обмена заказами между 1С и Битрикс. Задача: отладить В ней вы найдете этапы отладки обмена заказов, а также в удобном формате приведены запросы, которые можно использовать при отладке, подставляя в них свои значения имени файла и sessid. Если вам необходимо подробное описание механизм обмена, то он есть в другой статье.
Для отладки обмена заказами между 1С и сайтом на Битрикс необходимо удостоверится, что 1С может авторизоваться на сайте, 1С присылает правильные запросы, запросы корректно обрабатываются на стороне сайта, приходит корректный xml.
Проверка авторизации
Если 1С присылает запросы на сайт (для этого нужно посмотреть лог запросов), то этот этап можно пропустить.
Если запросов нет, то обычно причиной этого могут быть проблемы с авторизацией 1С на сайте.
В настройках обмена внутри 1С последовательно проверяем:
- адрес подключения к сайту. В большинстве случаев адрес будет вида:
- логин и пароль пользователя битрикс, под которыми 1С подключается;
- правильность адреса прокси-сервера (если задан).
В настройках обмена внутри Битрикс проверяем:
- пользователь, под которым 1С осуществляет обмен принадлежит к группе, которая обладает правами на осуществление обмена заказами (для обмена каталогом и заказами права настраиваются отдельно).
Зачастую бывает, что внутри 1С указан пользователь, который является администратором сайта. Рекомендую завести отдельного пользователя и группу для выгрузки 1С, например, 1c_exchange. Во-первых, права группы «администраторы» избыточны для выгрузки. Во-вторых, при дальнейших отладках вы сразу будете видеть, что та или иная сущность (например, элемент инфоблока) была изменена пользователем, который отвечает за обмен. Это очень удобно.
Ошибка «failure Обновите модуль обмена»
Если на любой запрос, например, mode=checkauth, 1С получает ответ: «failure Обновите модуль обмена», то самыми распространенными причинами могут быть:
В запросе от 1С указан неверный sessid или не указан вообще.
Проверяем, что sessid, который отдается в первом запросе блока, используется во всех последующих запросах блока, а также, что он там есть.
Блок запросов всегда начинается с mode=checkauth и заканчивается запросом перед следующим mode=checkauth.
Проверяем, что 1С присылает правильные запросы и что сайт их корректно обрабатывает
Заказы из Битрикс в 1С
В ответ на запрос 3 должна сформироваться xml со списком заказов, которые были созданы / изменены после последнего обмена (блока таких же запросов). Если новых / измененных заказов нет, то Битрикс отдаст пустую xml со строкой заголовка. Чтобы xml была не пустой нужно перед выполнением запросов изменить текущий заказ или создать новый. Если вы получаете xml в ответ, то сайт обрабатывает запросы корректно.
Заказы из 1С в Битрикс
После этого запроса из папки /upload/1c_exchange/ удаляются файлы предыдущего обмена документами. Если вы проверяете запросы вручную, то после этого запроса вам нужно по указанному адресу положить свой файл (для этого предварительно можно на стороне 1С сделать выгрузку в файл).
Запросы mode=file и mode=import могут повторятся несколько раз до получения ответа от сайта «success», либо до ошибки. Как только на запрос mode=import получен ответ «success», то на сайте должны обновиться заказы, которые были в xml. Это будет говорить о том, что обработка выгрузки заказа на сайте прошла успешно.
Проверяем, что XML корректный
Если все запросы корректные и проходят без ошибок, но при этом нужных обновлений в 1С или в Битриксе не происходит, то необходимо проверить xml на корректность и на присутствие в нем необходимых данных.
Пробую настроить веб-сервис для получения данных из другой базы.
При работе веб-сервиса достаточно большое время уходит на инициализацию.
Например, обращаемся из Базы2 в веб-сервису Базы1
По замеру времени отработка вебсервиса на стороне Базы1 = 0,5сек.
Общая длительность обращения по замеру в Базе2 = 1,7 сек.
В каких-то случаях вообще обращение 5 секунд. Не могу отловить закономерность.
Т.е. от 3/4 времени работы вебсервиса тратится на инициализацию подключения.
При этом каждое обращение это новая авторизация, новая потеря времени.
Поделитесь опытом, как у вас по скорости работают веб-сервисы.
Может, есть какие-то настройки, чтобы сеанс не иницилизировался каждый раз заново.
(2) omut, если у нее обен на пхп, там сложнее.. там скрипт выполнился - все объекты освободились.. придется что то придумывать, а так да, поддерживаю..
(1) ekaruk, добавлю от себя что в случае пхп, в SoapClient есть кэши.. вполне возможно он у вас выключен, тогда у вас каждый раз получается схема данных, что разумеется время.. а вообще расскажите подробнее что с чем обменивается и на каких языках написано, тогда и ответ будет подробнее
(2) omut, Использовать одно и то же логично.
Но насколько я понимаю, соединение будет жить только в пределах вызова сервера. На клиент и потом обратно его не передашь.
(3) Serginio, Насколько я понимаю, установка параметров сеанса для веб-сервисов выполняется в модуле сеанса, который общий для всех. Определить в нем, что вызван сеанс для конкретного веб-сервиса не получится.
(4) AllexSoft, получение данных между двумя 1С.
(5) omut, Да, нужно смотреть, на чем замедление.
(7) spezc, Интерактивные действия пользователя при работе с формой. Обращение одно, но лишних пару секунд критично. С учетом того что получение и обработка данных 0,5секунд. Между ХТТП-сервисами и SOAP-вебсервисами разница в скорости подключения почти в 2 раза. Достаточно прилично, на мой взгляд. Интересно, чего не делает ХТТП из того, что делает SOAP.
(9) ekaruk, Модуль управляемого приложения.. он живет постоянно, делаем там переменную (экспортную), инициализируем веб-сервис (подключаемся), контекст соединения передаем в переменную.. и теперь можем использовать эту переменную чтобы обращаться к веб сервису без подключений (он будет подключен 1 раз при старте)
ПС: если у вас живут базы на одном сервере, и они клиент-серверные то я бы на вашем месте посмотрел бы внешние источники..
(13) AllexSoft, беда там есть. Соединение закроется через определённое время, если не будет использоваться (5 минут вроде как будет жить).
(14) Xatori111, сделать фоновое задание которое будет выполнять запрос раз в 5 минут =) какой нибудь самый примитивный.. ну и проверять есть или нет соединение или нет, если нет то подключать заново
(15) AllexSoft, как вариант, у меня крутятся несколько обработок с таким методом получением данных, да отчёт есть собирающий данные с разных баз, но мне не критично 3-5 секунд на инициализацию соединения. А так да, но про 5 минут я могу ошибаться, это я примерно сказал, знаю что не долго.
(13) AllexSoft, Базы на одном сервере и клиент-серверные.
Думали про подключение к данным второй базы как к внешним источникам.
Там запросы к РН с большим объемом данных. Насколько я понимаю, при подключении внешних источников я не смогу нормально использовать таблицы итогов и виртуальные таблицы. Дублировать стандартные механизмы работы с данными я полноценно не смогу. При обращении изнутри базы с учетом использования итогов и индексов работает почти мгновенно. При обращении снаружи скорее всего будет дольше, чем через веб-сервис.
Ну и плюс дополнительная морока с таблицами, ссылками, типизацией данных. Объем работ и сложность поддержке на порядок выше. Лучше, когда 1С-запросы исполняются в родной среде.
Насколько я понимаю, при подключении внешних источников я не смогу нормально использовать таблицы итогов и виртуальные таблицы
ну смотря что считать "полноценным", виртуальные таблицы это просто таблицы в базе данных, к ним тоже можно подключиться.. но там надо учитывать механизм рассчета остатков на произвольную дату, так что как вы правильно заметили
тут не согласен.. прямым запросом к СУБД будет быстрее (по сравнению с обычным запросом языком запросов в 1С, он же еще промежуточный этап проходит через 1С:Сервер, а напрямую всегда быстрее будет).. хоть и ненамного, дополнительная работа с типизацией и тд и тп.. хотя в 8.3.5 по этому плану много что сделали чтобы облегчить наши муки ) По быстродействию вы учитывайте что на стороне веб сервиса небходимо не только получить результат но и: загрузить его в хранилище значения -> сериализовать хранилище -> передать сериализованный ответ (он в виде текста в формате XML) -> получить ответ на клиенте -> десериализовать -> распаковать из хранилища.. )
Кстати, а зачем вам хранилище значения то, раз у вас обмен между базами 1С? можно использовать обычные типы для передачи.. ну скажем передать сразу таблицу значения или что вам там надо, никакого хранилища значений не надо
Ну если все же хотите веб-сервисы то в я (13) все расписал что куда и как получить чтоб 1 раз подключаться, только вот что то мне думается что там на сериализацию ответа тратится достаточно большое время (1С любит использовать для сериализации темпы)
ну смотря что считать "полноценным", виртуальные таблицы это просто таблицы в базе данных, к ним тоже можно подключиться.. но там надо учитывать механизм рассчета остатков на произвольную дату, так что как вы правильно заметили
Объем работ и сложность поддержке на порядок выше
Можно использовать реальные таблицы + таблицы итогов. Виртуальные таблицы, насколько понимаю, это подзапросы, сильно зависящие от набора полей, периода запроса, периода расчета итогов. + связи по ссылкам (тип + УИД), + смещение дат. На самом деле я достататочно высоко оцениваю тот механизм по работе с данными, который разработатли в 1С. Не думаю, что я в состоянии его корректно продублировать даже частично с приемлемыми трудозатратами.
По быстродействию вы учитывайте что на стороне веб сервиса небходимо не только получить результат но и: загрузить его в хранилище значения -> сериализовать хранилище -> передать сериализованный ответ (он в виде текста в формате XML) -> получить ответ на клиенте -> десериализовать -> распаковать из хранилища.. )
Как ни странно, вся сериализация/десериализация работает достаточно шустро. Ее скростью можно пренебречь по сравнению со скоростью веб-сервиса.
Кстати, а зачем вам хранилище значения то, раз у вас обмен между базами 1С? можно использовать обычные типы для передачи.. ну скажем передать сразу таблицу значения или что вам там надо, никакого хранилища значений не надо
Типы данных отличаются. Банальные ссылки на справочники в любом случае нужно сериализовать при передаче. Хотя об этом тоже можно подумать. Через ХТТП вроде таблицы не передаются. Только строки или файлы. Только через SOAP.
Спасибо, за оценки ))
но самое смешное оказалось в том что наш хостер обновил версию PHP до 7.2 с копейками
и выгрузка 5к позиций тормознулась с 10 до 30 минут.
думали что виноват параметр php_value mbstring.func_overload 0 из .htaccess
(до этого был в 2 ке, но Битрикс для обновлений требует 0)
короче практически смирившись с неизбежными тормозами
(причем логирование железа сервера 1С и хостера - показывало что машины не нагружены)
выложив сюда публикацию и посмотрев на время из логов
оказалось
что у хостера время выставлено на ЧАС НАЗАД. кто бы мог подумать ))
т.е. сервер 1С посылал все свои запросы в ПРОШЛОЕ ))
помог короче сам себе ))
Просмотры 4716
Загрузки 3
Рейтинг 4
Создание 07.12.20 10:00
Обновление 07.12.20 10:00
№ Публикации 1339340
Тип файла Расширение (cfe)
Операционная система Не имеет значения
Страна Россия
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)
Код открыт Да
См. также
Загрузка данных из файла выгрузки в формате XML, выгруженного по правилам обмена. С возможностью выбора документов Промо
Обработка для загрузки из файла выгрузки с возможностью выбора документов для загрузки.
2 стартмани
24.05.2021 2895 18 unknown181538 4
Загрузка выписок из АЦК в формате XLT файлов для БГУ 2.0
Обработка позволяет загружать из выписки лицевого счета в формате XLT (АЦК) в 1С: Бухгалтерию государственного учреждения 2.0 документы Кассовое поступление/выбытие.
1 стартмани
11.02.2022 2926 8 kirill1c 0
Сервис push-уведомлений для 1С (Push Notification Service For 1C - PNS4OneS)
1 стартмани
02.02.2022 4564 18 ltfriend 5
Пульт управления телевизором LG Smart TV
Пульт LG телевизором smart TV (2014 года). Цель - управлять телевизором из 1С. Может быть полезна тем, кто потерял и не может найти пульт ДУ, кто смотрит телевизор и сидит за ноутбуком одновременно, для изучения обмена xml с внешними устройствами, в данном случае телевизором.
1 стартмани
Конвертация любых адресов, написанных в свободной форме, к ФИАС Промо
Допустим у нас есть база с адресами клиентов, и написаны они могут быть как душе угодно. С опечатками, без индексов, без разделителей, в совершенно любом формате. Вот было бы здорово иметь функцию, которая одним нажатием кнопки преобразует любую белиберду к строгому представлению адреса по ФИАС? Восстановит индекс, исправит опечатки и вернёт на 100% валидный адрес. Для всех, кто мечтательно сказал "ДА!", выкладываю данную обработку.
Спасибо, за оценки ))
но самое смешное оказалось в том что наш хостер обновил версию PHP до 7.2 с копейками
и выгрузка 5к позиций тормознулась с 10 до 30 минут.
думали что виноват параметр php_value mbstring.func_overload 0 из .htaccess
(до этого был в 2 ке, но Битрикс для обновлений требует 0)
короче практически смирившись с неизбежными тормозами
(причем логирование железа сервера 1С и хостера - показывало что машины не нагружены)
выложив сюда публикацию и посмотрев на время из логов
оказалось
что у хостера время выставлено на ЧАС НАЗАД. кто бы мог подумать ))
т.е. сервер 1С посылал все свои запросы в ПРОШЛОЕ ))
помог короче сам себе ))
Просмотры 4716
Загрузки 3
Рейтинг 4
Создание 07.12.20 10:00
Обновление 07.12.20 10:00
№ Публикации 1339340
Тип файла Расширение (cfe)
Операционная система Не имеет значения
Страна Россия
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)
Код открыт Да
См. также
Загрузка данных из файла выгрузки в формате XML, выгруженного по правилам обмена. С возможностью выбора документов Промо
Обработка для загрузки из файла выгрузки с возможностью выбора документов для загрузки.
2 стартмани
24.05.2021 2895 18 unknown181538 4
Загрузка выписок из АЦК в формате XLT файлов для БГУ 2.0
Обработка позволяет загружать из выписки лицевого счета в формате XLT (АЦК) в 1С: Бухгалтерию государственного учреждения 2.0 документы Кассовое поступление/выбытие.
1 стартмани
11.02.2022 2926 8 kirill1c 0
Сервис push-уведомлений для 1С (Push Notification Service For 1C - PNS4OneS)
1 стартмани
02.02.2022 4564 18 ltfriend 5
Пульт управления телевизором LG Smart TV
Пульт LG телевизором smart TV (2014 года). Цель - управлять телевизором из 1С. Может быть полезна тем, кто потерял и не может найти пульт ДУ, кто смотрит телевизор и сидит за ноутбуком одновременно, для изучения обмена xml с внешними устройствами, в данном случае телевизором.
1 стартмани
Конвертация любых адресов, написанных в свободной форме, к ФИАС Промо
Допустим у нас есть база с адресами клиентов, и написаны они могут быть как душе угодно. С опечатками, без индексов, без разделителей, в совершенно любом формате. Вот было бы здорово иметь функцию, которая одним нажатием кнопки преобразует любую белиберду к строгому представлению адреса по ФИАС? Восстановит индекс, исправит опечатки и вернёт на 100% валидный адрес. Для всех, кто мечтательно сказал "ДА!", выкладываю данную обработку.
Читайте также: