Дата помещения в картотеку (+)
0 (0)
Дата помещения в картотеку (+) ( Митрошка 06.05.2003 18:44 )
5(1)Подскажите как при проводке документа из картотеки 2 получить дату помещения документа в картотеку. Знаю, что в макросе Index2.mac есть процедура ПроверитьДокумент, но в нее передается структура типа document. Было предположение, что поля iApplicationKind и ApplicationKey этого документа и документа в картотеке одинаковы, оказалось нет. Ключи в файле index2 связаны со счетом плательщика и если в картотеке по данному счету было несколько документов с одинаковыми суммами, датами и реквизитами получателя, то как определить к какому из них относится балансовый документ.
Заранее спасибо за ответы, Алексей.
>> Ответитьк сожалению... ( dd 06.05.2003 19:54 )
5(1)картотечный документ привязан по ApplicationKey только к документу постановки в картотеку (во внебалансе 90902). Документы списания имеют свои AppKey, и никак не связаны с документом картотеки. При полном списании картотеки запись о картотечном документе удаляется, что не даёт возможности восстановить полную историю в разрезе картотечных документов. По балансовым или внебалансовым документам эту историю, к сожалению, не восстановить... Ну а выкручивается тут каждый, как может или хочет :))
Можно, например, на макросы, которые работают при постановке и списании с картотеки (index2.mac, хотя в реальности - не всё так просто, т.к. эти макросы вызываются не всегда, а только при ручном вводе картотечного документа), навесить свои обработчики, которые будут эти идентификаторы проставлять в UserField-ы... Сразу пердупреждаю, что задача сия - не очень проста, так что успехов!
>> ОтветитьМожно так (+) ( григ 07.05.2003 07:59 )
5(1)Для index2.mac:
file ind2 (index2) key 3; macro lgGetDoc() oper=СтарыйДокумент.Oper; ind2.Oper=oper; account_payer=СтарыйДокумент.Account_Payer; ind2.Account_Payer=account_payer; payment=СтарыйДокумент.Payment; ind2.Payment=payment; ind2.Date_Place=date(0,0,0); cont=GetGE(ind2); while(cont and (ind2.Oper==oper) and (ind2.Account_Payer==account_payer) and (ind2.Payment==payment)) cont1=true; i=0; find=true; len=fldnumber(СтарыйДокумент); while(cont1) val=valtype(ind2(i+9)); if(val!=V_TIME) if(ind2(i+9)!=СтарыйДокумент(i)) cont1=false; find=false; end; end; i=i+1; if(i>=len) cont1=false; end; end; if(find) ... end; end;
>> Ответитьэто пока есть, где искать... история-то документов, которые были в index2, не сохраняется :(( (-) ( dd 07.05.2003 09:59 )
5(1)Not specified
>> ОтветитьЗначит надо эту дату (и другие данные) складывать в Документ (-) ( григ 07.05.2003 10:10 )
5(1)Not specified
>> Ответитьну, я примерно об этом выше и написАл :)) только очень не просто всё это получается... (-) ( dd 07.05.2003 14:34 )
5(1)Not specified
>> Ответить
Новое поле в структуре (+) ( Машкова Юлия 07.05.2003 10:04 )
5(1)В новой сборке 5.00.073.3 в структуры документов будет добавлено новое поле Date_Enter - дата помещения в картотеку, которая будет передаваться из картотечного документа (полное описание изменений в структуре см. новость Изменения в структуре файлов документов RS-Bank 5.00).
С уважением,
Машкова Юлия, отдел поддержки.
>> Ответитьпредложение... ( dd 07.05.2003 14:41 )
5(1)было бы шоколадно, если бы все документы, относящиеся к картотечному, связывались на уровне ядра системы...
чтобы велся архив картотечных документов...
чтобы по конкретному картотечному документу можно было увидеть всю историю (внебалансовый документ постановки, балансовые и внебалансовые документы списания)...
вообщем, что-то типа списка сделок...
>> ОтветитьВсе это есть в RS-Bank v.5.10 (-) ( Машкова Юлия 07.05.2003 15:04 )
5(1)Not specified
>> Ответитьгы-гы... (в смысле - смеюсь я так :)) (-) ( dd 07.05.2003 17:07 )
5(1)Not specified
>> Ответить