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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.11.2005, 18:08   #9  
Kirvisniemi is offline
Kirvisniemi
Moderator
 
342 / 13 (1) ++
Регистрация: 21.12.2004
Цитата:
Сообщение от mazzy
Цитата:
Сообщение от tyrex
Пока есть такие идеи:
1) лезем в 12 кодюнит, заводим там временную таблицу, в которую скидываем проводки, в триггере FinishCodeunit пишем ERROR('') для отката транзакций.
Перед еррором выводим форму с будущими проводками
- недостаток: если в таблицу 17 у нас попадут записи не из 12 кодюнита, а из какого-нибудь друго, то этих проводок мы не отследим
Примерно так сделано в русской Аксапте.
Только получившиеся проводки копируются, транзакция откатывается, форма показывается. Минусы - вероятность блокировок возрастает.
Попробовал сделать такой вариант. Работает.
Сразу всплыли недочеты:
- как я и предполагал, проводки в G/Ledger попадают не только через 12 кодюнит :-( - форма показывает не все будущие проводки
- блокировок нет, потому что форма показывается в немодальном режиме и транзакция успевает откатиться (однако данные из формы не пропадают). НО: есть сложность в синхронизации пользовательских действий. Например пользователь может открыть счет и посмотреть его будущие проводки. А затем сворачивает форму (не закрывает, а сворачивает!), открывает другой счет и снова смотрит будущие проводки.
Еще одно НО: одновременно будущие проводки могут смотреть несколько пользователей и где-то надо хранить флаг "будущности" для каждого юзера

Цитата:
Сообщение от mazzy
Цитата:
Сообщение от tyrex
2) лезем в 17 таблицу, вешаем на триггер OnInsert заполнение своей собственной таблицы (дублера таблицы 17). в кодюните 12 заменяем INSERT на INSERT(TRUE). В триггер FinishCodeunit добавляем ERROR('').
Перед еррором выводим форму с будущими проводками.
Это не единственный недостаток.
Где-то в глубинах Навижина может быть создание проводок на основании текущей в этой или в других таблицах. Например, создание проводки округления возможно только после создание всех проводок с данным номером документа. Поэтому вариант 2 не годится в общем случае.
Верно. Потому и ломаю голову...
 


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

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

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