INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Тягунов Иван | Управляющий партнер, основатель | Консалтинговая группа "Wiseadvice"

«UX/UI: почему 1С проигрывает веб-приложениям по интерфейсам, и как это изменить?»

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

1. frenzymind 11.01.17 07:11 Сейчас в теме

Шрифт в области Табличного документа

Доброго времени суток. Есть следующий код:

...
ТабДок = Новый ТабличныйДокумент;

...
СекцияВеществаУровень = Макет.ПолучитьОбласть("ВеществаУровень");
...
СтартШрифт = СекцияВеществаУровень.ТекущаяОбласть.Шрифт;
					
СекцияВеществаУровень.ТекущаяОбласть.Защита = ложь;
СекцияВеществаУровень.ТекущаяОбласть.Шрифт = Новый Шрифт(СтартШрифт,,,истина);
					
ТабДок.Вывести(СекцияВеществаУровень);
					
СекцияВеществаУровень.ТекущаяОбласть.Шрифт = Новый Шрифт(СтартШрифт,,,ложь);
Показать

Хочу сделать шрифт полужирным (по определённому условию) в полученной области, вывести эту область полужирной, а потом убрать полужирность. "СтартШрифт" получаю нормально, через отладку проверил. Новый шрифт тоже генерится нормально, но области не присваивается, остаётся каким и был.
Что я упускаю ? Спасибо
Найденные решения
6. frenzymind 11.01.17 11:13 Сейчас в теме
Проблема решена.
Как я думал оказалось правильным: "получил область макета,изменил шрифт, заполнил данными и вывел в ТабДок"
Неверным оказалась релаизация. Вот рабочий вариант:

СекцияВеществаУровень.Область("ВеществаУровень").Шрифт = Новый Шрифт(СтартШрифт,,,истина);

ТабДок.Вывести(СекцияВеществаУровень);

СекцияВеществаУровень.Область("ВеществаУровень").Шрифт = Новый Шрифт(СтартШрифт,,,ложь);

Я думал что получить область из макета достаточно чтоб менять шрифт. Но эта область тоже является Табличным документом,и из неё опять надо получить область, к которой уже шрифт применить можно. Как-то так. Если кто внятно сможет объяснить, сделайте это пожалуйста :)
Всем спасибо!
Остальные ответы
Сортировка: Древо
3. antz 11.01.17 10:18 Сейчас в теме
(1) Делать-то шрифт, наверно, надо не в полученной области макета, а в выведенной
области ТабДок.

(2) Зачем такие мучения? Почему не задавать область циферками?

ОбластьВыделения = ТабДок.Область(ТабДок.ВысотаТаблицы, ТабДок.ширинаТаблицы);
ОбластьВыделения.Шрифт=Новый Шрифт(ОбластьВыделения.Шрифт,,,Истина,); 
4. frenzymind 11.01.17 10:39 Сейчас в теме
(3) Я как думаю: получил область макета,изменил шрифт, заполнил данными и вывел в ТабДок.
Когда делаешь макет, ведь можно шрифт менять у ячейки. А программно это выглядит так:
СекцияВеществаУровень.Область("R1C1").Шрифт = Новый Шрифт(СтартШрифт,,,истина);
Но тоже не работает.
Попробую ваш вариант.
5. ASG74 11.01.17 10:39 Сейчас в теме
(3) Циферки ведь меняться могут... этот пример выделяет в некоторых ячейках таблицы по условию
2. ASG74 11.01.17 09:15 Сейчас в теме
Здравствуйте. Я вот так делаю:
ОбластьВыделения="R"+Формат(ТабДок.ВысотаТаблицы,"ЧГ=0")+"C"+Формат(ТабДок.ширинаТаблицы,"ЧГ=0");
табДок.Область(ОбластьВыделения).Шрифт=Новый Шрифт(табДок.Область(ОбластьВыделения).Шрифт,,,Истина,);
6. frenzymind 11.01.17 11:13 Сейчас в теме
Проблема решена.
Как я думал оказалось правильным: "получил область макета,изменил шрифт, заполнил данными и вывел в ТабДок"
Неверным оказалась релаизация. Вот рабочий вариант:

СекцияВеществаУровень.Область("ВеществаУровень").Шрифт = Новый Шрифт(СтартШрифт,,,истина);

ТабДок.Вывести(СекцияВеществаУровень);

СекцияВеществаУровень.Область("ВеществаУровень").Шрифт = Новый Шрифт(СтартШрифт,,,ложь);

Я думал что получить область из макета достаточно чтоб менять шрифт. Но эта область тоже является Табличным документом,и из неё опять надо получить область, к которой уже шрифт применить можно. Как-то так. Если кто внятно сможет объяснить, сделайте это пожалуйста :)
Всем спасибо!
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Одесса (Украина)
зарплата от 40 000 руб.
Полный день

Программист 1С
Санкт-Петербург
Полный день

Аналитик 1С
Москва
зарплата от 80 000 руб. до 120 000 руб.
Полный день

1С Developer
Одесса (Украина)
зарплата от 60 000 руб. до 120 000 руб.
Полный день

Бизнес-аналитик 1С
Санкт-Петербург
зарплата от 70 000 руб. до 90 000 руб.
Полный день