Дата оперативно проводимого документа больше текущей отключить

Добрый день!
Абсурд какой-то. Документ с датой в прошлом отказывается проводиться! Говорит:
Дата оперативно проводимого документа меньше текущей. Документ не может быть проведен оперативно
Везде в сети НИКТО не получил ни разу ответ на этот вопрос. Пипец. Все говорят, что при такой ошибке 1С спросит, провести ли неоперативно — МЕНЯ НЕ СПРАШИВАЕТ!
Просто нельзя и всё.
Поясните, как заставить 1С всё таки провести документ, который можно проводить оперативно, неоперативно, в прошлом времени.
Документ — Заказ Покупателя из 1С УТ 10.4
Кстати, некоторые другие заказы из той же конфы задним числом (после вопроса провести ли неоперативно) вполне проводятся! А этот нет… Мистика
Добавлено: Омг. Разобрался.
Оказывается, кто то роли Полные Права запретил неоперативно «интерактивно» проводить документы. Как буд-то ещё их как-то можно проводить, не интерактивно.
Что самое смешное — это НЕ МЕШАЛО мне проводить неоперативно некоторые заказы, а некоторые — мешало!
Ещё смешнее сам абсурд ситуации — пользователь имеет право накосячить (отмена проведения) но затем вернуть на место (провести) не может — должен звать «папу». Офигительный дизайн…
Итого, может кто подсказать, чем «интерактивность» проведения отличается от неинтерактивности? Почему одни документы я неоперативно мог проводить а другие нет из того же типа документов?

Назад в будущее или как же так?

Суть проблемы: приходим утром на рабочее место и видим проведенные документы уже до 14.00 текущего дня.

Как же так? Изменение времени на рабочей машине не имеет значения — сказывается привязка к серверу. Рабочая дата 1С не менялась 100%. А документы-то есть. Конфигурация — «Управление производственным предприятием». Бухгалтера естественно ничего не говорят, мол, проводятся и все. Полтергейст? Врядли.

Оказывается, таки возможно провести документ будущей датой. И виной всему процедура печати документа. Ради эксперимента берем типовой документ конфигурации, например, Реализация товаров и услуг. При этом документ должен быть уже проведен.

Думаю ни для кого не секрет. что на форме документа две кнопки печати: «По умолчанию» и «Печать из списка». Меняем дату документа на первую пришедшую в голову (в моем случае — это 12.12.2012).

Проводим документ и убеждаемся, что дата документа больше текущей и документ не может быть проведен оперативно. Вроде как все в норме. Теперь не записывая жмем на кнопку печати. Что видим: система предлагает сохранить измененный документ. Почему бы и нет, ведь это нам и нужно. Пробуем… И, снова система на высоте. Дата не верна, документ не проводится.

Ну что же, остается последний вариант — печать по умолчанию. Жмем, соглашаемся с записью и… вуаля, документ провелся. Причем движения сделаны именно 12 декабря 2012 года.

Теперь делаем выводы, как же с этим быть? А всему виной — различия в процедурах печати. Печать из документа — просто записывает документ, а печать по умолчанию зачем-то проверяет на совпадение даты документа и контрольной даты (текущей или рабочей, исход из настроек). При этом если дата не совпадает документ проводится НЕОПЕРАТИВНО. То есть, при всем при этом даже не производится проверка на наличие остатков в типовом решении.

Установка даты документа при открытии формы

Если дата документа изначально не установлена, то при открытии формы нового документа происходит установка дате документа значения текущей даты сеанса.

Причем время документа будет установлено в зависимости от следующих настроек. Если свойство АвтоВремя расширения формы документа имеет значение НеИспользовать то время документа будет установлено по значению текущей даты сеанса. В остальных случаях дате документа присваивается время начала дня (00:00:00).

Установка даты нового документа при записи нового документа в форме

При записи документа в режиме оперативного проведения значение даты документа устанавливается согласно выданной оперативной отметке времени. Тут настройки свойств расширения формы не играют роли.

Но если время документа «нулевое» (0:00:00), то при неоперативном проведении документа оно будет изменено согласно настройкам свойства АвтоВремя. Исключение — когда АвтоВремя имеет значение НеИспользовать тогда время документа не меняется.

.

Запрет интерактивной записи проведенного документа без проведения (перепроведения)

Запрет интерактивной записи проведенного документа без проведения (перепроведения) используется, чтобы не создавалась, например, такая ситуация: сначала документ реализации был заполнен и проведен, при проведении сформированы движения по регистру с указанием количества, соответствующего количеству в документе. После этого пользователь исправил данные документа и сохранил без проведения.

В результате таких манипуляций в документе будут записаны новые данные, а в движениях по регистру останутся данные от прошлого проведения документа, то есть они никак не будут соответствовать текущим данным документа.

Предотвращение подобных ситуаций достигается за счет установки свойства расширения формы документа ПриЗаписиПерепроводить значение Истина. Тогда отказ в обработке проведения приведет к откату транзации — документ не будет и перезаписан.
Установка режима проведения

При проведении документа из формы система проверяет наличие у пользователя соответствующих прав (Проведение, Интерактивное проведение, Интерактивное проведение неоперативное). Если их нет, то выдается сообщение о невозможности проведения документа, и запись с проведением документа из формы отменяется. Мы будем рассматривать только возможность отсутствия/наличия прав на неоперативное проведение, в зависимости от которого система может менять свое поведение, так как если нет первых двух прав, то документ не может быть проведен из формы в принципе.

Если интерактивное проведение разрешено, сам выбор варианта проведения должен быть обусловлен логикой применения механизма установки режима проведения из формы. То есть в некоторых ситуациях система должна выбирать режим жестко, в некоторых право выбора режима можно предоставить пользователю. Для этого разработчик обладает рядом возможностей, предоставляемых системой посредством разграничения прав и расширениями формы документа.

При записи документа из формы расширение формы документа выполняет установку режима проведения документа.

Для реализации данного функционала система использует вариант (Автоматически, Оперативный, Неоперативный, Запрашивать) указанный в качестве значения свойства ИспользоватьРежимПроведения расширения формы документа.

Вариант «Автоматически»

Вариант Автоматически устанавливается посредством выбора значения Автоматически у свойства ИспользоватьРежимПроведения расширения формы документа. Платформа стандартно устанавливает это значение для новой формы.

При испльзовании данного варианта, в зависимости от ситуации и настроек, происходит первичный подбор режима проведения из вариантов Оперативный или Неоперативный.

Для проводимого документа происходит проверка положения даты документа относительно текущей даты сеанса.

Если дата документа (без учета времени) равна текущей дате сеанса, то система автоматически выбирает вариант проведения Оперативный.

Если дата документа (без учета времени) больше текущей даты сеанса, пользователю выдается предупреждение: «Дата оперативно проводимого документа больше текущей. Документ не может быть проведен оперативно!», и проведение документа отменяется.

Если дата документа (без учета времени) меньше текущей даты сеанса, выбирается вариант проведения Неоперативный. При этом если у пользователя нет права на неоперативное проведение, выдается предупреждение: «Недостаточно прав для неоперативного проведения», и проведение документа отменяется.

Вариант «Оперативный»

Вариант Оперативный устанавливается посредством выбора значения Оперативный у свойства ИспользоватьРежимПроведения расширения формы документа.

В данном варианте, если дата документа (без учета времени) меньше текущей даты сеанса, выдается предупреждение: «Дата оперативно проводимого документа меньше текущей. Документ не может быть проведен оперативно!», и проведение документа отменяется.

Если дата документа (без учета времени) равна текущей дате сеанса, производится запись документа с оперативным проведением.

Если дата документа (без учета времени) больше текущей даты сеанса, выдается предупреждение: «Дата оперативно проводимого документа больше текущей. Документ не может быть проведен оперативно!», и проведение документа отменяется.


Вариант «Неоперативный»

Вариант Неоперативный устанавливается посредством выбора значения Неоперативный у свойства ИспользоватьРежимПроведения расширения формы документа.

При испльзовании данного варианта проведение документа из формы всегда производится в неоперативном режиме, независимо от положения даты документа по отношению к текущей дате сеанса.

При этом еслу у пользователя нет права на неоперативное проведение, выдается предупреждение: «Недостаточно прав для неоперативного проведения», и проведение документа отменяется.

Вариант «Запрашивать»

Вариант Запрашивать устанавливается посредством выбора значения Запрашивать у свойства ИспользоватьРежимПроведения расширения формы документа.

Данный вариант реализован в системе для того, чтобы помочь пользователю принять решение о выборе режима проведения для каждой конкретной ситуации.

В данном варианте пользователь перед началом проведения должен будет выбрать режим проведения документа в специальном системном окне.

Поведение системы при этом варианте определяется прежде всего положением даты документа (без времени) по отношению к текущей дате сеанса.

При равенстве этих дат далее проверяется, имеет ли пользователь право проводить документ неоперативно. Если пользователь такого права не имеет, система проводит данный документ в оперативном режиме. Если право на неоперативное проведение есть, пользователю выдается диалог с режимом выбора проведения. После выбора режима проведения система проводит документ соответственно в оперативном или неоперативном режиме.


Если дата документа (без учета времени) меньше текущей даты сеанса, поведение системы определяется опять же наличием права на неоперативное проведение у пользователя. Если пользователь таким правом не обладает, выдается предупреждение: «Дата оперативно проводимого документа меньше текущей. Документ не может быть проведен оперативно!», и проведение документа отменяется.

Если право на неоперативное проведение есть, пользователю выдается диалог с режимом выбора проведения. После выбора неоперативного режима проведения система проводит документ в неоперативном режиме. Если же пользователь выберет оперативный режим проведения, выдается предупреждение: «Дата оперативно проводимого документа меньше текущей. Документ не может быть проведен оперативно!», и проведение документа отменяется.

Если дата документа (без учета времени) больше текущей даты сеанса, система не позволяет проводить документ оперативно. Поэтому если права неоперативного проведения нет, сразу выдается предупреждение: «Дата оперативно проводимого документа больше текущей. Документ не может быть проведен оперативно!», и проведение документа отменяется.

Если право на неоперативное проведение есть, пользователю выдается диалог с режимом выбора проведения. После выбора неоперативного режима проведения система проводит документ в неоперативном режиме. Если же пользователь выберет оперативный режим проведения, будет выдано предупреждение: «Дата оперативно проводимого документа больше текущей. Документ не может быть проведен оперативно!», и проведение документа отменится.

Прочие функции

Кроме выбора режима проведения и установки даты документа, расширение формы документа реализует также следующий функционал:

  • при открытии формы проведенного документа, если у пользователя нет права Интерактивное изменение данных форма переводится в режим ТолькоПросмотр;
  • при открытии формы документа, в которой находятся таблицы, отражающие движения основного реквизита (объекта документа), эти движения автоматически считываются из базы данных и отображаются;
  • при записи из формы (даже если и программной — посредством Записать()) система выполняет проверку прав на интерактивное проведение или интерактивную отмену проведения.

Печать (Ctrl+P)

Механизм проведения документов

Информация, отражающая хозяйственную деятельность предприятия, хранится в регистрах. Документы могут изменять состояние регистров. Этот процесс называется проведением. Данный механизм является рекомендуемым механизмом изменения состояния регистров. Проведение может выполняться в оперативном или неоперативном режиме (свойство Оперативное проведение).
ПРИМЕЧАНИЕ. Как правило, механизм оперативного проведения используется для решения задач оперативного учета.

Оперативное и неоперативное проведение

Механизм оперативного проведения предназначен для того, чтобы разделить случаи, когда документ проводится в реальном времени, и случаи, когда проведение документа отражает уже свершившийся факт.
Проведение в реальном времени необходимо тогда, когда ввод и проведение документа не просто фиксируют в системе произошедшее событие, а участвуют в его формировании, помогая оператору правильно ввести информацию. Разумеется, это имеет смысл только в тот момент, когда данное событие происходит в реальной жизни.
Классическим примером является ввод и проведение документа, отражающего продажу товаров со склада. При вводе такого документа в задачу оператора входит не только правильный ввод списка товаров, которые приобретает покупатель, но и выполнение различных проверок. Прежде всего, необходимо проверить, что запрашиваемый товар имеется на указанном складе. При этом очень важно, чтобы проверка учитывала тот факт, что одновременно с этим оператором работают и другие операторы, которые могут одновременно выписывать те же самые товары. Соответственно, задачей системы является не допустить продажу одного и того же товара двум покупателям. Кроме того, может потребоваться и проверка доступного покупателю размера кредита или наличие факта оплаты счета, а также другие самые разнообразные проверки.
В то же время если документ вводится задним числом, то есть в момент его ввода известно, что такое событие уже произошло в жизни предприятия, например, конкретный товар уже отгружен клиенту, необходимость в таких проверках отпадает, и нужно просто отразить в учете произошедшее событие. В этом случае проведение документа только фиксирует событие, а не участвует в его формировании.

Таким образом, задача механизма оперативного проведения заключается в разделении этих двух вариантов проведения и с точки зрения пользователя, чтобы он понимал, какой вид проведения выполняется, и с точки зрения алгоритма проведения документа, чтобы тот отработал действия, соответствующие текущему варианту проведения.
Следовательно, оперативность или неоперативность проведения документа определяется по его дате. Если дата проводимого документа совпадает с текущей датой, то система будет проводить такой документ в оперативном режиме, не задавая вопросов, и в обработке проведения об этом можно узнать, чтобы выстроить определенный алгоритм проведения документа.

Расширение формы и проведение

Кроме свойства документа Оперативное проведение существует возможность задания режима проведения у расширения формы документа. Свойство Использовать режим проведения может принимать следующие значения:
● Неоперативный – документ всегда будет проводиться в неоперативном режиме. Если отсутствуют права на неоперативное проведение, будет выдано исключение.
● Оперативный – документ всегда будет проводиться в оперативном режиме. Если отсутствуют права на неоперативное проведение, то будет выдано исключение при попытке провести документ прошлого периода.
● Запрашивать – система всегда будет запрашивать текущий режим проведения.
● Автоматически – в этом случае система работает по следующему алгоритму:
● если дата документа меньше текущей, выполняется неоперативное проведение;
● если дата документа равна текущей, выполняется оперативное проведение;
● если дата документа больше текущей, выдается исключение;
● если невозможно провести документ в выбранном режиме (не хватает прав доступа и т. д.), также будет выдано исключение;
● если на стороне клиента режим проведения неизвестен, то в параметр РежимПроведения обработчика события ПередЗаписью будет передано
значение Неопределено.

Одной из задач оперативного проведения документов является размещение документов в хронологическом порядке на шкале времени. Такое размещение необходимо, в частности, для того, чтобы корректно списывались остатки по регистрам остатков (см. здесь) оперативного учета. Для размещения документов используются такие понятия, как момент времени и оперативная отметка времени. Рассмотрим эти понятия более
подробно.
Для определения положения документа на оси времени используется реквизит документа Дата, который содержит время с точностью до секунды. Это позволяет контролировать последовательность записи документов. Однако при большом объеме создаваемых документов вероятна ситуация, когда несколько документов будут иметь одинаковое значение даты (т. е. будут созданы в течение одной секунды). Как в этом случае определить последовательность созданных документов?

Момент времени

Для обработки подобных ситуаций существует понятие момент времени. Момент времени представляет собой совокупность даты, времени и ссылки на объект базы данных. Он позволяет однозначно идентифицировать любой объект ссылочного типа базы данных на оси событий, но имеет смысл в основном только для документов. Кроме того, момент времени позволяет идентифицировать и необъектные данные, например, записи регистров, подчиненных регистратору.
Понятие момента времени реализовано во встроенном языке при помощи универсального объекта МоментВремени.
Для нескольких документов, имеющих одинаковую дату и время, последовательность их на оси событий определяется системой исходя из ссылок на эти документы. Она может не совпадать с последовательностью создания документов, и она недоступна для изменения пользователем, то есть нельзя каким-либо образом повлиять на последовательность документов внутри одной секунды или «вычислить», что один документ создан раньше, а другой – позже.

Оперативная отметка времени

Оперативная отметка времени – это значение типа Дата. Оперативная отметка времени – это «основа», которая собственно и позволяет выполнять оперативное проведение документов. Оперативная отметка времени создается системой каждый раз при оперативном проведении документа. Ее значение формируется исходя из текущей даты сеанса и последней созданной оперативной отметки.

Поясное время

При работе системы в различных часовых поясах необходимо учитывать эту особенность при получении оперативной отметки времени. Например, когда в единой информационной базе, физически расположенной в одном городе (часовом поясе), ведется учет нескольких удаленных предприятий (например, филиалы холдинга), которые расположены в других городах (и других часовых поясах). В этом случае необходимо, чтобы для каждого филиала выдавалась своя отметка времени.
Для учета часовых поясов существует понятие часового пояса информационной базы и часового пояса сеанса.
Часовой пояс информационной базы определяет часовой пояс, который по умолчанию будет установлен для нового сеанса. При создании информационной базы часовой пояс информационной базы не определен. Однако может быть установлен с помощью метода глобального контекста УстановитьЧасовойПоясИнформационнойБазы(). Информация о часовом поясе информационной базы сохраняется в базе данных и не меняется при
операциях загрузки/выгрузки информационной базы. При создании начального образа информационной базы (с помощью механизмов распределенной информационной базы, см. здесь) в создаваемый образ переносится часовой пояс информационной базы, из которой создается образ.
Если часовой пояс информационной базы не задан, то используется часовой пояс компьютера, на котором установлен сервер «1С:Предприятия» (в клиент-серверном варианте), или часовой пояс локального компьютера (в файловом варианте).
Часовой пояс сеанса описывает тот часовой пояс, в котором работает конкретный сеанс. По умолчанию часовой пояс сеанса равен часовому поясу
информационной базы.
Часовой пояс сеанса может быть установлен с помощью метода глобального контекста УстановитьЧасовойПоясСеанса(). Часовой пояс сеанса сохраняется до конца сеанса. Используется для определения текущей даты сеанса и получения оперативной отметки времени.

Получение оперативной отметки времени

В ходе оперативного проведения система изменяет время документа таким образом, чтобы очередной документ, проводимый в оперативном режиме,
имел бы момент времени более поздний, чем у предыдущего оперативно проведенного документа. Для этого используется понятие оперативной отметки времени. Оперативная отметка получается системой автоматически при оперативном проведении, но может быть получена во встроенном языке в явном виде с помощью метода ПолучитьОперативнуюОтметкуВремени() на основании текущей даты сеанса.

Текущая дата сеанса равна дате компьютера, приведенной к часовому поясу сеанса. Под приведением понимается пересчет местного времени компьютера в поясное время, заданное часовым поясом сеанса. Пересчет выполняется через универсальное координированное время (UTC).
Все пользователи обращаются к единому механизму оперативной отметки времени, а механизм выдает каждому пользователю очередную отметку.
Механизм получения оперативной отметки времени обеспечивает получение даты, большей, чем предыдущая отметка, полученная этим или другим пользователем в данном часовом поясе. В качестве оперативной отметки система, как правило, возвращает текущее время сеанса. Однако если текущее время больше или равно последней выданной какому-либо пользователю отметке, то возвращается значение на секунду большее, чем
значение последней выданной отметки. Таким образом, обеспечивается получение при каждом обращении значения, по возможности соответствующего текущему времени, но в обязательном порядке большего, чем предыдущее полученное значение.
Следует помнить, что различные сеансы с одинаковым часовым поясом будут использовать одно и то же время для получения оперативной отметки времени. Таким образом, будет существовать столько несвязанных оперативных отметок времени, сколько уникальных часовых поясов будет установлено в качестве часовых поясов сеансов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *