Показать сообщение отдельно
Старый 09.12.2020, 12:56   #8  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,971 / 3267 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от mazzy Посмотреть сообщение
как происходят массовые операции для связанных таблиц для "системных" ключей.
1. -
2. заполняем мастер-справочник данными
3. записываем в БД(!), получаем сгенеренный системой recID
4. заполняем подчиненные справочники данными
5. заполняем в подчиненных справочниках recID
6. записываем данные из подчиненного справочника (уже неважно как)
Странно почему программисты в этой схеме не сделали так
1. -
2. заполняем мастер-справочник данными
// 3. записываем в БД(!), получаем сгенеренный системой recID
3. Генерируем в буфере мастер-справочника RecId, (можно например для этого сделать метод на Common)
4. заполняем подчиненные справочники данными
5. заполняем в подчиненных справочниках RefRecID на мастер-справочник
6. записываем данные из подчиненного справочника (уже неважно как, можно и по старинке)

По удобству использования все то же самое как и раньше для естественных ключей.
Плюс можно сохранить логику вставки записей - сперва строки, потом шапка, на которую эти строки ссылаются (так много где сделано в ax3-2009) - это может быть полезно в некоторых случаях, когда какой-то подписчик или интеграция с внешней системой отбирает документы по шапкам и хватают еще до конца не сгенерированный документ, так как шапка уже вставилась и куда то вовне уходит часть документа.
За это сообщение автора поблагодарили: mazzy (2).