Вы не авторизованы

Вы можете читать сообщения. Если вы хотите создать новую тему или присоединиться к обсуждению, пройдите процедуру регистрации или авторизуйтесь.

RSS
Вылетает 1С при запуске панели телефонии
 
Добрый день!
На прошлой неделе, в пятницу, я звонил к вам в офис и разговаривал с Алексеем. Описывал ему проблему.
Суть в том, что я
- взял последнюю версию панели телефонии (далее - ПТ) для обычных форм
- запустил ее на конфигурации УТ 10.3 совершенно чистой
- платформа 1С последняя
- зарегистрировал, настроил ПТ.
- панель открывается, проходит 3-5 секунд и 1С рушится, сохраняя дамп.

ПТ настраивается для связи с freepbx.

Версии:
ПТ: 1.2.23.8
FreePBX: FreePBX 13.0.1beta3.45
1С: 8.3.6.2100
ОС: Windows 2008 R2
Asterisk: 11.18.0

Я проанализировал поведение 1С с помощью технологического журнала, wireshark и анализа кода.
Что выяснилось.

1. Крах 1С происходит при выполнении метода
Код
Функция ЭтоНомерТекущегоПользователя(Знач СтрокаЗвонка,Знач СписокНомеровПользователяДляОбработки) Экспорт
(строка 5047).
Этот метод, как можно видеть из его кода, рекурсивный. Происходит бесконечная рекурсия, и на 30й или какой там раз 1С падает.

2. Бесконечная рекурсия возникает из-за того, что в таблице ТаблицаХинтов содержатся (на мой взгляд) лишние записи.
А именно, в качестве Канал указано пустое значение.

3. Таким образом, если в методе
Код
Функция ПолучитьЗначениеХинта(hint, Знач НомерТелефона)
(строка 6219)
добавить проверку на пустое значение, тогда ошибка уходит. Например, так:
Код
    если ЗначениеЗаполнено(hint) тогда
        Если Найти(hint, "&")<=0 Тогда
            Возврат    Истина;
        КонецЕсли;    
    КонецЕсли;
вместо
Код
    Если Найти(hint, "&")<=0 Тогда
        Возврат    Истина;
    КонецЕсли;


А теперь, внимание, вопрос!
Что я делаю не так?
ПТ не должна так работать, иначе проблемы были бы не только у меня.
Я опасаюсь, что своими изменениями мог повлиять на работу ПТ и в дальнейшем я совершенно внезапно могу столкнуться с непонятными ошибками.
Подозреваю, что проблемы в настройке сервера телефонии (настройкой занимается отдельный специалист, настройку делал по инструкциям с вашего сайта).

Таблица хинтов с сервера телефонии приходит в следующем виде:

1-hints.hint.state: Unavailable
1-hints.hint.extension: *27*1001
1-hints.hint.application:
2-hints.hint.state: Unavailable
2-hints.hint.extension: *27*1003
2-hints.hint.application:
3-hints.hint.state: Unavailable
3-hints.hint.extension: *27*1002
3-hints.hint.application:
4-hints.hint.state: Unavailable
4-hints.hint.extension: *27*1005
4-hints.hint.application:
5-hints.hint.state: Unavailable
5-hints.hint.extension: *27*1004
5-hints.hint.application:
6-hints.hint.state: Unavailable
6-hints.hint.extension: *27*1007
6-hints.hint.application:
7-hints.hint.state: Unavailable
7-hints.hint.extension: 1014
7-hints.hint.application: SIP/1014,CustomPresence:1014

Спасибо!
Изменено: Раташнюк Станислав Михайлович - 31.08.2015 17:28:13
 
Спасибо за подробное описание проблемы.
Мы обязательно проверим наличие ошибки с рекурсией. Довольно опасная ситуация.

Меня в описании смутила только одна строчка
FreePBX: FreePBX 13.0.1beta3.45

Мы не тестировали работу панели телефонии для 13 ой версии. Наши плагины разработаны для версии 12.
FreePBX со статусом "beta" в продакшн лучше не использовать.
Читают тему (гостей: 1)