![]() |
![]() |
![]() |
|
индекс находится за границами массива | ☑ | ||
---|---|---|---|---|
0
sale123
02.05.13
✎
16:40
|
Подскажите как решить проблему:
У меня отчет "Карточка счета" должен сворачивать информацию по регистратору. Когда я его запускаю - пишет "индекс находится за границами массива". Вот модуль: Перем СохраненнаяНастройка Экспорт; Перем Расшифровки Экспорт; Перем РежимРасшифровки Экспорт; Перем СохранятьНастройкуОтчета Экспорт; Перем мТекущийНаборПоказателей; #Если Клиент Тогда Функция ПолучитьПараметрыВыбораЗначенияОтбора() Экспорт СписокПараметров = Новый Структура; СписокПараметров.Вставить("Дата" , КонецПериода); СписокПараметров.Вставить("СчетУчета" , Счет); СписокПараметров.Вставить("Номенклатура" , Неопределено); СписокПараметров.Вставить("Склад" , Неопределено); СписокПараметров.Вставить("Организация" , Организация); СписокПараметров.Вставить("Контрагент" , Неопределено); СписокПараметров.Вставить("ДоговорКонтрагента", Неопределено); СписокПараметров.Вставить("ЭтоНовыйДокумент" , Ложь); Возврат СписокПараметров; КонецФункции Процедура ОбработкаИзмененияСчета(ПолнаяОбработка = Истина) Экспорт Если ЗначениеЗаполнено(Счет) Тогда КоличествоСубконто = Счет.ВидыСубконто.Количество(); ИмяПоляПрефикс = "Субконто"; // Изменение представления и наложения ограничения типа значения Для Индекс = 1 По КоличествоСубконто Цикл Поле = СхемаКомпоновкиДанных.НаборыДанных[0].Поля.Найти(ИмяПоляПрефикс + Индекс); Если Поле <> Неопределено Тогда Поле.Заголовок = Счет.ВидыСубконто[Индекс - 1].ВидСубконто.Наименование; Поле.ТипЗначения = Счет.ВидыСубконто[Индекс - 1].ВидСубконто.ТипЗначения; КонецЕсли; КонецЦикла; КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); Если ПолнаяОбработка Тогда // Управление показателями Если Счет.НалоговыйУчет Тогда ДанныеОтчета.ПоказателиОтчета.БУ.Использование = Истина; ДанныеОтчета.ПоказателиОтчета.БУ.Значение = Истина; ДанныеОтчета.ПоказателиОтчета.НУ.Использование = Истина; ДанныеОтчета.ПоказателиОтчета.НУ.Значение = Ложь; ДанныеОтчета.ПоказателиОтчета.ПР.Использование = Истина; ДанныеОтчета.ПоказателиОтчета.ПР.Значение = Ложь; ДанныеОтчета.ПоказателиОтчета.ВР.Использование = Истина; ДанныеОтчета.ПоказателиОтчета.ВР.Значение = Ложь; Иначе ДанныеОтчета.ПоказателиОтчета.БУ.Использование = Истина; ДанныеОтчета.ПоказателиОтчета.БУ.Значение = Истина; ДанныеОтчета.ПоказателиОтчета.НУ.Использование = Ложь; ДанныеОтчета.ПоказателиОтчета.НУ.Значение = Ложь; ДанныеОтчета.ПоказателиОтчета.ПР.Использование = Ложь; ДанныеОтчета.ПоказателиОтчета.ПР.Значение = Ложь; ДанныеОтчета.ПоказателиОтчета.ВР.Использование = Ложь; ДанныеОтчета.ПоказателиОтчета.ВР.Значение = Ложь; КонецЕсли; Если Счет.Валютный Тогда ДанныеОтчета.ПоказателиОтчета.ВалютнаяСумма.Использование = Истина; ДанныеОтчета.ПоказателиОтчета.ВалютнаяСумма.Значение = Истина; Иначе ДанныеОтчета.ПоказателиОтчета.ВалютнаяСумма.Использование = Ложь; ДанныеОтчета.ПоказателиОтчета.ВалютнаяСумма.Значение = Ложь; КонецЕсли; Если Счет.Количественный Тогда ДанныеОтчета.ПоказателиОтчета.Количество.Использование = Истина; ДанныеОтчета.ПоказателиОтчета.Количество.Значение = Истина; Иначе ДанныеОтчета.ПоказателиОтчета.Количество.Использование = Ложь; ДанныеОтчета.ПоказателиОтчета.Количество.Значение = Ложь; КонецЕсли; Если Счет.УчетПоПодразделениям Тогда НастройкиФормы.Вставить("ДоступностьПодразделения", Истина); Иначе НастройкиФормы.Вставить("ДоступностьПодразделения", Ложь); КонецЕсли; Если Не РежимРасшифровки Тогда // Добавление неактивных отборов по субконто в соответствии с выбранным счетом ОтборыДляУдаления = Новый Массив; Для Каждого ЭлементОтбора Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл Если ТипЗнч(ЭлементОтбора) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда Если Найти(ЭлементОтбора.ЛевоеЗначение, "Субконто") > 0 ИЛИ Строка(ЭлементОтбора.ЛевоеЗначение) = "Валюта" ИЛИ (Найти(ЭлементОтбора.ЛевоеЗначение, "Подразделение") = 1 И НЕ Счет.УчетПоПодразделениям) Тогда ОтборыДляУдаления.Добавить(ЭлементОтбора); КонецЕсли; КонецЕсли; КонецЦикла; Для Каждого ЭлементОтбора Из ОтборыДляУдаления Цикл КомпоновщикНастроек.Настройки.Отбор.Элементы.Удалить(ЭлементОтбора); КонецЦикла; Для Индекс = 1 По КоличествоСубконто Цикл ТиповыеОтчеты.ДобавитьОтбор(КомпоновщикНастроек, ИмяПоляПрефикс + Индекс, Счет.ВидыСубконто[Индекс - 1].ВидСубконто.ТипЗначения.ПривестиЗначение(Неопределено), , Ложь); КонецЦикла; Если Счет.Валютный Тогда Поле = КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Валюта")); ТиповыеОтчеты.ДобавитьОтбор(КомпоновщикНастроек, "Валюта", Поле.Тип.ПривестиЗначение(Неопределено), , Ложь); КонецЕсли; Если Не Счет.УчетПоПодразделениям Тогда Подразделение = Неопределено; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры Процедура ЗаполнитьНачальныеНастройки() Экспорт СтандартныеОтчеты.ЗаполнитьДанныеОтчета(ЭтотОбъект); КонецПроцедуры Процедура СформироватьОтчет(Результат = Неопределено, ДанныеРасшифровки = Неопределено, ВыводВФормуОтчета = Истина, ВнешниеНаборыДанных = Неопределено, ВыводитьПолностью = Истина) Экспорт Результат.Очистить(); Настройки = КомпоновщикНастроек.ПолучитьНастройки(); ВыводЗаголовкаОтчета(ЭтотОбъект, Результат); Если ВыводитьПолностью Тогда ДоработатьКомпоновщикПередВыводом(ВнешниеНаборыДанных); КомпоновщикНастроек.Восстановить(); НастройкаКомпоновкиДанных = КомпоновщикНастроек.ПолучитьНастройки(); КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); СтандартныеОтчеты.ВывестиОтчет(ЭтотОбъект, Результат, ДанныеРасшифровки, ВыводВФормуОтчета, ВнешниеНаборыДанных, Истина, НастройкаКомпоновкиДанных); КонецЕсли; ВыводПодписейОтчета(ЭтотОбъект, Результат); Если ВыводитьПолностью Тогда // Выполним дополнительную обработку Результата отчета ОбработкаРезультатаОтчета(Результат); // Сохраним настройки для Истории СтандартныеОтчеты.СохранитьНастройкуДляИстории(ЭтотОбъект); КонецЕсли; Результат.ПоказатьУровеньГруппировокСтрок(1); КонецПроцедуры Процедура ПередВыводомОтчета(МакетКомпоновки) Экспорт ПоказателиОтчета = ДанныеОтчета.ПоказателиОтчета; КоличествоПоказателей = 0; Для Каждого Показатель Из ПоказателиОтчета Цикл Если Показатель.Значение.Значение Тогда КоличествоПоказателей = КоличествоПоказателей + 1; КонецЕсли; КонецЦикла; // Если показатель один, то удалим столбик "Показатель" Если КоличествоПоказателей = 1 Тогда Для Каждого Макет Из МакетКомпоновки.Макеты Цикл Для Каждого СтрокаМакета Из Макет.Макет Цикл СтрокаМакета.Ячейки.Удалить(СтрокаМакета.Ячейки[4]); КонецЦикла; КонецЦикла; КонецЕсли; МакетПроводки = СтандартныеОтчеты.ПолучитьМакетГруппировкиПоПолюГруппировки(МакетКомпоновки, "Проводки", Истина); Если МакетПроводки.Количество() = 1 Тогда МакетПроводки = МакетПроводки[0]; ДанныеОтчета.Вставить("МакетПроводок", МакетПроводки.Имя); КонецЕсли; КонецПроцедуры Процедура ПередВыводомЭлементаРезультата(МакетКомпоновки, ДанныеРасшифровки, ЭлементРезультата, Отказ = Ложь) Экспорт КонецПроцедуры // В процедуре можно доработать компоновщик перед выводом в отчет // Изменения сохранены не будут Процедура ДоработатьКомпоновщикПередВыводом(ВнешниеНаборыДанных) Экспорт Если ЗначениеЗаполнено(Счет) Тогда ТиповыеОтчеты.УстановитьПараметр(КомпоновщикНастроек, "Счет", Счет); КонецЕсли; Если ЗначениеЗаполнено(НачалоПериода) Тогда ТиповыеОтчеты.УстановитьПараметр(КомпоновщикНастроек, "НачалоПериода", НачалоДня(НачалоПериода)); Иначе ТиповыеОтчеты.УстановитьПараметр(КомпоновщикНастроек, "НачалоПериода", Дата(1, 1, 1)); КонецЕсли; Если ЗначениеЗаполнено(КонецПериода) Тогда ТиповыеОтчеты.УстановитьПараметр(КомпоновщикНастроек, "КонецПериода", КонецДня(КонецПериода)); Иначе ТиповыеОтчеты.УстановитьПараметр(КомпоновщикНастроек, "КонецПериода", Дата(3999, 11, 1)); КонецЕсли; ТиповыеОтчеты.ДобавитьОтбор(КомпоновщикНастроек.Настройки.Структура[0].Структура[0].Отбор, "ПериодГруппировки",,ВидСравненияКомпоновкиДанных.Заполнено); //РУГАЕТСЯ НА ЭТУ СТРОЧКУ!!! ТиповыеОтчеты.ДобавитьОтбор(КомпоновщикНастроек.Настройки.Структура[0].Структура[0].Структура[0].Отбор, "Регистратор",,ВидСравненияКомпоновкиДанных.Заполнено); //РУГАЕТСЯ НА ЭТУ СТРОЧКУ! ТиповыеОтчеты.ДобавитьОтбор(КомпоновщикНастроек.Настройки.Структура[1].Структура[0].Отбор, "Регистратор",,ВидСравненияКомпоновкиДанных.Заполнено); ТиповыеОтчеты.УстановитьПараметрВывода(КомпоновщикНастроек.Настройки.Структура[0].Структура[0], "ВыводитьОтбор", ТипВыводаТекстаКомпоновкиДанных.НеВыводить); ТиповыеОтчеты.УстановитьПараметрВывода(КомпоновщикНастроек.Настройки.Структура[0].Структура[0].Структура[0], "ВыводитьОтбор", ТипВыводаТекстаКомпоновкиДанных.НеВыводить); ТиповыеОтчеты.УстановитьПараметрВывода(КомпоновщикНастроек.Настройки.Структура[1].Структура[0], "ВыводитьОтбор", ТипВыводаТекстаКомпоновкиДанных.НеВыводить); Если Периодичность = 0 Тогда КомпоновщикНастроек.Настройки.Структура[0].Использование = Ложь; КомпоновщикНастроек.Настройки.Структура[1].Использование = Истина; Иначе КомпоновщикНастроек.Настройки.Структура[0].Использование = Истина; КомпоновщикНастроек.Настройки.Структура[1].Использование = Ложь; КонецЕсли; ТиповыеОтчеты.УстановитьПараметр(КомпоновщикНастроек, "Периодичность", Периодичность); ТиповыеОтчеты.УстановитьПараметр(КомпоновщикНастроек, "ПС", Символы.ПС); Если ЗначениеЗаполнено(Подразделение) Тогда ТиповыеОтчеты.ДобавитьОтбор(КомпоновщикНастроек, "Подразделение", Подразделение, ВидСравненияКомпоновкиДанных.ВИерархии); КонецЕсли; ПоказателиОтчета = ДанныеОтчета.ПоказателиОтчета; ЛинияСплошная = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1); ТекущийНаборПоказателей = "" + ПоказателиОтчета.БУ.Значение + ПоказателиОтчета.НУ.Значение + ПоказателиОтчета.ПР.Значение + ПоказателиОтчета.ВР.Значение + ПоказателиОтчета.ВалютнаяСумма.Значение + ПоказателиОтчета.Количество.Значение; МассивПоказателей = Новый Массив; МассивПоказателей.Добавить("БУ"); МассивПоказателей.Добавить("НУ"); МассивПоказателей.Добавить("ПР"); МассивПоказателей.Добавить("ВР"); МассивПоказателей.Добавить("ВалютнаяСумма"); МассивПоказателей.Добавить("Количество"); Если ТекущийНаборПоказателей <> мТекущийНаборПоказателей Тогда МассивМакетов = Новый Массив; МассивМакетов.Добавить("ПериодГруппировкиЗаголовок"); МассивМакетов.Добавить("ОбщиеИтогиЗаголовок"); МассивМакетов.Добавить("ОбщиеИтогиПодвал"); МассивМакетов.Добавить("ПроводкиЗаголовок"); Для Каждого ЭлементМакет Из МассивМакетов Цикл СхемаКомпоновкиДанных.Макеты[ЭлементМакет].Макет = СтандартныеОтчеты.ПолучитьКопиюОписанияМакета(СхемаКомпоновкиДанных.Макеты[ЭлементМакет + "Образец"].Макет); ОписаниеМакета = СхемаКомпоновкиДанных.Макеты[ЭлементМакет].Макет; МассивСтрокДляУдаления = Новый Массив; Индекс = 0; Для Каждого ЭлементМассива Из МассивПоказателей Цикл Если Не ПоказателиОтчета[ЭлементМассива].Значение Тогда МассивСтрокДляУдаления.Добавить(ОписаниеМакета[Индекс]); КонецЕсли; Индекс = Индекс + 1; КонецЦикла; Для Каждого Строка Из МассивСтрокДляУдаления Цикл ОписаниеМакета.Удалить(Строка); КонецЦикла; КоличествоСтрок = ОписаниеМакета.Количество(); // Обвести область Если КоличествоСтрок > 0 Тогда Для Индекс = 0 По 12 Цикл ПоследняяСтрока = ?(ЭлементМакет = "ОбщиеИтогиПодвал" И Индекс < 4, 0, КоличествоСтрок - 1); ПараметрГраницы = ТиповыеОтчеты.ПолучитьПараметр(ОписаниеМакета[0].Ячейки[Индекс].Оформление.Элементы, "СтильГраницы"); ТиповыеОтчеты.УстановитьПараметр(ПараметрГраницы.ЗначенияВложенныхПараметров, "СтильГраницы.Сверху", ЛинияСплошная); ПараметрГраницы = ТиповыеОтчеты.ПолучитьПараметр(ОписаниеМакета[ПоследняяСтрока].Ячейки[Индекс].Оформление.Элементы, "СтильГраницы"); ТиповыеОтчеты.УстановитьПараметр(ПараметрГраницы.ЗначенияВложенныхПараметров, "СтильГраницы.Снизу", ЛинияСплошная); КонецЦикла; КонецЕсли; Для Индекс = 1 По КоличествоСтрок - 1 Цикл ОписаниеМакета[Индекс].Ячейки[0].Элементы.Очистить(); ТиповыеОтчеты.УстановитьПараметр(ОписаниеМакета[Индекс].Ячейки[0].Оформление.Элементы, "ОбъединятьПоВертикали", Истина); ТиповыеОтчеты.УстановитьПараметр(ОписаниеМакета[Индекс].Ячейки[0].Оформление.Элементы, "Расшифровка", Неопределено, Ложь); ОписаниеМакета[Индекс].Ячейки[1].Элементы.Очистить(); ТиповыеОтчеты.УстановитьПараметр(ОписаниеМакета[Индекс].Ячейки[1].Оформление.Элементы, "ОбъединятьПоВертикали", Истина); ТиповыеОтчеты.УстановитьПараметр(ОписаниеМакета[Индекс].Ячейки[1].Оформление.Элементы, "Расшифровка", Неопределено, Ложь); ОписаниеМакета[Индекс].Ячейки[2].Элементы.Очистить(); ТиповыеОтчеты.УстановитьПараметр(ОписаниеМакета[Индекс].Ячейки[2].Оформление.Элементы, "ОбъединятьПоВертикали", Истина); ТиповыеОтчеты.УстановитьПараметр(ОписаниеМакета[Индекс].Ячейки[2].Оформление.Элементы, "Расшифровка", Неопределено, Ложь); ОписаниеМакета[Индекс].Ячейки[3].Элементы.Очистить(); ТиповыеОтчеты.УстановитьПараметр(ОписаниеМакета[Индекс].Ячейки[3].Оформление.Элементы, "ОбъединятьПоВертикали", Истина); ТиповыеОтчеты.УстановитьПараметр(ОписаниеМакета[Индекс].Ячейки[3].Оформление.Элементы, "Расшифровка", Неопределено, Ложь); Если ЭлементМакет = "ПроводкиЗаголовок" Тогда ОписаниеМакета[Индекс].Ячейки[5].Элементы.Очистить(); ТиповыеОтчеты.УстановитьПараметр(ОписаниеМакета[Индекс].Ячейки[5].Оформление.Элементы, "ОбъединятьПоВертикали", Истина); ТиповыеОтчеты.УстановитьПараметр(ОписаниеМакета[Индекс].Ячейки[5].Оформление.Элементы, "Расшифровка", Неопределено, Ложь); ОписаниеМакета[Индекс].Ячейки[8].Элементы.Очистить(); ТиповыеОтчеты.УстановитьПараметр(ОписаниеМакета[Индекс].Ячейки[8].Оформление.Элементы, "ОбъединятьПоВертикали", Истина); ТиповыеОтчеты.УстановитьПараметр(ОписаниеМакета[Индекс].Ячейки[8].Оформление.Элементы, "Расшифровка", Неопределено, Ложь); КонецЕсли; КонецЦикла; КонецЦикла; мТекущийНаборПоказателей = ТекущийНаборПоказателей; КонецЕсли; Если Не ПоказателиОтчета.БУ.Значение Тогда ГруппаОтборов = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаОтборов.Использование = Истина; ГруппаОтборов.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли; Для Каждого ЭлементМассива Из МассивПоказателей Цикл Если ЭлементМассива <> "БУ" И ПоказателиОтчета[ЭлементМассива].Значение Тогда ТиповыеОтчеты.ДобавитьОтбор(ГруппаОтборов, ЭлементМассива + "Дт", 0, ВидСравненияКомпоновкиДанных.НеРавно); ТиповыеОтчеты.ДобавитьОтбор(ГруппаОтборов, ЭлементМассива + "Кт", 0, ВидСравненияКомпоновкиДанных.НеРавно); КонецЕсли; КонецЦикла; КонецЕсли; СтандартныеОтчеты.ДобавитьОтборПоОрганизации(ЭтотОбъект); КонецПроцедуры Процедура ВыводЗаголовкаОтчета(ОтчетОбъект, Результат) СтандартныеОтчеты.ВыводЗаголовкаОтчета(ОтчетОбъект, Результат); КонецПроцедуры Процедура ВыводПодписейОтчета(ОтчетОбъект, Результат) СтандартныеОтчеты.ВыводПодписейОтчета(ОтчетОбъект, Результат); КонецПроцедуры Функция ПолучитьТекстЗаголовка(ОрганизацияВНачале = Истина) Экспорт ЗаголовокОтчета = "Карточка счета " + Счет + СтандартныеОтчеты.ПолучитьПредставлениеПериода(ЭтотОбъект); Возврат ?(ОрганизацияВНачале, ЗаголовокОтчета, ЗаголовокОтчета + " " + СтандартныеОтчеты.ПолучитьТекстОрганизация(ЭтотОбъект)); КонецФункции Процедура ПолучитьСтруктуруПоказателейОтчета() Экспорт ПоказателиОтчета = СтандартныеОтчеты.ПолучитьСтруктуруПоказателейОтчета(,,,, Ложь, Истина, Истина, Ложь); ДанныеОтчета.Вставить("ПоказателиОтчета", ПоказателиОтчета); КонецПроцедуры Процедура ОбработкаРезультатаОтчета(Результат) СтандартныеОтчеты.ОбработкаРезультатаОтчета(ЭтотОбъект, Результат); // Зафиксируем заголовок отчета ВысотаЗаголовка = Результат.Области.Заголовок.Низ; Результат.ФиксацияСверху = ВысотаЗаголовка + 2; КонецПроцедуры // Для настройки отчета (расшифровка и др.) Процедура Настроить() Экспорт ЗаполнитьНачальныеНастройки(); ОбработкаИзмененияСчета(РежимРасшифровки); КонецПроцедуры Процедура СохранитьНастройку() Экспорт Если СохранятьНастройкуОтчета Тогда СтандартныеОтчеты.СохранитьНастройку(ЭтотОбъект); КонецЕсли; КонецПроцедуры // Процедура заполняет параметры отчета по элементу справочника из переменной СохраненнаяНастройка. Процедура ПрименитьНастройку() Экспорт Если СохраненнаяНастройка.Пустая() Тогда Возврат; КонецЕсли; СтруктураПараметров = СохраненнаяНастройка.ХранилищеНастроек.Получить(); Если РежимРасшифровки Тогда НастройкиФормы = СтруктураПараметров.НастройкиФормы; Иначе ТиповыеОтчеты.ПрименитьСтруктуруПараметровОтчета(ЭтотОбъект, СтруктураПараметров); КонецЕсли; КонецПроцедуры Процедура ИнициализацияОтчета() Экспорт СтандартныеОтчеты.ИнициализацияОтчета(ЭтотОбъект); КонецПроцедуры Расшифровки = Новый СписокЗначений; НастройкаПериода = Новый НастройкаПериода; РежимРасшифровки = Ложь; #КонецЕсли Помогите, пожалуйста, это исправить. |
|||
1
1Сергей
02.05.13
✎
16:41
|
отладчиком пользоваться не умеем?
|
|||
2
sale123
02.05.13
✎
16:43
|
Отладчиком пользуемся, только не помогает.
|
|||
3
zak555
02.05.13
✎
16:45
|
много букв -- переписать
|
|||
4
Wobland
02.05.13
✎
16:46
|
(2) пользоваться, значит, умеем, а искать строку с ошибкой - нет?
|
|||
5
Нуф-Нуф
02.05.13
✎
16:51
|
обращаешься к коллекции по индексу, которые превышает размер коллекции
|
|||
6
Нуф-Нуф
02.05.13
✎
16:52
|
в отладчике - остановка по ошибке спасет отца русской демократии
|
|||
7
sale123
02.05.13
✎
17:31
|
отладчик не выдает результатов!
КомпоновщикНастроек.Настройки.Структура[0].Структура[0].Структура[0] {(1)}: Индекс находится за границами массива КомпоновщикНастроек.Настройки.Структура[0].Структура[0].Отбор Период группировки Заполнено И Период группировки Заполнено И Период группировки Заполнено И Период группировки Заполнено И Период группировки Заполнено И Период группировки Заполнено И Период группировки Заполнено И Период группировки Заполнено И Период группировки Заполнено И Период группировки Заполнено И Период группировки Заполнено И Период группировки Заполнено И Период группировки Заполнено И Период группировки Заполнено И Период группировки Заполнено И Период группировки Заполнено И Период группировки Заполнено И Период группировки Заполнено ДоступныеПоляОтбора ДоступныеПоляКомпоновкиДанных ИдентификаторПользовательскойНастройки "" ПредставлениеПользовательскойНастройки "" РежимОтображения Быстрый доступ Элементы КоллекцияЭлементовОтбораКомпоновкиДанных |
|||
8
Sammo
02.05.13
✎
18:12
|
Значит обращаешься к элементу пустой коллеции
|
|||
9
sale123
03.05.13
✎
11:02
|
Подскажите, как это исправить?
Может условие какое поставить нужно? |
|||
10
rs_trade
03.05.13
✎
11:04
|
(9) нужен программист, однозначно. он исправит.
|
|||
11
sale123
03.05.13
✎
11:08
|
(10) Был бы программист, я бы сюда не писал...
|
|||
12
sale123
03.05.13
✎
11:09
|
Лучше помогите, если знаете как.
|
|||
13
Wobland
03.05.13
✎
11:09
|
"Подскажите как решить проблему" -> "Кто мне исправит проблему?"
|
|||
14
Sammo
03.05.13
✎
11:15
|
(9) 1. Через отладчик отловить ситуацию
2. Проверить, в какой из коллекций нет элементов (последовательно усекая обращение с ошибкой) 3. Проверить заполнение коллекции. |
|||
15
sale123
03.05.13
✎
11:48
|
(8) Подскажите, где искать пустую коллекцию?
Выражение КомпоновщикНастроек.Настройки.Структура[1].Структура[0] Значение {(1)}: Индекс находится за границами массива |
|||
16
1Сергей
03.05.13
✎
11:58
|
КомпоновщикНастроек.Настройки.Структура.Количество()
КомпоновщикНастроек.Настройки.Структура[0].Количество() КомпоновщикНастроек.Настройки.Структура[0].Структура[0].Количество() КомпоновщикНастроек.Настройки.Структура[0].Структура[0].Структура[0].Количество() |
|||
17
sale123
03.05.13
✎
12:10
|
Выражение
КомпоновщикНастроек.Настройки.Структура.Количество() значение 1 Число Выражение КомпоновщикНастроек.Настройки.Структура[0].Количество() значение {(1)}: Метод объекта не обнаружен (Количество) Выражение КомпоновщикНастроек.Настройки.Структура[0].Структура[0].Количество() значение {(1)}: Метод объекта не обнаружен (Количество) Выражение КомпоновщикНастроек.Настройки.Структура[0].Структура[0].Структура[0].Количество() Значение {(1)}: Индекс находится за границами массива |
|||
18
1Сергей
03.05.13
✎
12:12
|
ок, теперь
Какой тип у КомпоновщикНастроек.Настройки.Структура[0] ? |
|||
19
sale123
03.05.13
✎
12:15
|
Выражение КомпоновщикНастроек.Настройки.Структура[0]
Значение ГруппировкаКомпоновкиДанных Тип ГруппировкаКомпоновкиДанных |
|||
20
sale123
03.05.13
✎
12:23
|
КомпоновщикНастроек.Настройки.Структура[0] ГруппировкаКомпоновкиДанных ГруппировкаКомпоновкиДанных
Выбор ВыбранныеПоляКомпоновкиДанных Идентификатор "" Строка ИдентификаторПользовательскойНастройки "" Строка Имя "" Строка Использование Ложь Булево Отбор Регистратор Заполнено И Регистратор Заполнено И Регистратор Заполнено И Регистратор Заполнено ОтборКомпоновкиДанных ПараметрыВывода Расположение итогов, Выводить отбор ЗначенияПараметровВыводаГруппировкиКомпоновкиДанных ПоляГруппировки Общие итоги ПоляГруппировкиКомпоновкиДанных Порядок ПорядокКомпоновкиДанных ПредставлениеПользовательскойНастройки "" Строка РежимОтображения Быстрый доступ РежимОтображенияЭлементаНастройкиКомпоновкиДанных Родитель НастройкиКомпоновкиДанных НастройкиКомпоновкиДанных Состояние Включена СостояниеЭлементаНастройкиКомпоновкиДанных Структура КоллекцияЭлементовСтруктурыНастроекКомпоновкиДанных КоллекцияЭлементовСтруктурыНастроекКомпоновкиДанных УсловноеОформление УсловноеОформлениеКомпоновкиДанных |
|||
21
1Сергей
03.05.13
✎
12:24
|
назови типы
КомпоновщикНастроек.Настройки.Структура[0] КомпоновщикНастроек.Настройки.Структура[0].Структура[0] КомпоновщикНастроек.Настройки.Структура[0].Структура[0].Структура[0] |
|||
22
sale123
03.05.13
✎
12:29
|
КомпоновщикНастроек.Настройки.Структура[0]
Тип ГруппировкаКомпоновкиДанных КомпоновщикНастроек.Настройки.Структура[0].Структура[0] Тип ГруппировкаКомпоновкиДанных КомпоновщикНастроек.Настройки.Структура[0].Структура[0].Структура[0] Типа нет, ошибка:{(1)}: Индекс находится за границами массива |
|||
23
1Сергей
03.05.13
✎
12:34
|
(22) у тебя там в СКД, в настройках группировки переделаны. Верни всё как было
|
|||
24
sale123
03.05.13
✎
12:40
|
(23) А как было? Я ж там ничего не менял?
|
|||
25
craxx
03.05.13
✎
12:46
|
(0) заплатите денег программисту, он придет и все настроит, зуб даю!
|
|||
26
1Сергей
03.05.13
✎
13:03
|
(24) в смысле оно само, да? :)
Сравни с типовой конфигурацией - всё увидишь |
|||
27
hhhh
03.05.13
✎
14:38
|
(24) а почему у всех .Структура[0], а у тебя .Структура[1] ??
|
|||
28
sale123
03.05.13
✎
15:59
|
Все посмотрел. СКД взял из типового отчета.
Только модуль все равно не работает. Мне не нужно стандартную "Карточку счета". Я хочу чтобы "Карточка счета" "сворачивала" данные по Регистратору. Мне это нужно как-то дописать. Дописал один человек, вставил в отбор "регистратор", только почему данная вещь не работает - он не знает. Вот я и пытаюсь понять как, что, да почему. Кстати, в типовом отчете точно такие же строчки модуля: ТиповыеОтчеты.ДобавитьОтбор(КомпоновщикНастроек.Настройки.Структура[0].Структура[0].Отбор, "ПериодГруппировки",,ВидСравненияКомпоновкиДанных.Заполнено); ТиповыеОтчеты.ДобавитьОтбор(КомпоновщикНастроек.Настройки.Структура[0].Структура[0].Структура[0].Отбор, "Регистратор",,ВидСравненияКомпоновкиДанных.Заполнено); ТиповыеОтчеты.ДобавитьОтбор(КомпоновщикНастроек.Настройки.Структура[1].Структура[0].Отбор, "Регистратор",,ВидСравненияКомпоновкиДанных.Заполнено); ТиповыеОтчеты.УстановитьПараметрВывода(КомпоновщикНастроек.Настройки.Структура[0].Структура[0], "ВыводитьОтбор", ТипВыводаТекстаКомпоновкиДанных.НеВыводить); ТиповыеОтчеты.УстановитьПараметрВывода(КомпоновщикНастроек.Настройки.Структура[0].Структура[0].Структура[0], "ВыводитьОтбор", ТипВыводаТекстаКомпоновкиДанных.НеВыводить); ТиповыеОтчеты.УстановитьПараметрВывода(КомпоновщикНастроек.Настройки.Структура[1].Структура[0], "ВыводитьОтбор", ТипВыводаТекстаКомпоновкиДанных.НеВыводить); И где тут пустые коллекции, не понятно. |
|||
29
sale123
06.05.13
✎
11:41
|
(10) Таки я нашел программиста, который написал новый отчет, который теперь работает.
Если интересно, отчет я выложил здесь: http://forum.infostart.ru/forum26/topic85542/ в самом конце обсуждения файлик называется kartochkascheta3.erf |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |