mirror of
https://github.com/tormozit/RDT1C.git
synced 2025-12-17 05:04:11 +00:00
239 lines
11 KiB
Plaintext
239 lines
11 KiB
Plaintext
Перем _РедакторHTML; // Кэш
|
||
|
||
Функция РедакторHTML() Экспорт
|
||
Если _РедакторHTML = Неопределено Тогда
|
||
_РедакторHTML = ПолеТекста.Документ.defaultView;
|
||
Если _РедакторHTML <> Неопределено И Не ЗначениеЗаполнено(_РедакторHTML.version1C) Тогда
|
||
_РедакторHTML = Неопределено;
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
Возврат _РедакторHTML;
|
||
КонецФункции
|
||
|
||
Процедура УстановитьГраницыВыделения(НачальнаяСтрокаИлиПозиция, НачальнаяКолонкаИлиКонечнаяПозиция, КонечнаяСтрока = Неопределено, КонечнаяКолонка = Неопределено) Экспорт
|
||
|
||
Если ТипЗнч(ПолеТекста) = Тип("ПолеHTMLДокумента") Тогда
|
||
РедакторHTML = РедакторHTML();
|
||
Если РедакторHTML = Неопределено Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
Если КонечнаяСтрока = Неопределено Тогда
|
||
РедакторHTML.setSelectionByLength(НачальнаяСтрокаИлиПозиция, НачальнаяКолонкаИлиКонечнаяПозиция);
|
||
Иначе
|
||
РедакторHTML.setSelection(НачальнаяСтрокаИлиПозиция, НачальнаяКолонкаИлиКонечнаяПозиция, КонечнаяСтрока, КонечнаяКолонка);
|
||
КонецЕсли;
|
||
Иначе
|
||
Если КонечнаяСтрока = Неопределено Тогда
|
||
ПолеТекста.УстановитьГраницыВыделения(НачальнаяСтрокаИлиПозиция, НачальнаяКолонкаИлиКонечнаяПозиция);
|
||
Иначе
|
||
ПолеТекста.УстановитьГраницыВыделения(НачальнаяСтрокаИлиПозиция, НачальнаяКолонкаИлиКонечнаяПозиция, КонечнаяСтрока, КонечнаяКолонка);
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ПолучитьГраницыВыделения(НачальнаяСтрока, НачальнаяКолонка, КонечнаяСтрока, КонечнаяКолонка) Экспорт
|
||
|
||
Если ТипЗнч(ПолеТекста) = Тип("ПолеHTMLДокумента") Тогда
|
||
РедакторHTML = РедакторHTML();
|
||
Если РедакторHTML = Неопределено Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
ВыделениеТекста = РедакторHTML.getSelection();
|
||
НачальнаяСтрока = ВыделениеТекста.startLineNumber;
|
||
НачальнаяКолонка = ВыделениеТекста.startColumn;
|
||
КонечнаяСтрока = ВыделениеТекста.endLineNumber;
|
||
КонечнаяКолонка = ВыделениеТекста.endColumn;
|
||
Иначе
|
||
ПолеТекста.ПолучитьГраницыВыделения(НачальнаяСтрока, НачальнаяКолонка, КонечнаяСтрока, КонечнаяКолонка);
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
Функция ПолучитьТекст() Экспорт
|
||
|
||
Если ТипЗнч(ПолеТекста) = Тип("ПолеHTMLДокумента") Тогда
|
||
РедакторHTML = РедакторHTML();
|
||
Если РедакторHTML = Неопределено Тогда
|
||
Возврат Неопределено;
|
||
КонецЕсли;
|
||
Текст = РедакторHTML.getText();
|
||
ИначеЕсли ТипЗнч(ПолеТекста) = Тип("ПолеВвода") Тогда
|
||
Текст = ПолеТекста.Значение;
|
||
Иначе
|
||
Текст = ПолеТекста.ПолучитьТекст();
|
||
КонецЕсли;
|
||
Возврат Текст;
|
||
|
||
КонецФункции
|
||
|
||
Функция УстановитьТекст(Текст, Активировать = Ложь) Экспорт
|
||
|
||
Если ТипЗнч(ПолеТекста) = Тип("ПолеHTMLДокумента") Тогда
|
||
РедакторHTML = РедакторHTML();
|
||
Если РедакторHTML = Неопределено Тогда
|
||
Возврат Ложь;
|
||
КонецЕсли;
|
||
РедакторHTML.updateText(Текст);
|
||
Если Активировать Тогда
|
||
РедакторHTML.editor.focus();
|
||
КонецЕсли;
|
||
ИначеЕсли ТипЗнч(ПолеТекста) = Тип("ПолеВвода") Тогда
|
||
ПолеТекста.Значение = Текст;
|
||
Иначе
|
||
ПолеТекста.УстановитьТекст(Текст);
|
||
КонецЕсли;
|
||
Возврат Истина;
|
||
|
||
КонецФункции
|
||
|
||
Функция ПолучитьСтроку(НомерСтроки) Экспорт
|
||
|
||
Если ТипЗнч(ПолеТекста) = Тип("ПолеHTMLДокумента") Тогда
|
||
РедакторHTML = РедакторHTML();
|
||
Если РедакторHTML = Неопределено Тогда
|
||
Возврат Неопределено;
|
||
КонецЕсли;
|
||
Текст = РедакторHTML.getLineContent(НомерСтроки);
|
||
Иначе
|
||
Текст = ПолеТекста.ПолучитьСтроку(НомерСтроки);
|
||
КонецЕсли;
|
||
Возврат Текст;
|
||
|
||
КонецФункции
|
||
|
||
Функция КоличествоСтрок() Экспорт
|
||
|
||
Если ТипЗнч(ПолеТекста) = Тип("ПолеHTMLДокумента") Тогда
|
||
РедакторHTML = РедакторHTML();
|
||
Если РедакторHTML = Неопределено Тогда
|
||
Возврат Неопределено;
|
||
КонецЕсли;
|
||
Текст = РедакторHTML.getLineCount();
|
||
Иначе
|
||
Текст = ПолеТекста.КоличествоСтрок();
|
||
КонецЕсли;
|
||
Возврат Текст;
|
||
|
||
КонецФункции
|
||
|
||
Функция ВыделенныйТекст(НовыйТекст = Неопределено) Экспорт
|
||
|
||
Перем НачальнаяСтрока, НачальнаяКолонка, КонечнаяСтрока, КонечнаяКолонка;
|
||
|
||
Если ТипЗнч(ПолеТекста) = Тип("ПолеHTMLДокумента") Тогда
|
||
РедакторHTML = РедакторHTML();
|
||
Если РедакторHTML = Неопределено Тогда
|
||
Возврат Неопределено;
|
||
КонецЕсли;
|
||
Если НовыйТекст = Неопределено Тогда
|
||
Результат = РедакторHTML.selectedText();
|
||
Иначе
|
||
РедакторHTML.selectedText(НовыйТекст);
|
||
// https://github.com/salexdv/bsl_console/issues/64#issue-873784658
|
||
ПолучитьГраницыВыделения(НачальнаяСтрока, НачальнаяКолонка, КонечнаяСтрока, КонечнаяКолонка);
|
||
УстановитьГраницыВыделения(КонечнаяСтрока, КонечнаяКолонка, КонечнаяСтрока, КонечнаяКолонка);
|
||
КонецЕсли;
|
||
Иначе
|
||
Если НовыйТекст = Неопределено Тогда
|
||
Результат = ПолеТекста.ВыделенныйТекст;
|
||
Иначе
|
||
ПолеТекста.ВыделенныйТекст = НовыйТекст;
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
Функция ТолькоПросмотр(НовыйРежим = Неопределено) Экспорт
|
||
|
||
Если ТипЗнч(ПолеТекста) = Тип("ПолеHTMLДокумента") Тогда
|
||
РедакторHTML = РедакторHTML();
|
||
Если РедакторHTML = Неопределено Тогда
|
||
Возврат Неопределено;
|
||
КонецЕсли;
|
||
Если НовыйРежим = Неопределено Тогда
|
||
Результат = РедакторHTML.ReadOnly;
|
||
Иначе
|
||
РедакторHTML.setReadOnly(НовыйРежим);
|
||
КонецЕсли;
|
||
Иначе
|
||
Если НовыйРежим = Неопределено Тогда
|
||
Результат = ПолеТекста.ТолькоПросмотр;
|
||
Иначе
|
||
ПолеТекста.ТолькоПросмотр = НовыйРежим;
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
Процедура ЗаменитьСтроку(НомерСтроки, Текст) Экспорт
|
||
|
||
Если ТипЗнч(ПолеТекста) = Тип("ПолеHTMLДокумента") Тогда
|
||
РедакторHTML = РедакторHTML();
|
||
Если РедакторHTML = Неопределено Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
РедакторHTML.setLineContent(НомерСтроки, Текст);
|
||
Иначе
|
||
ПолеТекста.ЗаменитьСтроку(НомерСтроки, Текст);
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ВставитьСтроку(НомерСтроки, Текст) Экспорт
|
||
|
||
Если ТипЗнч(ПолеТекста) = Тип("ПолеHTMLДокумента") Тогда
|
||
РедакторHTML = РедакторHTML();
|
||
Если РедакторHTML = Неопределено Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
РедакторHTML.insertLine(НомерСтроки, Текст); // Не реализован
|
||
Иначе
|
||
ПолеТекста.ВставитьСтроку(НомерСтроки, Текст);
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ДобавитьСтроку(Текст) Экспорт
|
||
|
||
Если ТипЗнч(ПолеТекста) = Тип("ПолеHTMLДокумента") Тогда
|
||
РедакторHTML = РедакторHTML();
|
||
Если РедакторHTML = Неопределено Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
ДлинаТекста = СтрДлина(ПолучитьТекст());
|
||
РедакторHTML.setText(Символы.ПС + Текст, ДлинаТекста);
|
||
Иначе
|
||
ПолеТекста.ДобавитьСтроку(Текст);
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура Очистить() Экспорт
|
||
|
||
Если ТипЗнч(ПолеТекста) = Тип("ПолеHTMLДокумента") Тогда
|
||
РедакторHTML = РедакторHTML();
|
||
Если РедакторHTML = Неопределено Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
РедакторHTML.eraseText();
|
||
Иначе
|
||
ПолеТекста.Очистить();
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ПоказатьОшибку(НомерСтроки, НомерКолонки = 1) Экспорт
|
||
Если ТипЗнч(ПолеТекста) = Тип("ПолеHTMLДокумента") Тогда
|
||
РедакторHTML = РедакторHTML();
|
||
Если РедакторHTML = Неопределено Тогда
|
||
Возврат;
|
||
КонецЕсли;
|
||
РедакторHTML.markError(НомерСтроки, НомерКолонки);
|
||
Иначе
|
||
ПолеТекста.УстановитьГраницыВыделения(НомерСтроки, 1, НомерСтроки, 150);
|
||
КонецЕсли;
|
||
КонецПроцедуры
|