Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Условное оформление во внешней обработке

Добрый день!
В БП 3.0 условное оформление документа "Отчет о розничных продажах" ставит флажок "Только просмотр" для колонки "Себестоимость".
Нужно эту колонку открыть для пользователя, но сделать это без расчленения типовой бухгалтерии.
Пробую во внешней обработке заполнения написать код, а там идет вызов клиентского метода, а с клиента условное оформление недоступно.
Как можно изменить условное оформление в уже открытой форме?
Ответ:
Я так и не понял, можно ли из внешней обработки применять условное оформление к форме владельца.
У кого-нибудь получилось в итоге это сделать?
Через параметр ВладелецФормы на сервере не получается ведь, а на клиенте оформление недоступно.

добавлено немного позже:

всё, разобрался. если в типовой конфигурации применяется более-менее новая БСП, то вместо ВызовКлиентскогоМетода можно указать тип команды использования "ЗаполнениеФормы", тогда через ПараметрыВыполнения.ЭтаФорма можно в самом модуле объекта внешней обработки напрямую работать с контекстом формы документа, из которого вызывается внешняя обработка: условное оформление, добавление на лету новых реквизитов и элементов формы - чего хотите.
Вопрос: Как программно в форме списка установить условное оформление у всей строки?

Как программно в форме списка установить условное оформление у всей строки?

Код:
    ОтборЭлементаУсловногоОформления = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборЭлементаУсловногоОформления.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Наименование");
    ОтборЭлементаУсловногоОформления.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ОтборЭлементаУсловногоОформления.ПравоеЗначение = Истина;
В данном случае оформляется только одно поле, а нужно чтобы вся строка. Пробовал вообще не добавлять ПолеКомпоновкиДанных, добавлять Новый ПолеКомпоновкиДанных("). Не помогло. Остается только вариант все поля перебрать, но это не очень красиво.
Ответ:
Ну все правильно.
Для оформления динамического списка лучше использовать условное оформление этого списка, а не условное оформление формы.
Вопрос: проблема с программным условным оформлением

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


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

Делаю подсистему по страхованию физлиц. Хочу сделать условное оформление "если клиент есть в документе СмертельныеСлучаи, то выделить его красным". Но через форму в 1С такую фичу сделать не смог. Как мне сделать это программно? Заранее благодарен.
Ответ:
Сообщение от MODifikaTOR18
Joker_vad, у меня учебная версия, в ней нет выбора типа формы
Конечно нет, ага.
Сообщение от MODifikaTOR18
А как для управляемой это сделать?
Сообщение от Joker_vad
тут запрос надо делать для динамического списка, получать этим запросом булево поле по нахождению в документе или регистре и в зависимости от этого настраивать условное оформление
Вопрос: В УПП в универсальном отчете как для сделать доступными свойства Заказа на производство

В УПП в универсальном отчете как для сделать доступными свойства Заказа на производство

В стандартной ведомости по заказан на производство свойства доступны
я скопировал вызов из него универсального отчета в свой отчет - все работает, но вызов свойств и отбор по свойству не дает сделать

Подскажите, что я мог пропустить или не так сделать
Ответ: () Тогда только отладка в помощь, благо универсальный отчет работает целиком на клиенте.
Вопрос: Универсальный отчет. Группировка дат по месяцам.

Добрый вечер! Подскажите, пожалуйста, как в универсальном отчете сделать группировку дат по месяцам? Нужно выбрать дни рождения контрагентов из справочника "Контрагенты" и отбирать их по месяцу рождения. В справочник я добавила поле "ДатаРождения", в отчете теперь их сгруппировать надо по месяцам...БП2.0
Ответ: () вообще это функция языка запросов
В универсальном отчете в БП2 можно добавить пользовательское поле выражение

Месяц([Дата рождения])
Вопрос: Как установить поле «Оформление» при программном добавлении условного оформления

Как установить поле «Оформление» при программном добавлении условного оформления в СКД 8.1?
Вот рабочий код для СКД 8.2:
НовыйЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); 
НовыйЭлементУсловногоОформления.Использование = Истина; 
//Отбор    

ЭлементОтбора = НовыйЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.Использование = Истина; 
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Признак");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; 
ЭлементОтбора.ПравоеЗначение = 1;
НовыйЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Желтый);
Но в СКД 8.1 ещё нет метода «УстановитьЗначениеПараметра»
Пробую пошагово:
//Область(Оформляемые поля)    

ПолеОформления = НовыйЭлементУсловногоОформления.Поля.Элементы.Добавить();
 ПолеОформления.Поле = Новый ПолеКомпоновкиДанных("Документ");
 ПолеОформления.Использование = Истина;
Вопрос, как добавить само Оформление (("ЦветФона", WebЦвета.Желтый)?
Ответ: Для СКД 8.1
//1 Вариант. По имени Параметра  

Элемент = НовыйЭлементУсловногоОформления.Оформление.Элементы.Найти("ЦветФона");
 Если НЕ Элемент = Неопределено Тогда
     Элемент.Значение = WebЦвета.Желтый;
     Элемент.Использование = Истина;
 КонецЕсли;

//1 Вариант. По индексу Параметра 

Элемент = НовыйЭлементУсловногоОформления.Оформление.Элементы[0];
Элемент.Значение = WebЦвета.Желтый;
Элемент.Использование = Истина;
Вопрос: Тонкий клиент: табличное поле, выделенная строка "затирает" условное оформление

Всем привет!

Тонкий клиент: табличное поле, выделенная строка "затирает" условное оформление (к примеру колонка была подкрашена в зеленый цвет)

Кто-нибудь смог победить данную проблему?
Ответ: В общем порывшись на форумах пришел к выводу, что это очередное допущение 1С и "нормального" решения проблемы нет.
Вот вариант как можно обойти это недоразумение:

&НаКлиенте
Процедура ДанныеПриАктивизацииЯчейки(Элемент)
Элемент.ВыделенныеСтроки.Очистить();
ПутьКДанным = "Данные.Эскиз"; //уникальная id записи (в моем случае ссылка на справочник)
ВыделениеТекущейЯчейки(Элемент.ТекущийЭлемент.Имя, ПутьКДанным, Элемент.ТекущиеДанные.Эскиз);
КонецПроцедуры


&НаСервере
Процедура ВыделениеТекущейЯчейки(Знач ИмяКолонки, Знач ПутьКДанным, Знач Эскиз)
//очистка оформления ТекущаяЯчейка
НовоеОформление = Неопределено;

Для каждого УслОформ из ЭтаФорма.УсловноеОформление.Элементы Цикл
Если УслОформ.ПредставлениеПользовательскойНастройки = "ТекущаяЯчейка" Тогда
НовоеОформление = УслОформ;
Прервать;
КонецЕсли;
КонецЦикла;

Если НЕ НовоеОформление = Неопределено Тогда
УсловноеОформление.Элементы.Удалить(НовоеОформление);
КонецЕсли;

////установка текущей ячейки
НовоеОформление = ЭтаФорма.УсловноеОформление.Элементы.Добавить();
НовоеОформление.ПредставлениеПользовательскойНастройки = "ТекущаяЯчейка";

ЦветФона = НовоеОформление.Оформление.Элементы.Найти("ЦветФона");
ЦветФона.Значение = WebЦвета.СветлоНебесноГолубой;//ЦветаСтиля["ЦветФонаВыделенияПоля"];
ЦветФона.Использование = Истина;

Отбор = НовоеОформление.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.Использование = Истина;
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПутьКДанным);
Отбор.ПравоеЗначение = Эскиз;

ПолеОформления = НовоеОформление.Поля.Элементы.Добавить();
ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(ИмяКолонки); //для выделения ячейки
// ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(ИмяЭлемента); //для выделения строки
КонецПроцедуры
Вопрос: УТ- отчет ВаловаяПрибыль -> Универсальный отчет отбор по Подразделению???

Возникла задача в отчете "Валовая прибыль" в УТ2 каз.(считай-УТ10.2) запретить некоторым пользователям видеть прибыль по чужим подразделениям. А дать доступ только по своему подразделению.
Поковырялся в отчете понял что все через универсальный отчет реализовано.
Думаю решить можно тремя путями.
1. РЛС но для меня муторно и долго.
2. Просто запретить этот отчет тем пользователям и написать для них свой отчет.
3. Все-таки попытаться с отчета валовая прибыль передавать отбор со значением в универсальный и получить результат. а в настройках как-то запретить отбор по подразделению.

Вот у меня вопрос как можно решить по третей схеме???
Ответ: () Ну хоть на справочник подразделений РЛС наложите. А то пользователь в отчете будет выбирать не свои.
Вопрос: Условное оформление группы колонок СКД

Здравствуйте!
Пишу отчет на СКД, по умолчанию, для всех полей цвет рамки серый. Покрасил условным оформлением рамки всех полей на черный. Осталась одна ячейка - группа колонок. (сгруппировал ресурсы в закладке Выбранные значения). Как принять условное оформление и для данной ячейки?
Ответ: В выбранных полях добавил строку, но не выбрал само поле) т.е. удалил все оформляемые поля, добавил пустую строчку