Имя: Пароль:
1C
1С v8
Помогите вывести данные правильно в табличный документ
0 gsdgdgds
 
08.07.15
16:32
Нужно вывести поочередно квадраты, что бы получилась шахматная доска. Все в столбец выходит или максимум в столбца но ни как не по количеству которое я указываю. Подозреваю то я непривильно присоединяю столбцы меж собой.

    ТабДок.Очистить();

    ЭтотОбъект=РеквизитФормыВЗначение("Объект");
    Макет = ЭтотОбъект.ПолучитьМакет("Макет");    
    ОблШапка = Макет.ПОлучитьОбласть("Шапка");
    ЧОбл = Макет.ПолучитьОбласть("ЧерноеПоле");
    БОбл = Макет.ПолучитьОбласть("БелоеПоле");

    ТекСтр=1;
    Для ИндСтроки = 1 По КоличествоВВысоту Цикл
        Для ИндКолонки = 1 По КоличествоВШирину Цикл
        
        Если ТекСтр=ИндСтроки тогда
            Если ИндКолонки % 2 <> ИндСтроки % 2 Тогда
            ТабДок.Вывести(ЧОбл);
            Иначе
            ТабДок.Вывести(БОбл);
            КонецЕсли;
        иначе
            ТекСтр=ИндСтроки;
            Если ИндКолонки % 2 = ИндСтроки % 2 Тогда
            ТабДок.присоединить(БОбл);
            Иначе
            ТабДок.присоединить(ЧОбл);
        КонецЕсли;
        КонецЕсли;



    КонецЦикла;
    КонецЦикла;
1 butterbean
 
08.07.15
16:33
это шо за бред??
Если ИндКолонки % 2 <> ИндСтроки % 2
2 gsdgdgds
 
08.07.15
16:35
Этим условием проверяю колонки и строки что бы потом проставить им квадраты черный или белый.
3 butterbean
 
08.07.15
16:39
проще наверно просто проверять
Если (ИндКолонки + ИндСтроки)%2 = 0 Тогда
  ТабДок.Вывести(ЧОбл);
Иначе
  ТабДок.Вывести(БОбл);
КонецЕсли;
4 gsdgdgds
 
08.07.15
16:42
(3) Это конечно хорошо, но все равно не решает проблему присоединения колонок друг к другу
5 butterbean
 
08.07.15
16:44
(4) Если ИндКолонки = 1
Тогда Вывести();
Иначе Присоединить();
КонецЕсли
6 alex74
 
08.07.15
16:47
Ты вывести() и присоединить() не перепутал случайно?
7 gsdgdgds
 
08.07.15
16:55
(5) Максимум получается 2 столбца. Но не 5х5 как нужно или 3х4
8 Timon1405
 
08.07.15
16:59
(7) разжевали же уже все...
Для ИндСтроки = 1 По КоличествоВВысоту Цикл
        Для ИндКолонки = 1 По КоличествоВШирину Цикл
            Если (ИндКолонки + ИндСтроки)%2 = 0 Тогда
                Если ИндКолонки = 1 Тогда
                    ТабДок.Вывести(ЧОбл);
                Иначе
                    ТабДок.Присоединить(ЧОбл);
                КонецЕсли;
            Иначе
                Если ИндКолонки = 1 Тогда
                    ТабДок.Вывести(БОбл);
                Иначе
                    ТабДок.Присоединить(БОбл);
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
9 gsdgdgds
 
08.07.15
17:04
Всем спасибо!)