Имя: Пароль:
1C
1С v8
Шахматная доска в табличном поле
0 NordMad
 
06.08.15
17:23
Подскажите как можно с помощью изменения цвета фона ячеек закрасить табличное поле в шахматном порядке. размерность поля задается пользователем.
1 drcrasher
 
06.08.15
17:24
баян
2 ДенисЧ
 
06.08.15
17:25
Что пробовал и что именно не получилось?
3 NordMad
 
06.08.15
17:26
(1) дайте ссылку раз баян, я не нашел именно такой задачи
4 vde69
 
06.08.15
17:28
на инфостарте шахмат полно....
5 vicof
 
06.08.15
17:28
два цикла, одно условие, один оператор
6 NordMad
 
06.08.15
17:28
(2) пробовал сделать закраску на событии: ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) но туда не передается индекс добавляемой строки.. то есть с помощью этого события получалось только столбец закрасить.. а вот шахматный порядок не выходит.
7 Euguln
 
06.08.15
17:28
(3) соглашусь с (2), а то попрошайничеством попахивает
8 NordMad
 
06.08.15
17:29
(4) ссылку можно хоть одну?
9 NordMad
 
06.08.15
17:29
(5) это какая то загадка?:)
10 NordMad
 
06.08.15
17:30
(7) при чем тут попрошайничество? дайте ссылку хоть одну на текст или на обработку с таким заполнением. а то это на троллинг смахивает в противном случае
11 ДенисЧ
 
06.08.15
17:30
(6) А оформлениеСтроки тебе для чего дали?
Я так подозреваю, чтобы именно его и красить, как текущую строку....
поправь меня, если я не прав...
12 NordMad
 
06.08.15
17:32
(11) да это понятно, и как я узнаю индекс строки то? в каком событии или каким методом? если бы мне надо было столбец закарсить - не было бы вопросов
13 Euguln
 
06.08.15
17:33
У табличного поля даже свойство есть

ТаблицаФормы (FormTable)
ЧередованиеЦветовСтрок (UseAlternationRowColor)
Использование:

Чтение и запись.
Описание:

Тип: Булево.
Управляет режимом чередования цветов строк.
Истина - цвета чередуются.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер).
14 NordMad
 
06.08.15
17:35
(13) я так понимаю что это я получу просто разноцветные строки как зебра.. а как для шахматной раскарски это поможет?
15 Euguln
 
06.08.15
17:37
(14) А в (11) что непонятно? Делай свою колонку и заполняй чем хочешь
16 ДенисЧ
 
06.08.15
17:38
(12) А в ДанныеСтроки заглянуть - Будда (да спаси Аллах его душу) запрещает?
17 NordMad
 
06.08.15
17:39
(15) непонятно на каком событии это делать
18 ДенисЧ
 
06.08.15
17:39
+ и там поискать НомерСтроки?
19 Бубка Гоп
 
06.08.15
17:39
(0) собеседование в подаваны? для чего это тебе?
20 NordMad
 
06.08.15
17:40
(16)
данные строки - пустые, потому что таблица таким образом создается

Процедура ЗаполнитьТаблНажатие(Элемент)
    
    для ном = 1 по длн цикл
        элементыформы.ТаблШах.Колонки.Добавить();
    КонецЦикла;

    для ном = 1 по шир цикл
        элементыформы.ТаблШах.ДобавитьСтроку();
        
    КонецЦикла;
КонецПроцедуры

Процедура ТаблШахПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    
КонецПроцедуры
21 Бубка Гоп
 
06.08.15
17:40
ну и уточни, у тебя УФ или ОФ...
22 NordMad
 
06.08.15
17:40
(19) было в одной задаче. нет не собеседование, для себя
23 NordMad
 
06.08.15
17:41
(21) оф
24 NordMad
 
06.08.15
17:44
интересует самое главное в каком событии это делать и второе - если в событии
ПриВыводеСтроки то как получить индекс строки? чтобы понять черное или белое поле идет сначала
25 Euguln
 
06.08.15
17:44
Используй ПриПолученииДанных
26 ДенисЧ
 
06.08.15
17:45
Если не лень будет - вечером набросаю...
Там делов на 2 минуты...
27 NordMad
 
06.08.15
17:47
(25) а при получении данных - это разве не событие когда какие то значения присваиваются? у меня то просто там она пустая
28 NordMad
 
06.08.15
17:48
(26) охотно верю что там всё быстро.. более того в какой нить дельфе это была бы вообще не проблема, так как там есть обращение к ячейкам напрямую [,] и к их свойствам. а тут надо поизвращаться
29 ДенисЧ
 
06.08.15
17:48
(28) оформлениеСтроки["Ячейка1"].ЦветФона
И где тут изврат?
30 Euguln
 
06.08.15
17:49
(27) СП украли?
31 NordMad
 
06.08.15
17:51
(29)
Процедура ТаблШахПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    ОформлениеСтроки.Ячейки[1].ЦветФона = WebЦвета.Черный;
КонецПроцедуры
как я узнаю когда Ячейки[1] а когда Ячейки[0]?? если я не знаю какой номер строки рисуется?? вот в чем изврат
32 Euguln
 
06.08.15
17:51
Бежишь по ОформлениюСтрок, берешь номерстроки+номерколонки проверяешь на чет/нечет
33 NordMad
 
06.08.15
17:53
(32) я не совсем понимаю как это выглядит можно увидеть?
34 Euguln
 
06.08.15
17:54
ТабличноеПоле (TableBox)
ПриПолученииДанных (OnDataGet)
Синтаксис:

ПриПолученииДанных(<ОформленияСтрок>)
Параметры:

<ОформленияСтрок>

Тип: ОформленияСтрок.
Коллекция оформления строк табличного поля.
Данную коллекцию нельзя использовать вне обработчика, т.к в момент вызова обработчика события она напрямую связана с коллекцией видимых строк табличного поля, а после окончания обработки события ее содержимое может не соответствовать коллекции видимых строк.


ОформленияСтрок (RowAppearances)
Элементы коллекции:

ОформлениеСтроки
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются оформления строк.
Возможно обращение к оформлению строки посредством оператора [...]. В качестве аргумента передается индекс строки (нумерация с 0).

Методы:

Количество (Count)
Получить (Get)

Описание:

Представляет собой коллекцию значений типа ОформлениеСтроки.
35 Euguln
 
06.08.15
17:54
(33) Ещё вопросы?
36 NordMad
 
06.08.15
17:57
(35) значит ПриВыводеСтроки тут никак?
37 NordMad
 
06.08.15
17:58
(35) индекс строки на чет нечет получить отсюда? Количество (Count)
38 Euguln
 
06.08.15
17:59
(36) Чего ты в неё так уперся?
39 Euguln
 
06.08.15
17:59
(37) нет, из Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл
40 NordMad
 
06.08.15
18:01
(39) а условия вызова события при добавлении строк?
41 Euguln
 
06.08.15
18:02
(40) Твою ж за ногу. СП внимательно почитай.
42 Tatitutu
 
06.08.15
18:07
<canvas id="c"></canvas>
          <script>for(B=i=y=u=b=i=5-5,x=10,I=[],l=[];B++<304;I[B-1]=B%x?B/x%x<2|B%x<2?7:B/x&4?0:l[i++]="ECDFBDCEAAAAAAAAIIIIIIIIMKLNJLKM@G@TSb~?A6J57IKJT576,+-48HLSUmgukgg OJNMLK  IDHGFE".charCodeAt(y++)-64:7);function X(c,h,e,s){c^=8;for(var o,S,C,A,R,T,G,d=e&&X(c,0)>1e4,n,N=-1e8,O=20,K=78-h<<9;++O<99;)if((o=I[T=O])&&(G=o^c)<7){A=G--&2?8:4;C=o-9?l[61+G]:49;do if(!(R=I[T+=l[C]])&&!!G|A<3||(R+1^c)>9&&G|A>2){if(!(R-2&7))return K;n=G|(c?T>29:T<91)?o:6^c;S=(R&&l[R&7|32]*2-h-G)+(n-o?110:!G&&(A<2)+1);if(e>h||1<e&e==h&&S>2|d){I[T]=n;I[O]=0;S-=X(c,h+1,e,S-N);if(!(h||e-1|B-O|T-b|S<-1e4))return W(),c&&setTimeout("X(8,0,2),X(8,0,1)",75);I[O]=o;I[T]=R}if(S>N||!h&S==N&&Math.random()<.5)if(N=S,e>1)if(h?s-S<0:(B=O,b=T,0))break}while(!R&G>2||(T=O,(G||A>2|(c?O>78:O<41)&!R)&&++C*--A))}return-K+768<N|d&&N}function W(){i="<table>";for(u=18;u<99;document.body.innerHTML=i+=++u%x-9?"<th width=60 height=60 onclick='I[b="+u+"]>8?W():X(0,0,1)'style='font-size:50px'bgcolor=#"+(u-B?u*.9&1||9:"d")+"0f0e0>&#"+(I[u]?9808+l[67+I[u]]:160):u++&&"<tr>")B=b}W()</script>


///////////////////////////////////////////////
Сохрани в txt потом переименуй в html открой и будет тебе счастье. Не мое (с)
43 NordMad
 
06.08.15
18:10
(41) ну как я и думал оно не отрабатывает. смысл то вопроса был в том чтобы разрисовать под шахматы поле без заполнения данных. это событие возникает при как раз внесения данных. т.е. у меня оно игнорится
44 NordMad
 
06.08.15
18:12
(41)
событие не вызывается!1

Процедура ЗаполнитьТаблНажатие(Элемент)
    
    для ном = 1 по длн цикл
        элементыформы.ТаблШах.Колонки.Добавить();
    КонецЦикла;

    для ном = 1 по шир цикл
        элементыформы.ТаблШах.ДобавитьСтроку();
        
    КонецЦикла;
КонецПроцедуры


Процедура ТаблШахПриПолученииДанных(Элемент, ОформленияСтрок)
    для каждого строка из ОформленияСтрок цикл
    КонецЦикла;
КонецПроцедуры
45 NordMad
 
06.08.15
18:17
вот все отписались типа легко, баян и т.д. а пару строк кода рабочего так и никто не написал:)
46 Euguln
 
06.08.15
18:17
Вызови ОбновитьСтроки()
47 Euguln
 
06.08.15
18:18
(45) Тому что, постановка задачи как у девушки.
48 NordMad
 
06.08.15
18:19
(47) не вызывается от обновить строки. постановка задачи простейшая. чтоб не было как тут часто бывает - а напиши, а распиши, а разжуй.. я что экстрасенс. всё предельно коротко и ясно есть табличное поле его надо закрасить в шахматном порядке. всё
49 Euguln
 
06.08.15
18:21
(48) Ага, и только на 20 посте решил сказать, что с данными не связано, а просто накидываются колонки/строки. Кстати, оформление строки доступно на этапе  элементыформы.ТаблШах.ДобавитьСтроку(). Копай туда.
50 Lama12
 
06.08.15
18:25
Вот ведь... дожили... вопросы пошли от программистов... стыдно...
51 NordMad
 
06.08.15
18:27
(49)
Извини но... хотя с ктрл+пробел вызывется функция действительно.. вот теперь я точно не понимаю почему

Процедура ЗаполнитьТаблНажатие(Элемент)
    
    для номд = 1 по длн цикл
        элементыформы.ТаблШах.Колонки.Добавить();
        для номс = 1 по шир цикл
            элементыформы.ТаблШах.ДобавитьСтроку();
            если номд % 2 = 0 тогда
                ЭлементыФормы.ТаблШах.ОформлениеСтроки.Ячейки[номд].ЦветФона = WebЦвета.Черный;
            КонецЕсли;
        КонецЦикла;
    КОнецЦикла;
КонецПроцедуры

{Форма.Форма.Форма(24)}: Поле объекта не обнаружено (ОформлениеСтроки)
                ЭлементыФормы.ТаблШах.ОформлениеСтроки.Ячейки[номд].ЦветФона = WebЦвета.Черный;
52 NordMad
 
06.08.15
18:28
(50) тут итак хватает троллей, единственный человек действительно чтото дельное пишет. спасибо ему
53 ДенисЧ
 
06.08.15
20:05
(51) Oh. My. God.
Жаль, метла занята.
Зато!

Утка свободна!!
54 hhhh
 
06.08.15
20:08
(52) а это не троллинг вод такой бред писать?

ЭлементыФормы.ТаблШах.ОформлениеСтроки ??

да еще в количестве 150 постов?

Вместо того, чтобы просто сесть и почитать книжку по 1с.
55 NordMad
 
06.08.15
22:01
(54) никто по моему тут не заставляет отвечать насильно, верно? кто захотел - тот ответил.. кто не захотел, пришел поворчал и ушел. я же не к конкретно к кому то обращаюсь, а к тем кому не сложно и не так смешно ответить.
всё сделал. спасибо тем кто подсказывал
56 Euguln
 
07.08.15
00:02
(51) Феерично. СП читать видимо все же не твой метод.

(44) Проверил, все вызывается и прекрасно раскрашивается.
Процедура ТаблШахПриПолученииДанных(Элемент, ОформленияСтрок)
    
    номс = 1;
    Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
    
        Для Сч= 1 По 5 Цикл
            если (номс+Сч) % 2 = 0 тогда
                ОформлениеСтроки.Ячейки["Колонка" + Сч].ЦветФона = WebЦвета.Черный;    

            КонецЕсли;
        КонецЦикла;    
        номс = номс+ 1;
    КонецЦикла;
    
КонецПроцедуры
57 Euguln
 
07.08.15
00:04
(56)+ *5 = длн