Если Вы создаёте документ программно, то Акт сверки с определённым номером, датой, контрагентом и при этом с направлением "Виданий" у Вас может быть только 1.
Если допустить, что кто-то у Вас помимо "программного создания" ещё создаёт вручную - тогда Вам нужно определится с коллегами в вопросе либо "руками", либо "удобно и автоматизированно".
2 одинаковых выписанных акта, совпадающих по реквизитам "Номер, Дата, Контрагент" - это либо нарушение нумерации, либо отсутствие перезаписи существующего документа при программном создании (вместо перезаписи может быть перемещение в Корзину).
В нормальном случае, GetPrimaryReestr(10104, 1, ДатаВашегоДокумента, ДатаВашегоДокумента) с проверками по Номеру, Дате и Контрагенту, после создания документа в M.E.Doc вернёт Вам верный и единственный CardCode.
Но, разумеется, это повлияет на быстродействие при больших объемах документов.
Описал выше.
Но всего этого можно избежать, указывая ExDocID при Вашем "программном создании".
У Вас есть инструмент, готовый, рабочий (я про ExDocID) - Вы его не хотите использовать (или не можете, но я в такое не верю).
Есть предложенный альтернативный способ, немного мудрёный, но рабочий. Хотя по факту, в обоих случаях Вы получите одинаково "уникальный идентификатор".
Вы зачем-то просите ещё, новый метод, который будет делать, по сути, тоже самое что и выше. Только Вы перекладываете часть с поиском CardCod'а с себя на M.E.Doc, который сделает это за Вас и просто отдаст результат.
Я имею ввиду условный GetDocCardcode, в который Вам, вероятно, нужно будет передавать какие-то атрибуты, чтоб M.E.Doc так же мог найти нужный, переданный Вами документ.