Цитата:
Сообщение от
miklenew
fed, а можно спросить, может разбирался последний параметр в этом методе childBuffer он для чего.
static InventMovement constructNoThrow(Common buffer,boolean transferReceipt = false,Common childBuffer = NULL)
Чё-то полез смотреть, он практически нигде не используется, а там где используется не разрушив мозг я не смог понять что это.
Мысль была похоже красивая какая-то, но смысла так и не понял.
Спасибо.
Я до конца тоже не разбирался. Общая идея такая: В некоторых случаях, складское движение собирается ИЗ ДВУХ таблиц. Конкретнее - списание в производство собирается из спецификации производственного заказа (ProdBOM) и из собственно строк журнала отгрузочных накладных (ProdJournalBOM; Приемка из производства складывается из производственного заказа (ProdTable) и строк журнала приемки (ProdJournalBOM); Отгрузка по заказу или заказу на перенос из самого заказа (salesLine или InventTransferLine) и строк отгрузочной накладной (inventPickingListJournalLine). При этом, фактически 90% данных для движения берется из родительской таблицы (такой как строки заказа или спецификации ПЗ) и только 10% - из дочерней таблицы (типа строк журнала отгрузочных накладных). Вот для таких ситуаций и предназначен механизм дочерней таблицы (childBuffer). Фактически - в класс перемещения передаются обе таблицы.
По понятным причинам, подход жизнеспособен и применим только в тех видах складских движений, в которых допустимо частичное движение. Если мы все складское движение делаем сразу на полное количество - подход не сработает.