8.х Оперативное и неоперативное проведение документов

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Smarty, 7 май 2015.

  1. TopicStarter Overlay
    Smarty
    Offline

    Smarty

    Регистрация:
    26 апр 2015
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Изучаю сабж. Ситуация такая, что нюансы по сабжу скорей ясны, а вот общая картина - не до конца. Прошу прокомментировать два пункта, которые я вывел для себя из изученного, но далеко не уверен в их корректности.

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

    Правильно написано?
  2. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.979
    Симпатии:
    397
    Баллы:
    104
    Если честно, то ход Ваших мыслей лично мне не понятен вообще уже вот как вторую тему. Все просто. Документ - это объект метаданных конфигурации. Он предназначен для отражения факта какого-либо события на предприятии. Документ делает, так называемые, движения (а может и не делать кстати) в регистры различные. (думаю следующая Ваша тема будет посвящена регистрам :D). Самый банальный пример - это поступление товара на склад. В 1С есть такое понятие как последовательность документов, т.е. документы четко привязаны ко времени. Так вот мы подошли к самому главному. Документы можно проводить оперативно и неоперативно. Оперативно значит в текущий момент времени. А неоперативно значит датой отличной от текущего времени. Отличной причем только в меньшую сторону, т.е. провести документ будущей датой в нельзя. Сколько я занимаюсь программированием, то ни разу не встречал, чтобы в коде обработки проведения была привязка к режиму проведения.
  3. TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Она не условна и абстрактна а вполне конкретна. Качай книгу "Решение прикладных задач" есть такая у 1С и читай там до полного просветления.
  4. TopicStarter Overlay
    Smarty
    Offline

    Smarty

    Регистрация:
    26 апр 2015
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Вы слишком "плаваете по поверхности" - ныряйте глубже. Когда факт [не]совпадения дат установлен - платформа-то как реагирует в том или ином случае?

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

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

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

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Платформа реагирует тем, что при оперативном проведении дата документа устанавливается реальным временем проведения автоматически.
  6. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.979
    Симпатии:
    397
    Баллы:
    104
    Я лучше буду молчать...
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Smarty возможно я не до конца понял, что вы хотите сказать.
    Но так, если рассуждать, то да, между документами (и их движениями тоже, сходу не могу придумать пример обратного) проводимыми оперативно и не оперативно разницы нет, и все отличие в алгоритмах, которые будет использовать разработчик конфигурации анализируя текущий режим проведения.


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

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Есть отличия при чтении остатков из регистров. Если проводите оперативно то не важно передадите вы Границу или нет... чтение будет производится из таблицы остатков регистра рассчитанных на 3999 год.
    Вы передаёте момент времени и по нему система понимает оперативно проводится документ или нет.
  9. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    TODD22 я не понял вашей фразы.

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


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


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

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Это уже какие то допущения. Вопрос стоял в том есть ли разница в поведение платформы при оперативном или не оперативном проведение. По крайней мере я его понял так.
    Читайте хоть на начало прошлого года. Я говорил о том что если в параметры виртуальной таблицы регистра накопления передать МоментВремени(то есть дата+ссылка) то платформа определит оперативно или нет проводится документ. И если он проводится оперативно то данные будут прочитаны из виртуальной таблицы остатков на 3999 год(или 5999 год... не помню точно).
    То есть если мы захотим исключить например движения самого документа из результата запроса и передадим например "границу" исключающую движения самого документа то это не сработает. И нужно предварительно очистить движения этого документа.
    Понимание этого механизма проверятся на спеце по платформе и разбирается подробно при подготовке.

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

    shurikvz Модераторы Команда форума Модератор

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

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

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Не знаю про какую статью речь. Это я смотрю на видео курсах по подготовке на спеца по платформе. Курс совершенно свежий и вышел буквально месяц или два назад(не который он с Насиповым делали, хотя и он то же есть у меня).
    При чём тут алгоритм? Мы же говорим о поведение платформы при "оперативном" и "не оперативном" проведение. Мы можем в наших алгоритмах вообще документ не использовать. Но от этого платформа не стала работать по другому.
    Человек задал вопрос кроме как анализировать свойство и делать свои алгоритмы есть ли разница в поведение платформы при проведение. Да есть разница. В этом как бы и заключается ответ.
    То есть не зная этого "бага" или "фичи" можно написать не правильный алгоритм. Ну и на экзамене на спеца это проверяется. Можно неверно решить задачу и не сдать экзамен.
    Последнее редактирование: 9 май 2015
  13. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Поясню о чем я говорю.
    При проведении документ делает движения по регистрам.
    Создадим новый документ минимальный: Дата + Табличная часть с двумя реквизитами. Создадим регистр минимальный: одно измерение + один ресурс.
    Возьмем конструктор проведения, и им создадим минимальный код достаточный для движения по регистрам.
    Он будет выглядеть приблизительно так:
    Код:
    Процедура ОбработкаПроведения(Отказ, Режим)
    Движения.Регистр.Записывать = Истина;
    Движения.Регистр.Очистить();
    Для Каждого СтрокаТабличнойЧасти Из ТабличнаяЧасть Цикл
    Движение = Движения.Регистр.ДобавитьРасход();
    Движение.Период = Дата;
    Движение.Реквизит1 = СтрокаТабличнойЧасти.Реквизит1;
    Движение.Количество = СтрокаТабличнойЧасти.Реквизит2;
    КонецЦикла;
    КонецПроцедуры
    
    это все.
    Этот минимальный документ рабочий? Он проводится и делает движения по регистру?
    Будут ли отличия при оперативном и не оперативном проведении этого минимального документа в поведении платформы?
    --- Объединение сообщений, 9 май 2015 ---
    Понятно. Я про эту статью говорил: http://1c.chistov.pro/2013/07/blog-post_25.html там затронут этот момент.
    Последнее редактирование: 9 май 2015
  14. TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Ну тогда приведи в пример вообще конфигурацию с одной константой и вопрос об "оперативном" и "не оперативном" отпадёт.
    В конкретном случае нет.

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

Поделиться этой страницей