Спасибо за ответы.
Про черновики понятно.
Но все же я думаю что логика простановки ваучера тут другая. У заказов, закупок и производственных заказов - может быть несколько документов (накладных) сформировано - соответственно ваучеров может быть несколько. Несколько ваучеров в одно поле не вобьешь.
А вот для строк складских журналов всегда возможен только один ваучер - вот он и пробивается при разноске (если не был прописано при создании). При том что строки - это тоже черновик. Т.е. система смотрит не на то - является ли строка или шапка черновиком, а на однозначность соответствия.
В накладных на услуги мне не нравится именно неоднозначность из-за отсутствия ваучера. По идее если у нас есть накладная на услуги CustInvoiceTable, то по ней возможна лишь одна запись в CustInvoiceJour. (в отличие от заказов и закупок, где накладных может быть несколько) Поэтому в CustInvoiceTable напрашивается ваучер.
Без него по конкретной CustInvoiceJour метод
\Data Dictionary\Tables\CustInvoiceJour\Methods\custInvoiceTable
X++:
CustInvoiceTable custInvoiceTable(boolean _update = false)
{
CustInvoiceTable custInvoiceTable;
;
custInvoiceTable.selectForUpdate(_update);
select custInvoiceTable
where custInvoiceTable.invoiceId == this.invoiceId &&
custInvoiceTable.invoiceDate == this.invoiceDate &&
custInvoiceTable.numberSequenceGroup == this.numberSequenceGroup;
return custInvoiceTable;
}
может вернуть как правильный CustInvoiceTable - так и левый, у которого по несчастливой случайности номер совпал.