Цитата:
Сообщение от
mazzy
IMTS, насколько я помню, поддерживает работу TTS таблиц только в том случае, если включен модуль сводного планирования. Если модуль Сводное планирование выключен, то IMTS отлично обходится и без этих таблиц.
не совсем так...
см. метод insertInventSumLogTTS() класса InventUpdateTTSControl
сначала идут проверки
PHP код:
mustUseTTSSystem = this.mustUseTTSSystem();
if (!mustUseTTSSystem && !this.forcedCreateInventSumLog())
return;
if (mustUseTTSSystem && (!this.dBConnectionUpd() || !TTSLevel_Upd || !appl.ttsLevel()))
throw error(strfmt("@SYS69842",funcname()));
if (mustUseTTSSystem)
inventSumLogTTS.setConnection(this.dBConnectionUpd());
а потом идет код по вставке записей.
В общем видно что при включенной IMTS и при работе не из формы - записи отлично вставляются (даже при выключенном сводном планировании). Если бы не так, то при откате транзакции аксапта не смогла бы корректно восстановить значения остатков в InventSum, так как каждая строка обрабатывается при этом в отдельной транзакции.
P.S.
см. также
PHP код:
// класс InventUpdateTTSControl
/*
Used all over to detect whether TTSSystem is active.
If method setTTSMode has not been called before first call to this method, it will default to
"Standard" which means that TTSSystem is not active. Generally method setTTSMode is called when
instantiating class hierarchy InventUpdate
*/
public boolean mustUseTTSSystem()
{
if (TTSMode == InventUpdateTTSMode::UnDecided && appl.ttsLevel())
TTSMode = InventUpdateTTSMode::Standard;
if (!InventUpdateTTSControl::tTSSystemEnabled())
return false;
return TTSMode == InventUpdateTTSMode::TTSsystem ? true : false;
}
PHP код:
// класс InventUpdate
void new(InventMovement _inventMovement)
{
movement = _inventMovement;
if (! movement.transId())
throw error("@SYS17272");
appl.inventUpdateTTSControl().setTTSMode (movement.mustUseInventUpdateTTSSystem());
}
PHP код:
// класс InventMovement
boolean mustUseInventUpdateTTSSystem()
{
boolean useTTSSystem;
;
useTTSSystem = this.buffer().isFormDataSource() ? false : true;
return useTTSSystem;
}