|
Как на сервере обойти табличную часть | ☑ | ||
---|---|---|---|---|
0
gabd_marat
18.12.18
✎
20:16
|
&НаСервере
Процедура ОПРиСМППриИзмененииНаСервере() ТаблицаОПРиСМП = ДанныеФормыВЗначение(Элементы.ОПРиСМП , Тип("ТаблицаЗначений")); Для Каждого КолонкОПРиСМП Из ТаблицаОПРиСМП.Колонки Цикл УстановитьУсловноеОформление(КолонкОПРиСМП) КонецЦикла; // Вставить содержимое обработчика. КонецПроцедуры |
|||
1
gabd_marat
18.12.18
✎
20:19
|
Выдает ошибку не правильный параметр 1
|
|||
2
formista2000
18.12.18
✎
20:20
|
(1) какая строка выдаёт?
|
|||
3
Мимохожий Однако
18.12.18
✎
20:21
|
Показывай процедуру УстановитьУсловноеОформление(). Не стесняйся.
|
|||
4
Мимохожий Однако
18.12.18
✎
20:21
|
Позови отладчика
|
|||
5
formista2000
18.12.18
✎
20:22
|
(0) Ёпть! Попробуй НЕ указывать тип в ДанныеФормыВЗначение(Элементы.ОПРиСМП , Тип("ТаблицаЗначений"))!! Убери вхрен это указание типа нахрен!
|
|||
6
gabd_marat
18.12.18
✎
20:24
|
(2)ТаблицаОПРиСМП = ДанныеФормыВЗначение(Элементы.ОПРиСМП , Тип("ТаблицаЗначений"));
(3) Она в процессе написания &НаСервере Процедура УстановитьУсловноеОформление(ТаблКолонка = Неопределено) Если НЕ ТаблКолонка = Неопределено Тогда ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); //ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); ИмяПоля = ТаблКолонка.Имя; //ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ИмяПоля); ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОПРиСМП.НарезкаЗаготовок"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = "Перечисление.ТХ_ДопускиСотрудников.ВыдвижениеНаДопуск"; ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", ИСТИНА); ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Кирпичный); Конецесли; КонецПроцедуры |
|||
7
zak555
18.12.18
✎
20:25
|
Обходи на клиенте
|
|||
8
Diman000
18.12.18
✎
20:25
|
(0) Если тебе просто колонки ТЧ нужны, то непонятно зачем такие сложности. Про метод ВыгрузитьКолонки ты что-то слышал?
|
|||
9
gabd_marat
18.12.18
✎
20:28
|
(7) Ок
|
|||
10
ГдеСобака Зарыта
18.12.18
✎
20:29
|
Сдается мне автору нужно строки покрасить, а не колонки. Зачем он колонки то перебирает?
|
|||
11
formista2000
18.12.18
✎
20:30
|
(10) А ещё какую полоску отрастил! ((
|
|||
12
Мимохожий Однако
18.12.18
✎
20:32
|
(11) Полоска растёт сама по себе и подчиняется только времени.
|
|||
13
gabd_marat
18.12.18
✎
20:33
|
(10) Ячейки колонок
|
|||
14
gabd_marat
18.12.18
✎
20:34
|
Что бы в общую процедуру передать изменяемую ячейку и перекрасить ее в зависимости от значения, а так же что бы срабатывало при открытии формы.
|
|||
15
Мимохожий Однако
18.12.18
✎
20:35
|
(10) Автор сформулировал не то, что на самом деле надо сделать. Табличную часть надо обходить на сервере. А раскрашивать табличное поле можно через настройки условного оформления формы.
|
|||
16
gabd_marat
18.12.18
✎
20:35
|
В 8.2 была процедура привыводестроки но в 8.3 ее нет
|
|||
17
Мимохожий Однако
18.12.18
✎
20:36
|
(14) Попробуй описать задачу несколькими предложениями. Как только будет ясность - тебе наверняка подскажут.
|
|||
18
gabd_marat
18.12.18
✎
20:36
|
(15) 3 табличные части в каждой колонок 16 , значения ячеек перечисления - 6 штук
|
|||
19
Мимохожий Однако
18.12.18
✎
20:37
|
(18) И чё?
|
|||
20
gabd_marat
18.12.18
✎
20:38
|
Есть 3 листа на форме обработки . На каждом листе по 1 табличной части. В каждой таблично части не меньше 16 колонок. Нужно оформить раскрасить ячейки табличной части в зависимости от значений ячеек. Значение ячеек - перечисления - 6 разных перечислений.
|
|||
21
Diman000
18.12.18
✎
20:38
|
(13) Тебе нужны просто имена колонок. В процедуре УстановитьУсловноеОформление используется именно имя колонки.
Никакого обхода табличной части не нужно, тем более что под этим обычно понимается обход строк, а тебе колонки нужны. Через ВыгрузитьКолонки не получится, это я в (8) погорячился. Но получится через Выгрузить().СкопироватьКолонки() Правда, ты собираешься при изменении поля ОПРиСМП что-то добавлять в условное оформление. Боюсь, сейчас такой ужас наворотишь, что все равно работать не будет. Обычно условное оформление устанавливается один раз (на то оно и условное) и его потом не надо менять. |
|||
22
gabd_marat
18.12.18
✎
20:40
|
(15)Настройку в конфигураторе?
|
|||
23
Мимохожий Однако
18.12.18
✎
20:40
|
(20) Ничего страшного нет. Отработай одну таблицу, Проверь. Потом сделай следующую... И т.д. За час или меньше управишься.
|
|||
24
gabd_marat
18.12.18
✎
20:40
|
(21) Гонять данные по таблице значений с клиента на сервер не охото
|
|||
25
gabd_marat
18.12.18
✎
20:41
|
(23) Похоже я не правильнопонял работу условного оформления. Достаточно один раз задать условное формление для ячеек и при изменении оно будет срабатывать?
|
|||
26
Мимохожий Однако
18.12.18
✎
20:41
|
(22) Да. Через конфигуратор. В свойствах формы. Сам сегодня этим занимался ))
|
|||
27
gabd_marat
18.12.18
✎
20:42
|
А если программно?
|
|||
28
gabd_marat
18.12.18
✎
20:42
|
Через конфигуратор долго и при измененни условия очень мног менять надо
|
|||
29
gabd_marat
18.12.18
✎
20:44
|
Перед установкой условного оформления программно нужно сбрасывать настройки?
|
|||
30
Мимохожий Однако
18.12.18
✎
20:44
|
(28) Условное оформление зависит от значения поля. А значение поле можно программно менять до бесконечности.
|
|||
31
Мимохожий Однако
18.12.18
✎
20:46
|
(27) Про программные я не знаю. Пока не пробовал. Надо в документации посмотреть. Наверняка есть и в инете, и на сайте ИТС.
|
|||
32
gabd_marat
18.12.18
✎
20:46
|
(30) Понятно, то есть логикка в том что при открытии установить оформление (добавить элементы оформления , задать значения для сравнения) и этого достаточно
|
|||
33
gabd_marat
18.12.18
✎
20:49
|
(31) Понятно
|
|||
34
Diman000
18.12.18
✎
21:04
|
(24) Ты уже все данные формы перегнал на сервер вызовом ОПРиСМППриИзмененииНаСервере с директивой НаСервере.
Кроме того, мой предложенный код и не предполагает дополнительного обмена клиент-сервер, он вообще будет работать только в пределах сервера, на клиенте Объект.ТЧ.Выгрузить() не сработает. Да, условное оформление работает постоянно, шагай в этом направлении. |
|||
35
gabd_marat
18.12.18
✎
21:27
|
(34) Иза чег может не срабатывать условное оформление?
&НаСервере Процедура УстановитьУсловноеОформление() УсловноеОформление.Элементы.Очистить(); ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); //ИмяПоля = ТаблКолонка.Имя; ОформляемоеПоле.Использование = Истина; ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ОПРиСМП.НарезкаЗаготовок"); ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОПРиСМП.НарезкаЗаготовок"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = Перечисления.ТХ_ДопускиСотрудников.ВыдвижениеНаДопуск; ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", ИСТИНА); ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Кирпичный); ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); //ИмяПоля = ТаблКолонка.Имя; ОформляемоеПоле.Использование = Истина; ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ОПРиСМП.НарезкаЗаготовок"); ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОПРиСМП.НарезкаЗаготовок"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = Перечисления.ТХ_ДопускиСотрудников.ПодтверждениеДопуска; ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", ИСТИНА); ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Зеленый); КонецПроцедуры |
|||
36
Diman000
18.12.18
✎
21:29
|
(35) Так сложно по коду сказать.
Смотри в отладчике. А лучше сначала визуальной настройкой сделай. |
|||
37
gabd_marat
18.12.18
✎
21:59
|
(36) Понятно, как обратиться к эелементу применяемому оформление? так ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("НарезкаЗаготовок");
|
|||
38
gabd_marat
18.12.18
✎
22:00
|
Точнее ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Объект.ОПРиСМП.НарезкаЗаготовок");
|
|||
39
gabd_marat
18.12.18
✎
23:03
|
Получилось применить свойство для колонки всей, но не для отдельной ячейки . Как можно обратиться к элементу формы ячейка табличного поля
|
|||
40
hhhh
18.12.18
✎
23:07
|
(39) при помощи отбора в условном оформлении
|
|||
41
gabd_marat
18.12.18
✎
23:11
|
&НаСервере
Процедура УстановитьУсловноеОформление() УсловноеОформление.Элементы.Очистить(); ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить(); ОформляемоеПоле.Использование = Истина; ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(Элементы.НарезкаЗаготовок.Имя);//("Объект.ОПРиСМП.НарезкаЗаготовок"); ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(Элементы.НарезкаЗаготовок.Имя); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Перечисление.ТХ_ДопускиСотрудников.ПодтверждениеДопуска"); //"Перечисление.ТХ_ДопускиСотрудников.ПодтверждениеДопуска"; ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", ИСТИНА); ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Кирпичный); КонецПроцедуры (40) |
|||
42
gabd_marat
18.12.18
✎
23:11
|
Применяет для всей колонки , а надо для ячейки
|
|||
43
gabd_marat
18.12.18
✎
23:15
|
(40) Нужно поменять тип элемента отбора?
|
|||
44
gabd_marat
18.12.18
✎
23:21
|
В конфигураторе норм отрабатывает вроде, можно отладчиком узнать настройки конфигуратора оформления формы?
|
|||
45
gabd_marat
18.12.18
✎
23:27
|
можно отладчиком узнать настройки конфигуратора оформления формы?
|
|||
46
gabd_marat
18.12.18
✎
23:34
|
Нet п0д рукой БСП , может у кого есть пример
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |