1c8 всегда неоперативное проведение. Особенности работы формы документа


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

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

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

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

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

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

.

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

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


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

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

Установка режима проведения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Вариант "Запрашивать"

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

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

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

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

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

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

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

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

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

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

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

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

    1. Техника и концепция "Оперативное проведение" весьма условна и абстрактна, в том смысле что ни к чему не обязывает платформу как таковую. Т.е. изначально документы "оперативные" и "неоперативные" совершенно равноправны и никак не отличимы.
    2. Разница между теми и этими возникает только в момент, когда прогер ваяющий собственную конфигурацию анализирует второй параметр обработчика события ОбработкаПроведения(имя параметра - Режим). Он вставляет в месте анализа ветвление ЕСЛИ...ТОГДА и вот тут, и только тут , разница между тем и этим проявляется. И даже тут разница будет не между документами, а между процессами=алгоритмами их проведения. Т.е. платформа максимум что делает - это сообщает тот самый Режим проведения. Что делать с этим знанием, как на него реагировать и реагировать ли вообще - это все к конкретному автору конкретной конфигурации.

    Правильно написано?

  2. Если честно, то ход Ваших мыслей лично мне не понятен вообще уже вот как вторую тему. Все просто. Документ - это объект метаданных конфигурации. Он предназначен для отражения факта какого-либо события на предприятии. Документ делает, так называемые, движения (а может и не делать кстати) в регистры различные. (думаю следующая Ваша тема будет посвящена регистрам ). Самый банальный пример - это поступление товара на склад. В 1С есть такое понятие как последовательность документов, т.е. документы четко привязаны ко времени. Так вот мы подошли к самому главному. Документы можно проводить оперативно и неоперативно. Оперативно значит в текущий момент времени. А неоперативно значит датой отличной от текущего времени. Отличной причем только в меньшую сторону, т.е. провести документ будущей датой в нельзя. Сколько я занимаюсь программированием, то ни разу не встречал, чтобы в коде обработки проведения была привязка к режиму проведения.
  3. 1. Техника и концепция "Оперативное проведение" весьма условна и абстрактна, в том смысле что ни к чему не обязывает платформу как таковую. Т.е. изначально документы "оперативные" и "неоперативные" совершенно равноправны и никак не отличимы

    Нажмите, чтобы раскрыть...

    Она не условна и абстрактна а вполне конкретна. Качай книгу "Решение прикладных задач" есть такая у 1С и читай там до полного просветления.

  4. Оперативно значит в текущий момент времени. А неоперативно значит датой отличной от текущего времени. Отличной причем только в меньшую сторону, т.е. провести документ будущей датой в нельзя.

    Нажмите, чтобы раскрыть...

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

    Нажмите, чтобы раскрыть...

    А это, извините, вообще на толстый троллинг смахивает. Ну Радченко, первое упоминание обсуждаемого и простой пример к этому упоминанию - сразу же обработка ветвится в зависимости от режима. Второй параметр в ОбработкаПроведения платформа зачем передает, по вашему? Что вы вообще предлагаете делать с этими двумя режимами кроме их анализа в Обработке?

    а вполне конкретна

    Нажмите, чтобы раскрыть...

    Ну а есть код/пример конфига показывающий/доказывающий что платформа(сама !) конкретно

    Качай книгу "Решение прикладных задач"

    Нажмите, чтобы раскрыть...

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

  5. Платформа реагирует тем, что при оперативном проведении дата документа устанавливается реальным временем проведения автоматически.
  6. Вы слишком "плаваете по поверхности" - ныряйте глубже. Когда факт [не]совпадения дат установлен - платформа-то как реагирует в том или ином случае?

    А это, извините, вообще на толстый троллинг смахивает. Ну Радченко, первое упоминание обсуждаемого и простой пример к этому упоминанию - сразу же обработка ветвится в зависимости от режима. Второй параметр в ОбработкаПроведения платформа зачем передает, по вашему? Что вы вообще предлагаете делать с этими двумя режимами кроме их анализа в Обработке?

    Ну а есть код/пример конфига показывающий/доказывающий что платформа(сама !) конкретно по разному реагирует на один и тот же документ в зависимости от режима?

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

    Нажмите, чтобы раскрыть...

    Я лучше буду молчать...

  7. возможно я не до конца понял, что вы хотите сказать.

    Эм, это почему нельзя?

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

    Нажмите, чтобы раскрыть...


    Вы передаёте момент времени и по нему система понимает оперативно проводится документ или нет.

  9. Есть отличия при чтении остатков из регистров. Если проводите оперативно то не важно передадите вы Границу или нет... чтение будет производится из таблицы остатков регистра рассчитанных на 3999 год.
    Вы передаёте момент времени и по нему система понимает оперативно проводится документ или нет.

    Нажмите, чтобы раскрыть...

    я не понял вашей фразы.

    Сразу скажу, первый и самый важный момент: смотрите то, что там остатки как-то будут читаться так или этак - это ведь и есть "алгоритм который использует разработчик". А если мне вообще не надо никакие остатки в моем документе при проведении читать? А что если при проведении мне надо читать остатки строго на начало года и не важно каким числом проводится документ? (не спрашивайте для чего, это просто пример с потолка). Таким образом разница между документом в разных режимах проведения - это то как разработчик конфигурации на это реагирует.

    А второй момент, хотел просто для себя спросить - вы о программном каком-то коде говорили в своей фразе или что? Я просто не понял.

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

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

    Нажмите, чтобы раскрыть...

    Это не совсем так.
    Вы не увидите различий как разработчик или как конечный пользователь на прикладном уровне работы конфигурации. На физическом уровне, т.е. на уровне записей в базу данных - некоторые различия будут. Но и тут даже наверно не столько "оперативный" - "не оперативный" режимы влияют, а именно дата проведения документа.

  10. А если мне вообще не надо никакие остатки в моем документе при проведении читать?

    Нажмите, чтобы раскрыть...

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

    Нажмите, чтобы раскрыть...

    Читайте хоть на начало прошлого года. Я говорил о том что если в параметры виртуальной таблицы регистра накопления передать МоментВремени(то есть дата+ссылка) то платформа определит оперативно или нет проводится документ. И если он проводится оперативно то данные будут прочитаны из виртуальной таблицы остатков на 3999 год(или 5999 год... не помню точно).

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

  11. Я говорил о том что если в параметры виртуальной таблицы регистра накопления передать МоментВремени(то есть дата+ссылка) то платформа определит оперативно или нет проводится документ. И если он проводится оперативно то данные будут прочитаны из виртуальной таблицы остатков на 3999 год(или 5999 год... не помню точно).
    То есть если мы захотим исключить например движения самого документа из результата запроса и передадим например "границу" исключающую движения самого документа то это не сработает. И нужно предварительно очистить движения этого документа.
    Понимание этого механизма проверятся на спеце по платформе и разбирается подробно при подготовке.

    Нажмите, чтобы раскрыть...

    Понятно. Той статье Чистова в которой это разбирается (он же кажется писал?) наверно года два уже.
    Баг 1С выдается за фичу. Ну по факту баг это или фича не важно, но да, такой момент есть.
    Да, принимаю.

    Но, опять таки чтение остатков при проведении - это алгоритм или нет?
    Я думаю что алгоритм. Более того это конкретный алгоритм контроля остатков.
    И? Если мы уберем контроль остатков как алгоритм, то
    ?

Прежде чем приступить к разъяснению, хотело бы напомнить, что такое «проведение» в терминологии 1С? «Проведение» в 1С – свойство, которым обладают документы, предназначенные для ввода в базу данных первичной информации о совершенной операции. Однако информация об одной и той же хозяйственной операции может отображаться в различных документах, а значит при создании первичного документа она должна попасть в них и сохраниться. Эта процедура и называется в 1С «проведением».

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

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

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

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

Второй важный момент. На основании режима проведения документов в типовых программах (особенно предназначенных для торговли: и 1С: Управление производственным предприятием 8 ()) разработчики реализовали функции контроля различных конфликтов. Например, контроль достаточности складского запаса товаров для проведения операции по его реализации.

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

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

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

Самое подробное описание: молитва что бы от любимого отстала соперница - для наших читателей и подписчиков.Любовь - очень сильное...

Данная статья содержит: молитва к пресвятой богородице основная - информация взята со вcех уголков света, электронной сети и духовных...

Очистить карму можно при помощи молитвы «На очищение рода» . Она снимает «кармические» или родовые проблемы нескольких поколений, такие...
Н. С. Хрущёв со своей первой женой Е. И. Писаревой. В первый раз Никита Хрущёв женился ещё в 20-летнем возрасте на красавице Ефросинье...
Черехапа редко балует нас промокодами. В июле наконец-то вышел новый купон на 2019 год. Хотите немного сэкономить на страховке для...
Спор можно открыть не раньше чем через 10 дней, после того как продавец отправит товар и до того как Вы подтвердите получение товара, но...
Рано или поздно, каждый покупатель сайта Алиэкспресс сталкивается с ситуацией, когда заказанный товар не приходит. Это может случится из...
12 января 2010 года в 16 часов 53 минуты крупнейшее за последние 200 лет землетрясение магнитудой 7 баллов в считанные минуты погубило,...