Редактор встроенного языка на управляемой форме

15.11.17

Разработка - Инструментарий разработчика

Вариант решения проблемы редактирования текста (раскрашивание текста) на управляемой форме так же, как и во встроенном редакторе кода 1С.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
Редактор встроенного языка на управляемой форме:
.epf 10,79Kb
85
85
1 SM
Скачать Купить за 1 850 руб.
Редактор встроенного языка и языка запросов на управляемой форме:
.epf 12,72Kb
40
40
2 SM
Скачать Купить за 2 150 руб.

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

Так вот одним из спорных и неудобных моментов является то, что на управляемых формах является отсутствует возможность править текст, как во встроенном редакторе кода.

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

Сразу хочу сказать о минусах и плюсах этого подхода:

Достоинства:

1. Не используются внешние компоненты и/или библиотеки;

2. Есть возможность редактирования текста

Недостатки:

1. Сама логика работы поля форматированного документа несколько отличается от обычного текстового редактора (поле текстового документа). Например использование табуляции, вставки текста из буфера обмена.

2. Форматирование текста происходит не "на ходу", а после интерактивного нажатия "кнопочек" (в будущем планирую устранить, есть идеи)

В будущем планирую:

1. Доработать функционал для корректного форматирования текста запроса. Будет полезно в консоли запросов. Реализованно вот тут //infostart.ru/public/732711/

2. Реализовать общий функционал для внедрения в конфигурации, а также примеры хранения и использования текстов.

Обновления:

Версия 1.01:

- Исправлено отображение "многоэтажных" строк

- Исправлено отображение слова "Выполнить", если оно является методом или свойством

ФорматированныйДокумент Раскрашивание тектса

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    141370    775    391    

804

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 руб.

06.10.2023    11723    31    6    

62

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

5400 руб.

17.05.2024    14336    36    29    

81

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    7378    27    4    

51

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2880 руб.

14.01.2013    182158    1104    0    

877

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    101235    243    97    

304

Инструментарий разработчика Перенос данных 1C Программист Платформа 1С v8.3 Платные (руб)

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

2400 руб.

24.09.2019    24556    17    15    

34

Инструментарий разработчика Программист Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    19512    7    8    

42
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Brawler 457 31.07.17 22:11 Сейчас в теме
2. user806113 31.07.17 22:59 Сейчас в теме
3. pbazeliuk 1964 01.08.17 10:43 Сейчас в теме
Достойная обработка, перейдем к замечаниям:
Не стоить использовать вызовы БСП не все конфигурации используют БСП и не все конфигурации используют русскоязычную БСП.
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку() лучше заменить на аналог или использовать StrTemplate(СтрШаблон)
СтроковыеФункцииКлиентСервер.ЭтоРазделительСлов() лучше заменить на аналог
СтроковыеФункцииКлиентСервер.СообщитьПользователю() лучше заменить на аналог
TreeDogNight; purgin; AGLux; Pistolierro; корум; Teut_Vlad; Aleskey_K; Lancelot-2M; +8 Ответить
4. Pistolierro 86 01.08.17 13:06 Сейчас в теме
Обрабока писалась под ИБ на платформе 8.3.5, там еще нет СтрШаблон. А в целом замечание принимается, как и указал в описании в будущем планирую адаптировать механизмы для внедрения в любые конфигурации
6. Octopus 338 01.08.17 14:24 Сейчас в теме
(4) По мне так лучше бы проверку делать, есть БСП в конфе или нет. И только если нет, использовать аналог.
Дмитрий74Чел; +1 Ответить
5. krasavcheg 01.08.17 14:19 Сейчас в теме
Очень интересный подход и идея, однозначно +
7. ixijixi 1860 01.08.17 20:14 Сейчас в теме
Вот опять же позор разработчикам платформы! Почему не реализовали этот механизм в управляемых формах?
Дмитрий74Чел; jONES1979; zqzq; AGLux; KilloN; корум; DrAku1a; Teut_Vlad; Spacer; +9 Ответить
8. Brawler 457 01.08.17 20:25 Сейчас в теме
(7) ну когда-то и конструктора запросов не было на управляемых формах, потом сделали, еще все в переди
14. Pistolierro 86 03.08.17 10:47 Сейчас в теме
(7) Я думаю 1С не будет это реализовывать, так как, раз уж сразу не сделали, то есть какие то проблемы (возможно связанные с работой в вэб-клиенте). Да и не сказать,что это фича "must have".
9. DrAku1a 1733 03.08.17 04:13 Сейчас в теме
Форматирование текста происходит не "на ходу"

А, ну тогда не интересно...
10. Yashazz 4762 03.08.17 09:31 Сейчас в теме
Хотел-хотел это сделать, руки не дошли. И не покидало ощущение, что стоит сделать это, как 1С допилит платформу) На чём реализовано? Форматируемый документ?
12. Pistolierro 86 03.08.17 10:28 Сейчас в теме
(10) Да, форматированный документ
11. Dzenn 879 03.08.17 09:35 Сейчас в теме
За основу, я так понял, взята обработка с ИТС, и переписано с позорного CSS на православное ФорматированиеТекста.

В обработке с ИТС, а значит, и здесь, замечена как минимум одна ошибка форматирования: попробуйте написать

Запрос.Выполнить();

Также, в этой обработке, некорректно отрабатывает табуляция. Например, не получается написать так:

Процедура А()
[Табуляция]Б = 4;
КонецПроцедуры;

Получается только так:

Процедура А()
Б = 4;
КонецПроцедуры;

То есть, её нужно немного доработать, но в общем и целом код очень полезный, спасибо.
jONES1979; Pistolierro; +2 Ответить
13. Pistolierro 86 03.08.17 10:40 Сейчас в теме
(11) Обработку с ИТС брал за основу, но в итоге от нее почти ничего не осталось (или совсем ничего). Логика разбора строк на составляющие полностью изменена.

Запрос.Выполнить() - да, Выполнить отображается красным шрифтом. Допилю

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

Все таки форматированный документ не для этого предназначен изначально. Я постараюсь максимально приблизить функциональность к привычной в конфигураторе (или обычном приложении), но отличия все равно останутся.
Дмитрий74Чел; +1 Ответить
15. Dzenn 879 03.08.17 11:10 Сейчас в теме
(13) если не надоест заморачиваться этой темой — переделай всё на хтмл с редактированием в другом реквизите — надёжнее будет
19. Fatov_DI 02.07.18 15:36 Сейчас в теме
(11) Поддерживаю. Табуляций очень не хватает...
16. user774630 03.08.17 12:58 Сейчас в теме
https://partners.v8.1c.ru/forum/topic/1633631
У кого доступа нет, тема называется "Платформа 8.3 → Прошу реализовать возможность раскраски текста в поле текстового документа управляемой формы". Старых Сергей (AXELOT, Москва) 01.08.2017 12:05

Последнее сообщение в теме:
Копиенко Сергей (1С, Москва) вчера 11:47 1634020 Отвечает на
Предложение записано, спасибо.

P.S. т.е. до этого никто не просил, видимо :)
Дмитрий74Чел; +1 Ответить
17. Ava1or 03.08.17 17:31 Сейчас в теме
В Конвертации 3.0 это было бы полезно
Irwin; MaxS; +2 Ответить
18. anatoliy.kichuk 87 11.09.17 17:01 Сейчас в теме
Вот, как раз мне такое надо для моей консоли...
20. m..adm 259 01.06.19 12:34 Сейчас в теме
Скачал, запустить не удалось. Обработка требует модулей.
Прикрепленные файлы:
21. Pistolierro 86 03.06.19 17:56 Сейчас в теме
// Определяет, является ли символ разделителем.
//
// Параметры:
//  КодСимвола      - Число  - код проверяемого символа;
//  РазделителиСлов - Строка - символы разделителей.
//
// Возвращаемое значение:
//  Булево - истина, если символ является разделителем.
//
Функция ЭтоРазделительСлов(КодСимвола, РазделителиСлов = Неопределено) Экспорт
	
	Если РазделителиСлов <> Неопределено Тогда
		Возврат Найти(РазделителиСлов, Символ(КодСимвола)) > 0;
	КонецЕсли;
		
	Диапазоны = Новый Массив;
	Диапазоны.Добавить(Новый Структура("Мин,Макс", 48, 57)); 		// цифры
	Диапазоны.Добавить(Новый Структура("Мин,Макс", 65, 90)); 		// латиница большие
	Диапазоны.Добавить(Новый Структура("Мин,Макс", 97, 122)); 		// латиница маленькие
	Диапазоны.Добавить(Новый Структура("Мин,Макс", 1040, 1103)); 	// кириллица
	Диапазоны.Добавить(Новый Структура("Мин,Макс", 1025, 1025)); 	// символ "Ё"
	Диапазоны.Добавить(Новый Структура("Мин,Макс", 1105, 1105)); 	// символ "ё"
	Диапазоны.Добавить(Новый Структура("Мин,Макс", 95, 95)); 		// символ "_"
	
	Для Каждого Диапазон Из Диапазоны Цикл
		Если КодСимвола >= Диапазон.Мин И КодСимвола <= Диапазон.Макс Тогда
			Возврат Ложь;
		КонецЕсли;
	КонецЦикла;
	
	Возврат Истина;
	
КонецФункции
Показать
22. vladnet 366 13.06.19 11:44 Сейчас в теме
Валентин, спасибо за обработку. Я пытался уже предыдущей версией пользоваться, но там из за IE проблем больше чем пользы.
Тут вроде уже выглядит все более менее отлично.
Возникли вопросы:
1. Мне очень нужен редактор html кода наподобие форматированного документа (с ним багом наелся уже). Куда копать? Подскажите пожалуйста.
2. Выделение мышкой не работает (
3. Esc как понимаю перехватывает модуль. Нельзя ли его как то вывести на верхний уровень чтобы форма закрывалась?
4. Еще бы как то автодополнение слов сделать, с возможностью выбора из списка. Было бы шикарно)
23. Pistolierro 86 15.07.19 10:47 Сейчас в теме
(22)
1. Для html-кода я бы использовал специализированные проги, типа notepad++, что нить от microsoft и пр.
2. Хммм, вроде работало. Проверю. Спасибо.
3, 4. Замечания принимаются. Спасибо
Оставьте свое сообщение