При внедрении современных инструментов визуализации данных, таких как 1С:Аналитика, в ИТ-ландшафт предприятия часто возникает необходимость подключения к историческим системам: 1С:Управление производственным предприятием (УПП) ред. 1.3 или 1С:Управление торговлей (УТ) ред. 10.3. Несмотря на использование актуальной версии платформы 8.3.x, попытки стандартного подключения часто заканчиваются ошибкой {(209,9)}: Процедура или функция с указанным именем не определена (StrSplit) (500). В этой статье мы подробно разберем причины этой проблемы и рассмотрим несколько стратегий её решения.
Разберем ситуацию: ваша платформа может быть самой последней версии (например, 8.3.24), однако конфигурация (УПП или УТ) работает в режиме совместимости 8.2.14. Это критически важный фактор. 1С:Аналитика взаимодействует с информационной базой через автоматический интерфейс OData.
Проблема заключается в том, что функция СтрРазделить (или её англоязычный аналог StrSplit) была добавлена в платформу 1С:Предприятие только начиная с версии 8.3.6. Когда база работает в режиме совместимости 8.2.14, механизмы платформы, отвечающие за генерацию OData-запросов и обработку метаданных, ограничивают доступный функционал языковыми конструкциями версии 8.2. В результате, при попытке системы 1С:Аналитика запросить данные, платформа пытается вызвать StrSplit, не находит её в контексте текущего режима совместимости и выдает ошибку 500.
Как показывает практика, простейшим техническим решением является изменение режима совместимости в свойствах конфигурации. Если установить режим совместимости в значение 8.3.6 или выше (например, до актуальной версии платформы), функция СтрРазделить становится доступной, и 1С:Аналитика успешно считывает метаданные.
Рассмотрим риски этого метода:
Проанализируем ситуацию: если база рабочая и в ней одновременно трудятся сотни пользователей, менять режим совместимости «на лету» категорически не рекомендуется без полного цикла регрессионного тестирования.
Это наиболее архитектурно правильный и безопасный подход для интеграции современных аналитических систем с устаревшим ядром. Мы предлагаем не подключать Аналитику напрямую к УПП, а создать «буферную» зону.
Разберем по шагам реализацию этого метода:
EnterpriseData, универсальные обмены через XML или прямое COM-соединение. Выгружать нужно только те данные, которые необходимы для анализа (например, регистры накопления «Продажи», «Закупки», «ПартииТоваровНаСкладах» и связанные справочники).Таким образом, основная рабочая база УПП остается в безопасности, а аналитические отчеты работают максимально быстро на современной структуре данных.
Если у вас есть лицензии на 1С:Аналитику, скорее всего, вам доступен компонент Дата-акселератор. Это механизм In-Memory DB, который позволяет хранить копии данных в оперативной памяти для молниеносной обработки аналитических запросов.
Проанализируем, как это помогает обойти проблему StrSplit:
Вы можете настроить механизм копий баз данных. Платформа будет сама реплицировать данные из вашей УПП в Дата-акселератор. Поскольку запросы 1С:Аналитики в этом случае будут направляться к акселератору, а не напрямую к SQL-таблицам старой базы через стандартный OData, многие ограничения режима совместимости будут нивелированы внутренними алгоритмами акселератора.
Иногда ошибка возникает из-за того, что система пытается просканировать абсолютно все объекты метаданных, включая те, которые не поддерживаются или содержат ошибки в структуре. Выясним, как ограничить этот список.
При публикации базы на веб-сервере создается файл default.vrd. Мы можем вручную отредактировать секцию standardOData, чтобы разрешить доступ только к конкретным объектам. Рассмотрим пример настройки:
<standardOData>
<allow>
<object>Catalog.Номенклатура</object>
<object>AccumulationRegister.Продажи</object>
<object>Document.ЗаказПокупателя</object>
</allow>
</standardOData>
Если исключить из публикации сложные объекты, которые вызывают обращение к неподдерживаемым функциям в режиме совместимости 8.2.14, первичная регистрация базы в 1С:Аналитике может пройти успешно.
Подводя итог, если вы столкнулись с ошибкой StrSplit, у вас есть три основных пути. Если база небольшая или тестовая — поднимайте режим совместимости до 8.3.6 или выше. Если же вы работаете с высоконагруженной системой УПП 1.3, лучшим выбором будет создание промежуточной базы или использование Дата-акселератора. Это позволит вам использовать все преимущества 1С:Аналитики, не ставя под угрозу стабильность оперативного учета.