Как стать автором
Обновить

Интеграция 3CX с 1С: Управление торговлей — метод установки расширения конфигурации

Время на прочтение4 мин
Количество просмотров7.9K
Всего голосов 17: ↑16 и ↓1+15
Комментарии33

Комментарии 33

Для использования расширения 3СХ необходимо установить режим совместимости конфигурации в значение Не использовать.

Кажется такие фееричные идеи уже обсуждались на партнерском форуме в ветке БСП:
https://partners.v8.1c.ru/forum/t/1747505/m/1747619


Цитирую:


Апресов Игорь (1С, Москва): Мы никогда не меняем режим совместимости просто так — это большой техпроект в котором анализируются изменения, дорабатывается конфигурация, пишется методика по переходу.

Я могу Вам посоветовать подождать выхода УТ на версии платформы 8.3.12, но уж точно предлагать пользователям ломать их информационные базы не следует.

Ничего страшного при установке режима совместимости конфигурации в значение Не использовать не случится.
Проверено не единожды.
1С этого не делает совсем по другим причинам в частности потому что всем придется менять в срочном порядке разработанные и действующие расширения.
В смысле ничего страшного? А ничего что меняется поведение у объектов? Если вы используете две с половиной формы то это не значит что у всех так.

Режим совместимости был задолго до появления расширений. Кстати, у расширений режим совместимости свой, в добавку к режиму совместимости конфигураций.


В режиме совместимости платформа меняет свое поведение. Смотрите документацию здесь
https://its.1c.ru/db/v8313doc#bookmark:dev:TI000001242: особенность%20режима%20совместимости


Каждую конфигурацию при смене режима требуется дорабатывать, смотрите методику отказа от режима совместимости:
https://its.1c.ru/db/metod8dev#content:5293:hdoc:_top: методика%20по%20переходу%208.2%20без%20режима


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


Конкретно с Вашими доработками ничего страшного не случится, ведь Вы их, надеюсь, отладили в новом режиме, а весь остальной типовой код? У вас нет возможности перезапустить все тесты по всем подсистемам и гарантировать, что все работает точно так же. А если бы была возможность, Вы бы ужаснулись количиству проблем.


Например, появился в платформе нативный метод ПобитовоеИ и ПобитовоеИли, который отдельно был реализован в контактной информации БСП. При запуске в режиме совместимости 8.3.10 платформа все новшества отключает, а при снятии — отваливаются все формы на которые выведена контактная информация, потому что идет конфликт имен методов глобального контекста. И это только самый простой пример, коих тысячи.

Все смешалось в доме Облонских… и мухи и котлеты.
Necessitudo можно в принципе не отвечать, он сразу перешел на личности.
Видимо он использует три формы и поэтому конечно круче.
Но уважаемый ZEEGIN потратил столько букв и в целом букв правильных, но не заметил главного — разработчики 3СХ просят установить режим совместимости конфигурации в значение Не использовать.
Это значит все возможности платформы используются по максимуму.
В частности им нужно расширение общих модулей по видимому.
Обычным вменяемым людям еще раз посоветую не слушать мнение экспердов и спокойно отключать.
Есть реальные примеры не маленьких организаций где это сделано и все работает штатно.
И на 8.3.12 в том числе уже давно.
Да более того, кто реально работает с УТ, а не в теории, и обновляет ее, знает что давно уже рекомендованная 1С платформа для УТ это 8.3.12


Версия УТ 11.4.6, которая сейчас заявлена следующей, в списке проектов в анонсе было обновление БСП до версии 3.0.1, которое работает в режиме 8.3.12 с отключенным режимом совместимости. Чтобы использовать возможности платформы по максимуму надо дождаться выпуска 11.4.6.
Бухгалтерия, кстати, уже публичную бета выложила 3.0.65, в которой обновила БСП до 3.0.1 и перешла на 8.3.12. Наверное на неделе выпустятся.

Режим совместимости конфигурации в значение Не использовать будет в разных версиях конфигурации разный. Поставьте режим Не использовать в конфигураторе версии 8.3.10, а потом откройте эту же конфигурацию в конфигураторе версии 8.3.11. Что Вы увидите? Режим совместимости, который Вы поставили в Не использовать вдруг стал режимом совместимости 8.3.10.


А еще можно сделать выгрузку конфигурации в xml из версии 8.3.10 с включенным режимом Не использовать и посмотреть ноду в файле описания конфигурации, что будет в файле? Режим совместимости 8.3.10.


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


Вот сейчас платформа выпустила бета-версию 8.3.13, смотрите апдейт:
http://downloads.v8.1c.ru/content//Platform/8_3_13_1472/1cv8upd_8_3_13_1472.htm
Особенно внимательно на фрагмент Изменения, влияющие на поведение системы. Если эти изменения платформы не отработать в типовой конфигурации, то она будет работать не ожидаемо. А отработаны они будут только тогда, когда будет выпущена официальная версия от 1С.

Молодцы что сделали интеграцию.
Многие клиенты мечтают о таком.
В данный момент платформа 1С не имеет возможности вызывать форму добавления нового клиента по HTTP-ссылке — вопрос спорный.
Смотрите как в УНФ сделано ;)
Буду следить за обновлениями.
Существуют 3 подхода к реализации интеграции. 1. Изменение типовой конфигурации программистом. 2. Слияние конфигураций. 3. Использование расширения, как сделали мы. Поскольку 3CX позиционируется как коробочное решение, которое должен поддерживать сисадмин без специальных навыков программирования в 1С — мы сделали все plug&play. На наш взгляд, это гораздо надежнее, чем ковыряние в конфигурации человеком без специальных навыков.

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


Профессионально поступить: это сказать, что ваше расширение требует режима совместимости не меньше 8.3.11, УТ с этим режимом ожидания в октябре.


Например так написал автор Gitter'а, который сделал расширение для СППР с расширением данных:
https://github.com/JohnyDeath/GitterExtForSPPR

Таким же способом мы сделаем расширения и для других типовых конфигураций.
В нашем расширении используется расширение данных — привносятся регистры сведений, а эта технология появилась только начиная с 8.3.11. wonderland.v8.1c.ru/blog/rasshirenie-dannykh
Насчет ссылок открытия карточки клиента — спасибо большое, вопрос внимательно изучаем.
Смотрите какая получается история.
3CX сделали крайне полезное расширение, я подозреваю проверили его на людях.
Даже если не проверили — знаю организации работающие в таком режиме без проблем.
Но приходит уважаемый ZEEGIN и говорит — Ужас, ужас, кранты тому кто так сделает.
А в чем ужас собственно?
Я вот например застал время, когда не было интернета и тогда люди отвечали за свои слова.
Поэтому предложил бы уважаемому ZEEGINу выложить здесь принтскрин конкретного примера, когда изменение режима совместимости помешало штатной работе конкретной организации.
А так то писать буквы каждый может.
Я как разработчик регулярно сталкиваюсь с комментариями экспердов, что типа ужас вообще устанавливать что-то из интернета.
Но они то хотя бы приводят в пример бабу Нюру, которая скачала с интернета программу и теперь с калькулятора пишет.

Уважаемый capitannemo, если не трудно, приведите ссылку на работу с URL в 1С: УНФ. Насколько я знаю, 1С использует внутренние навигационные ссылки, и мы не можем пока понять, как их преобразовать в http формат.
Не понял вопроса. Как в УНФ сделано:
Вы показали только внешнее исполнение, а меня интересует, как это сделано внутри конфигурации. Если честно, я вообще не увидел тут работу с ссылками, о которых сказано в нашей документации. Кроме того, в показанном ролике ничего не говорится о параметрах, которые передает виртуальная АТС, например, Mango, в 1С.
Ещё раз обращу внимание, что 3CX передает в 1С только номер телефона и больше ничего. Поэтому невозможно открыть всплывающую карточку внутри 1С (кому ее открывать?) — это делает веб-клиент 3CX.
Другие CRM на запрос от 3CX возвращают не только ФИО клиента, но и URL его карточки. Вы знаете, как это сделать в 1С? Как получить внешнюю URL или другой идентификатор карточки контрагента?

В документации
Форматы навигационных ссылок


<адрес хоста ИБ>#<внутренняя ссылка>


<адрес хоста ИБ> = ПолучитьНавигационнуюСсылкуИнформационнойБазы()


<внутренняя ссылка> = e1cib/data/<путь к метаданным>?ref=<идентификатор ссылки>
<идентификатор ссылки> = СправочникСсылка.<Имя справочника>.УникальныйИдентификатор()


Например,
e1c://filev/C/1c/db/trade/master#e1cib/data/Справочник.Партнеры?ref=aca00015e9b8c48d11dd4412f8fa030d


Ваша ошибка, как и ZEEGINа, что вы пытаетесь по первым словам понять о чем идет речь.
В ролике про УНФ говорится о стыковке с 50+ провайдерами облачной телефонии.
CRM там вообще не при чем.
Провайдер отдает номер телефона — 1С поднимает карточку клиента если находит по номеру в базе, если нет — предлагает создать.
Потратьте 30 мин и посмотрите как работает. Демо есть в онлайн доступе.
Единственное что они через систему взаимодействия решают.
Давайте ответим на простой вопрос — у кого конкретно я должен поднять карточку клиента, если 3CX не передает внутренний номер пользователя при входящем вызове? Об этом я написал в Вопросах и ответах, вопрос № 5. Чтобы реализовать так, как сделано в УНФ, REST API 3CX должно отдавать больше оперативной информации в момент прохождения вызова. И тогда все будет, как вы хотите.
По номеру телефона ищете клиента — у клиента есть свойство основной менеджер — у менеджера есть контактная информация — свойство телефон
ctrlv.cz/shots/2018/09/18/ZDfb.png
ctrlv.cz/shots/2018/09/18/0lzm.png
Правила распределения входящих вызовов в 3CX могут быть совсем другими.

УТ 11.4.5.* рассчитана на работу с 8.3.10
Открываем в 8.3.12
Отключаем режим совместимости
Получаем проблему с невозможностью ввести адрес.
Добавляем расширение с расширением данных
Получаем проблему с невозможностью выполнить обновление на новые версии конфигурации.

Теперь хотя бы стало понятно о чем речь.
Это скорее косяк разработчиков — назвать функцию модуля именем встроенной и их всего три на конфигурацию
image
Если следовать методике разработки она должна была называться ВыполнитьПобитовоеИ() и тогда бы со встроенной не пересеклась.
В типовых конфигурациях таких ляпов достаточно.
Включали НЕ использовать — вот так
image

Лол, как можно так тупить.
В версии 8.3.10 не было ПобитовоеИ, в версии 8.3.12 есть ПобитовоеИ.
В версии 8.3.10 не конфликтует. В версии 8.3.12 конфликтует.
Не надо менять режим совместимости чтобы не допускать возможных конфликтов.
У разработчиков типовой все в порядке. Они заявили что работает в 8.3.10. В 8.3.10 она и работает. В 8.3.12 работу никто не обещал.

Воистину Лол, как можно так тупить.
Нужно придерживаться стандартов разработки тогда имена функций и не пересекутся со встроенными.
В типовых — таких примеров куча — то переменную назовут Объект, то ЭтотОбъект
А подпирать свои косяки режимом совместимости это великий костыль.

its.1c.ru/db/v8std#content:2149184296:hdoc
6.4. В имени функции рекомендуется использовать глаголы в неопределенной форме в тех случаях, когда для понимания назначения функции важно, каким образом было получено возвращаемое значение. Например:

Функция ВыбратьДанныеПоПравилу(Правило, ПользовательскиеНастройки)
Функция ПреобразоватьДанныеПоПравилу(НаборыДанных, ПараметрыПреобразования

Чтобы как то развлечь себя — сходите на сайт битрикс и посмотрите интеграцию с УТ 10. Там прямо сказано — поднять режим совместимости конфигурации. И ничего, никто не умер.
А Битрикс — это по сути часть 1С.

Наверное разработчикам конфигурации надо быть экстарасенсами, чтобы угадать как в новой версии платформы будет назван какой-нибудь новый метод.


Конфигурацию рассчитанную на работу с 8.3.10 писали в 2016 году. 8.3.12 появилась в 2017 году. Как разработчики могли в 2016 узнать имя метода, которое появилось в 2017?


Дайте ссылку на документацию битрикс, я им напишу об ошибке у них.

«Придерживаться стандартов разработки» — именно это можно сказать моему работодателю когда я сниму режим совместимости и буду еще пару-тройку месяцев вылавливать по конфигурации ошибки?
Я вам даже больше расскажу — если я буду сначала работать в 8_3_10 без режима совместимости, а потом перейду на 8_3_12, при этом поставив режим совместимости с 8_3_10, то даже в таком случае я словлю немало всякого интересного. И знаете кто будет за это отвечать? Думаете фирма 1С?:)
Зачем вы тратите свое время на этот вопрос?
Вы достаточно написали в первом посте.
Те кто профессионально занимаются сопровождением тем ваши комментарии не нужны, они перестали читать дальше еще с момента как увидели этот пункт в статье.
Кто дружит с головой, но не знал по какой то причине о том что нельзя просто так взять и изменить режим совместимости 1С, прочтя ваш первый комментарий, должны были понять.

Все остальные пусть делают по инструкции, в конце концов специалистам франчей будет доп. доход от устранения последствий подобных инструкций.
Если вы знаете другй способ интеграции 3CX с 1С, подходящий для самостоятельного подключения без привлечения программиста 1С, готов с удовольствием выслушать.
Расширение просто обогнало на ~1,5 месяца своё время. Релиз УТ 11 с режимом совместимости 8.3.12 запланирован на конец октября.

Всего лишь надо было написать, что вот всё готово, и интеграция доступна с версии 11.4.6. И рассказать что, собственно сделано.

Пассажи про снятие режима совместимости вы очень зря рассказываете, и на ровном месте дискредитируете себя как разработчика, и через это и свою разработку и компанию в которой работаете.
Если вы знаете другой способ подключения расширения без привлечения программиста, ждем вашей экспертизы. Критикуешь — предлагай.

Для сведения: Группа стандартов разработки 1С в телеграмме @v8std


Участились случаи, когда поставщики своих расширений в инструкции по установке предлагают снять типовую конфу с поддержки и отключить режим совместимости с платформой.

1С проводит многоэтапное ручное и автоматическое тестирование своих конфигураций и рекомендации даются для тех версий платформы, в которых была выполнена разработка и тестирование.

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

Делать такое для экспериментов в лаборатории — ОК. Для продуктовой базы — слабоумие и отвага.

А на линии консультации вам ответят типовой формулировкой про несоответствие условий эксплуатации заявленным требованиям.

Не ведитесь.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий