записать и закрыть в 1с что это значит
Чем отличается проведенный документ от записанного в 1С:УНФ
Новички в работе с 1С:Управление нашей фирмой часто задаются вопросом чем документ с зеленой галочкой отличается от такого же документа без галочки.
Мы составили простую и наглядную табличку и подробно объяснили что означает каждое действие с документом.
Вид в сервисе | Что сделали в 1С:УНФ | Что произошло в жизни (на примере заявки на доставку заказа из магазина) | Как это отразилось в базе данных 1С |
Окончательно удалили помеченный на удаление документ. | Вытащили скомканную заявку из корзины, разгладили ее и потом опустили ее в шредер (измельчитель бумаги) | Объект исчез навсегда |
Доверить процесс обслуживания следует специалистам, давно работающим на рынке автоматизации, которые несут гарантию за проданный товар, оказанные услуги. Например, нам 🙂
Окажем услуги с оплатой по факту, если результат вас устроит.
Без предоплаты.
Посмотрите другие полезные материалы по теме «УНФ»
У нас вот такие Тарифы по обслуживанию 1С:УНФ
Записать и закрыть в 1с что это значит
8plus.ru — это отчеты и обработки 1С только версии 8 и только для типовых конфигураций!
Между документами в 1С и в жизни можно провести аналогию.
в 1C | в жизни |
Вы создали документ, заполнили некоторые поля и закрыли, не сохранив. | Взяли бланк документа, начали заполнять его, опустили в шредер. |
Вы создали документ, заполнили некоторые поля и сохранили. Документ записан. | Взяли бланк документа и заполнили его. Положили в папку. |
Вы открыли созданный ранее документ, стали вносить в него изменения. Документ открыт для редактирования и для остальных заблокирован. | Вы взяли документ из папки, взяли корректор, стали вносить в него изменения. Все ходят и спрашиваю: кто взял документ? |
Провели документ. | Подписали документ. Положили в папку. |
Сделали документ не проведенным (распровели) | Вы взяли подписанный документ из папки, аккуратно стерли печать и подпись. Положили в папку. |
Вы открыли проведенный документ, стали вносить в него изменения. | Вы взяли подписанный документ из папки, взяли корректор, стали вносить в него изменения. =) |
Пометили не проведенный документ на удаление. | Взяли не подписанный документ из папки, скомкали и бросили в корзину. |
Пометили проведенный документ на удаление. | Взяли подписанный документ из папки, скомкали и бросили в корзину. Спрашивается — зачем? |
Сняли с документа пометку на удаление. | Вытащили скомканный документ из корзины и разгладили его. |
Окончательно удалили помеченный на удаление документ. | Вытащили скомканный документ из корзины, разгладили его, опустили в шредер. |
Для тех, кому ближе суровый технический язык:
в 1С | в базе данных |
Вы создали документ, заполнили некоторые поля и закрыли, не сохранив. | Ничего не произошло. |
Вы создали документ, заполнили некоторые поля и сохранили. Документ записан. | В базу данных записан объект, который на учет никак не влияет. |
Вы открыли созданный ранее документ, стали вносить в него изменения. Документ открыт для редактирования и для остальных заблокирован. | Объект заблокирован в базе для изменения, открывшим его пользователем. |
Провели документ. | Документ сформировал движения по регистрам (изменил остатки), что самым прямы образом отразилось в учете. Кстати, все что ни делается в программе, все сводится к изменению регистров. |
Сделали документ не проведенным (распровели) | Движения по регистрам удалены. Он стал обычным объектом базы (просто записанным). |
Пометили не проведенный документ на удаление. | Объект в базе отмечен для дальнейшей попытки его окончательно удалить. |
Пометили проведенный документ на удаление. | Объект в базе отмечен для дальнейшей попытки его окончательно удалить. При этом его движения по регистрам удалены. Он снова не влияет на учет, как будто и не было его. |
Сняли с документа пометку на удаление. | С объекта в базе сняли пометку. Он стал обычным объектом базы (просто записанным). |
Окончательно удалили помеченный на удаление документ. | Объект исчез навсегда. |
Кстати, проведение документа в 8-ке может быть оперативным и неоперативным.
Переопределение кнопки «Провести и закрыть»
Уверен, что для многих эта задача не представляет никакой сложности. Очень даже возможно, что эта задача решается и другими способами.
Имеется: Документ с реквизитами НомерВх и ДатаВх, а также основная форма документа
Зачада: Перед записью необходимо задать вопрос пользователю и по результату ответа продолжить запись, либо не продолжать.
В свойствах формы редактируем список команд: снимаем галки с команд «Провести и закрыть», «Записать», «Провести».
Для командной панели убираем признак «Автозаполнение». Добавляем на форму свои команды, а также добавляем группу с типовыми командами. Далее описываем код для созданных команд:
Далее описываем код команд и проверку на дубли
Для каждой команды определяем ПараметрыЗаписи, а также добавляем признак «Закрыть», чтобы после того, как будет задан вопрос, можно было определить надо ли закрывать форму или оставить форму открытой.
Собственно, процедура самой проверки
Далее процедура обработки оповещения, в которой происходит запись и закрытие документа (если он должен закрыться)
Остается ещё один момент: документ может быть записан при закрытии на крестик, тогда будут отрабатывать только типовые механизмы записи документа. Для себя решил это следующим образом (возможно, не очень правильно):
Добавлен реквизит формыВ процедуре ПередЗаписью следующий код
В процедуре ПриСозданииНаСервере устанавливаем флаг в положение ИСТИНА
Вот и всё, типовые команды заменены на наши и можно задавать вопросы пользователю до записи документа. Надеюсь статья будет кому-то полезна. Самого на написание статьи подтолкнула ситуация, когда при нажатии на кнопку «Провести и закрыть» выводится вопрос, подтверждаю запись, но документ не закрывается, закрыть документ можно только по крестику.
События при записи и проведении документа
Последовательность событий при записи нового документа из формы документа
Заливкой выделены события, выполняющиеся в транзакции записи.
Последовательность событий при проведении документа из формы документа (провести и закрыть)
Заливкой выделены события, выполняющиеся в транзакции записи.
Последовательность событий при отмене проведения документа из формы документа
Заливкой выделены события, выполняющиеся в транзакции записи.
Обработчики событий
Расширение управляемой формы для документа. Вызывается перед записью объекта на сервере. Можно отменить запись. Выполняется вне транзакции.
Возникает перед выполнением записи объекта. Процедура-обработчик вызывается после начала транзакции записи, но до начала записи документа.
Возникает при записи объекта. Процедура-обработчик вызывается после записи объекта в базу данных, но до окончания транзакции записи.
Расширение управляемой формы для документа. Возникает на сервере при записи объекта из формы. Процедура-обработчик вызывается после записи объекта (после события ПриЗаписи объекта) в базу данных, но до окончания транзакции записи.
Расширение управляемой формы для документа. Вызывается после записи объекта на сервере и после завершения транзакции.
Расширение управляемой формы для документа. Возникает на сервере после записи объекта и после окончания транзакции записи, то есть к моменту вызова этой процедуры запись объекта полностью завершена.
УФ. ПоказатьВопрос() в ПередЗаписью(). Как определить закрывать форму или нет
Здравия всем!
Такой вопрос. Может баян, но я как-то не нашёл решения.
Есть элемент справочника. Перед записью производится проверка значения номера. Если найден недопустимый символ в реквизите, то задаётся вопрос() «В номере содержится недопустимый символ! Продолжить?».
Всё просто. Но суть в том, что сейчас нужно изменить Вопрос() на ПоказатьВопрос(). А специфика подразумевает, что мне нужно отменить запись, задать вопрос, а в функции обработки результата при положительном ответе записать программно элемент справочника.
Вопрос вот в чем. Пользователь мог нажать «Записать» и «Записать и закрыть». Как определить какую команду он вызвал и нужно ли мне закрывать текущую форму после записи?
Создавал тему на мисте, но предложение добавить свою команду взамен стардартной мне не нравится. http://www.forum.mista.ru/topic.php?id=721810
Есть адекватные способы?
Вопрос в обработчике формы ПередЗаписью
В обработчике события формы ПередЗаписью также может возникнуть потребность задать вопрос. Как и в предыдущем примере. Однако здесь вопрос так просто не решается. Отличие заключается в следующем.
В предыдущем примере, оказываясь в обработчике ПередЗакрытием, мы однозначно знали действие, которое должно быть выполнено. Это закрытие формы. Поэтому в обработке оповещения мы смело писали Закрыть().
Но в обработчике ПередЗаписью мы такой однозначной информации не имеем. В этом обработчике мы можем оказаться по двум причинам: если пользователь нажал Записать, или если он нажал Записать и закрыть. То есть дальнейший сценарий действий нам неизвестен. Определить его стандартными способами, находясь внутри этого обработчика, мы не можем.
Поэтому тут можно предложить три варианта, но все они, к сожалению, обладают недостатками:
Изменить логику прикладного решения так, чтобы не было диалога с пользователем в этом обработчике. Это не всегда возможно;
В обработке оповещения с помощью собственной блокирующей формы задавать пользователю развернутый вопрос, предполагающий точное описание дальнейших действий: Отказаться?, Только записать?, Записать и закрыть? Это может выглядеть не очень красиво, ведь пользователь уже нажал «Записать и закрыть», а его опять об этом спрашивают;
Не использовать стандартные команды формы Записать, «Записать и закрыть». Вместо них создать собственные команды, в которых и выполнять необходимые алгоритмы. Создание собственных команд потребует дополнительных трудозатрат.