Как исправить ошибку «Метод объекта не обнаружен (СтрокаИзМассиваПодстрок)» при переносе данных из БП 3.0 в КА 2.4?

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация IT и автоматизация бизнеса
← На главную

Перенос данных между конфигурациями семейства «1С:Предприятие» — это всегда ответственный и технически сложный процесс. Одним из наиболее частых сценариев является миграция данных из программы «1С:Бухгалтерия предприятия» (БП) редакции 3.0 в более комплексное решение, такое как «1С:Комплексная автоматизация» (КА) редакции 2.4 или 2.5. Для реализации этого перехода разработчики предоставляют специализированные правила конвертации данных (обычно файл ConvAcc3_0.xml) и внешнюю обработку выгрузки (ВыгрузкаДанныхИзБП30.epf).

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

Выясним причину возникновения ошибки

Рассмотрим подробнее текст ошибки, который появляется на экране при попытке настроить параметры выгрузки в исходной базе БП 3.0:

Ошибка инициализации данных обработки. Метод объекта не обнаружен (СтрокаИзМассиваПодстрок) {ВнешняяОбработка.ВыгрузкаДанныхИзБП30.МодульОбъекта(200)}: СтрокаДерева.Конфигурации = СтроковыеФункцииКлиентСервер.СтрокаИзМассиваПодстрок(МассивКонфигураций);

Эта ошибка носит исключительно технический характер. Давайте проанализируем, почему она происходит. Все современные конфигурации 1С (включая БП 3.0 и КА 2.4) разрабатываются на базе Библиотеки стандартных подсистем (БСП). БСП постоянно обновляется и совершенствуется разработчиками «1С».

В старых версиях БСП в общем модуле СтроковыеФункцииКлиентСервер существовала функция СтрокаИзМассиваПодстрок, которая использовалась для объединения элементов массива в одну строку с определенным разделителем. Начиная с версии платформы «1С:Предприятие 8.3.6», разработчики платформы добавили встроенную быструю функцию СтрСоединить, выполняющую ту же самую задачу, но работающую значительно быстрее на уровне самой платформы.

В связи с этим устаревшая функция СтрокаИзМассиваПодстрок в БСП была сначала объявлена нерекомендуемой, а затем, в последующих релизах конфигураций, полностью удалена из общего модуля. Таким образом, если вы пытаетесь запустить устаревшую версию внешней обработки ВыгрузкаДанныхИзБП30.epf в новой, обновленной базе «1С:Бухгалтерия 3.0», система обращается к функции общего модуля, которой физически больше нет в конфигурации. Итогом становится аварийное завершение работы обработки.

Способ 1: Исправление кода обработки в Конфигураторе

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

Разберем по шагам процесс исправления кода внешней обработки:

  1. Запустите платформу «1С:Предприятие» и откройте вашу базу (или любую пустую файловую базу) в режиме Конфигуратор.
  2. В главном меню выберите пункт Файл -> Открыть и выберите файл внешней обработки ВыгрузкаДанныхИзБП30.epf, который выдает ошибку.
  3. После того как обработка откроется в Конфигураторе, кликните по ней правой кнопкой мыши в дереве конфигурации обработки и выберите пункт Открыть модуль объекта (или дважды кликните на корневой элемент и нажмите кнопку «Действия» -> «Открыть модуль объекта»).
  4. Нам необходимо найти проблемный участок кода. Воспользуйтесь глобальным поиском (сочетание клавиш Ctrl + F) и введите поисковый запрос: СтрокаИзМассиваПодстрок. Также вы можете сразу перейти на строку 200 модуля объекта.
  5. Вы увидите следующий фрагмент программного кода:

// Исходный фрагмент кода:
СтрокаДерева.Конфигурации = СтроковыеФункцииКлиентСервер.СтрокаИзМассиваПодстрок(МассивКонфигураций);

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

  1. Замените старую строку на следующий исправленный вариант кода:

// Исправленный вариант кода:
СтрокаДерева.Конфигурации = СтрСоединить(МассивКонфигураций, ", ");

В данном случае функция СтрСоединить принимает первым параметром наш массив МассивКонфигураций, а вторым параметром — разделитель (строку с запятой и пробелом), который будет вставлен между элементами массива при объединении.

  1. Сохраните изменения в файле обработки, нажав сочетание клавиш Ctrl + S или выбрав пункт меню Файл -> Сохранить.
  2. Закройте Конфигуратор и запустите вашу информационную базу «1С:Бухгалтерия предприятие» в обычном режиме предприятия. Попробуйте снова запустить измененную обработку ВыгрузкаДанныхИзБП30.epf через меню «Дополнительные отчеты и обработки» или «Файл» -> «Открыть». Ошибка инициализации должна исчезнуть, и вы сможете продолжить настройку параметров переноса данных.

Способ 2: Использование актуальных файлов переноса из шаблонов конфигурации

Самым правильным и надежным способом решения проблем совместимости является использование актуальных версий правил конвертации и обработок выгрузки. Фирма «1С» обновляет эти файлы синхронно с выпуском новых релизов «Комплексной автоматизации» и «Бухгалтерии предприятия».

Проблема часто осложняется тем, что база-приемник (КА 2.4) может находиться в облаке (например, в сервисе 1С:Fresh или у другого облачного провайдера), где действуют жесткие ограничения на установку локальных шаблонов конфигураций из дистрибутивов. Тем не менее, получить актуальные файлы переноса можно несколькими путями:

Вариант А: Скачивание дистрибутива конфигурации-приемника через Портал 1С

Даже если ваша база «1С:Комплексная автоматизация» развернута в облачном сервисе, у вашей организации, как у лицензионного пользователя с активной подпиской ИТС (КП), есть доступ к официальному разделу обновлений программ на Портале 1С.

  1. Перейдите на сайт обновлений и авторизуйтесь под своими учетными данными 1С.
  2. Найдите в списке программ конфигурацию «Комплексная автоматизация, редакция 2.4» (или ту версию, которая установлена у вас в облаке, например, 2.4.11.88).
  3. Вместо обычного файла обновления скачайте Полный дистрибутив установки конфигурации.
  4. Запустите скачанный установщик локально на своем компьютере. Он распакует шаблоны конфигурации в стандартный рабочий каталог на вашем диске (по умолчанию это путь вида C:\Users\[ИмяПользователя]\AppData\Roaming\1C\1cv8\tmplts\1c\aor\[Номер_Релиза]\).
  5. Перейдите в эту папку. Внутри каталога релиза вы найдете папку под названием Convert. В ней и лежат самые свежие, полностью совместимые версии файлов: ConvAcc3_0.xml (правила конвертации) и ВыгрузкаДанныхИзБП30.epf (обработка выгрузки). Скопируйте их и используйте для переноса.

Вариант Б: Обращение в техническую поддержку облачного сервиса

Если у вас нет прав на скачивание полных дистрибутивов или вы не хотите заниматься установкой шаблонов локально, вы всегда можете обратиться к администраторам вашего облачного сервиса (например, в службу поддержки 1С:Fresh). Специалисты поддержки имеют прямой доступ к серверам шаблонов и могут оперативно выслать вам актуальный комплект файлов для переноса данных между БП 3.0 и нужным релизом КА 2.4.

Вариант В: Использование встроенных помощников перехода

Во многих современных конфигурациях реализован бесшовный переход между программами. Загляните в раздел Администрирование -> Начальное заполнение (или воспользуйтесь поиском функций по ключевому слову «Переход»). В некоторых случаях система сама способна скачать необходимые актуальные правила и обработки непосредственно с серверов обновлений 1С без ручного вмешательства пользователя.

Подведем итоги

Мы детально разобрали техническую природу ошибки «Метод объекта не обнаружен (СтрокаИзМассиваПодстрок)», выяснили её связь с развитием БСП и переходом на современные методы платформы СтрСоединить. Теперь вы вооружены знаниями, которые позволят вам быстро решить данную проблему как путем быстрого изменения программного кода обработки в Конфигураторе, так и путем получения гарантированно рабочих и актуальных дистрибутивных файлов из папки шаблонов 1С.

← На главную