Убрать проводки документа
Служба для одного редкого, но тупикового случая: у документа снят флажок проведения, а записи операций под ним остались. Такой документ застревает намертво — провести его заново нельзя (уникальный индекс проводок отбивает вторую), удалить тоже нельзя (защита учёта видит живые проводки). Раньше выход был один — править базу вручную. Теперь администратор убирает проводки этой службой, после чего документ либо удаляется, либо проводится заново.
Где искать: Модули → Финансы → Обслуживание → Убрать проводки документа
Разбор на примере
Окно спрашивает ровно две вещи, и обе не нужно искать — система сама их напечатала:
- Метка проводки (реестр) — служебное имя реестра, которому принадлежит проводка;
- Номер документа.
Откуда их взять: когда система отказалась удалить документ, последней строкой отказа она напечатала метку и номер — например CashOut 42. Эти два слова и переносятся в поля как есть. Подсказка в самом окне говорит то же самое.
Кнопка «По расписанию» в окне есть, но неактивна, и это не упущение: операция необратимая, планировщику она не отдаётся — запуск по расписанию прямым запросом сервер тоже отклоняет («Операцию нельзя поставить в расписание: её не отменить!»).
Что служба проверяет, прежде чем что-то убрать
Она не верит введённому и устанавливает три факта подряд — на любом может отказать.
Проводка существует. Нет проводки с такой меткой и номером — честный отказ «Проводок по этой метке и номеру не найдено», а не тихий «готово».
Метка — это реестр документов. Владелец определяется по признаку: метка, совпадающая с описанием реестра, и есть реестр-владелец. Составные метки валютных операций и метки основных средств описаниями реестров не являются — по ним владельца установить нечем, и служба отказывает вместо того, чтобы сносить вслепую. Проводки основных средств убираются своими службами.
Документ-владельца служба ищет по тому адресу, который реестр объявляет для своих проводок: обычно это номер документа, у «Статей прихода/расхода» — сама запись. Если такого адреса в записях реестра нет, совпадение метки с описанием реестра ничего не доказывает, и служба отказывает так же, как на метках, которые реестрами не являются. Так бывает с меткой AutSimPeriods: она совпадает с описанием реестра «Расходы будущих периодов», но такие проводки создаёт служба «Создание записей операций из симуляций» по собственной нумерации, и номер проводки не является номером карточки. Такие проводки убирает администратор.
Документ действительно в противоречивом состоянии. Если документ на месте и флажок проведения у него стоит — отказ: проводки законные, снимать их надо штатным снятием подтверждения, а не этой службой. В реестрах «Производство» и «Операции производства» флажка нет — документ проводит статус, и служба судит по нему: «Начат» или «Завершен» — тот же отказ, а «Создано» при живой проводке — противоречивое состояние, и проводку служба уберёт. Если у реестра флажка проведения нет вообще («Сервисные платежи», «Статьи прихода/расхода»), служба откажет: проводки принадлежат живой записи. Но и саму такую запись, пока под ней есть проводки, не удалить — отказ удаления отсылает к администратору. Штатного выхода для таких реестров нет: их проводки убирает администратор. Если же документа нет вовсе — проводка осиротела, и убрать её как раз и нужно.
Само удаление идёт тем же путём, которым проводки убирает обычное снятие подтверждения, — с теми же хуками и пересчётом витрины. Служба не изобретает второго способа делать то же самое. Поэтому действует и замок закрытого периода: проводку с датой в закрытом периоде служба не уберёт.
После удаления она ещё раз спрашивает у базы, исчезла ли проводка. Если та почему-то осталась — служба падает и откатывает всё, вместо того чтобы отчитаться «готово».
Частые ситуации
«Проводок по этой метке и номеру не найдено». Либо метка или номер перенесены с опечаткой, либо проводки уже убраны — попробуйте удалить документ ещё раз.
«Документ проведён — его проводки легитимны». Это не тот случай, для которого служба сделана. Откройте документ и снимите подтверждение обычным способом: проводки уйдут сами. Исключение — «Таблицы работ»: штатного снятия проведения в них нет, поэтому проводки проведённой таблицы убирает администратор.
«Период закрыт!» Проводка датирована периодом, закрытым в «Закрытие внесения изменений». Служба снимает её тем же путём, что и ручное удаление, поэтому ждёт, пока период откроют или внесут вас в список пользователей, которым изменения в нём разрешены.
Метка не похожа на имя реестра (например, у валютной операции или у основных средств). Служба откажет намеренно. Для основных средств есть свои службы; в остальных случаях нужен администратор.
Отказ про реестр, общий с другой компанией. Если ваша компания берёт записи операций (или реестр документа) в общее пользование у другой, служба откажет ещё до поиска проводки и назовёт этот реестр: убирать проводки может только компания, которой реестр принадлежит, — иначе служба снесла бы проводку её документа. Запустите службу в той компании.
Проводки убраны, а документ всё равно не удаляется. Значит, его держит что-то другое — прочитайте текст нового отказа целиком: он называет причину.