Показать сообщение отдельно
Старый 25.09.2008, 00:26   #1  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Замечу, что для предотвращения навигации по SalesTable в форме SalesCreateOrder предприняты дополнительные шаги (точнее один шаг). У SalesTable установлено в false свойство AutoQuery.
Вследствие этого, при открытии формы на сервер не уходит запрос на выборку данных и в локальном кэше датасорса ничего нет, по-этому нажатие навигационных кнопок в панели инструментов ни к чему не приводит. Кроме кнопки перехода на последнюю запись, которая отправляет на сервер запрос, в результате чего форма начинает работать на редактирование уже существующих записей.
По-моему, в данном случае необходимо перекрывать все навигационные методы на датасорсе (last(), first(), next(), prev(), prevPage(), nextPage()) и комментировать в них вызов super().

Думаю, вызов insert() вместо super() в методе write() датасорса этим и обусловлен. Если бы происходил вызов super(), то могла бы возникнуть ситуация сохранения изменений в уже существующие записи. При вызове insert() в этом случае запись не сохранится с сообщением об уже существующей
__________________
Axapta v.3.0 sp5 kr2