Цитата:
Сообщение от
raz
Буду рад если поможете.
Итак что есть ...
Есть некая логика
Класс TSession - хранит в себе информацию о неком пользователе системы, ссылку на TProcess, ссылку на TFormUpdater
TProcess - класс выполняющий некую работу в системе, в зависимости от введенной пользователем информации. TFormUpdater обновляется классом TProcess и его заддача хранить текущие переменные для отображения на экране. Логика создавалась не для форм аксапты, но жизнь такова, что есть формы работающие с этими классами и в аксапте - прикреплены примеры форм.
На форме только одно окно (СтрингЭдит) для ввода информации. Задачи этого контролла - после нажатия пользователем энтера передать эту информацию в TSession (допустим метод ВВОД) , очистится и перечитать в свои объекты на форме состояние измененного TFormUpdater. TSession вызывает метод ВВОД класса TProcess. В TProcess.ВВОД стоит try catch и если происходит исключительное состояние - запонить инфолог в некий лог, что бы пользователь мог его прочитать.
Теперь форма в аксапте. СтрингЭдит - исходя из задач кот перед ним стоят - реализован в виде эдит метода с кодом (набираю руками - могу ошибится)
X++:
edit str (boolean _set, str _value)
{
if (set)
{
TSession.(_value);
}
return "";
}
Что произошло - в лог записалось много записей, почему?
Как вариант - пользователь ввел какое-то значение в СтрингЭдит, нажал на форме эскейп, форма спросила - Я Изменилась, сохранить незаписаннные данные - а пользователь нажал - сохранить ...
Возможные направления исправления ошибки - отказаться от эдит метода и отрабатывать просто модифай + попросить форму не заадавать вопроса, но здесь сложнее, обработка многошаговая, есть шаги когда вопрос просто необходимо задавать.
Трай в эдит методе не могу делать - большая обработка инфолога + не факт что такое же можно будет сделать в форме не аксапты. Пока до форм не аксапты не добрались - и ошибку не пофиксили было принято решение пользователям продолжать работать в системе, уведомить что бы все отказывались от всего предлагаемого + жуть-жуть-жжжжжуть.