8.х Проблема с условным оформлением в форме документа

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем kllk, 25 дек 2014.

  1. TopicStarter Overlay
    kllk
    Offline

    kllk

    Регистрация:
    25 дек 2014
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте! В форме документа есть тч, у тч есть реквизит наименование(имеет тип спрссылка на спр номенклатуру), у справочника номенклатура есть реквизит "специальноенаименование". Идея такая: при открытии формы документа закрасить то наименование в ТЧ, у которой в справочнике номенклатура реквизит "специальноенаименование" пустое. Сделал программное условное оформление, но ничего не закрашивается. в чем дело? Управляемые формы.

    Элемент = УсловноеОформление.Элементы.Добавить();
    ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
    ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ПриходнаяНаименование.Имя);
    ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Приходная.Наименование.СпециальноеНаименование");
    ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ОтборЭлемента.ПравоеЗначение = Справочники.СпецНаименование.ПустаяСсылка();
    Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Кирпичный);
  2. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    а чем не устраивает в оформлении самой формы? вот именно кодом надо?
    upload_2014-12-25_16-26-52.png
  3. TopicStarter Overlay
    kllk
    Offline

    kllk

    Регистрация:
    25 дек 2014
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    дак потому что если без кода, то там при выборе левого значения в тч максимум можно выбрать реквизит тч, причем реквизит этот имеет тип ссылка на справочник. Т.е. я не могу "добраться" дальше до справочника номенклатура, где есть реквизит специальноенаименование.
    Вот что имел ввиду: попробуйте в форме документа в "конструкторе" условного оформления в левом значении указать так: МояТЧ.Наименование.СпециальноеНаименование (где спецнаименование это реквизит справочника номекналутры) - что имею я на форме документа = это ТЧ с реквизитом наименование и всё.
    --- Объединение сообщений, 25 дек 2014 ---
    ро.jpg
    Последнее редактирование: 25 дек 2014
  4. Svb
    Offline

    Svb Опытный в 1С Команда форума

    Регистрация:
    12 янв 2011
    Сообщения:
    980
    Симпатии:
    19
    Баллы:
    29
    Вы решили обмануть 1С.
  5. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    По мне если уж менять, то тогда уже набор данных для динамического списка можно определить как ЗАпрос, там контруктор запроса, когда открываете - открывается усеченная форма СКД, в запросе вытаскиваете нужные Вам поля, а в условном форматировании накладывает условия. Принципе все то что вы хотите сделать, только не кодом, а в конструкторе делается и у пользователя уже открывается и работает готовый результат
  6. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не совсем понял.
    У вас реквизит динамический список или таблица значений?
    Во втором случае добавьте в таблицу на форме поле, путь к данным - путь к вашему реквизиту Специальное наименование, и используйте это добавленное поле в условном оформлении.
  7. TopicStarter Overlay
    kllk
    Offline

    kllk

    Регистрация:
    25 дек 2014
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Код:
    ТЗ = Объект.Приходная;
      для каждого стр из ТЗ цикл
      //если стр.Наименование.СпециальноеНаименование <> Справочники.СпецНаименование.ПустаяСсылка() тогда
    стр.СпецНаименование = стр.Наименование.СпециальноеНаименование;
      конеццикла;
    Элемент = УсловноеОформление.Элементы.Добавить();
    ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
    ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ПриходнаяНаименование.Имя);
    Элемент.Использование = Истина;
    ПолеЭлемента.Использование = Истина;
    ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Приходная.СпецНаименование");
    ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ОтборЭлемента.ПравоеЗначение = Справочники.СпецНаименование.ПустаяСсылка();
    ОтборЭлемента.Использование = Истина;
    Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Кирпичный);
    --- Объединение сообщений, 25 дек 2014 ---
    заработало)
    --- Объединение сообщений, 25 дек 2014 ---
    обманул 1С
    Последнее редактирование: 25 дек 2014

Поделиться этой страницей