![]() |
|
БП 3.0. Ошибка при формировании отчета "Главная книга" | ☑ | ||
---|---|---|---|---|
0
Alex Проблемный
06.10.21
✎
14:11
|
1С:Предприятие 8.3 (8.3.19.1229)
БП 3.0.101.19 Серверная на SQL При формировании отчета "Главная книга" за 2019 год с группировкой по "месяцам" и с "развернутым сальдо" по счету "76" "по субсчетам", выходит ошибка: "Индекс находится за границами массива Технические подробности: Ошибка выполнения фонового задания ДлительныеОперации.ВыполнитьСКонтекстомКлиента с идентификатором 14631ba4-bec2-4cd7-b755-17be67088665 по причине Индекс находится за границами массива {Отчет.ГлавнаяКнига.МодульМенеджера(1070)}: ОбщиеОстатки = ДеревоОстатков.Строки[0]; {Отчет.ГлавнаяКнига.МодульМенеджера(808)}: СтрокаОстатков = ПолучитьСтрокуИзДереваОстатков(ПараметрыОтчета, СтруктураПараметров, ВыборкаПоПериодам.Период); {Отчет.ГлавнаяКнига.МодульМенеджера(481)}: ВывестиПериоды(ПараметрыОтчета, ОбщийИтог, СтруктураПараметров, Новый Соответствие, БазовыйУровеньВыборки); {Отчет.ГлавнаяКнига.МодульМенеджера(77)}: ВывестиСчет(ПараметрыОтчета, ВыборкаПоСчетам, СтруктураПараметров, ВыводитьЗаголовок); См. также журнал регистрации. {ОбщийМодуль.ДлительныеОперации.Модуль(695)}: ВызватьИсключение ТекстОшибки; {Отчет.ГлавнаяКнига.Форма.ФормаОтчета.Форма(669)}: Возврат ДлительныеОперации.ЗаданиеВыполнено(ИдентификаторЗадания); {Отчет.ГлавнаяКнига.Форма.ФормаОтчета.Форма(624)}: Если ЗаданиеВыполнено(ИдентификаторЗадания) Тогда " По коду понял что Процедура ЗаполнитьТаблицуРазвернутыхОстатков(ПараметрыОтчета, СтруктураПараметров) Формирует и выполняет запрос: ВЫБРАТЬ РАЗРЕШЕННЫЕ ОстаткиИОбороты.Период КАК Период, ОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокДт КАК СуммаРазвернутоКонДт, ОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокКт КАК СуммаРазвернутоКонКт, ОстаткиИОбороты.СуммаНачальныйРазвернутыйОстатокДт КАК СуммаРазвернутоНачДт, ОстаткиИОбороты.СуммаНачальныйРазвернутыйОстатокКт КАК СуммаРазвернутоНачКт, ОстаткиИОбороты.Счет, ОстаткиИОбороты.Субконто1, ОстаткиИОбороты.Субконто2 ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Месяц, , Счет В (&Субсчета), , Организация = &Организация) КАК ОстаткиИОбороты УПОРЯДОЧИТЬ ПО Период ИТОГИ СУММА(СуммаРазвернутоКонДт), СУММА(СуммаРазвернутоКонКт), СУММА(СуммаРазвернутоНачДт), СУММА(СуммаРазвернутоНачКт) ПО ОБЩИЕ, Период ПЕРИОДАМИ(Месяц, , ), Счет ИЕРАРХИЯ, Субконто1, Субконто2 С парамерами: НачалоПериода = 01.01.2019 0:00:00 КонецПериода = 31.01.2019 23:59:59 Организация = ООО Субсчета = 76.05 и получает пустую таблицу в последствии к которой по коду идёт обравщение по индексу и падает в ошибку. Если смотреть оборотку по счету 76.05, то в ней нет записей, а по 76.АВ есть Как решить проблему? |
|||
1
hhhh
06.10.21
✎
14:17
|
(0) ну ты попал. Этот отчет наверно с 2005 года никто и не открывал.
|
|||
2
Alex Проблемный
06.10.21
✎
14:38
|
(1) а что с ней не так? или её уже не используют? Мб есть аналог?
|
|||
3
Alex Проблемный
06.10.21
✎
14:57
|
Решил так:
Добавить в расширение "Вместо" (Модуль менеджера отчета ГлавнаяКнига(1070)) Функция ПолучитьСтрокуИзДереваОстатков(ПараметрыОтчета, СтруктураПараметров, ДатаПоиска) ДеревоОстатков = СтруктураПараметров["ДеревоОстатков"]; ДатаОстатков = ?(ДатаПоиска = NULL, ПараметрыОтчета.НачалоПериода, ДатаПоиска); //{[+](фрагмент ДОБАВЛЕН), 06.10.2021 14:46:15 - Проверка на пустую таблицу Если Не ДеревоОстатков.Строки.Количество() Тогда Возврат Неопределено; КонецЕсли; //} 06.10.2021 14:46:32 ОбщиеОстатки = ДеревоОстатков.Строки[0]; СтрокаОстатков = ОбщиеОстатки.Строки.Найти(ДатаОстатков, "Период", Ложь); // Строки на данную дату не нашли. Будем искать строки с более ранними датами. Если СтрокаОстатков = Неопределено Тогда Для Каждого стр Из ОбщиеОстатки.Строки Цикл Если стр.Период = NULL Тогда Продолжить; КонецЕсли; Если стр.Период <= ДатаОстатков Тогда СтрокаОстатков = стр; КонецЕсли; КонецЦикла; КонецЕсли; Возврат СтрокаОстатков; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |