Последовательность 1С

Теги: 1С:Предприятие • Документ • ПередЗаписью • ПередЗаписьюНаСервере • ПослеЗаписи • ПослеЗаписиНаСервере • ПриЗаписи • ПриЗаписиНаСервере • Событие

Последовательность событий при записи нового документа из формы документа

Заливкой выделены события, выполняющиеся в транзакции записи.

Последовательность событий при проведении документа из формы документа (провести и закрыть)

Заливкой выделены события, выполняющиеся в транзакции записи.

Последовательность событий при отмене проведения документа из формы документа

Заливкой выделены события, выполняющиеся в транзакции записи.

Обработчики событий

ПередЗаписью(Отказ, ПараметрыЗаписи) // модуль формы клиент

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

  • Отказ, тип Булево. Признак отказа от записи. Если в теле процедуры-обработчика установить данному параметру значение Истина, запись выполнена не будет и будет вызвано исключение. Значение по умолчанию: Ложь.
  • ПараметрыЗаписи, тип Структура. Структура, содержащая параметры записи. Для формы документа существует два предопределенных параметра — РежимЗаписи и РежимПроведения. Они добавляются автоматически при вызове команд «Провести», «Провести и закрыть», «Отмена проведения». Параметр РежимПроведения может отсутствовать, если режим проведения в документе не определен.

Примечание: В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере.

ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) // модуль формы сервер

Расширение управляемой формы для документа. Вызывается перед записью объекта на сервере. Можно отменить запись. Выполняется вне транзакции.

  • Отказ, тип Булево. Признак отказа от записи. Если в теле процедуры-обработчика установить данному параметру значение Истина, запись выполнена не будет и будет вызвано исключение. Значение по умолчанию: Ложь.
  • ТекущийОбъект, тип ДокументОбъект.ИмяДокумента. Записываемый объект.
  • ПараметрыЗаписи, тип Структура. Структура, содержащая параметры записи. Для формы документа существует два предопределенных параметра — РежимЗаписи и РежимПроведения. Они добавляются автоматически при вызове команд «Провести», «Провести и закрыть», «Отмена проведения».

ДокументОбъект.ИмяДокумента.ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) // модуль объекта сервер

Возникает перед выполнением записи объекта. Процедура-обработчик вызывается после начала транзакции записи, но до начала записи документа.

  • Отказ, тип Булево. Признак отказа от записи. Если в теле процедуры-обработчика установить данному параметру значение Истина, то запись выполнена не будет и будет вызвано исключение. Значение по умолчанию: Ложь.
  • РежимЗаписи, тип РежимЗаписиДокумента. В параметр передается текущий режим записи документа. Позволяет определить в теле процедуры режим записи. Изменение значения параметра позволяет изменить режим записи.
  • РежимПроведения, тип РежимПроведенияДокумента. В данный параметр передается текущий режим проведения. Изменение значения параметра позволяет изменить режим проведения.

ДокументОбъект.ИмяДокумента.ПриЗаписи(Отказ) // модуль объекта сервер

Возникает при записи объекта. Процедура-обработчик вызывается после записи объекта в базу данных, но до окончания транзакции записи.

  • Отказ, тип Булево. Признак отказа от записи документа. Если в теле процедуры-обработчика установить данному параметру значение Истина, то запись документа выполнена не будет. Значение по умолчанию: Ложь.

ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) // модуль формы сервер

Расширение управляемой формы для документа. Возникает на сервере при записи объекта из формы. Процедура-обработчик вызывается после записи объекта (после события ПриЗаписи объекта) в базу данных, но до окончания транзакции записи.

  • Отказ, тип Булево. Признак отказа от записи. Если в теле процедуры-обработчика установить данному параметру значение Истина, то запись произведена не будет. Значение по умолчанию: Ложь.
  • ТекущийОбъект, тип ДокументОбъект.ИмяДокумента. Записываемый документ.
  • ПараметрыЗаписи, тип Структура. Структура, содержащая параметры записи. Для формы документа существует два предопределенных параметра — РежимЗаписи и РежимПроведения. Они добавляются автоматически при вызове команд «Провести», «Провести и закрыть», «Отмена проведения».

ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) // модуль формы сервер

Расширение управляемой формы для документа. Вызывается после записи объекта на сервере и после завершения транзакции.

  • ТекущийОбъект, тип ДокументОбъект.ИмяДокумента. Записываемый объект.
  • ПараметрыЗаписи, тип Структура. Структура, содержащая параметры записи. Для формы документа существует два предопределенных параметра — РежимЗаписи и РежимПроведения. Они добавляются автоматически при вызове команд «Провести», «Провести и закрыть», «Отмена проведения».

ПослеЗаписи(ПараметрыЗаписи) // модуль формы клиент

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

  • ПараметрыЗаписи, тип Структура. Структура, содержащая параметры записи. Для формы документа существует два предопределенных параметра — РежимЗаписи и РежимПроведения. Они добавляются автоматически при вызове команд «Провести», «Провести и закрыть», «Отмена проведения».

Примечание: В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере.

Поиск: 1С:Предприятие • Документ • Перед записью • Перед записью на сервере • После записи • После записи на сервере • При записи • При записи на сервере • Событие

Последовательность в 1С Предприятие 8.3 – это объект метаданных, позволяющий контролировать хронологический порядок документов. Это важно при учете списания материалов, взаиморасчетах с контрагентами, например, при проведении документа оприходования задним числом будет некорректно определена стоимость ранее списанных материалов, так как при списании ТМЦ были проанализированы данные на момент проведения документа списания.

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

Приглашаем на
бесплатный вебинар! 24 сентября в 11:00 мск 30 минут

Если мы откроем 1С в режиме Конфигуратора и развернем узел «Документы» дерева метаданных, то увидим строку «Последовательности».

Рис.1 Здесь мы используем «1С:Бухгалтерия предприятия 3.0»Рис.2 Дерево «1С:Управление торговлей 11.3»

Данные последовательности описывают документы, входящие в нее, и определяют механизмы, позволяющие перепровести их при необходимости. Если мы откроем последовательность и перейдем на закладку «Использование», увидим список документов входящих в нее.

Рис.3 Пример в «1С:Бухгалтерии предприятия 3.0»

В 1С:УТ мы видим список регистров, влияющих на последовательность.

Рис.4 На примере 1С:УТ 11.3

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

Восстановление последовательностей 1С

Откроем «1С:Бухгалтерия 3.0» в пользовательском режиме. В данной конфигурации важен контроль изменений – перепроведение и ввод «задним числом». Рассмотрим, как программа выполнит перепроведение с момента, когда было обнаружено нарушение.

При закрытии месяца

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

Рис.5 При «Закрытии месяца» автоматом контролируется правильность последовательности

При этом пользователь может выбрать, работает он с документами предыдущих периодов или только с текущими. Взятый для примера был изменен в текущем периоде – январе, поэтому мы смело ставим «Закрыть только Январь 2019».

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

Рис.6 Принудительное перепроведение

Нажатие по гиперссылке «1 документ», откроет отчет со списком измененных документов за период, и мы проанализируем, надо ли их перепровести.

Рис.7 Отчет об изменениях

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

Перепроводка и установка границ в разделе «Все функции»

Можно использовать нашу стандартную обработку через раздел «Все функции». Если данный он недоступен, включить его можно в пункте меню «Сервис-Параметры», активировав команду ее отображения.

Рис.8 Отображать все функции

В «Стандартных» мы увидим нужный нам пункт.

Рис.9 Стандартные-Проведение

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

Рис.10 Восстановить хронологию

У нас граница на дате 01.01.0001. Поскольку мы видели в конфигураторе, что стоит режим – «Не перемещать», дата границы постоянно в одном положении и не изменяется.

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

Рис.11 Если имеются непроведенные документы, то лучше пользователю их проработать, просмотреть отдельно

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

Обработка «Групповое перепроведение документов»

В разделе все функции доступна обработка «Группового перепроведения» (узел «Обработки»).

Рис.12 Групповое перепроведение документов

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

Рис.13 В данной обработке нет выбора документов, а указывается только период проведения

Нажав кнопку «Выполнить», документы проводятся за выбранный период.

Несмотря на имеющийся выбор вариантов, первый рассмотренный нами способ – при поведении в закрытии месяца, является максимально удобным в «Бухгалтерии».

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

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

Таким образом один из ключевых столпов, на которых работает 1С – это документы 1С.

Давайте рассмотрим в этом уроке — что такое документы 1С и принципы работы с ними.

Документы 1С не являются справочной информацией (как справочники 1С), наоборот — каждый документ описывает хозяйственную операцию в жизни компании (фирмы). Набор всех введенных пользователями документов 1С вместе – это и есть учет компании.

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

Таким образом:

  • Есть вид учета: денежных средств, товаров и прочего.
  • Информация из справочников определяет разрез вида учета: касса, счет в банке, товар.
  • Документы 1С определяют движение количества и/или суммы по разрезу в учете: касса +1000 рублей, счет -1000 рублей, товар +10 штук.

Зачем нужны Документы 1С

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

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

Сейчас на каждый чих придумана такая своя бумажка. Называется она документ учета. А в частности – конкретные называния документов: приходная накладная , счет-фактура, кассовый ордер.

Когда уже появилась 1С и другие программы учета, стало ясно, что как таковые первичные документы в программе не нужны – если цель посчитать сколько итого заработали или есть товаров. Например, можно просто записывать в некую таблицу или журнал движение денег по кассе и будет Вам итого (как в Excel).

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

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

Где расположены Документы 1С

Аналогично, как и со справочниками, в режиме 1С Предприятие пользователь видит не какое-то стандартное меню 1С, а интерфейс, разработанный программистом. Поэтому угадать куда программист положил конкретный документ нельзя. Как фантазия позволила.

Для администратора (т.е. того самого программиста) есть стандартное меню, которое содержит все документы 1С конфигурации. Это меню Операции / Документы 1С, через который можно открыть любой документ.

В новой 1С, тонкий / управляемый клиент, есть аналогичное меню с названием Все функции. Работает так же как и Операции в толстом клиенте.

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

Как выглядят Документы 1С

Перед тем, как начать работать с конкретным документом №33 от 1 октября, Вы открываете список документов.

Список бывает двух видов:

  • Простой список документов 1С конкретного вида (на сленге часто называют ДокументСписок), например «Список приходных накладных»
  • Журнал документов 1С – это отдельный Объект 1С, который позволяет создать сплошной список разных видов документов, например «Список складских документов».

1) Документы 1С имеют признаки, которые позволяют отличать один документ 1С от другого. Основные признаки документов 1С, на основании которых организуется список, это:

  • Дата документа
  • Номер документа
  • Проведен по регистрам.

По умолчанию документ не проведен. Это значит он не виден в отчетах. Чтобы документ был виден в отчете — его нужно провести.

Чтобы провести документы 1С — нужно нажать или кнопку ОК (расшифровывается как Записать и Провести), или кнопку Провести (в меню по правой кнопке мыши в списке документов или кнопка в панели вверху окна документа).

Провести документы 1С можно оперативно и неоперативно.

2) К ним конечно же добавляются вторичные, но не менее важные учетные признаки:

  • Организация
  • Контрагент (т.е. клиент)
  • Сумма и валюта (т.е. рубли, доллары) документа.

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

При двойном щелчке мышкой на конкретном документе – открывается форма (т.е. окно) самого документа. Она делится на «шапку» (обычно основные перечисленные выше поля) и закладки с табличными частями (таблицами).

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

Документы 1С отличают один от другого – датой и номером. Это его главные уникальные поля. Номера 1С присваивает автоматически.

Усложнение 1. Часто номера документов должны быть с «префиксом» по организации, т.е. не «001», а «ОА0001» и «БВ001». Префикс тогда указывается в справочнике организаций – для одной ОА, для другой БВ.

Усложнение 2. Бывает, что у разных документов должна идти сплошная уникальная нумерация подряд. Для этих случаев есть объект 1С – Нумератор. Он расположен внутри ветки конфигурации Документы, в самом верху.

Усложнение 3. Последовательности. Мы рассмотрим в уроке «Дата 1С».

Поле Номер, обычно по-умолчанию закрыты от редактирования пользователем. Изменить можно вот таким способом (конечно если это разрешено правами).

Документы 1С — настройка и разработка

Создание новых документов 1С или изменение существующих проводится в конфигураторе. Методика работы – такая же, как и с другими объектами. Общие принципы мы рассматривали в предыдущих уроках.

Документы 1С — основные особенности по закладкам конфигуратора:

  • Основные – название справочника в конфигураторе (Имя) и для пользователя (Синоним)
  • Подсистемы и Функциональные опции – на какой закладке рабочего стола пользователя в тонком клиенте будет находится документ, условия его видимости
  • Данные
    o Список реквизитов – т.е. полей «шапки» документа
    o Табличные части – таблицы документа, например список товаров с количествами и суммами
  • Нумерация – очень важный пункт для документа, определяет каким образом будет назначаться номер; нумератор (см. выше) можно не назначать – он указывается только тогда, когда нужно объединить нумерацию разных документов
  • Движения – документ содержит количество и сумму результата своего «движения» учета, этот результат он записывает в один или несколько регистров, в которых и считается итого по учету; подробнее мы рассмотрим в будущих уроках
  • Последовательности – возможно привязать документ к последовательности, что это такое мы расскажем в следующем уроке
  • Журналы – это формы списков документов, которые объединяют разные документы, например «Все документы по складу», журнал можно создать в соответствующей ветке конфигурации, а здесь можно включить или исключить документ из журнала
  • Формы – это окна, с помощью которых пользователь работает с документом; основные – это форма списка документов и форма самого документа; форм может быть несколько – форма по-умолчанию указывается здесь же
  • Макеты – как мы говорили электронный документ учета напрямую связан с бумажным; текущая практика – сначала вводится электронный, а потом он распечатывается; макеты – это шаблоны печатных форм документов
  • Ввод на основании – очень часто документы в жизни компании связываются в цепочки, например мы купили машину товара и сразу же всю ее продали; оформляется это двумя разными по сути, но одинаковыми по содержанию документами, которые нужно вводить последовательно; чтобы не заполнять несколько раз одно и то же, есть возможность вводить один документ на основании другого, при этом заполнение производится автоматически

Последовательность документов есть в УПП,ERP,Комплексной автоматизации, Управлении торговлей, Бухгалтерии, Зарплате и управлении персоналом.

Что значит последовательность?

Строго говоря, одним из правил учета является его оперативность, т.е. отражение хозяйственных операций по мере их возникновения. 1 июня на склад поступило 10 штук товара А, потом 10 июня продано 8 штук.

Если проводить эти документы (Поступление товаров и услуг, Реализация товаров и услуг) строго в хронологическом порядке, то последовательность установится сначала на 1 июня, потом на 10 июня. Т.е. ее граница будет сдвигаться вперед каждым документом, и итоги (количество, сумма, себестоимость) будут актуальными на каждый момент времени.

Если же потом, задним числом, провести еще один документ (Реализация товаров и услуг) от 8 июня, которым будет оформлена реализация 7 штук товара А, программа дает это сделать беспрепятственно. Граница последовательности при этом установится на 8 июня, на этот документ. То есть информация ДО ввода этого документа верна, а ПОСЛЕ – уже нет.

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

Как восстанавливать последовательность?

Восстановить последовательность можно встроенной обработкой через Главное меню-Все функции-Стандартные-Проведение документов(работает для Бухгалтерии 3,Зарплата и управление персоналом 3.1,Комплексная автоматизация 2.4,ERP,Управление торговлей 11).

Для Управление торговлей 10.3 нужно перейти Сервис-Универсальные обработки-Групповая обработка справочников и документов. Или выполнить только перепроведение по партиям Операции-Обработка-Проведение по партиям.

Как часто восстанавливать последовательность?

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

При работе с датами 1С, типовой порядок частей даты – год, месяц, день, час, минуты, секунды. При этом часы, минуты, секунды можно пропустить.

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

Работа с датами 1С — Пустая дата 1С

Чтобы проверить дату 1С на заполненность – ее сравнивают с «пустой датой». При наличии в справочнике/документе реквизита с типом дата, если пользователь не заполнил это поле, то ее значение также будет – «пустая дата».

«Пустая дата» — это 01.01.0001 00:00:00.

Работа с датами 1С — Дата в реквизитах (справочников, документов и т.п.)

При указании типа реквизита можно указать использовать:

  • Только дату (время тогда всегда равно 00:00:00)
  • Только время (дата тогда всегда равна 01.01.0001)
  • Дату и время

Получение даты

Для получения даты и времени используется функция 1С ТекущаяДата().

Очень важно место – где вызывается эта функция – на клиенте или на сервере. Подробнее см. тему «Режим исполнения/Исполнение». Часто бывает, что на клиентских машинах время немного разное, поэтому стараются везде использовать серверное время – даже если оно установлено на сервере не верно, то хотя бы у всех клиентов будет одинаковое неверное время.

Для того, чтобы получить серверную дату (дату, установленную в операционной системе компьютера сервера), обычно в конфигурации создают общий модуль с установленной галочкой «Сервер» в свойствах, и в нем создают функцию
//функция расположена в общем модуле, например с именем СерверныеФункции
//в свойствах общего модуля установлена галочка «Сервер» и не установлена галочка «Клиент»
Функция ПолучитьДатуСервера() Экспорт
Возврат ТекущаяДата();
КонецФункции

//вызов этой функции для использования из другого модуля выглядит так
ДокументОбъект.Дата = СерверныеФункции.ПолучитьДатуСервера(); //ИмяМодуля.ИмяФункции()

Также в тонком клиенте непосредственно у функций модулей указывается где она будет исполнена:

Только зарегистрированные пользователи VIP группы могут видеть этот контент.

Начало и конец дня

Для даты «30.10.2012»:

  • дата начала дня выглядит так «30.10.2012 00:00:00»
  • дата конца дня выглядит так «30.10.2012 23:59:59»

Используется в отчетах и запросах, требующих получить данные за период – день, месяц, год.

Так например период с «01.01.2012 00:00:00» по «31.01.2012 00:00:00» неверен, так как не включает в себя один день месяца (но включает в себя одну секунду последнего дня месяца).

Работа с датами 1С — Сравнение дат

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

На всякий случай, пример сравнения даты в периоде:
Если ДокументСсылка.Дата >= НачалоМесяца(ТекущаяДата()) и
ДокументСсылка.Дата

Работа с датами 1С — Изменение даты

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

Также мы можем изменить дату, при изменении мы добавляем или отнимаем количество секунд:
НачалоЭтогоДня = НачалоДня(ТекущаяДата());

НачалоПредыдущегоДня = НачалоДня(НачалоЭтогоДня – 1); //убираем секунду – делая «вчера» и берем начало дня у «вчера»

Работа с датами 1С — Момент времени

Момент времени – это расширенное представление даты, применимое к документам (и соответственно регистрам).

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

Момент времени можно получить у документа следующими способами:
//способ 1
МоментВремениДокумента = ДокументСсылка.МоментВремени();

Только зарегистрированные пользователи VIP группы могут видеть этот контент.

Add a Comment

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