Что означает индекс находится за границами массива в 1с
Перейти к содержимому

Что означает индекс находится за границами массива в 1с

  • автор:

Что означает индекс находится за границами массива в 1с

Всем привет. Кто может помочь? Управление торговлей, редакция 11 (11.4.12.71)

При попытке проведения документа «Приобретение товаров и услуг (создание)» выходит такая ошибка.

Индекс находится за границами массива
: Результат = Форма.Записать(ПараметрыЗаписи);
: ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи);

по причине:
Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
Индекс находится за границами массива
: Объект.Движения.Записать();
: ПроведениеСерверУТ.ЗаписатьНаборыЗаписей(ЭтотОбъект);

по причине:
Ошибка при выполнении обработчика — ‘ПриЗаписи’
по причине:
Индекс находится за границами массива
: Если сч : ТаблицаКурсовВалют = ПолучитьКурсыВалют(Запрос, ДатаНачалаКурсов, ГлобальныеПеременные);
: ЗаполнитьОперативныеВзаиморасчеты(ОсновныеПараметры);
: ОперативныеВзаиморасчетыСервер.РассчитатьПоИзменениям(Запрос.МенеджерВременныхТаблиц, Ложь, Отбор.Регистратор.Значение, ДополнительныеСвойства);
: Объект.Движения.Записать();
: ПроведениеСерверУТ.ЗаписатьНаборыЗаписей(ЭтотОбъект);

может поможет:
проверить какие валюты заданы в настройках (валюта бух, валюта упр и проч).
проверить — а загружены ли курсы для этих валют.

.
хотя конечно разрабы еще те дятлы, такие ситуации как у ТС должны отлавливаться и блокирвоаться т ане крашиться с кучей непонятных сообщенйи для юзера

Проверить — все ли валюьы заданы в документе. Прорверить — все ли в документе заполнено. а то может подгружадли документ программно — что-то не заполнили.
потыкать по всем полям ручками, перезаполнить поля/реквизиты.

Что означает индекс находится за границами массива в 1с

Добрый день такая ситуация: При проведении документа «Приобритение товаров и услуг» вышла ошибка: «Индекс находится за границами массива»

Индекс находится за границами массива
: Результат = Форма.Записать(ПараметрыЗаписи);
: ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи);

по причине:
Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
Индекс находится за границами массива
: Объект.Движения.Записать();
: ПроведениеСерверУТ.ЗаписатьНаборыЗаписей(ЭтотОбъект);

по причине:
Ошибка при выполнении обработчика — ‘ПриЗаписи’
по причине:
Индекс находится за границами массива
: Если сч : ТаблицаКурсовВалют = ПолучитьКурсыВалют(Запрос, ДатаНачалаКурсов, ГлобальныеПеременные);
: ЗаполнитьОперативныеВзаиморасчеты(ОсновныеПараметры);
: ОперативныеВзаиморасчетыСервер.РассчитатьПоИзменениям(Запрос.МенеджерВременныхТаблиц, Ложь, Отбор.Регистратор.Значение, ДополнительныеСвойства);
: Объект.Движения.Записать();
: ПроведениеСерверУТ.ЗаписатьНаборыЗаписей(ЭтотОбъект);

Потом посоветовали сделать так:
поменять
Если сч на
Если сч < КурсыВалютыРасчетов.Количество()
в ОМ ОперативныеВзаиморасчетыСервер

После стало так:

Индекс находится за границами массива
: Результат = Форма.Записать(ПараметрыЗаписи);
: ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи);

по причине:
Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
Индекс находится за границами массива
: Объект.Движения.Записать();
: ПроведениеСерверУТ.ЗаписатьНаборыЗаписей(ЭтотОбъект);

по причине:
Ошибка при выполнении обработчика — ‘ПриЗаписи’
по причине:
Индекс находится за границами массива
: Если КурсыВалютыРасчетов[сч].КурсРегл = 0 Тогда
: ТаблицаКурсовВалют = ПолучитьКурсыВалют(Запрос, ДатаНачалаКурсов, ГлобальныеПеременные);
: ЗаполнитьОперативныеВзаиморасчеты(ОсновныеПараметры);
: ОперативныеВзаиморасчетыСервер.РассчитатьПоИзменениям(Запрос.МенеджерВременныхТаблиц, Ложь, Отбор.Регистратор.Значение, ДополнительныеСвойства);
: Объект.Движения.Записать();
: ПроведениеСерверУТ.ЗаписатьНаборыЗаписей(ЭтотОбъект);

Кто подскажет как быть?

Ошибки при работе в базе 1С

Ошибок в 1С может быть великое множество и происходить они могут по самым разным причинам.

Рассмотрим так называемые основные «виды» встречающихся ошибок.

Поле объекта не обнаружено


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

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

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

Индекс находится за границами массива


Ошибка «индекс находится за границами массива» обозначает что программа обратилась к полю в массиве (таблице), которое еще не создано. Эта ошибка может возникать после внесения поправок в вашу конфигурацию, и это определенно ошибка программиста, внесшего правки.

Изредка она может возникать при переносе баз данных(БД) на другую версию 1С, но это тое говорит о том, что конфигурация правилась, но без учета особенностей 1С.

Облегчает исправление ошибки то, что вместе с ней программа указывает путь для конфигуратора к объекту, в котором возникла ошибка. Обратитесь к программисту для исправления данной ошибки.

Недостаточно памяти в 1С


Эта ошибка происходит в том случае, если у системы заканчивается вся оперативная память, выделенная под нужды выполнения программ в операционной системе. Она может произойти при различных событиях таких как обновление конфигурации, обработка большого файла, при формировании отчета, загрузки большой базы данных и т.д.

При чем добавление в устройство дополнительных планок оперативной памяти, проблему решает не всегда.

32-разрядные операционные системы имеют одну существенную особенность: независимо от объема оперативной памяти и размера файла подкачки, под работу конкретного приложения операционная система выделяет только 4 Гб. Учитывая, что половина адресного пространства виртуальной памяти выделяются под нужды самой системы, на работу приложения остается только 2Гб. При работе программы адресное пространство виртуальной памяти должно резервироваться одним непрерывным блоком. Когда нет такой возможности, выскакивает данная ошибка.

Без переустановки операционной системы существуют два варианта исправления ситуации:

  1. Windows XP и предыдущие версии ОС от Microsoft определяют размер виртуального адресного пространства из файла boot.ini (расположен в корне диска C), в него необходимо добавить параметр /3Gb/userva=2900;
  2. Начиная с Windows Vista изменить размер доступного адресного пространства можно из командной строки, необходимо только запустить команду BCDEdit /set increaseuserva 2900

Этими способами можно уменьшить адресное пространство, выделяемое под операционную систему до 1Гб, увеличив память под приложение до 3Гб.

Внимание! Вручную распределив память можно столкнуться с проблемами в работе персонального компьютера вплоть до полной остановки системы.

Удаление строки из файла boot.ini или запуск команды с заменой параметра 2900 на 2000 возвращает систему в исходное состояние.

Важно понимать, что указанные способытолько временное решение проблемы, для окончательного её устранения необходимо перенести базу на 64-разрядную платформу.

Не очень часто, но эта ошибка возникает при возникновении отчетов. В этом случае выполнение обработки формирования табличного документа затягивается и, в конце концов, заканчивается окном с данной ошибкой.

Прежде, чем лезть в настройки операционной системы и менять параметры распределения оперативной памяти, в этом случае лучше попробовать сменить настройки отчета. Поменяйте дату, измените группировки, добавьте отбор. В большинстве случаев это помогает.

Индекс находится за границами массива 1с

80258

Не устроил ответ?
Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.

Реклама

Новые вакансии

  • Вакансия: Разработчик 1С, Москва, удалёнка/гибрид, 200-300 net от yskinkurogova
    Вчера в 13:25
  • Вакансия аналитика 1с УТ от 200K, гибрид от Татьяна Астахова
    25 января 2024 г.
  • Вакансия Программист 1С (Москва, гибрид) 250-300т.р. от paulaja03@gmail.com
    23 января 2024 г.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *