Как сохранить причину отмены проведения документа, в момент его проведения
Добрый день, всем.
Может кто подскажет как лучше решить следующую задачу.
Как например в поле комментарий сохранить причину отмены документа, которая произошла в объекте документа в процедуре
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Задача, конечно сильно упрощена, на самом деле все более сложнее. Но интересует сама возможность сохранить факт отмены проведения документа в каком-либо реквизите этого же документа.
Может кто подскажет как лучше решить следующую задачу.
Как например в поле комментарий сохранить причину отмены документа, которая произошла в объекте документа в процедуре
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Задача, конечно сильно упрощена, на самом деле все более сложнее. Но интересует сама возможность сохранить факт отмены проведения документа в каком-либо реквизите этого же документа.
По теме из базы знаний
- Сравнение 1С8 и Navision
- Универсальный передаточный документ для Управление торговлей релиза 10.3.21.1 (бета для УТ 10.3.30.2) - печатная форма 2 в 1 альтернатива счету фактуре и расходной накладной.
- Расчет себестоимости и его Откат в ERP: практика применения
- Обслуживание баз данных. Не так просто, как кажется
- Загрузка чеков из ФНС в документы 1С:БП, УНФ, ERP, КА и УТ
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) Вы можете парсить журнал автоматически и выводить в читаемом виде, хотя да, это может оказаться долго для целей показа в форме.
Но проблема в том, что при возникновении ошибки во время проведения документа отменяется и его запись. В этом случае ничего сохранить в его реквизиты вы не сможете. Всё таки попробуйте с журналом регистрации.
Но проблема в том, что при возникновении ошибки во время проведения документа отменяется и его запись. В этом случае ничего сохранить в его реквизиты вы не сможете. Всё таки попробуйте с журналом регистрации.
Возможно в принципе табличная часть с датой-временем и автором, в которую необходимо новую строку добавить (кнопка на форме к примеру с выбором причины отмены проведения из выпадающего списка). Если какой-то реквизит в журнале не нужен- то и не надо его в шапку добавлять.
(8)Заводить табличную часть для данной задачи слишком накладно. Событие которое будет приводить к отмене проведения будет происходить довольно редко 1 раз на 1000 документов, но должно быть своевременно быть обработано сотрудниками и исправлено.
(9) С регистром та же самая ситуация
(10) А как передать данные, которые повлекли к отмене проведения? Ведь их можно только определить в момент проведения документа?
Опишу полностью суть задания.
У нас все заказы в большинстве случаев формируются автоматически в плоть до расходного ордера. Если же есть какая-то проблема с заказом, то у него заполняется соответствующий реквизит и он не проводиться и соответственно весь пакет документов по данному заказу не формируются тоже. Такие заказы фильтруются по данному реквизиту в списке и сотрудники видят у себя на экране, что есть заказы, по которым не были сформированы документы автоматически и требуется уже их вмешательство. Практически все эти проблемные заказы выявляются в момент их создания в 1С не зависимо от куда они пришли из EDI, с КПК, из почты.
Но есть проблема которую можно обнаружить только в момент проведения заказа, а не в момент его создания. Суть такова. В момент проведения заказа по некоторому товару может не быть остатков или частично не хватать, тогда данный товар автоматически заменяться на другой с таким же штрихкодом. Но у нового товара цена может отличаться от цены старого товара или на него не распространяться какая либо скидка. В результате конечная сумма по заказу может не совпадать с тем на что рассчитывал клиент. И часто он отказывается от всего заказа(в основном это касается сетей). Вот в таких случаях хотелось бы заполнять реквизит типа следующим "отмена проведения по причине расхождения цен при смене товара по штрихкоду". В идеале бы хотелось бы сохранять ещё в строках табличной части новый товар в место старого.
(9) С регистром та же самая ситуация
(10) А как передать данные, которые повлекли к отмене проведения? Ведь их можно только определить в момент проведения документа?
Опишу полностью суть задания.
У нас все заказы в большинстве случаев формируются автоматически в плоть до расходного ордера. Если же есть какая-то проблема с заказом, то у него заполняется соответствующий реквизит и он не проводиться и соответственно весь пакет документов по данному заказу не формируются тоже. Такие заказы фильтруются по данному реквизиту в списке и сотрудники видят у себя на экране, что есть заказы, по которым не были сформированы документы автоматически и требуется уже их вмешательство. Практически все эти проблемные заказы выявляются в момент их создания в 1С не зависимо от куда они пришли из EDI, с КПК, из почты.
Но есть проблема которую можно обнаружить только в момент проведения заказа, а не в момент его создания. Суть такова. В момент проведения заказа по некоторому товару может не быть остатков или частично не хватать, тогда данный товар автоматически заменяться на другой с таким же штрихкодом. Но у нового товара цена может отличаться от цены старого товара или на него не распространяться какая либо скидка. В результате конечная сумма по заказу может не совпадать с тем на что рассчитывал клиент. И часто он отказывается от всего заказа(в основном это касается сетей). Вот в таких случаях хотелось бы заполнять реквизит типа следующим "отмена проведения по причине расхождения цен при смене товара по штрихкоду". В идеале бы хотелось бы сохранять ещё в строках табличной части новый товар в место старого.
для того, чтобы в реквизит записать что-то, нужно будет вновь сделать запись документа. Использовать запись в обработчике ПередЗАписью очень опасно, можете нарваться на бесконечную рекурсию, если где-то в условиях некорректность будет. По мне так проще создать регистр сведений и в него писать нужную информацию.
Добавляем два реквизита, примечание из справочника шаблоны примечаний и товар заказанный. При отмене проведения программно проверяем заполнен ли реквизит примечание (в конфигураторе галочку что реквизит обязательный не ставим). У документа может быть несколько форм, возможно есть вариант при попытке отмены проведения без некоего параметра открывать дополнительную форму ввода причины отмены проведения, из которой с этим параметром передается уже разрешение на отмену.
При отмене проведения вы можете проверить программно все что угодно, например наличие одной или нескольких записей (набор согласований) в регистре сведений. Добавление этих записей реализовать несложно, и в регистре разрешение может быть записано отдельно, другим сотрудником (или несколькими) не заходя в документ и не блокируя его (в отличие от реквизита в шапке или табличной части). Или кнопкой в журнале, при закрытом документе.
(0) Из самой транзакции записи документа записать причину отката транзакции не получится в принципе (во всяком случае в БД) - на то она и транзакция.
Единственный способ - делать это "снаружи".
Например, проводить заказы фоновым заданием. Ошибки проведения выбрасывать в документе исключениями (ВызватьИсключение). Тогда проводить заказ можно в попытке-исключении и в исключении записывать описание ошибки в так и не проведенный заказ.
Единственный способ - делать это "снаружи".
Например, проводить заказы фоновым заданием. Ошибки проведения выбрасывать в документе исключениями (ВызватьИсключение). Тогда проводить заказ можно в попытке-исключении и в исключении записывать описание ошибки в так и не проведенный заказ.
1.Вариант: Через подписку на событие
2.Вариант: Расширение
3.Вариант: создаете внешнюю обработку точь в точь похожую на этот журнал доков, копируете форму документа, а дальше по нажатию на вашу кнопку запись, обрабатываете событие сами и записываете уже все реквизиты реального дока сами.
2.Вариант: Расширение
3.Вариант: создаете внешнюю обработку точь в точь похожую на этот журнал доков, копируете форму документа, а дальше по нажатию на вашу кнопку запись, обрабатываете событие сами и записываете уже все реквизиты реального дока сами.
Всем спасибо за обсуждение и советы. Но после долгих экспериментов и оценки всех решений, решили изменить всё таки бизнес логику выпуска заказов на сборку.
Мы решили не отменять проведение заказа и всего пакета документов по нему, а просто фиксировать факт такого случая в дополнительном свойстве заказа и не разрешать выпускать его на сборку пока этот реквизит не будет сброшен оператором.
Мы решили не отменять проведение заказа и всего пакета документов по нему, а просто фиксировать факт такого случая в дополнительном свойстве заказа и не разрешать выпускать его на сборку пока этот реквизит не будет сброшен оператором.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот