Тема: Edit Method
Показать сообщение отдельно
Старый 15.09.2017, 21:37   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от smailik Посмотреть сообщение
X++:
        salesLineSlave.SalesLineMaster = SalesLine::findItemId(salesTable.SalesId, inventTableLocal.ItemId).RecId;
эта строчка сохраняет в переменной. но не в базе.


Цитата:
Сообщение от smailik Посмотреть сообщение
X++:
    inventTableLocal = InventTable::find(salesLineSlave.salesLineMaster().ItemId);
стопудов, метод salesLineMaster() содержит select и ищет запись в базе, которую вы не обновили.
а что показывает отладчик?

похоже, что в голове нужно уложить две вещи:
1. есть записи в базе (это не грид и не переменные)
2. гриды, датасорсы и переменные могут содержать значения, которые когда-то были прочитаны из базы. эти копии могут не совпадать с актуальными значениями в базе.

любой query/select ищет не в переменных, а в базе.
чтобы из переменных сохранить в базу, нужно вызывать метод insert/update.

=========================
сохранять значения в базу внутри метода edit можно.
но такое поведение будет неожиданным не только для программистов и для аксапты, но и для пользователей.
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 15.09.2017 в 21:54.