Преобразования цвета: RGB, Web, Hex, 1С

Публикация № 201708

Разработка - Работа с интерфейсом

цвет преобразование RGB colour

У вас есть поле "Цвет" на форме. А что дальше?..
Эта обработка и приведённые функции позволят легко манипулировать такими разными ипостасями понятия "Цвет". Очень простое, топорное и понятное, решение.

Понадобилось мне скомпоновать html с выбором цвета в диалоге. И, увы, не так просто оказалось преобразовать элемент стиля в 16-ричную строку. Конечно, есть функции для веб-разработчиков, и где-то на ИС я тоже выкладывал функцию из rgb в hex, но тут понадобилось более масштабно. Нарыл было //infostart.ru/public/115963/, но рано радовался - работает далеко не для всех случаев, а только для элементов стиля в определённых условиях. Никакие фокусы и преобразования не помогли, 1С упрямо поддерживала тот вид цвета, каким он родился изначально. Поэтому я озверел и воспользовался мировой паутиной, откуда вытащил таблицу соответствий. Состряпал функции. Для удобства тестирования обернул в обычную и управляемую формы.

Для тех, кто не может скачивать, публикую тут самое основное:


Функция ПрочитатьТаблицуЦветов(рНижнийРегистр=Ложь) Экспорт
   
тЦветов=Новый ТаблицаЗначений;
   
тЦветов.Колонки.Добавить("Название");
   
тЦветов.Колонки.Добавить("Красный");
   
тЦветов.Колонки.Добавить("Синий");
   
тЦветов.Колонки.Добавить("Зеленый");
   
тЦветов.Колонки.Добавить("Шестнадцатиричный");
   
мак=ПолучитьМакет("ТаблицаЦветов");
    Для
й=2 По мак.ВысотаТаблицы Цикл
       
#Если Клиент Тогда
           
ОбработкаПрерыванияПользователя();
       
#КонецЕсли
       
мргб=мРазложитьСтрокуВМассивПодстрок(мак.Область(й,2).Текст," ");
       
стро=тЦветов.Добавить();
       
стро.Название=мак.Область(й,1).Текст;
       
стро.Красный=Число(мргб.Получить(0));
       
стро.Синий=Число(мргб.Получить(1));
       
стро.Зеленый=Число(мргб.Получить(2));
       
стро.Шестнадцатиричный=мак.Область(й,3).Текст;
        Если
рНижнийРегистр Тогда
           
стро.Название=НРег(стро.Название);
        КонецЕсли;
    КонецЦикла;
    Возврат
тЦветов;
КонецФункции


Функция
ПолучитьЦветИзСтиляПлатформы(рЦветКакЭлементСтиля) Экспорт
Попытка
   
// спасибо за идею //infostart.ru/public/115963/, хотя работает только для случая таких стилей
   
т=Новый ТабличныйДокумент;
   
т.Область(1,1,1,1).ЦветФона=рЦветКакЭлементСтиля;
   
вф=ПолучитьИмяВременногоФайла("htm");
   
т.Записать(вф,ТипФайлаТабличногоДокумента.HTML);
   
// читаем грубо, без ДокументHTML
   
рКодПоиска="tr.R0 td.R0C0{ background-color:"; // если 1С изменит формат, эту строку придётся поменять
   
т=Новый ТекстовыйДокумент;
   
т.Прочитать(вф);
   
стро=т.ПолучитьТекст();
   
пози=Найти(стро,рКодПоиска);
    Если
пози<>0 Тогда
        Возврат
ВРег(Сред(стро,пози+СтрДлина(рКодПоиска),8));
    КонецЕсли;
    Возврат
"";
Исключение
   
Сообщить("ПолучитьЦветИзСтиляПлатформы, ошибка: "+ОписаниеОшибки(),СтатусСообщения.Важное);
    Возврат
"";
КонецПопытки;
КонецФункции


Функция
ПреобразоватьЦвет(рИсходныйЦвет,рВидИтоговогоЦвета,тЦветов="") Экспорт
Попытка
    Если
ТипЗнч(рИсходныйЦвет)=Тип("Цвет") Тогда
        Если
рИсходныйЦвет.Вид=ВидЦвета.ЭлементСтиля Тогда
           
стрЦвет=ПолучитьЦветИзСтиляПлатформы(рИсходныйЦвет); // вернёт hex, т.е. 16-ричный
           
Если не ПустаяСтрока(стрЦвет) Тогда
                Если
рВидИтоговогоЦвета=1 Тогда // нужен web-цвет
                   
Если ТипЗнч(тЦветов)<>Тип("ТаблицаЗначений") Тогда
                       
тЦветов=ПрочитатьТаблицуЦветов();
                    КонецЕсли;
                   
строц=тЦветов.Найти(стрЦвет,"Шестнадцатиричный");
                    Если
строц<>Неопределено Тогда
                        Возврат
строц.Название;
                    КонецЕсли;
                ИначеЕсли
рВидИтоговогоЦвета=2 Тогда // нужен RGB
                   
Если ТипЗнч(тЦветов)<>Тип("ТаблицаЗначений") Тогда
                       
тЦветов=ПрочитатьТаблицуЦветов();
                    КонецЕсли;
                   
строц=тЦветов.Найти(стрЦвет,"Шестнадцатиричный");
                    Если
строц<>Неопределено Тогда
                        Возврат Новый
Структура("Красный,Синий,Зеленый",строц.Красный,строц.Синий,строц.Зеленый);
                    КонецЕсли;
                ИначеЕсли
рВидИтоговогоЦвета=3 Тогда // нужен 16-ричный
                   
Возврат стрЦвет; // это он и есть
               
КонецЕсли;
            КонецЕсли;

        ИначеЕсли
рИсходныйЦвет.Вид=ВидЦвета.WebЦвет Тогда
           
// вытащим из скобок англоязычное написание цвета
           
стрЦвет=СокрЛП(Строка(рИсходныйЦвет));
           
пози1=Найти(стрЦвет,"(");
            Если
пози1<>0 Тогда
               
стрЦвет=НРег(СтрЗаменить(Сред(стрЦвет,пози1+1),")",""));
                Если
рВидИтоговогоЦвета=1 Тогда // нужен web-цвет
                   
Возврат стрЦвет; // это он и есть
               
ИначеЕсли рВидИтоговогоЦвета=2 Тогда // нужен RGB
                   
Если ТипЗнч(тЦветов)<>Тип("ТаблицаЗначений") Тогда
                       
тЦветов=ПрочитатьТаблицуЦветов(Истина);
                    КонецЕсли;
                   
строц=тЦветов.Найти(стрЦвет,"Название");
                    Если
строц<>Неопределено Тогда
                        Возврат Новый
Структура("Красный,Синий,Зеленый",строц.Красный,строц.Синий,строц.Зеленый);
                    КонецЕсли;
                ИначеЕсли
рВидИтоговогоЦвета=3 Тогда // нужен 16-ричный
                   
Если ТипЗнч(тЦветов)<>Тип("ТаблицаЗначений") Тогда
                       
тЦветов=ПрочитатьТаблицуЦветов(Истина);
                    КонецЕсли;
                   
строц=тЦветов.Найти(стрЦвет,"Название");
                    Если
строц<>Неопределено Тогда
                        Возврат
строц.Шестнадцатиричный;
                    КонецЕсли;
                КонецЕсли;
            КонецЕсли;

        ИначеЕсли
рИсходныйЦвет.Вид=ВидЦвета.Абсолютный Тогда
            Если
рВидИтоговогоЦвета=1 Тогда // нужен web-цвет
               
Если ТипЗнч(тЦветов)<>Тип("ТаблицаЗначений") Тогда
                   
тЦветов=ПрочитатьТаблицуЦветов();
                КонецЕсли;
               
отб=Новый Структура("Красный,Синий,Зеленый",рИсходныйЦвет.Красный,рИсходныйЦвет.Синий,рИсходныйЦвет.Зеленый);
               
мстроц=тЦветов.НайтиСтроки(отб);
                Если
мстроц.Количество()<>0 Тогда
                    Возврат
мстроц[0].Название;
                КонецЕсли;
            ИначеЕсли
рВидИтоговогоЦвета=2 Тогда // нужен RGB
                // фактически, он и есть
               
Возврат Новый Структура("Красный,Синий,Зеленый",рИсходныйЦвет.Красный,рИсходныйЦвет.Синий,рИсходныйЦвет.Зеленый);
            ИначеЕсли
рВидИтоговогоЦвета=3 Тогда // нужен 16-ричный
               
Если ТипЗнч(тЦветов)<>Тип("ТаблицаЗначений") Тогда
                   
тЦветов=ПрочитатьТаблицуЦветов();
                КонецЕсли;
               
отб=Новый Структура("Красный,Синий,Зеленый",рИсходныйЦвет.Красный,рИсходныйЦвет.Синий,рИсходныйЦвет.Зеленый);
               
мстроц=тЦветов.НайтиСтроки(отб);
                Если
мстроц.Количество()<>0 Тогда
                    Возврат
мстроц[0].Шестнадцатиричный;
                КонецЕсли;
            КонецЕсли;

        КонецЕсли;
// по вариантам видов цвета как типа Цвет

   
ИначеЕсли ТипЗнч(рИсходныйЦвет)=Тип("Строка") Тогда
       
// ищем во всех колонках таблицы, т.к. заведомо не знаем, какой это цвет
       
Если ТипЗнч(тЦветов)<>Тип("ТаблицаЗначений") Тогда
           
тЦветов=ПрочитатьТаблицуЦветов();
        КонецЕсли;
       
строц=тЦветов.Найти(СокрЛП(рИсходныйЦвет));
        Если
строц<>Неопределено Тогда
            Если
рВидИтоговогоЦвета=1 Тогда // нужен web-цвет
               
Возврат строц.Название;
            ИначеЕсли
рВидИтоговогоЦвета=2 Тогда // нужен RGB
               
Возврат Новый Структура("Красный,Синий,Зеленый",строц.Красный,строц.Синий,строц.Зеленый);
            ИначеЕсли
рВидИтоговогоЦвета=3 Тогда // нужен 16-ричный
               
Возврат строц.Шестнадцатиричный;
            КонецЕсли;
        КонецЕсли;

    КонецЕсли;

    Возврат Неопределено;
Исключение
   
Сообщить("ПреобразоватьЦвет, ошибка: "+ОписаниеОшибки(),СтатусСообщения.Важное);
    Возврат Неопределено;
КонецПопытки;
КонецФункции

Саму таблицу легко найти на сайтах наподобие http://www.cloford.com/resources/colours/500col.htm, скопировать и вставить в обычный моксель. Я, увы, закрыл страницу, откуда брал свою табличку, а повторно не нашёл... Кстати, по ссылке больше, чем у меня, но тамошнюю надо слегка причесать под вышеприведённое считывание.

Всё крайне кондово, но может пригодиться. Единственно, учитывайте, что лучше 1 раз прочитать таблицу соответствий и далее по ней искать. Ну и проиндексируйте по нужной колонке, исходя из ситуации.

Тестировалось на 8.2.17

 

 

 

Скачать файлы

Наименование Файл Версия Размер
ПреобразованиеЦветов

.epf 21,10Kb
23.09.13
75
.epf 21,10Kb 75 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Yashazz 3471 23.09.13 12:07 Сейчас в теме
Да, и ещё: для RGB коды можно использовать как числа, а можно как строки - смотрите сами, как кому удобнее.
2. OrsoBear 15.01.14 08:15 Сейчас в теме
Вот за код в описании огромное спасибо!
Часто приходится сначала скачать, а потом уже смотреть, что внутри.
miavolas; baton_pk; +2 Ответить
3. Yimaida 35 19.11.14 16:18 Сейчас в теме
Уважаемый автор, поменяйте в обработке кусок кода:

Попытка стро.Красный=Число(СокрЛП(мргб.Получить(0))) Исключение КонецПопытки;
Попытка стро.Синий=Число(СокрЛП(мргб.Получить(2))) Исключение КонецПопытки;
Попытка стро.Зеленый=Число(СокрЛП(мргб.Получить(1))) Исключение КонецПопытки;

у Вас перепутаны G и B составляющие цвета.

И еще, нет в макете цвета Зеленовато-лимонный (Lime), а может и еще каких.

А так поставил +, т.к. до этого не заморачивался работой с цветами, а тут вдруг пришлось. Идея делать через макет мне нравится, т.к. это самый правильный (на мой взгляд) способ получения значений из предопределенной таблицы. Только вот мне не понятно зачем было раскладывать строковое представление RGB, может их проще было бы в отдельных колонках хранить (и потом быстрее получать).
4. Yashazz 3471 19.11.14 17:13 Сейчас в теме
(3) Yimaida, ага, докопипастился я... Спасибо за поправку, отредактирую. Что касается раскладывания - честно, просто стрельнуло в одно место так сделать.

Недостающие цвета, подозреваю, появились не сразу, хотя может и я чего упустил.
5. dj_serega 374 13.03.15 11:58 Сейчас в теме
имхо, код страшный :( Не хочется даже читать что бы разобраться как работает.
Jonovich; Ivon; +2 Ответить
6. Ivon 653 15.03.16 11:50 Сейчас в теме
(5) dj_serega, У него во всех обработках такой код.
7. Yashazz 3471 27.04.16 15:43 Сейчас в теме
(6) Ivon, и это целенаправленно. Я всегда отличу свой код от чужого. Считайте это вариантом обфускации для защиты интеллектуального права)))
Ну и потом, так компактнее, а мониторы, знаете ли, не у всех 30-ти дюймовые.
9. Jonovich 26 01.11.16 23:10 Сейчас в теме
(5) dj_serega, Полностью согласен с тобой, вникать в решение смысла нет. Автор сего безобразия предлагает бредовую идею по причине:
1. Делать запись файла на диск, а затем читать и парсить файл... и все это только ради того, чтобы узнать RGB составляющие web-цвета... кошмарно и неоправданно, но если это не аргумент, то
2. Алгоритм не будет корректно работать для web-цветов, на то и придумали web-цвета чтобы определять их по идентификатору, а не составляющим RGB. При конвертации в HTML табличного документа с цветом WebЦвета.СветлоРозовый. в HTML получим tr.R0 td.R0C0{ background-color: LightPink; и в этом случае получим ошибку

Считаю более оптимальным решением брать цвета из заранее подготовленного макета. Также оптимально будет на основе его данных построить соответствие всех цветов, и при необходимости обращаться к нему по ключу. Выкладываю такой макет, со всеми цветами используемыми в 1С. Такой табличный документ получить труда не составит, если кому интересно:
1. Забиваем в табло "ЦветаСтиля", "WebЦвета" и "WindowsЦвета", останавливаемся на точке останова, выводим содержимое табло в табличный документ и сохраняем.
2. В цикле назначаем цвет фона ячеек строк табличного документа по указанным в строках именам цветов и сохраняем в *.xls
3. В EXCEL нехитрыми функциями VBA получаем значение и составляющие RGB цвета фона ячейки в строках листа.
Прикрепленные файлы:
Цвета 1С.mxl
10. Yashazz 3471 26.11.17 23:28 Сейчас в теме
(9) Ну, всё ж таки отвечу. Во-первых, уважаемый, вы невнимательно читали. Автор сего безобразия, если говорить о сохранении на диск, цитирует чужую идею и приводит ссылку на неё, прям там в комментарии, а в остальном аналогично Вам работает с табличным документом из макета. Невнимательно читаете, батенька. Во-вторых, если что не менее бредовое, так это предложенное использование экселя - это ограничивает нас виндой и установленным офисом, нуждой мочь запускать ком и в нём гонять vba-скрипты.
8. sound 531 12.09.16 13:00 Сейчас в теме
Пригодилось, спасибо. Какая-то у 1С дурка, на старых версиях платформы можно было в диалоге выбора цвета выбрать как Web цвет, так и абсолютный, сейчас только Web, нафига так сделано непонятно. Вернее понятно, что они все к вебу стремятся, но зачем для толстого клиента закрыли возможность выбора абсолютного цвета непонятно.
11. Yashazz 3471 27.11.17 22:41 Сейчас в теме
Кстати, немного в продолжение темы, раз уж наткнулся.

Преобразование из RGB в 16-ричный:
// строим представление в html
Попытка
	фд=Новый ФорматированныйДокумент;
	тфд=фд.Добавить("Текст",Тип("ТекстФорматированногоДокумента"));
	тфд.ЦветТекста=рЦветРГБ;
	хтмл="";
	фд.ПолучитьHTML(хтмл,Новый Структура);
Исключение
	Сообщить("Ошибка при построении служебного форматированного документа: "+ОписаниеОшибки(),СтатусСообщения.Важное);
	Продолжить;
КонецПопытки;				
// распознаём его и получаем цвет
Попытка
	рЧтение=Новый ЧтениеHTML;
	рЧтение.УстановитьСтроку(хтмл);
	пострДом=Новый ПостроительDOM;
	докДом=пострДом.Прочитать(рЧтение);
	знчАтрибута=докДом.Тело.ДочерниеУзлы[1].ПервыйДочерний.Атрибуты[0].Значение;
	рЦвет16ричный=СокрЛП(СтрЗаменить(СтрЗаменить(знчАтрибута,"color: ",""),";",""));
Исключение
	Сообщить("Ошибка при распознании содержания форматированного документа: "+ОписаниеОшибки(),СтатусСообщения.Важное);
	Продолжить;
КонецПопытки;
Показать


и преобразование из 16-ричного в RGB, соответственно,
рЦвет16ричный="#536ac2";
хтмл="<HTML><HEAD><META content=""text/html; charset=utf-8"" http-equiv=Content-Type><META name=GENERATOR content=""MSHTML 11.00.9600.18817""></HEAD>
|<BODY><P><FONT color="+рЦвет16ричный+">Текст<FONT</P></BODY></HTML>";
фд=Новый ФорматированныйДокумент;
фд.УстановитьHTML(хтмл,Новый Структура);
рЦветРГБ=фд.Элементы[0].Элементы[0].ЦветТекста;


Ну и в принципе, ясно дело, можно просто циклами от 0 до 255 нагенерить все 16-ричные по возрастанию, выполняя простой пересчёт между системами счисления)
12. qazaas 15.08.18 09:36 Сейчас в теме
НЕ РАБОТАЕТ!!
Проверял на платформе 8.3.11.2924, как на управляемых, так и на обычных формах.
Будьте добры, исправьте.
Оставьте свое сообщение

См. также

Альтернативный способ добавления элементов и реквизитов на формы Промо

Работа с интерфейсом v8 ERP2 УТ11 Россия Абонемент ($m)

Предлагаю альтернативный вариант добавления динамически создаваемых элементов и реквизитов на форму.

1 стартмани

09.09.2019    11408    16    bmk74    4    

Интерактивная справка по объектам 1С (автономное расширение)

Практика программирования Работа с интерфейсом v8 ERP2 Абонемент ($m)

База знаний, подключаемая к объектам основной базы. Ведётся интерактивно, формируется в виде статей прямо в 1С (текст, картинки, таблицы, ссылки). Есть возможность прикрепления файлов, привязки к объектам 1С, возможности рейтинга и комментирования пользователями.

3 стартмани

29.09.2020    5542    25    sapervodichka    30    

Визуальный html WYSIWYG редактор без сторонних библиотек на управляемых формах

Прочие инструменты разработчика Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

Простой и удобный html редактор без сторонних библиотек.

1 стартмани

31.08.2020    3087    7    ivanov660    10    

Делаем из СКД Excel (ну, почти)

Работа с интерфейсом v8 Абонемент ($m)

Несложный в использовании способ внедрить в обычный отчет СКД возможность редактировать значения ресурсов отчета (а-ля Excel) и получать отредактированные значения для дальнейшей обработки.

1 стартмани

26.01.2020    8959    12    herfis    16    

Расширенная настройка динамического списка УФ Промо

Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

Открывая управляемую форму выбора и не увидев там видимых в форме списка элементов, часто хочется узнать причину их отсутствия там, т. е. какой наложен отбор. Но стандартная настройка списка управляемой формы показывает только пользовательские настройки, скрывая от пользователя фиксированный отбор. Предлагаю вам расширение конфигурации с расширенной настройкой динамического списка, отображающей пользователю кроме пользовательских настроек еще фиксированные.

1 стартмани

31.05.2017    32458    150    tormozit    23    

Индикация прогресса выполнения фонового задания на управляемой форме внешней обработки

БСП (Библиотека стандартных подсистем) Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка с фоновым выполнением и индикацией процесса для любой конфигурации на основе БСП >= 2.3 без изменения конфигурации и встраивания обработки в "Дополнительные отчеты и обработки".

1 стартмани

27.12.2019    10299    15    1sig    14    

Декомпиляция условного оформления

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Обработка автоматически генерирует полный код создания условного оформления формы любой сложности. Достаточно настроить для формы в конфигураторе условное оформление, а затем выбрать данную форму в обработке. В результате будет сгенерирован программный код создания условного оформления.

2 стартмани

23.12.2019    7563    35    XilDen    5    

Многоуровневые списки выбора с оформлением элементов

Практика программирования Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

Данная статья - попытка решить один маленький кусочек большой проблемы платформы 1С, а именно - бедные и невыразительные пользовательские интерфейсы. Поскольку 1С в режиме управляемого приложения позволяет задействовать веб-клиент, то хочется реализовывать интерфейсы как у взрослых веб-приложений - красивые, дружелюбные для пользователя и, желательно, с положительным UX. Возможно, кто-то со мной не согласится и скажет, что учетные системы должны быть строгие и линейные. Но мы все знаем, что 1С - это уже не только про бухгалтерию. Небольшое отступление для разработчиков, работающих с типовыми конфигурациями. Я не знаю, использует ли фирма 1С что-то похожее в своих разработках. Если да, то данная статья навряд ли будет вам полезна.

1 стартмани

17.12.2019    8350    2    azhilichev    5    

Открывашка ячеек таблиц Промо

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Глобальное сочетание клавиш для открытия объекта по ссылке из текущей ячейки любой таблицы в большинстве управляемых форм

1 стартмани

27.10.2018    17003    12    tormozit    31    

Удобный выбор из таблицы/дерева в УФ

Практика программирования Работа с интерфейсом Разработка v8 v8::УФ 1cv8.cf Абонемент ($m)

Выбор из таблицы значений или дерева значений в выпадающем списке рядом с полем ввода - УФ, быстро и просто!

1 стартмани

12.08.2019    13296    7    Yashazz    18    

[Механизм интерфейса] Свой флажок (чекбокс)

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Создадим свой флажок для интерфейса, используем простой универсальный алгоритм.

1 стартмани

09.08.2019    15754    18    rpgshnik    43    

Отбор на управляемой форме из списка значений

Практика программирования Работа с интерфейсом Разработка v8 v8::УФ 1cv8.cf Абонемент ($m)

Пример простого удобного отбора любых данных ссылочного типа на управляемой форме. Работа обработки проверена на релизе: 1С:Предприятие 8.3.13.1513.

1 стартмани

09.08.2019    17752    20    nagaitseff    6    

Лучший подарок для бухгалтера - счёты 8.2 (со звуком) Промо

Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

(Толстый клиент) Подарите бухгалтеру счеты, и он(а) Вас никогда не забудет.

1 стартмани

13.05.2011    40321    24    Tatitutu    45    

Обработка-редактор HTML

Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

Редактор HTML для управляемого интерфейса 8.3.

1 стартмани

10.06.2019    8075    64    ValeriVP    11    

Рисуем и распознаем нарисованное при помощи нейросети

Практика программирования Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

Используем нейронную сеть для распознавания нарисованных объектов.

1 стартмани

03.10.2018    14429    44    DO_WHILE_LOOP    28    

Рисуем диаграммы в metadata.js

Инструментарий разработчика Работа с интерфейсом v8 v8::СКД 1cv8.cf Абонемент ($m)

Не одной же литературой заниматься?

1 стартмани

20.09.2018    16846    3    1c-intelligence    77    

Визуализация событий на временной шкале средствами "Поле HTML документа" Промо

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Интересный способ наглядно отобразить события на временной шкале. Например, может быть применен для красивого вывода документов по клиенту. Тестировалось на платформе 8.3.12.1469

1 стартмани

31.07.2018    23705    139    Plotks2017    27    

Продвинутое рисование в табличном документе (стрелок и не только)

Практика программирования Работа с интерфейсом v8 Абонемент ($m)

Вспоминаем геометрию и основы компьютерной графики. Матрицы и аффинные преобразования на плоскости.

1 стартмани

24.07.2018    15678    18    WalterMort    29    

Иерархическая диаграмма

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Концепция диаграммы по иерархической структуре данных, например по номенклатуре (продажи или остатки на складах).

2 стартмани

17.06.2018    13712    16    DrAku1a    6    

Рисуем стрелки в табличном документе

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Рисуем стрелки средствами 1С .

1 стартмани

01.06.2018    15387    9    pm74    9    

Работа с данными выбора Промо

Практика программирования Работа с интерфейсом v8 Россия Абонемент ($m)

В управляемом интерфейсе заложена мощная возможность описывать связи реквизитов формы через параметры. Установка параметров связей позволяет ограничить выбор данных так, чтобы целостность данных была обеспечена на этапе ввода. Однако без дополнительного программирования задать можно только самые простые связи. Такие условия связи, как зависимость от реквизита через точку или зависимость через дополнительное отношение, заданное в регистре сведений - уже задать без программирования не получится.

1 стартмани

17.07.2018    47042    17    kalyaka    16    

Программная работа с графическими схемами. Готовое решение

Инструментарий разработчика Универсальные обработки Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Работоспособное, проверенное на практике, простое и удобное программное управление графическими схемами.

1 стартмани

18.02.2018    18590    20    Yashazz    13    

Тестирование интерфейса в обычном приложении 8.2 при помощи SikuliX

Инструментарий разработчика Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Как же не хватает клиента тестирования на платформе 8.2. Не кликнешь на кнопку, не выберешь из списка, не проверишь видит ли надпись пользователь. Воспользуемся внешним инструментом SikuliX, который позволит нам протестировать функционал форм. Данный инструмент легко встраивается в линию сборки и может "дружить" с уже известным многим Open-source продуктами.

1 стартмани

03.01.2018    29488    5    kraynev-navi    41    

Программное создание элементов графической схемы (через XSLT)

Практика программирования Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Встала как-то передо мной задача визуализировать определенный прикладной процесс, лучше всего для этого подходит графическая схема. Так уж вышло, что 1С по не понятным мне причинам не предоставила возможность программно работать с элементами графической схемы. Пришлось импровизировать.....

1 стартмани

20.07.2017    21023    62    lazarenko    18    

Интерактивный интерфейс Промо

Рабочее место Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

Обработка (отдельная панель меню), позволяющая настраивать интерфейс пользователя интерактивно (права не настраивает). Мне очень пригодилось, так как приходится прописывать индивидуальный интерфейс, каждому пользователю (а их уже сотни). Выложил 2 версии одна в виде таблицы, вторая в виде выпадающего меню

1 стартмани

29.10.2011    18126    2    Vin_Tik    9    

Простой редактор плана помещения JavaScript

Практика программирования Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

На ресурсе сейчас очень много решений, которые позволяют редактировать карты, используя географические схемы. Так же много решений, которые позволяют редактировать объекты онлайн веб-карт. Мне же нужно было простое решение, для того чтобы расставить квадратные объекты на плане, показать их пользователю. Ну и распечатать, опять же. Я решил написать простенький редактор на JavaScript с использованием библиотеки Raphael.

1 стартмани

23.11.2016    20963    94    igel9780    22    

Настройка начальной страницы (Рабочего стола)

Работа с интерфейсом Рабочее место Универсальные обработки v8 1cv8.cf Абонемент ($m)

Альтернатива стандартной настройке начальной страницы. В типовой доступны лишь те формы, что явно "разрешены" разработчиком в режиме конфигуратора. Эта обработка позволяет собрать "Рабочий стол" из любых подходящих форм в пользовательском режиме. Без программирования. БСП не используется. Не расширение. Универсальна, т.е. подойдет для любой конфигурации (в т.ч. самописной).

2 стартмани

19.10.2016    37412    217    Erne100    24    

[Расширение] Стартовые страницы. Автозапуск форм при старте 1С. (8.3.9+, без доработки конфигурации)

Инструментарий разработчика Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Уверен, что в большинстве случаев список справочников, отчетов, обработок (объектов 1С в целом), к которому обращаются пользователи после запуска конфигурации 1С, раз от раза меняется не сильно. Так почему бы немного не упростить процесс открытия часто используемых форм? Данное расширение позволяет настроить автоматическое открытие различных форм объектов сразу после запуска 1С. Список форм настраивается индивидуально для каждого пользователя. Работает на платформе 8.3.9, без доработки конфигурации.

1 стартмани

03.10.2016    21488    82    Artem-B    20    

Программное формирование форматированной строки в стиле html+inline CSS Промо

Работа с интерфейсом Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Если вам приходилось работать с форматированными строками программно, то вы знаете, какая это боль. Данное решение облегчает программное формирование таких строк.

1 стартмани

18.11.2017    31964    35    bonv    10    

Конструктор условного оформления

Инструментарий разработчика Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Иногда требуется сделать отчет, который бы содержал в себе множество показателей. В таком случае в получившейся "портянке" показатели сливаются. Как один из вариантов решения (ну, кроме упрощения отчета) можно рассматривать раскраску показателей в индивидуальные цвета. После нескольких подобных случаев (особенно, когда в уже готовый отчет добавляются или убираются поля) сделал обработку, которая позволяет в режиме предприятия быстро подготовить болванку условного оформления для подобных отчетов.

1 стартмани

27.09.2016    17178    16    Fragster    7    

HTTP-сервис: отчеты [Расширение]

Практика программирования Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Это HTTP-сервис, который возвращает почти любой отчет в HTML, XLSX или в JSON. Сохраните вариант отчета, получите на него ссылку и можно получить данные без захода в 1С. Работает в конфигурациях на основе БСП 2.3.3+, для отчетов на СКД и в 1С 8.3.8+

2 стартмани

30.08.2016    26679    135    Stepa86    15    

Механизм доп. реквизитов и сведений

Практика программирования Работа с интерфейсом v8 БП2.0 Абонемент ($m)

Как к новому справочнику подключить механизм дополнительных реквизитов и сведений

2 стартмани

23.06.2016    26018    30    piffoff    16    

Цветовые схемы для конфигуратора 1С (Популярные цветовые схемы для C# - теперь и для 1С) (Теперь 8.2 - 8.3) Промо

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Тёмные цветовые схемы кода. То, что было доступно всем передовым средствам разработки, теперь доступно и на 1С. 13.12.17 UPD: Теперь работает с платформой 8.3

3 стартмани

07.10.2013    34985    86    Chernov_Dmitriy    82    

Блокировка баннеров при помощи расширения

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Примеры использования расширений

1 стартмани

09.06.2016    13997    12    oslokot    16    

Простые радости жизни программиста 1С: выбор типа значения

Работа с интерфейсом Практика программирования v8 1cv8.cf Абонемент ($m)

Предлагаемая в работе обработка включает обычную и управляемую формы, которые максимально точно реализуют функциональность системного диалога выбора типа в толстом клиенте обычное приложение (включая оформление диалога). Эти формы имеют дополнительные интерфейсные удобства и могут быть использованы в качестве альтернативных диалогов выбора типа.

1 стартмани

17.02.2016    49770    50    yuraos    17    

Визуальный редактор цветовых схем подсветки синтаксиса 1С + импорт схем Visual Studio

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Данная обработка призвана облегчить настройку рабочего места программиста 1С, а именно улучшить визуальное восприятие кода, уменьшить утомляемость, и, как следствие, увеличить общую производительность труда!

1 стартмани

29.01.2016    15669    79    ram3    27    

NativeDraw: Компонента рисования для 1С [V2.6.2] Промо

Разработка внешних компонент Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Рисуйте в формах 1С, также предлагается небольшое количество нерисовальных функций

1 стартмани

13.07.2015    47037    428    ПерваяСистема    147    

Передача реквизитов объекта из основной формы в дополнительную и обратно на управляемых формах

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Наверное, многие сталкивались с ситуацией, когда у некоего редактируемого объекта (справочник, документ, внешняя обработка) кроме основной формы нужно сделать парочку дополнительных, чтобы часть реквизитов заполнять в них, а потом возвращать заполненные значения в основную форму и в сам объект. И если бы речь шла об обычных формах, то проблемы бы и не было. Но в управляемых формах с этим возникает проблема, а в случае отказа от модальности она становится немного больше.

1 стартмани

02.11.2015    33557    12    Wolex    29    

Инструмент для создания веб приложений на основе 1С REST сервиса

Инструментарий разработчика WEB Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Обзор платформы-конструктора для создания веб-приложений, использующих в качестве источника базы данных 1С

1 стартмани

13.10.2015    26700    77    dmzubr    23    

Асинхронная загрузка данных на Управляемую Форму. Прогресс бар (УФ 8.3). Индикация состояния процесса

Работа с интерфейсом Универсальные функции Внешние источники данных v8 v8::УФ 1cv8.cf Абонемент ($m)

Часто бывает, что возникает необходимость загрузить множество данных из разнообразных источников в определенную форму или рабочее место. В процессе загрузки пользователь в неведении — информация готовится или нет. Прием позволяет загружать данные из нескольких источников асинхронно, не блокируя форму\интерфейс, а также отображать ошибки и состояние прогресса. По мере готовности данных, они будут отображены на форме

1 стартмани

09.10.2015    35970    128    pbazeliuk    6    

V8Reader (с расширенным анализом форм) Upd. Промо

Инструментарий разработчика Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Обработка, позволяющая анализировать и сравнивать файлы отчетов, обработок, конфигураций и обновлений. Имеет мощные инструменты по анализу форм, ролей и ограничений доступа.

1 стартмани

27.01.2012    75340    573    bambr1975    303    

Визуальный html редактор на управляемых формах

Работа с интерфейсом WEB v8 1cv8.cf Абонемент ($m)

Мы рассмотрим некоторые особенности и возможности подключения сторонних визуальных html редакторов на javascript - TinyMCE, CK Editor. С помощью приложенной обработки Вы сможете попробовать в действии полноценный и удобный визуальный html редактор, а при желании перенести подобный функционал к себе.

1 стартмани

30.09.2015    29143    205    ivanov660    41    

Универсальное настраиваемое рабочее место (Версия 2.0)

Универсальные обработки Работа с интерфейсом Рабочее место v8 1cv8.cf Абонемент ($m)

При работе очень часто штатные интерфейсы 1С бывают неудобны в силу разной специфики работы каждого пользователя, а также конфигурация обычно "обрастает" новыми обработками, отчетами, документами и справочниками, которые требуются для работы организации, а в стандартных меню их, естественно, нет. Это особенно относится к толстому клиенту (например, программы УПП, УТ10.3 и пр.). Делать свои интерфейсы - не всегда спасает: то, что нужно одному пользователю, другому совершенно не надо, даже если у них одинаковые функциональные обязанности. Открывать все через меню "Операции" тоже неудобно: у нас, например, за несколько лет работы добавилось столько нового и специфичного, что уже и не помнишь, что и для чего. Поэтому родилась идея сделать что-то удобное и универсальное, что и получилось в результате: пользователь сам, не прибегая к помощи программиста, может сделать удобное меню для себя и всегда изменить, если требуется. И без всяких изменений конфигурации...

3 стартмани

13.06.2015    17052    54    yuraskid    29    

Кнопки управления группировками табличного документа для управляемых форм Промо

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Универсальный механизм управления группировками табличного документа из управляемой формы

1 стартмани

02.06.2015    26487    23    unichkin    9