Имя: Пароль:
1C
 
Ошибка при вызове метода контекста (Получить): Значение индекса выходит за гран
0 sega74
 
15.04.15
10:52
{Форма.KR_2(101)}: Ошибка при вызове метода контекста (Получить): Значение индекса выходит за границы диапазона
        ОбластьПечати.Текст = Формат(Строки.Получить(к),"2ЧЦ=10;ЧДЦ=2");
по причине:
Значение индекса выходит за границы диапазона

Вот код:
"Процедура ОсновныеДействияФормыОсновынеДействияФормыПечать(Кнопка)
Заголовок = "R1C3";
ТоварНам = "R2C1";    
ЕдИзмНам = "R2C2";    
КоличествоНам = "R2C3";    
ЦенаНам = "R2C4";    
Сумманам = "R2C5";    
РамкаШапки = "R2C1:R2C5";    
ВысотаТабМакс = 10;    
ШиринаТабМакс = 5;    
ВысотаТаб = "R";    
ШиринаТаб = "C";
ТабДок = Новый ТабличныйДокумент;
ОбластьПечати = ТабДок.Область(Заголовок);
ОбластьПечати.Шрифт = Новый Шрифт(,,Истина,,,);

ДатаКолон=ТабличноеПолеДанные.Получить(0);
ДатаНак=ДатаКолон.Получить(0);

ОбластьПечати.Текст = "Накладная номер 26" + "от" + формат(ДатаНак,"ДЛФ=ДД");

ОбластьПечати = ТабДок.Область(ТоварНам);
ОбластьПечати.Текст = "Товар";
ОбластьПечати = ТабДок.Область(ЕдИзмНам);
ОбластьПечати.Текст = "Ед.Изм.";
ОбластьПечати = ТабДок.Область(КоличествоНам);
ОбластьПечати.Текст = "Количество";
ОбластьПечати = ТабДок.Область(ЦенаНам);
ОбластьПечати.Текст = "Цена";
ОбластьПечати = ТабДок.Область(СуммаНам);
ОбластьПечати.Текст = "Сумма";
ОбластьПечати = ТабДок.Область(РамкаШапки);
ОбластьПечати.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
ОбластьПечати.ШиринаКолонки =  15;
ОбластьПечати.ЦветФона = WebЦвета.БледноЗеленый;
ТабДок.ФиксацияСверху=ТабДок.ВысотаТаблицы;
Для к  = 1 по ШиринаТабМакс Цикл
    л=3;
    Для Каждого Строки Из ТабличноеПолеДанные Цикл
        ВысотаТаб = ВысотаТаб + л + ШиринаТаб + к;
        ОбластьПечати = ТабДок.Область(ВысотаТаб);
        ЛинияСплошная = Новый Линия (ТипЛинииЯчейкиТабличногоДокумента.Сплошная);
        ОбластьПечати.Обвести(ЛинияСплошная,ЛинияСплошная,ЛинияСплошная,ЛинияСплошная);
        
        ОбластьПечати.ГоризонтальноеПоложение=ГоризонтальноеПоложение.Право;
        Если (к=1) Тогда
        ОбластьПечати.ШиринаКолонки=20;
    Иначе
        ОбластьПечати.ШиринаКолонки=10;
    КонецЕсли;
    Если(К=4) или (к=5) Тогда
        ОбластьПечати.Текст = Формат(Строки.Получить(к),"2ЧЦ=10;ЧДЦ=2");
    Иначе
        ОбластьПечати.Текст=Строка(Строки.Получить(К));
    Конецесли;
    л = л+1;
    ВысотаТаб = "R";
КонецЦикла;
КонецЦикла;

к=к+1;    
    л = ТабличноеПолеДанные.Количество()+1;
    ИтогВывод = ВысотаТаб + к + ширинаТаб+л;
    ОбластьПечати = ТабДок.Область(ИтогВывод);
    ОбластьПечати.Текст = Формат(ТабличноеПолеДанные.Итог("СуммаПр"),"2ЧЦ=10;ЧДЦ=2");
     ОбластьПечати.Текст =  "Итого: " +ОбластьПечати.Текст;
    
     ТабДок.ОтображатьСетку = Ложь;
     ТабДок.Показать("Просмотр");

КонецПроцедуры
"
1 barrgand
 
15.04.15
11:03
(0) В ТабличноеПолеДанные сколько колонок?
2 sega74
 
15.04.15
11:11
4
3 barrgand
 
15.04.15
11:13
(2) Ну значить индекс от 0 до 3, а у тебя от 1 до 5. При к = 4 или 5 выходит за границу, о чем ошибка и говорит.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан