Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 23:45

Ошибка в 1С 8.3 Бух-я "Индекс находится за границами массива. ПОМОГИТЕ!!!!

Автор Анюта Юсупова, 03 фев 2018, 11:25

0 Пользователей и 1 гость просматривают эту тему.

Анюта Юсупова

Здравствуйте. Пытаюсь в 1С 8.3 Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.58.26), в акте списания ЕГАИС, ввести акцизную марку, выдается вышеуказанная ошибка. Что это может быть? В чем проблема? Заранее спасибо.

#Область СлужебныеПроцедурыИФункции

// Функция - Код классификатора номенклатуры ЕГАИС
//
// Параметры:
//  ШтрихкодАкцизнойМарки - Строка - Штрихкод акцизной марки
//
// Возвращаемое значение:
//  Строка - строка с кодом номенклатуры по классификатору егаис
//
Функция КодКлассификатораНоменклатурыЕГАИС(ШтрихкодАкцизнойМарки) Экспорт
   
    Если Сред(ШтрихкодАкцизнойМарки, 4, 5) = "00000" Тогда
       
        Значение = Сред(ШтрихкодАкцизнойМарки, 9, 11);
        КоличествоИтераций = 11;
       
    Иначе
       
        Значение = Сред(ШтрихкодАкцизнойМарки, 8, 12);
        КоличествоИтераций = 12;
       
    КонецЕсли;
   
    Результат = 0;
   
    Для Итерация = 1 По КоличествоИтераций Цикл
       
        Сумматор = 1;
        Для Индекс = 1 По КоличествоИтераций - Итерация Цикл
            Сумматор = Сумматор * 36;
        КонецЦикла;
       
        Результат = Результат + Сумматор * (Найти("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", Сред(Значение, Итерация, 1)) - 1);
       
    КонецЦикла;
   
    Возврат Формат(Результат, "ЧЦ=19; ЧВН=; ЧГ=0");
   
КонецФункции

// Проверяет штрихкод акцизной марки
//
// Параметры:
//  Штрихкод - Строка - Штрихкод акцизной марки
//  СопоставленнаяНоменклатура - Структура со свойствами:
//   * НоменклатураЕГАИС - СправочникСсылка.КлассификаторАлкогольнойПродукцииЕГАИС
//   * Номенклатура - ОпределяемыйТип.Номенклатура
//   * Характеристика - ОпределяемыйТип.ХарактеристикаНоменклатуры
//   * Упаковка - ОпределяемыйТип.Упаковка
//
// Возвращаемое значение:
//   Булево - признак штрихкод является акцизной маркой
//
Функция ЭтоШтрихкодАкцизнойМарки(Штрихкод, СопоставленнаяНоменклатура = Неопределено) Экспорт
   
    УстановитьПривилегированныйРежим(Истина);
   
    ВидДокумента = Перечисления.ВидыДокументовЕГАИС.ЧекККМ;
    ТипШтрихкодМарки = ФабрикаXDTO.Тип(Перечисления.ВидыДокументовЕГАИС.ПространствоИмен(ВидДокумента, Неопределено, ""), "BK");
   
    Попытка
        ТипШтрихкодМарки.Проверить(Штрихкод);
    Исключение
        Возврат Ложь;
    КонецПопытки;
   
    КодКлассификатораНоменклатурыЕГАИС = КодКлассификатораНоменклатурыЕГАИС(Штрихкод);
   
    Запрос = Новый Запрос(
    "ВЫБРАТЬ ПЕРВЫЕ 1
    |    КлассификаторАлкогольнойПродукцииЕГАИС.Ссылка         КАК Ссылка,
    |    КлассификаторАлкогольнойПродукцииЕГАИС.Номенклатура   КАК Номенклатура,
    |    КлассификаторАлкогольнойПродукцииЕГАИС.Характеристика КАК Характеристика,
    |    КлассификаторАлкогольнойПродукцииЕГАИС.Упаковки.(
    |        Ссылка,
    |        НомерСтроки,
    |        ИдентификаторУпаковки,
    |        Упаковка
    |    ) КАК Упаковки
    |ИЗ
    |    Справочник.КлассификаторАлкогольнойПродукцииЕГАИС КАК КлассификаторАлкогольнойПродукцииЕГАИС
    |ГДЕ
    |    КлассификаторАлкогольнойПродукцииЕГАИС.Код = &КодКлассификатораНоменклатурыЕГАИС");
    Запрос.Параметры.Вставить("КодКлассификатораНоменклатурыЕГАИС", КодКлассификатораНоменклатурыЕГАИС);
   
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
       
        СопоставленнаяНоменклатура = Новый Структура;
        СопоставленнаяНоменклатура.Вставить("НоменклатураЕГАИС", Выборка.Ссылка);
        СопоставленнаяНоменклатура.Вставить("Номенклатура",      Выборка.Номенклатура);
        СопоставленнаяНоменклатура.Вставить("Характеристика",    Выборка.Характеристика);
        СопоставленнаяНоменклатура.Вставить("Упаковка",          Выборка.Упаковки.Выгрузить()[0].Упаковка);
       
    КонецЕсли;
   
    Возврат Истина;
   
КонецФункции

#КонецОбласти

LexaK

внимательно посмотрите на сообщение об ошибке, там должен быть номер строки с ошибкой.
просто в отладчике остановитесь на этой строчке, посмотрите текущие данные, все сразу будет понятно.
например по тому коду что вы выложили, ошибка может возникать
если не все элементы справочника КлассификаторАлкогольнойПродукцииЕГАИС имею заполненную ТЧ Упаковки,
так как ниже идет обращение к строке Упаковки, если нет ни одной упаковки как раз будет такая ошибка.

СопоставленнаяНоменклатура.Вставить("Упаковка", Выборка.Упаковки.Выгрузить()[0].Упаковка);
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск