Alic написал(а):
Sedlo написал:
3. В экзите читаешь нужное поле в нужной позиции, считываешь его во временную переменную. Если у тебя случай с выравниванием, поищи по критериям выравнивания номер документа и позиции, прочитай оттуда значение BSEG-ZSEDLO в переменную. Потом циклом по BUZEI апдейтишь это самое поле значением этой переменной.
А по каким критериям? Номеров документов и документов выравнивания ещё нет на этом этапе.
Это у документа, который ты постишь, пока еще нет номера. А у позиции, которая выравнивается этим документом, номер документа есть. И оттуда надо достать значение, которым надо заполнить эти поля в документе, проводимом сейчас. В этом вся работа и есть, правильно описать, как найти эту позицию. Причем на самом деле вариант с третьим моментом не единственно возможный. Например, возможен такой вариант:
1. Определяется перечень критериев, в каких случаях заполняется поле этим самым хитровыдуманным способом. Иногда все может быть довольно просто. Например, если используется специально выделенный вид документа, то этого достаточно для указания в качестве условия, а замещение можно вешать на второй момент.
2. По критериям выравнивания хоть на первом моменте, хоть на каком, но с достаточным количеством ключей (для хорошей поизводительности) находится выравниваемая позиция и в ней значение искомого поля
3. На втором моменте выполняется замещение
Насколько я понял, данные из этого поля после проводки попадают куда-то в таблицу итоговых записей, поэтому изменять значение нужно очень аккуратно, а то данные позиций расползутся с таблицей итогов.