Имя: Пароль:
1C
1С v8
ОкончаниеВводаТекста
0 vlasabo
 
17.08.16
16:24
Доброго дня.
Вчера случился переезд с файловой базы на клиент-серверное взаимодействие, после этого как минимум одна функция работает некорректно. Понять причину не смог, помогите пожалуйста. Конфа самописка.


&НаКлиенте
Процедура НаименованиеОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка)
    а=ПоискДублей(Текст);
                Если (ЗначениеЗаполнено(а)) тогда
                Отказ = Истина;
                Ответ = Вопрос("Данный пациент уже существует." + Символы.ПС + "Если вы хотите изменить написание ФИО пациента - нажмите кнопку ""Нет""
                |
                |если желаете переместить пациента из группы прошедших лечение в группу лечащихся на данный момент - нажмите кнопку ""Да"" и в открывшемся окне нажмите желтую кнопку ""Обновить дату и переместить...""" +
                Символы.ПС + Символы.ПС +Символы.ПС +"Закрыть форму создания пациента и перейти к существующему?",РежимДиалогаВопрос.ДаНет );
                    Если Ответ = КодВозвратаДиалога.Да тогда
                    ЭтаФорма.Модифицированность = Ложь;
                    ЭтаФорма.Закрыть();
                    ОткрытьЗначение(а);
                КонецЕсли;
                иначе ;
                КонецЕсли;

КонецПроцедуры

Функция "ПоискДублей(...)" является запросом, который по переданным данным ищет пациентов с теме же ФИО и отдаёт нам назад выборку,  в которой содержится найденная ссылка на элемент справочника. в переменной Текст, насколько я понимаю из справки, содержится строка, введенная оператором в поле Наименование. Процедура стартует после схода с поля ввода, НО: дубль обрабатывается корректно, возникает диалог и далее по плану. Если же дубля нет - поле очищается.
1 Mauser
 
17.08.16
16:30
Описание:

Возникает при формировании значения по отредактированному тексту. Например, в момент перехода на другой элемент управления формы, при закрытии формы и т.д.

Примечание:

В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере
2 vlasabo
 
17.08.16
16:59
Воистиину я заведу себе резинового утёнка и буду излагать проблемы ему.
Решилось так:
Процедура НаименованиеОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка)
    б=Текст;
    а=ПоискДублей(Текст);
.
.
.
.
.
                иначе Объект.Наименование=б;
                КонецЕсли;

КонецПроцедуры
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.