Имя: Пароль:
1C
1С v8
не раскрашиваются строки тч в документе
,
0 fdgd98
 
24.12.14
14:58
Пытаюсь сделать через условное оформление программно. Должно быть так. При открытии документа должны раскрашиваться. только те строки(строка состоит из наименования, которая имеет тип справочник ссылка), у которых в справочнике не заполнен реквизит - "спецнаименование". При открытии..ничего не раскрашивается



  ТЗ = Объект.Приходная;
   Для каждого стр из ТЗ цикл
         Спр = Справочники.Номенклатура.НайтиПоНаименованию(стр.Наименование);
         если Спр.СпециальноеНаименование = Справочники.СпецНаименование.ПустаяСсылка() тогда
            ЭтаФорма.УсловноеОформление.Элементы.Очистить();
            ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
            ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
            ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("стр.наименование");
            ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
            ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Спр.СпециальноеНаименование");
            ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
            ЭлементОтбора.ПравоеЗначение = Справочники.СпецНаименование.ПустаяСсылка();
            ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Красный);
         конецесли;    
   конеццикла
1 Euguln
 
24.12.14
15:02
(0)"стр.наименование" и "Спр.СпециальноеНаименование" - фигня какая-то. Сделай сначала руками в условном оформлении и посмотри правильные идентификаторы.
2 anatoly
 
24.12.14
15:04
сделай на ТЧ в ПриПолученииДанных - ОформленияСтрок
3 fdgd98
 
24.12.14
15:05
(1) я не знаю что должно быть в Новый ПолеКомпоновкиДанных("стр.наименование");
4 Euguln
 
24.12.14
15:05
(2) в управляемой форме? О_о
5 fdgd98
 
24.12.14
15:05
да кстати УФ
6 разработчик 1с
 
24.12.14
15:06
привыводестроки
7 Euguln
 
24.12.14
15:07
(3) "Приходная.СпециальноеНаименование"
8 fdgd98
 
24.12.14
15:08
строка, где поле наименование, имеет тип справочникссылка, находим этот справочник, смотрим заполнено ли реквизити спецнаименование, если нет, то раскрашиваем строку наименование в документе
9 fdgd98
 
24.12.14
15:10
(7) Приходная это ТЧ, в ней к сожалению нет специальногонаимевания
10 Euguln
 
24.12.14
15:11
(9) тогда надо добавлять колонку реквизита в ТЧ и заполнять его. Посмотри как в типовой БП видимость субконто сделано.
11 fdgd98
 
24.12.14
15:16
может кто подскажет7
12 fdgd98
 
24.12.14
15:22
ап
13 Euguln
 
24.12.14
15:43
(11) что из (10) тебе не понятно?
14 Krolik Bezobraznik
 
24.12.14
15:44
УФ?
15 fdgd98
 
24.12.14
15:46
(14) да
16 fdgd98
 
25.12.14
10:07
ап
17 antoneus
 
25.12.14
10:18
повторю вопрос в (13)
18 hhhh
 
25.12.14
10:28
(15) наверно так

            ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВашаТЧ.наименование.СпециальноеНаименование");
19 fdgd98
 
25.12.14
10:29
У меня сложная структура получается, т.е. левозначение должно быть такое: объект.Приходная.Наименование.СпециальноеНаименование
где приходная это тч, наименование  это реквизит тч, который имеет тип справочникссылка на спр номенклатуру, а специальноенаименование это реквизит(который также имеет тип спрссылка на др справочник) справочника номенклатуры.

вопрос : как правильно написать это, а то левоезначение не определено:
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Приходная.Наименование.СпециальноеНаименование");
20 fdgd98
 
25.12.14
10:30
(18) неа , вот как раз так и делал, но не получается сравнение
21 fdgd98
 
25.12.14
10:31
соответсвенно


ОтборЭлемента.ПравоеЗначение = Справочники.СпецНаименование.ПустаяСсылка();
22 hhhh
 
25.12.14
10:31
(20) ну вот это выбросьте

   Для каждого стр из ТЗ цикл


это же полнейший бред. в какой процедуре всё это у вас?
23 fdgd98
 
25.12.14
10:32
(22) убрал уже)  Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
24 fdgd98
 
25.12.14
10:34
(22) неужели сложные типы сравнивать нельзя?
25 fdgd98
 
25.12.14
10:44
ни кто не знает?
26 fdgd98
 
25.12.14
11:00
кстати условное оформление делаю в форме документа
27 fdgd98
 
25.12.14
11:32
up
28 fdgd98
 
25.12.14
12:06
(17) объясни попунктно
29 fdgd98
 
25.12.14
14:17
ап
30 fdgd98
 
25.12.14
14:22
(10) объясни, ниче не понял(
31 Euguln
 
25.12.14
14:23
(30) Типовая конфигурация под рукой есть?
32 fdgd98
 
25.12.14
14:24
(31) неа(какая нужна ?
33 fdgd98
 
25.12.14
14:35
горю(
34 antoneus
 
25.12.14
14:48
Короче.

В табличную часть "Товары" РЕКВИЗИТА ФОРМЫ "Объект" добавляешь колонку "СпецНаименованиеЗаполнено", тип - Булево.
ПриСозданииНаСервере пишешь

Для каждого ТекСтрока из ЭтаФорма.Объект.Товары Цикл
ТекСтрока.СпецНаименованиеЗаполнено = ЗначениеЗаполнено(ТекСтрока.Номенклатура.СпецНаименование)
КонецЦикла;

В условном оформлении строчки красишь по этому реквизиту.
После интерактивной записи документа значения будут слетать, так что перезаполняй колонку.
35 antoneus
 
25.12.14
14:49
(34) + ну или как там у тебя твоя табличная часть называется.
36 fdgd98
 
25.12.14
15:20
(35)     ТЗ = Объект.Приходная;
       для каждого стр из ТЗ цикл
           //если стр.Наименование.СпециальноеНаименование <> Справочники.СпецНаименование.ПустаяСсылка() тогда
            стр.СпецНаименование = стр.Наименование.СпециальноеНаименование;
            
       конеццикла;      
        Элемент = УсловноеОформление.Элементы.Добавить();
        ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
        ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ПриходнаяНаименование.Имя);
        Элемент.Использование = Истина;
        ПолеЭлемента.Использование = Истина;
        ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Приходная.СпецНаименование");
        ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
        ОтборЭлемента.ПравоеЗначение = Справочники.СпецНаименование.ПустаяСсылка();
        ОтборЭлемента.Использование = Истина;

        Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Кирпичный);
37 fdgd98
 
25.12.14
15:20
заработало))))))))))) (35) спасибо) всем)
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.