Помогите люди добрые кто чем может.
Ситуация следующая.
Галя версии 8.1.
Сделан browse по определенной таблице например table1.
Нажимаем F7 - создаем новую запись.
1. Генериться событие cmInsert - на него прикладного обработчика не делал - система сама создает новую запись с пометкой isNew.
2. Генериться событие cmSetDefault - там выставляю значения полей по умолчаниию. Тут же делаю PutCommand(cmEdit). В cmEdit запускаю window к котором в верхней части скрин для редактирования данных таблицы table1 а во второй броузе со спецификацие документа - table2.
цитата из доки по описанию события cmDefault: после модификации пользователем значений полей при попытке любым путем уйти с записи возникнет событие cmInsertRecord, в котором необходимо запрограммировать оператор добавления записи SQL
Я в cmSetDefault по table1 уже все значения какие надо выставил. Юзеру после нажатия кнопки F7 надо сразу начинать заполнять спецификацию. А так как он руками полей table1 не правил, то значит и cmInsertRecord не вызывался и потому галя не дает перейти на спецификацию и ругается "Переход не возможен, текущий документ не заполнен".
А теперь вопрос. Как же это вылечить? Что же лишать пользователя части автоматизации и заставлять какие то поля заполнять руками?
Вот для наглядности часть кода
Код: Выделить всё
..................................
browse brPricaz (,,sci1478EnEsc);
Table PrCalcZar;
fields
PrCalcZar.Nomer 'Приказ №' : [10], protect;
end; // browse brPricaz
window winEditPricaz 'Редактирование приказа' EscClose;
panel pPricaz;
screen scrPricaz (,,);
Show at (,,,6);
table PrCalcZar;
fields
PrCalcZar.Descr ('дескриптор'): Protect;
PrCalcZar.Nomer ('номер приказа'): noProtect;
<<
`Дескриптор` .@@@@@ `Номер` .@@@@@@@
>>
end; // scrPricaz
end; // pPricaz
panel pPrCalcSpLS;
browse brPrCalcSpLS (,,sci1478EnEsc);
Show at (,7,,18);
table PrCalcSpLS;
PrCalcSpLS.TabN #3'Таб.н.' : [5], protect;
PrCalcSpLS.Fio #3'ФИО' : [15], protect;
end; // scrPrCalcSpLS
end; // pPrCalcSpLS
end;
TableEvent Table PrCalcZar;
cmSetDefault:
{
SetDefaultValuePricaz;
PutCommand(cmEdit);
}
cmInsertRecord:
{
insert current PrCalcZar;
}
cmUpdateRecord:
{
update current PrCalcZar;
}
cmDeleteRecord:
{
delete all from PrCalcSpLS where ((PrCalcZar.Nrec == PrCalcSpLS.cPrCalcZar));
delete current PrCalcZar;
}
cmEdit:
{
RunWindow(winEditPricaz);
}
end;
.................................