Нет там никакой засады ... по коду ошибки нужно смотреть, что именно не прошло.
А вообще, формируется комплексный реквизит 1174 с основанием для коррекции - всё по описанию:
Код: Выделить всё
     If InList(GHeader.CheckType, |                                 ! --- Добавление атрибутов по чеку коррекции
                                 LIBFPTR_RT_SELL_CORRECTION,        |   ! КОРРЕКЦИЯ ПРИХОДА
                                 LIBFPTR_RT_SELL_RETURN_CORRECTION, |   ! КОРРЕКЦИЯ ВОЗВРАТА ПРИХОДА
                                 LIBFPTR_RT_BUY_CORRECTION,         |   ! КОРРЕКЦИЯ РАСХОДА
                                 LIBFPTR_RT_BUY_RETURN_CORRECTION)      ! КОРРЕКЦИЯ ВОЗВРАТА РАСХОДА
        Self.SetParamStr(      1177, GHeader.Correction.Text)        ! Наименование основания для коррекции
        Self.SetParamDateTime( 1178, GHeader.Correction.DocDate, 0)  ! Дата документа основания для коррекции (время всегда 00:00:00)
        Self.SetParamStr(      1179, GHeader.Correction.DocNum)      ! Номер документа основания для коррекции
        Self.UtilFormTlv(Self.TlvBuffer)                             ! Запись комплексного реквизита в буфер
        Self.SetParamInt(      1173, GHeader.Correction.Vid)         ! Вид коррекции: 0 - самостоятельная операция / 1 - операция по предписанию
        Self.SetParamBiteArray(1174, Self.TlvBuffer.Str()  )         ! Запись комплексного реквизита из буфера Self.TlvBuffer
     else
        ! Запись тега 1256
     end 
Дальше всё как и для традиционного чека, но тег 1256 у нас при коррекции не формируется. ХЗ почему ....