При первом в окне модуля вызове команды "Форматировать текст" иногда вставка нового тела метода выполняется некорректно.
Если тут же отменить изменения текста и выполнить команду снова, то она выполняется корректно.
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
// СтандартныеПодсистемы.Свойства
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтотОбъект, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.Свойства
Если ИмяСобытия = "УчетныеДокументы.ОповещениеОбИзменении" Тогда
ЭтотОбъект.МодифицированностьУчетныеДокументы = Истина;
ЭтотОбъект.Модифицированность = Истина;
ОбновитьУчетныеДокументы();
Если Параметр.Свойство("ИзмененныеДокументы") И ЗначениеЗаполнено(Параметр.ИзмененныеДокументы) Тогда
Если ТипЗнч(Параметр.ИзмененныеДокументы) = Тип("Массив") Тогда
СтрокаТекущийДокумент = Неопределено;
Параметр.Свойство("ТекущийДокумент", СтрокаТекущийДокумент);
СтрокиДокументов = ЭтотОбъект.УчетныеДокументы.НайтиСтроки(Новый Структура("УчетныйДокумент", СтрокаТекущийДокумент));
Если СтрокиДокументов.Количество()>0 Тогда
Элементы.УчетныеДокументы.ТекущаяСтрока = СтрокиДокументов[0].ПолучитьИдентификатор();
КонецЕсли;
Для Каждого ТекущийДокумент Из Параметр.ИзмененныеДокументы Цикл
СтрокиДокументов = ЭтотОбъект.УчетныеДокументы.НайтиСтроки(Новый Структура("УчетныйДокумент", ТекущийДокумент));
Если СтрокиДокументов.Количество()>0 Тогда
ТекущаяСтрока = СтрокиДокументов[0].ПолучитьИдентификатор();
Элементы.УчетныеДокументы.ВыделенныеСтроки.Добавить(ТекущаяСтрока);
КонецЕсли;
КонецЦикла;
Иначе
СтрокиДокументов = ЭтотОбъект.УчетныеДокументы.НайтиСтроки(Новый Структура("УчетныйДокумент", Параметр.ИзмененныеДокументы));
Если СтрокиДокументов.Количество()>0 Тогда
Элементы.УчетныеДокументы.ТекущаяСтрока = СтрокиДокументов[0].ПолучитьИдентификатор();
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ОбработкаОповещенияКлиент.ОповещаемыйОбъектПодписанНаСобытие(ИмяСобытия, ЭтотОбъект) Тогда
ОбработкаОповещенияКлиент.ОбработкаОповещенияTMS(Параметр, Источник, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
#1, ред. 11 октября 2024 09:14
Еще пример. Воспроизводился до переоткрытия модуля.
tormozit изменил статус на Открыто
#2, 11 октября 2024 09:17
Похоже метод Турбоконф.ВыделитьТекст() иногда работает некорректно. Фактически выделенный диапазон в этих случаях не соответствует устанавливаемому и возвращаемому методом ТурбоКонф.ПолучитьТекстДокумента().
#3, 11 октября 2024 12:43
(2) tormozit, у меня не воспроизводится. Нужен ролик, лог, пример модуля в текстовом файле.
#4, 11 октября 2024 13:16
(3) bolsun, Создал эту заявку для себя и чтобы другие знали что проблема мне известна. Проблема старинная. Пока не уверен что проблема в Турбоконфе. Если появятся веские доказательства, призову тебя. Воспроизводить надежно пока не научился.
#5, ред. 11 октября 2024 19:31
Ошибка платформы. При вставке текста из буфера, начинающегося с первой пустой строки перед ним иногда вставляется плавающее число пробелов. Вероятно вставлять нужно тоже в пустую строку.
Из-за этого у меня сбивались координаты последующей полезной вставки.
#6, 13 октября 2024 19:53
Исправлено в 1.76
#7, 13 октября 2024 19:54
tormozit изменил статус на Закрыто