AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.08.2010, 10:41   #1  
Plescheev is offline
Plescheev
Участник
 
4 / 10 (1) +
Регистрация: 30.08.2010
Уважаемые, подскажите для чего в отчете 12430 (Создание корреспонденции счетов) в версии navision 3.6 при отсутствии фильтров удаляется вся корреспонденция счетов по последней транзакции, если же потом идет обращение к кодюниту 12404 и в таб.12401 создаются опять аналогичные строки. В четверке такого уже нет. Может кто разъяснит смысл таких действий?



OnPreDataItem()
TransactionFilter := GETFILTER("Transaction No.");
IF TransactionFilter = '' THEN BEGIN
CorrespEntry.RESET;
IF CorrespEntry.FIND('+') THEN BEGIN
CorrespEntry.SETCURRENTKEY("Transaction No.","Debit Account No.","Credit Account No.");
CorrespEntry.SETFILTER("Transaction No.",'%1',CorrespEntry."Transaction No.");
CorrespEntry.DELETEALL;
SETFILTER("Transaction No.",'%1..',CorrespEntry."Transaction No.")
END;
END ELSE BEGIN
CorrespEntry.SETCURRENTKEY("Transaction No.","Debit Account No.","Credit Account No.");
CorrespEntry.SETFILTER("Transaction No.",TransactionFilter);
CorrespEntry.DELETEALL;
END;

OnAfterGetRecord()
CorrespManagement.RUN("G/L Entry"); //вызов CU 12404
CurrReport.BREAK;
Старый 30.08.2010, 11:02   #2  
prefreitor is offline
prefreitor
Участник
 
214 / 11 (1) +
Регистрация: 03.10.2006
Под рукой 3.6 нет, но из приведенного кода мне кажется что удалится только последняя транзакция:
Код:
IF CorrespEntry.FIND('+') THEN BEGIN
  CorrespEntry.SETCURRENTKEY("Transaction No.","Debit Account No.","Credit Account No.");
  CorrespEntry.SETFILTER("Transaction No.",'%1',CorrespEntry."Transaction No."); //Здесь же фильтруется t12401 только по номеру последней транзакции?
  CorrespEntry.DELETEALL;
.....
Старый 30.08.2010, 11:28   #3  
Plescheev is offline
Plescheev
Участник
 
4 / 10 (1) +
Регистрация: 30.08.2010
Вот именно. Предположим, что были учтены некоторые документы, сформированны строки в 17 таблице и теперь нужно по этим документам создать корреспонденцию счетов. Запускаем отчет 12430 без установки фильтров. Отчет выбирает последнюю транзакцию по которой создана корреспонденция счетов в таб 12401 (т.е. строки по ранее учтенному документу и созданным корреспонденциям), удаляет по ней все строки и отбирает строки в 17 таблице, начиная с этой же транзакции(т.е с того документа, который был учтен ранее и по которому уже были созданы строки корреспонденции), после чего уходит в кодюнит 12404,где заново создаются строки корреспонденции по предыдущему документу и по нашим учтенным документам. Какой смысл удалять ранее созданные строки по корреспонденции счетов?
Старый 30.08.2010, 11:45   #4  
prefreitor is offline
prefreitor
Участник
 
214 / 11 (1) +
Регистрация: 03.10.2006
Ну удаляет и удаляет, может это заплатка некая... В любом случае ошибок этот код не создает в данных, да время работы его небольшое...
Старый 30.08.2010, 15:45   #5  
Plescheev is offline
Plescheev
Участник
 
4 / 10 (1) +
Регистрация: 30.08.2010
Я вот думаю, если убрать это удаление, не всплывет ли это позже каким-нибудь боком?.. В четверке ведь этого уже нет
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:45.