Показать сообщение отдельно
Старый 22.09.2014, 10:57   #39  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,882 / 3148 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А разве закрытой строка становится не после сопоставления закрытием склада? По-моему алгоритм закрытия как-то использует информацию из InventSum? Или я ошибаюсь? И точно ли не понадобятся такие закрытые строки в InventSum в случае открытия (отмены закрытия) склада?
На Inventsum.Insert() и Inventsum.update()
есть такой код :
X++:
    this.closedQty = this.isAllQtyFieldsZero();
    this.closed    = this.isAllValueFieldsZero() && this.closedQty;
(еще есть аналогичный код в хранимке, которая обновляет остаток в InvnetSum)

А в методах тупо идет сравнение количественных и суммовых полей с нулем.
На закрытие склад ей пофигу. Просто как правило суммовые поля выравниваются после закрытия что приводит к их обнулению и взведению галки closed. Но такое может быть и без закрытия склада.

Закрытие склада, насколько я помню не использует InventSum.
Табличка InventSum упоминается в методах
\Classes\InventCostClosingCancel_WorkInvent\checkAndDeleteVirtualTransfer
\Classes\InventCostClosingCancel_WorkInvent\deleteVirtualTransfers

но не для выборки из базы или фильтрации, а как накопительная переменная в памяти.


Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
И точно ли не понадобятся такие закрытые строки в InventSum в случае открытия (отмены закрытия) склада?
По идее, они просто создадутся вновь если Аксапте потребуется остаток сделать отличным от нуля. Но я сам не проверял.