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

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

Автор кто-то где-то, 08 июн 2022, 15:02

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

кто-то где-то

Написал печатную форму в документе кадровый перевод списком и заметил что если допустим выбрали документ где 5 человек, то все работает, 15 работает
а сегодня нужно сделать документ где 113 человек и 1с пишет что индекс находится за гранями массива
Думал проблема в макете и сделал тестовый где выводили только поля из запроса и все равно ошибка на больших документах
Индекс находится за границами массива
{ВнешняяОбработка.ДопСоглашениеСписком123123123.Форма.ФормаТест.Форма(33)}:КоллекцияПечатныхФорм[ИндексДляПечати].ТабличныйДокумент = строка.ТабДок;

кто-то где-то

сам код по кнопке печать :
&НаСервере
Функция ВернутьМакет(Имя)Экспорт
ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
Возврат ОбработкаОбъект.ПолучитьМакет(Имя);
КонецФункции

&НаСервере
функция ПолучитьТабличныеДокументы(СписокДокументов)Экспорт
Обработка = РеквизитФормыВЗначение("Объект");
Возврат Обработка.ВернутьКоллекциюТабличныхДокументов(СписокДокументов);
КонецФункции

&НаКлиенте
Процедура Печать(Команда, МассивДокументов = Неопределено) Экспорт
ИдентификаторыПечати="";
Если МассивДокументов = Неопределено Тогда
МассивДокументов = СсылкаНаДокумент.ВыгрузитьЗначения();
КонецЕсли;
МассивТабличныхДокументов = ПолучитьТабличныеДокументы(МассивДокументов);
Если МассивТабличныхДокументов=Неопределено тогда Возврат; КонецЕсли;
КоличествоСтрок = МассивТабличныхДокументов.Количество();
Для каждого строка из МассивТабличныхДокументов цикл
Если КоличествоСтрок = 1 или строка=МассивТабличныхДокументов[0] тогда
Разделитель="";
Иначе
Разделитель=", "
КонецЕсли;
ИдентификаторыПечати=ИдентификаторыПечати+Разделитель+строка.Представление;
КонецЦикла;
КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(ИдентификаторыПечати);
ИндексДляПечати=0;
Для каждого строка из МассивТабличныхДокументов цикл
КоллекцияПечатныхФорм[ИндексДляПечати].ТабличныйДокумент = строка.ТабДок;
КоллекцияПечатныхФорм[ИндексДляПечати].Экземпляров=1;
КоллекцияПечатныхФорм[ИндексДляПечати].СинонимМакета = строка.Представление;
ИндексДляПечати=ИндексДляПечати+1;
КонецЦикла;
УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм,Неопределено,ЭтаФорма);
КонецПроцедуры

Izzy

Проверьте количество элементов в МассивТабличныхДокументов и в КоллекцияПечатныхФорм.
Скорее всего у вас различное количество элементов.
Поставьте точку останова по ошибке и сравните количество элементов.

Теги:

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

Рейтинг@Mail.ru

Поиск