Понедельник, 13.05.2024, 16:45
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Основной » Проблемные ситуации » Ошибка при поиске дублей (3.88)
Ошибка при поиске дублей
tommyx274Дата: Четверг, 15.12.2016, 15:28 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 9
Репутация: 8
Статус: Оффлайн
При поиске дублей физлиц в УПП по наименованию и дате рождения появилась ошибка (в 3.82 такого не было)
{Обработка.ирПоискДублейИЗаменаСсылок.Форма.Форма.Форма(236)}: Индекс находится за границами массива
СтрокаПоиска[мИмяПоляНомерГруппы] = НайденныеГруппы.НайтиСтроки(КлючПоиска)[0][мИмяПоляНомерГруппы];

Насколько я понял строка 751 в этой обработке вырезает последний символ подчеркивания из строки, где такого символа нет, соответственно удаляет последний символ строки.
// Удалим служебный символ "_" в конце строки
СтрокаГруппы[СтроковоеПоле] = Сред(Нрег(ЗначениеПоля), 1, СтрДлина(ЗначениеПоля) - 1);

Не разобрался что там не так, где-то не всегда видимо этот символ ставится.
 
tormozitДата: Четверг, 15.12.2016, 21:23 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6199
Репутация: 159
Статус: Оффлайн
Спасибо. Ошибка понятна.
Исправить самостоятельно можно новым вариантом метода

Код
Процедура ВосстановитьЗначенияСтрокВСтрокеРезультатаЗапроса(Знач МассивСтроковыхПолейСравнения, Знач СтрокаГруппы)
    
    Для Каждого СтроковоеПоле Из МассивСтроковыхПолейСравнения Цикл
        ЗначениеПоля = НРег(СтрокаГруппы[СтроковоеПоле]);
        // Заменим неразрывный пробел на нормальный
        ЗначениеПоля = СтрЗаменить(ЗначениеПоля, Символ(10 * 16), " ");
        Если УчитыватьПравыеПробелыСтрок Тогда
            // Удалим служебный символ "_" в конце строки
            ЗначениеПоля = Лев(ЗначениеПоля, СтрДлина(ЗначениеПоля) - 1);
        КонецЕсли;
        СтрокаГруппы[СтроковоеПоле] = ЗначениеПоля;
    КонецЦикла;

КонецПроцедуры
 
tommyx274Дата: Пятница, 16.12.2016, 14:06 | Сообщение # 3
Рядовой
Группа: Проверенные
Сообщений: 9
Репутация: 8
Статус: Оффлайн
Не помогло. Ошибка в другом месте появилась.

{Обработка.ирПоискДублейИЗаменаСсылок.Форма.Форма.Форма(236)}: Индекс находится за границами массива
СтрокаПоиска[мИмяПоляНомерГруппы] = НайденныеГруппы.НайтиСтроки(КлючПоиска)[0][мИмяПоляНомерГруппы];
 
tormozitДата: Пятница, 16.12.2016, 21:18 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 6199
Репутация: 159
Статус: Оффлайн
Так вроде та же самая ошибка и в той же строке.
Я воспроизвести ошибку не смог.
Предоставь содержимое таблиц НайденныеГруппы и мРезультатыПоиска и структуры КлючПоиска на момент возникновения ошибки.
 
tormozitДата: Воскресенье, 18.12.2016, 22:15 | Сообщение # 5
Генералиссимус
Группа: Администраторы
Сообщений: 6199
Репутация: 159
Статус: Оффлайн
Ошибку воспроизвел. Исправлено в 3.89
 
Форум » Основной » Проблемные ситуации » Ошибка при поиске дублей (3.88)
  • Страница 1 из 1
  • 1
Поиск: