{ВнешняяОбработка.ирКэш(783)}: Индекс находится за границами массива
В указанной обработке видим следующий код:
Код
Если ТекущийРежимСовместимости = Метаданные.СвойстваОбъектов.РежимСовместимости.НеИспользовать Тогда
СисИнфо = Новый СистемнаяИнформация;
Фрагменты = ирОбщий.ПолучитьМассивИзСтрокиСРазделителемЛкс(СисИнфо.ВерсияПриложения);
Иначе
// Пример значения СтрокаВерсии = Версия8_3_1
СтрокаВерсии = СтрЗаменить(ТекущийРежимСовместимости, "Версия", "");
Фрагменты = ирОбщий.ПолучитьМассивИзСтрокиСРазделителемЛкс(СтрокаВерсии, "_");
КонецЕсли;
Результат = Число(Фрагменты[0]) * 100 * 1000 + Число(Фрагменты[1]) * 1000 + Число(Фрагменты[2]);
Как видим, код "ориентирован" на то, что в режиме совместимости будет указана строка из трех чисел-фрагментов и не ориентирован на строку "Версия8_1".
Мой вариант исправления: последнюю строку (где идет присвоение переменной "Результат") заменить на
Код
Результат = Число(Фрагменты[0]) * 100 * 1000 + Число(Фрагменты[1]) * 1000;
Если Фрагменты.Количество() > 2 Тогда
Результат = Результат + Число(Фрагменты[2]);
КонецЕсли;