09.10.2013, 14:37 | #1 |
Участник
|
Сторно проводок ГК слой разноски = Вал. склад
Коллеги, нужна помощь.
Активно используется валютный склад. В результате ошибки в российском модуле ОС при сторнировании операции ввод в эксплуатацию система сформировала лишние проводки ГК в валютном слое разноски. Саму ошибку опишу позже в отдельной ветке. Теперь эти проводки нужно сторнировать. Вопрос как? Я был уверен, что в общем журнале можно указать слой разноски, но увы.. нет. В шапке журнала можно выбрать - Текущие, Операции, Налог. И все. Какие варианты можете предложить? Программировать в этой части очень не хочется. Система DAX2009. Последний раз редактировалось Starling; 09.10.2013 в 14:38. Причина: Добавил систему |
|
09.10.2013, 14:48 | #2 |
Banned
|
Точечно удалить LedgerTrans (delete_from ... where ... в браузере таблиц) и пересчитать балансы ночью (опасность блокировок).
|
|
09.10.2013, 15:21 | #3 |
Участник
|
Можно конечно, но:
1. Используется трансляция. Проводки эти уже оттранслированы в другую компанию. Их тогда там тоже нужно удалять. 2. Опасный прецедент может получиться. Очень много было войн по поводу "удаляторов". Если я сейчас эти проводки удалю, то могу открыть ящик пандоры. Неужели ни как без модификаций и ручного удаления данных? |
|
09.10.2013, 15:48 | #4 |
NavAx
|
Можно так попробовать, указав нужные RecId.
X++: static void edd_clear(Args _args) { LedgerBalancesPostingList balancesPostingList; LedgerTrans ledgerTrans, ledgerTrans2; ; ttsbegin; balancesPostingList = LedgerBalancesList::constructPostingList(); while select forupdate ledgerTrans where ledgerTrans.RecId == 1 || ledgerTrans.RecId == 2 || ledgerTrans.RecId == 3 || ledgerTrans.RecId == 4 { ledgerTrans2.clear(); ledgerTrans2.data(ledgerTrans); ledgerTrans2.AmountCur = -ledgerTrans2.AmountCur; ledgerTrans2.AmountMST = -ledgerTrans2.AmountMST; ledgerTrans2.AmountMSTSecond = -ledgerTrans2.AmountMSTSecond; ledgerTrans2.BondBatch_RU = ledgerTrans2.BondBatch_RU + '-'; balancesPostingList.add(ledgerTrans2); //ledgerTrans.doDelete(); ledgerTrans.insert(); } balancesPostingList.post(); ttscommit; } PPS. Вообще в форме проводок ОС есть кнопка - Сторнировать проводку (по моему она не всегда видна, в АОТ ее видно, она привязана к классу rAssetTransactionReversal). Последний раз редактировалось raz; 09.10.2013 в 15:55. |
|
09.10.2013, 16:08 | #5 |
Участник
|
to raz
С трансляцией при таком похоже проблем быть не должно. Она подхватит новые проводки и оттранслирует их в другую компанию. За варианты спасибо. Но если пошла такая пьянка, т.е. стандартными функционалом задачу не решить, то тогда я готов на модификацию. И склоняюсь к тому, чтобы допилить общие журналы. Так как следующий раз в аналогичной ситуации писать Job, собирать RecId мне не хочется. |
|
09.10.2013, 16:30 | #6 |
NavAx
|
Цитата:
Т.е. отсторнировать и провести правильно. Последний раз редактировалось raz; 09.10.2013 в 16:32. |
|
09.10.2013, 17:15 | #7 |
Участник
|
Для того, чтобы отсторнировать сторно и провести его заново, нужно исправить ошибку.
И я это сделаю, но уже позже. Сейчас же нужно срочно закрыть месяц, а эти проводки ГК мешают. |
|
09.10.2013, 18:58 | #8 |
Участник
|
Похоже задача решается просто.
Покритикуйте. X++: /// <summary> /// Converts a <c>CurrentOperationsTax</c> enumeration value to an <c>OperationsTax</c> enumeration value. /// </summary> /// <param name="_currentOperationsTax"> /// The <c>CurrentOperationsTax</c> enumeration value to convert. /// </param> /// <returns> /// A corresponding <c>OperationsTax</c> enumeration value. /// </returns> static OperationsTax operationsTax(CurrentOperationsTax _currentOperationsTax) { OperationsTax operationsTax; ; switch(_currentOperationsTax) { case CurrentOperationsTax::Current : operationsTax = OperationsTax::Current; break; case CurrentOperationsTax::Operations : operationsTax = OperationsTax::Operations; break; case CurrentOperationsTax::Tax : operationsTax = OperationsTax::Tax; break; //SKS, 09.10.2013--> case CurrentOperationsTax::XXX_WarehouseCur ://предварительно создал новый элемент для BaseEnum operationsTax = OperationsTax::WarehouseCur_RU; break; //<-- default : break; } return operationsTax; } |
|
09.10.2013, 19:00 | #9 |
Участник
|
Упс! забыл.
Класс LedgerVoucher |
|
09.10.2013, 20:06 | #10 |
Участник
|
Приветствую. В 2009 есть штатный механизм сторно проводки.
Открываем форму проводок и далее нажимаем кнопку "Сторнировать проводку" |
|
09.10.2013, 22:40 | #11 |
Участник
|
Цитата:
Небольшое уточнение по джобу edd_clear - там случаем не надо добавить вот такую строчку ledgerTrans2.Correction != ledgerTrans.Correction, чтобы получить сторно, а не реверс ?
__________________
Sergey Nefedov |
|
09.10.2013, 23:38 | #12 |
Участник
|
Никто и говорит, что все просто. Можно конечно и джобы писать. Но когда есть база, то можно допилить под свои нужды.
|
|
10.10.2013, 13:52 | #13 |
Участник
|
Цитата:
Более подробно в ветке Российские ОС – ошибка сторно ввода в эксплуатации |
|
10.10.2013, 14:33 | #14 |
Участник
|
Вот краткое описание из help
1.Сторнирование проводки Щелкните Главная книга > Общие формы > Информация по Плану Счетов –или– Расчеты с клиентами > Общие формы > Сведения о клиенте –или– Главная книга > Общие формы > Детальное описание основных средств > Модели стоимости –или– Главная книга > Общие формы > Детальное описание основных средств > Журналы амортизации –или– Расчеты с поставщиками > Общие формы > Сведения о поставщике. 2.Выбор счета, модели стоимости или журнала амортизации. 3.Щелкните Проводки. 4.Выберите проводку, которую требуется реверсировать. 5.Щелкните Сторнировать проводку. 6.Выберите дату разноски реверсируемой проводки. Эта дата не может быть более ранней, чем дата исходной разноски, или относиться к закрытому периоду. 7.Нажмите кнопку ОК. |
|
|
За это сообщение автора поблагодарили: Starling (1). |
10.10.2013, 15:21 | #15 |
Участник
|
Ага, понял.
Но все равно не поможет. Вот, что пишет: "Тип проводки ГК Основные средства, кредит для счета 152 не может быть сторнирован" или "Тип проводки ГК Приход на склад для счета 281 не может быть сторнирован" |
|