| 
    
            
         
         | 
    
    
  | 
Как на сервере обойти табличную часть | ☑ | ||
|---|---|---|---|---|
| 
    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д рукой БСП  , может у кого есть пример     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |