|
Индекс находится за границами массива при проведении документа "Приобретение товаров и усл | ☑ | ||
---|---|---|---|---|
0
Evgk2084
12.02.21
✎
09:21
|
Добрый день такая ситуация: При проведении документа "Приобритение товаров и услуг" вышла ошибка: "Индекс находится за границами массива"
Индекс находится за границами массива {ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1957)}: Результат = Форма.Записать(ПараметрыЗаписи); {Документ.ПриобретениеТоваровУслуг.Форма.ФормаДокумента.Форма(8382)}: ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи); по причине: Ошибка при выполнении обработчика - 'ОбработкаПроведения' по причине: Индекс находится за границами массива {ОбщийМодуль.ПроведениеСерверУТ.Модуль(355)}: Объект.Движения.Записать(); {Документ.ПриобретениеТоваровУслуг.МодульОбъекта(891)}: ПроведениеСерверУТ.ЗаписатьНаборыЗаписей(ЭтотОбъект); по причине: Ошибка при выполнении обработчика - 'ПриЗаписи' по причине: Индекс находится за границами массива {ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(4576)}: Если сч <= КурсыВалютыРасчетов.Количество() {ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(150)}: ТаблицаКурсовВалют = ПолучитьКурсыВалют(Запрос, ДатаНачалаКурсов, ГлобальныеПеременные); {ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(1408)}: ЗаполнитьОперативныеВзаиморасчеты(ОсновныеПараметры); {РегистрНакопления.РасчетыСПоставщиками.МодульНабораЗаписей(313)}: ОперативныеВзаиморасчетыСервер.РассчитатьПоИзменениям(Запрос.МенеджерВременныхТаблиц, Ложь, Отбор.Регистратор.Значение, ДополнительныеСвойства); {ОбщийМодуль.ПроведениеСерверУТ.Модуль(355)}: Объект.Движения.Записать(); {Документ.ПриобретениеТоваровУслуг.МодульОбъекта(891)}: ПроведениеСерверУТ.ЗаписатьНаборыЗаписей(ЭтотОбъект); Потом посоветовали сделать так: поменять Если сч <= КурсыВалютыРасчетов.Количество() на Если сч < КурсыВалютыРасчетов.Количество() в ОМ ОперативныеВзаиморасчетыСервер После стало так: Индекс находится за границами массива {ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1957)}: Результат = Форма.Записать(ПараметрыЗаписи); {Документ.ПриобретениеТоваровУслуг.Форма.ФормаДокумента.Форма(8382)}: ОбщегоНазначенияУТКлиент.ОбработатьЗаписьОбъектаВФорме(ЭтотОбъект, ПараметрыДляЗаписи); по причине: Ошибка при выполнении обработчика - 'ОбработкаПроведения' по причине: Индекс находится за границами массива {ОбщийМодуль.ПроведениеСерверУТ.Модуль(355)}: Объект.Движения.Записать(); {Документ.ПриобретениеТоваровУслуг.МодульОбъекта(891)}: ПроведениеСерверУТ.ЗаписатьНаборыЗаписей(ЭтотОбъект); по причине: Ошибка при выполнении обработчика - 'ПриЗаписи' по причине: Индекс находится за границами массива {ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(4583)}: Если КурсыВалютыРасчетов[сч].КурсРегл = 0 Тогда {ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(150)}: ТаблицаКурсовВалют = ПолучитьКурсыВалют(Запрос, ДатаНачалаКурсов, ГлобальныеПеременные); {ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(1408)}: ЗаполнитьОперативныеВзаиморасчеты(ОсновныеПараметры); {РегистрНакопления.РасчетыСПоставщиками.МодульНабораЗаписей(313)}: ОперативныеВзаиморасчетыСервер.РассчитатьПоИзменениям(Запрос.МенеджерВременныхТаблиц, Ложь, Отбор.Регистратор.Значение, ДополнительныеСвойства); {ОбщийМодуль.ПроведениеСерверУТ.Модуль(355)}: Объект.Движения.Записать(); {Документ.ПриобретениеТоваровУслуг.МодульОбъекта(891)}: ПроведениеСерверУТ.ЗаписатьНаборыЗаписей(ЭтотОбъект); Кто подскажет как быть? |
|||
1
Галахад
гуру
12.02.21
✎
09:25
|
Хм. А отладчиком посмотреть?
|
|||
2
ZDenis
12.02.21
✎
09:39
|
Вчера было уже что-то похожее
|
|||
3
ZDenis
12.02.21
✎
09:41
|
||||
4
ZDenis
12.02.21
✎
09:45
|
У Вас явная беда с валютами и/или курсами. Смотри какие в документе выбраны (и выбраны ли вообще). Валюты взаиморасчетов в договоре. Если другие документы проводятся, то попробуйте не копировать, а создать этот документ с нуля.
|
|||
5
ZDenis
12.02.21
✎
09:46
|
Если было обновление конфигурации, то почистить кеш.
|
|||
6
Kesim
12.02.21
✎
13:26
|
(0) отладкой посмотри что у тебя в "КурсыВалютыРасчетов" и на каком значении "сч" отваливается
//{ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(4583)}: Если КурсыВалютыРасчетов[сч].КурсРегл = 0 Тогда |
|||
7
Evgk2084
12.02.21
✎
16:19
|
(6) Не знаю что нужно, скопировал все,,,:))
Функция ПолучитьКурсыВалют(Запрос, ДатаНачала, ГлобальныеПеременные) ДатаОкончания = НачалоДня(ТекущаяДатаСеанса()); Запрос.Текст = " |ВЫБРАТЬ | ДанныеПроизводственногоКалендаря.Дата КАК Дата |ПОМЕСТИТЬ ПериодыКурсов |ИЗ | РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря |ГДЕ | ДанныеПроизводственногоКалендаря.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания |; |ВЫБРАТЬ | ПериодыКурсов.Дата КАК Дата, | ВЫБОР | КОГДА ЕСТЬNULL(КурсыВалютыРасчетов.Курс,0) = 0 И &ВалютаРасчетов <> &ВалютаРегл | ТОГДА 0 | ИНАЧЕ ЕСТЬNULL(КурсыВалютыРасчетов.Курс,1) / ЕСТЬNULL(КурсыВалютыРасчетов.Кратность,1) | КОНЕЦ КАК КурсРегл, | ВЫБОР | КОГДА ЕСТЬNULL(КурсыВалютыРасчетов.Курс,0) = 0 И &ВалютаРасчетов <> &ВалютаРегл | ТОГДА 0 | КОГДА ЕСТЬNULL(КурсыВалютыУпр.Курс,0) = 0 И &ВалютаУпр <> &ВалютаРегл | ТОГДА 0 | ИНАЧЕ (ЕСТЬNULL(КурсыВалютыРасчетов.Курс,1) / ЕСТЬNULL(КурсыВалютыРасчетов.Кратность,1)) / (ЕСТЬNULL(КурсыВалютыУпр.Курс,1) / ЕСТЬNULL(КурсыВалютыУпр.Кратность,1)) | КОНЕЦ КАК КурсУпр |ИЗ | ПериодыКурсов КАК ПериодыКурсов | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалютыРасчетов | ПО ПериодыКурсов.Дата = КурсыВалютыРасчетов.Период | И КурсыВалютыРасчетов.Валюта = &ВалютаРасчетов | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалютыУпр | ПО ПериодыКурсов.Дата = КурсыВалютыУпр.Период | И КурсыВалютыУпр.Валюта = &ВалютаУпр |УПОРЯДОЧИТЬ ПО | Дата ВОЗР |; |ВЫБРАТЬ | &ДатаНачала КАК Дата, | ЕСТЬNULL(КурсыВалют.Курс,1) / ЕСТЬNULL(КурсыВалют.Кратность,1) КАК КурсРегл, | (ЕСТЬNULL(КурсыВалют.Курс,1) / ЕСТЬNULL(КурсыВалют.Кратность,1)) / (ЕСТЬNULL(КурсыВалютыУпр.Курс,1) / ЕСТЬNULL(КурсыВалютыУпр.Кратность,1)) КАК КурсУпр |ИЗ | РегистрСведений.КурсыВалют.СрезПоследних(&ДатаНачала) КАК КурсыВалют | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаНачала) КАК КурсыВалютыУпр | ПО КурсыВалютыУпр.Валюта = &ВалютаУпр |ГДЕ КурсыВалют.Валюта = &ВалютаРасчетов"; Запрос.УстановитьПараметр("ЕжедневнаяПереоценка", ГлобальныеПеременные.ЕжедневнаяПереоценка); Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ДатаНачала)); Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания); Запрос.УстановитьПараметр("ВалютаРасчетов", ГлобальныеПеременные.ВалютаРасчетов); Запрос.УстановитьПараметр("ВалютаУпр", Константы.ВалютаУправленческогоУчета.Получить()); Результаты = Запрос.ВыполнитьПакет(); КурсыВалютыРасчетов = Результаты[1].Выгрузить(); КурсыВалютСрезПоследних = Результаты[2].Выгрузить(); ТекущийКурсРегл = ?(КурсыВалютСрезПоследних.Количество() > 0, КурсыВалютСрезПоследних[0].КурсРегл, 1); ТекущийКурсУпр = ?(КурсыВалютСрезПоследних.Количество() > 0, КурсыВалютСрезПоследних[0].КурсУпр, 1); ТекущаяДата = НачалоДня(ДатаНачала); сч = 0; Пока ТекущаяДата <= ДатаОкончания Цикл Если сч < КурсыВалютыРасчетов.Количество() И КурсыВалютыРасчетов[сч].Дата <> ТекущаяДата Тогда НовСтр = КурсыВалютыРасчетов.Вставить(сч); НовСтр.Дата = ТекущаяДата; НовСтр.КурсРегл = ТекущийКурсРегл; НовСтр.КурсУпр = ТекущийКурсУпр; Иначе Если КурсыВалютыРасчетов[сч].КурсРегл = 0 Тогда КурсыВалютыРасчетов[сч].КурсРегл = ТекущийКурсРегл; Иначе ТекущийКурсРегл = КурсыВалютыРасчетов[сч].КурсРегл; КонецЕсли; Если КурсыВалютыРасчетов[сч].КурсУпр = 0 Тогда КурсыВалютыРасчетов[сч].КурсУпр = ТекущийКурсУпр; Иначе ТекущийКурсУпр = КурсыВалютыРасчетов[сч].КурсУпр; КонецЕсли; КонецЕсли; ТекущаяДата = ТекущаяДата + 24*60*60; сч = сч + 1 ; КонецЦикла; КурсыВалютыРасчетов.Индексы.Добавить("Дата"); Возврат КурсыВалютыРасчетов; КонецФункции |
|||
8
программистище
12.02.21
✎
16:23
|
т.е. прошло два дня, а человек не удосужился поставить точку останова и посмотреть, что у него в КурсыВалютыРасчетов
|
|||
9
Evgk2084
12.02.21
✎
16:27
|
(8) А нельзя подсказать, как и что сделать.?
|
|||
10
программистище
12.02.21
✎
16:31
|
(9) подсказать это в (6) сделали
отладчиком совсем не умеешь пользоваться? а то получается надо не подсказать, а научить |
|||
11
Evgk2084
12.02.21
✎
16:41
|
(10) в том то и дело, что не умею...
|
|||
12
Evgk2084
12.02.21
✎
18:12
|
Ну что ни кто не поможет???
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |