Администраторы группы

  • Аватар

Модераторы группы

  • Аватар

Использование Vtiger CRM

Открытая группа активность: 19 ч., 55 мин. назад

Обсуждения функциональности, особенностей установки и настройки системы SalesPlatform Vtiger CRM.

Настройка php в CRM 6.5.0-201611 (записей: 13)

← Форум группы   Все форумы
  • Аватар Евстафьев Алексей - 1 нед. назад:

    Привет всем!

    Настраиваю сейчас СРМ постледней версии со всеми опубликованными патчами. И имею в нем неприятную особенность. По нажатии кнопки «сохранить» попадаем в чистый белый экран с единственной в нём надписью:

    {«success»:false,»error»:{«code»:»result is not an object»,»message»:»result is not an object»}}

    При выходе из системы имеем то же самое. Кнопка обозревателя (у меня Firefox) «Вернуться на предыдущую страницу» немного помогает, но всё равно – неприятно.

    Помогите решить эту бяку. Где там собака зарылась?

  • Аватар Евстафьев Алексей - 1 нед. назад:

    и еще – при попытке изменить, например, контакт вываливается вот такая хрень:

    {«success»:false,»error»:{«code»:»u041au043eu0434 u043eu0448u0438u0431u043au0438: 1055 u0414u0435u0442u0430u043bu0438 u043eu0448u0438u0431u043au0438: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘vtigercrm.vtiger_field.fieldid’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by»,»message»:»u041au043eu0434 u043eu0448u0438u0431u043au0438: 1055 u0414u0435u0442u0430u043bu0438 u043eu0448u0438u0431u043au0438: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘vtigercrm.vtiger_field.fieldid’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by»}}

    Соответственно, поскольку success = false никакого изменения не происходит. Собственно, как это вылечить?

    База совершенно пустая, в ней только завел пару юзерей и всё.

  • Аватар Алексей - 1 нед. назад:

    1. После применения патчей, обновили ли в браузере js-кэш? Так как сообщения которые вы привели должны выводиться в popup-окне, а не на новой странице.

    2. По ошибке «SELECT list is not in GROUP BY clause and contains nonaggregated column ‘vtigercrm.vtiger_field.fieldid’ which is not functionally dependent on columns in GROUP BY clause;»

    у вас в настройках mysql стоит параметр sql_mode=only_full_group_by

    К сожалению в родном дистрибутиве, на котором базируется SP CRM есть ряд sql конструкций, которые не могут быть выполнены в таком режиме (когда при выборке с группировкой, выбираемые из таблиц не агрегированные колонки не указаны в выражении группировки – https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_only_full_group_by). Поэтому можно посоветовать выключить этот режим.

    3. При нажатии конпки «Сохранить» – в каком модуле/модулях? Что в логе ошибок mysql? Данная ошибка (result is not an object) происходит когда какой-то sql запрос был выполнен с ошибкой.

  • Аватар Евстафьев Алексей - 1 нед. назад:

    Сейчас откатился снова на голый дистрибутив данной версии. Без патчей. Поведение – такое-же. Это раз.
    Второе – у меня в my.cnf такого параметра (sql_mode) нет. MySQL версии 5.7.18. Гугление на эту тему показало, что этот режим там включается по дефолту. Гугление на тему, как его отключить, показало, что там идет масса параметров. Будет ли допустимым применение в my.cnf такой комбинации:

    [mysqld]
    sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

    ?
    Или Вы порекомендуете иной набор параметров?

    В каких модулях: Сейчас развлекаюсь по самому началу запуска CRM. В документации сказано, что надо свою фирму и своих пользователей включить в контрагенты и в контакты. Так что, далеко не ушел. И имею на свежеустановленной (начисто, с полного нуля) ситуацию, когда хочу привязать мой контакт к моему контрагенту. Это получается. Затем хочу изменить в настройке привязку к контрагенту (или иное поле поменять). Меняем, submit, и ничего не меняется. На патченой версии – вываливалось сообщение об ошибке. На голой, непатченой – ничего не говорит. Но и не меняет. Наверное, это от выставленного sql_mode зависит. Надо проверить…

    Проверил – именно от этого параметра и зависело. Сейчас, после применения того, что написал выше – заработало (вроде как без ошибок).

    И еще вопрос по сервиспакам. Когда я ставил сервис-пак-3, то получил такой вывод при проверке сервиспака:

    patching file layouts/vlayout/modules/Products/resources/Edit.js
    Hunk #1 succeeded at 410 (offset -4 lines).
    Hunk #2 succeeded at 434 (offset -4 lines).
    patching file layouts/vlayout/modules/Vtiger/resources/Edit.js
    Hunk #3 succeeded at 982 (offset -10 lines).

    Это нормально? С таким выхлопом можно сервиспак-3 ставить? В первых 2-х этого Hunk’а не было. Вроде оно как succeeded, но – про такое в сопроводительном файлике ничего не сказано.

  • Аватар Евстафьев Алексей - 1 нед. назад:

    Ну и собственно по вопросу с приходящим клиенту текстом, который, как я полагаю есть некая отладочная печать «лога» состояния выполнения операции:

    {«success»:false,»error»:{«code»:»result is not an object»,»message»:»result is not an object»}}

    Как с этим быть. Я имею с этим мутку в двух разных системах:
    1. Linux+Firefox-v52. Здесь система на этот текст реагирует просто – полностью чистит до белого поля текущую вкладку обозревателя и туда выводит данное сообщение. Юзеру, при этом, надо вернуться «на предыщущую страницу». Некрасиво и неудобно.
    2. Windows-7 и IE-11. Всё практически голое, без особых наворотов и донастроек, из кАропки. Здесь реакция чуть иная. А именно – IE сообщает, что получил от CRM-сервера файл index.php и не знает, что с ним делать, то ли открыть, то ли сохранить…

    Итак вопрос простой – нафига это всё пользователю и как такие уведомления отключить (особенно с success-статусом)? Или что надо сделать в обозревателях, чтобы обработка этого полученного index.php получила вид, который задумывался разработчиком?

  • Аватар Алексей Зозуля - 1 нед. назад:

    В документации указаны системные требования: 5.0 <= версия MySQL <= 5.6. Поставьте 5.6.

  • Аватар Евстафьев Алексей - 1 нед. назад:

    каким образом связана версия MySQL на сервере со всплывающими окнами у клиента? Вот вхожу в систему и сразу же выхожу. Вместо того, чтобы спросить «Вы действительно хотите выйти» мне показывается экран с текстом {«success»:false,»error»:{«code»:»result is not an object»,»message»:»result is not an object»}}. Текстом, который формируется приложением, передается в файле index.php и который должен каким-то образом отрабатывать клиентом. А клиент про то не знает ничего и не понимает, как ему поступать с этим файлом. Вот каким образом это всё связано с версией MySQL? Вот sql_mode оттвиковать, запретить один режим, это да, это совет верный. А Ваш – не вижу никакой связи с проблемой.
    Здесь надо копать в сторону именно валидного sql_mode. Если ошибка действительно связана с SQL-запросом. В чем я сильно сомневаюсь.

  • Аватар Евстафьев Алексей - 6 дн., 23 ч. назад:

    Итак, посмотрел внимательно на протокол работы CRM. Ситуация примитивная. А именно – свежеустановленная версия с первыми двумя патчами. Вхожу в систему админом и сразу же выхожу. На выходе – получаю описанную выше каку. Смотрю какие именно SQL команды CRM отдавала SQL-серверу и повторяю их в MyPHPAdmin. Затык получился на следующей команде:

    SELECT MAX(login_id) AS login_id FROM vtiger_loginhistory WHERE user_name=’admin’ AND user_ip=’192.168.43.8′

    MySQL ответил, что такой таблицы (vtiger_loginhistory) не существует. Проверяю состав таблиц. Действительно – нету. Итак, что делать? Я не знаю, почему она не создалась при инициализации системы (причем, два раза), но… В общем, я знаю, что делать (создать таблицу руками), я не знаю её структуры….

    Собственно, когда я развлекался с версией 6.4, то там журнал входов в систему велся и я его мог смотреть из CRM-морды. А сейчас – не могу найти даже пункта меню об этом журнале. Его выпили напрочь?

    Так что, дело (как я и полагал) не в версии MySQL, а в том, что база не содержит нужной таблицы. Кстати, обращений к этой таблице в CRM относительно немного:

    # find . -name «*.php» | xargs grep vtiger_loginhistory
    ./modules/Migration/schema/600_to_610.php:$sql = «ALTER TABLE vtiger_loginhistory MODIFY user_name VARCHAR( 255 )»;
    ./modules/Migration/schema/600-201403_to_610-201410.php:$sql = «ALTER TABLE vtiger_loginhistory MODIFY user_name VARCHAR( 255 )»;
    ./modules/Users/models/Module.php: $query = «INSERT INTO vtiger_loginhistory (user_name, user_ip, logout_time, login_time, status) VALUES (?,?,?,?,?)»;
    ./modules/Users/models/Module.php: $loginIdQuery = «SELECT MAX(login_id) AS login_id FROM vtiger_loginhistory WHERE user_name=? AND user_ip=?»;
    ./modules/Users/models/Module.php: $query = «UPDATE vtiger_loginhistory SET logout_time =?, status=? WHERE login_id = ?»;
    ./modules/Settings/LoginHistory/models/ListView.php: $query = «SELECT login_id, $userNameSql AS user_name, user_ip, logout_time, login_time, vtiger_loginhistory.status FROM $module->baseTable
    ./modules/Settings/LoginHistory/models/Module.php: var $baseTable = ‘vtiger_loginhistory’;

  • Аватар Евстафьев Алексей - 6 дн., 22 ч. назад:

    Установил для MySQL следующие параметры:

    sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

    то есть убрал STRICT_TRANS_TABLES, который был включен по дефолту в MySQL 5.7

    И задал ключи запуска (чтобы убрать сообщения из лога запуска MySQL):
    MYSQLD_OPTS=»–disable-partition-engine-check –explicit_defaults_for_timestamp –bind-address=0.0.0.0″
    Переустановил по новой CRM. База vtiger_loginhistory создалась, проблемные сообщения появляться перестали.

    Похоже, что проблему решил.

  • Аватар Евстафьев Алексей - 6 дн., 21 ч. назад:

    Похоже, погорячился немного. Начал заводить контрагента. Заполнил нужные поля, «сохранить»…
    получил:
    {«success»:true,»result»:{«location»:»index.php?module=Accounts&view=Detail&record=2″}}
    И нафига оно юзеру?
    И на создании контакта – тоже самое…. Пичалька.

  • Аватар Алексей - 6 дн., 20 ч. назад:

    Не могли бы вы выложить файл layouts/vlayout/modules/Vtiger/resources/Edit.js

    Данное сообщение – это JSON-ответ на AJAX-сохранение, и в нем содержится ссылка, на которую должен перейти браузер.
    Этого может не происходить по следующим причинам:
    1. Не до конца обновлена система – использутеся не тот файл, поэтому прошу выложить его чтобы убедиться что он соответствует последней версии.
    2. Не обновлен кэш JS в браузере. После принудительной перезагрузки кэша JS результат тот же?
    3. Сам браузер не понимает mime-type и выводит сообщение как plain-text. Какой у вас браузер и какая версия?

  • Аватар Евстафьев Алексей - 6 дн., 18 ч. назад:

    1. Файл Edit.js доступен по ссылке https://yadi.sk/d/2yLBEzU43JLG6M
    2. У меня 3-й сервиспак не установлен, только первые два. Третий не установил по причине сообщений при верификации патча (см. выше). Про них ничего в сопроводительном файле не сказано и я, пока, не решился ставить третий сервис-пак.
    3. Я тренирую CRM в двух разных системах:
    3.1. Linux (Fedora-24)+Firefox-v52. Здесь система на этот текст реагирует просто – полностью чистит до белого поля текущую вкладку обозревателя и туда выводит данное сообщение. Юзеру, при этом, надо вернуться «на предыщущую страницу». Некрасиво и неудобно.
    3.2. Windows-7 и IE-11. Всё практически голое, без особых наворотов и донастроек, из кАропки. Здесь реакция чуть иная. А именно – IE сообщает, что получил от CRM-сервера файл index.php и не знает, что с ним делать, то ли открыть, то ли сохранить…
    4. То, что это JSON-ответ на AJAX-сохранение – это я понимаю. Сам пописываю на досуге мелкие приблуды на JQGRID’е. Но ответ-то должен получать и обрабатывать не сам броузер, а тот код, который открыт на странице, получать и обрабатывать корректно. А здесь – полное впечатление, что не работает обработчик этих сообщений на странице.
    5. Судя по всему – собака сейчас зарылась именно в JS-кэше. Попробовал поработать с домашнего компьютера с которого вообще ни разу не заходил в CRM. Эффект не наблюдается.
    ————————
    6. Пока возился с настройкой MySQL сервера обратил внимание, что нечто долбится каждые 5 секунд на сервер в базу CRM. Можете рассказать, что это за процесс такой инициативный? Ну и как можно заставить его стучаться в базу пореже (или вообще приостанавливать). Очень неудобно с ним логи запросов изучать. Засирает оно лог великолепно.

  • Аватар Алексей - 3 дн., 22 ч. назад:

    1. Файл Edit.js в порядке, так что это JS-кэш. нужно его обновить.
    2. Третий патч ставить можно – просто он собирался таким образом, что не все чэйнджсеты вошли в него, поэтому в выводе присутствуют уведомления о «лишних» пустых линиях.

    По п.6 – это опрос входящих звонков или уведомления календаря. Надо отчключить модуль Звонки/Календарь.