Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как хранить в справочнике реквизит "НастройкаОформления"
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
awp
1С 8.2 УТП
Ув. Знатоки. Есть справочник каждому элемента которого необходимо подвязать реквизит с типом "НастройкаОформления". Но этот тип доступен только в форме в конфигураторе его нет. Может кто сталкивался с решением данной проблемы? Может както преобразовывать?

Сразу отвечу для чего - Есть отчет "Упр. баланс" написан под заказчика. Разделы и статьи баланса хранятся в справочнике. Заказчик хочет "разукрасить" этот отчет, причем как и настраивать его он хочет сам. Использовать "ПосторительОтчетов" не могу - куча преобразований и тп.

За ранее благодарен.
Vofka
Добавьте 3 числовых реквизита в справочник: R, G, B. И в зависимости от этих реквизитов создавайте цвета.
awp
Цитата(Vofka @ 08.11.11, 8:59) необходимо зарегистрироваться для просмотра ссылки
Добавьте 3 числовых реквизита в справочник: R, G, B. И в зависимости от этих реквизитов создавайте цвета.


Такой вариант я бы предложил для любимой бухгалтерии smile.gif
Для левой разработки это не как то ....


Настройка оформления
Batchir
Может так можно?
ЗначениеСтр = ЗначениеВСтрокуВнутр(ЭлементыФормы.НастройкаОформления.Значение);

ЗначениеСтр хранить в реквизите типа Текст
При необходимости получения оформления выполнять
ЗначениеОформления = ЗначениеИзСтрокиВнутр(ЗначениеСтр);

Но это предположение, не проверял
awp
Цитата(Batchir @ 08.11.11, 9:40) необходимо зарегистрироваться для просмотра ссылки
Может так можно?
ЗначениеСтр = ЗначениеВСтрокуВнутр(ЭлементыФормы.НастройкаОформления.Значение);

ЗначениеСтр хранить в реквизите типа Текст
При необходимости получения оформления выполнять
ЗначениеОформления = ЗначениеИзСтрокиВнутр(ЗначениеСтр);

Но это предположение, не проверял


Цитата
{Справочник.РазделыУпрБаланса.Форма.ФормаЭлемента.Форма(3)}: Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр)
ФормаОформление = ЗначениеИзСтрокиВнутр(Оформление);
по причине:
Ошибка преобразования
по причине:
Ошибка формата потока
Batchir
На 1С:Предприятие 8.2 (8.2.14.537) проблем не возникло.
Цитата
Ошибка формата потока
Это вообще страшная ошибка и прежде чем идти дальше - тестирование и исправление, chdbfl.exe
awp
Цитата(Batchir @ 08.11.11, 14:49) необходимо зарегистрироваться для просмотра ссылки
На 1С:Предприятие 8.2 (8.2.14.537) проблем не возникло.
Это вообще страшная ошибка и прежде чем идти дальше - тестирование и исправление, chdbfl.exe


То есть у Вас получилось? У меня релиз 8.2.14.519. Попробую установить поновее.
Batchir
Цитата(awp @ 08.11.11, 21:29) необходимо зарегистрироваться для просмотра ссылки
То есть у Вас получилось? У меня релиз 8.2.14.519. Попробую установить поновее.

т.е. да получилось.
Создал обработку. На форму кинул поле ввода, дал ему имя НастройкаОформления и установил тип НастройкаОформления
Выполнил
ЗначениеСтр = ЗначениеВСтрокуВнутр(ЭлементыФормы.НастройкаОформления.Значение);
ЗначениеОформления = ЗначениеИзСтрокиВнутр(ЗначениеСтр);

Ошибок не получил и переменная ЗначениеОформления хранила настройку оформления (смотрел в отладчике)

Но перед эти советую на копии выполнить "Тестирование и исправление", "chdbfl.exe, потому что "Ошибка формата потока" чаще всего связана с поломанным файлом конфигурации и если это так - то СРОЧНО принять меры, иначе можно потерять базу НАВСЕГДА, что даже фирма 1С не сможет помочь
awp
Спасибо всем за помощь.
ФормаОформление = ЗначениеИзСтрокиВнутр(Оформление);


Если "Оформление" пустая строка - то возникает ошибка.
Решил проблему просто

Попытка
ФормаОформление = ЗначениеИзСтрокиВнутр(Оформление);
Исключение
КонецПопытки
Batchir
Правильнее наверно было бы проверять на заполненное значение а не помещать в попытку, раз известна причина возникновения ошибки.
Если ЗначениеЗаполнено(Оформление) Тогда
      ФормаОформление = ЗначениеИзСтрокиВнутр(Оформление);
КонецЕсли;
kivals
ИМХО более правильно через ХранилищеЗначений сделать. Хотя суть остается та же (даже предполагаю что на внутреннем уровне произойдет то же самое преобразование)...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.