Корректировка движений регистра (Проведение без Проведения)

2. Регистры накопления

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

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

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

Выше мы упоминали, что в 1С:Предприятие существуют различные регистры. В частности, это регистры накопления, регистры сведений, регистры расчета и регистры бухгалтерии. В данный момент нас интересуют регистры накопления.

3. Настройка проведения документа

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

Каждой записи соответствует регистратор — документ, который сделал эту запись. Записи в регистры выполняются при проведении документа. Этот процесс еще называют формированием движений по регистру.

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

Сразу после этого станет активна кнопка Конструктор движений в нижней части формы. Документ можно назначить регистратором и из формы настройки свойств регистра.

Обратите внимание на настройки, которые можно задавать на вкладке Движения.

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

Сейчас мы готовы к тому, чтобы настроить процедуру проведения документа. Нажмем на кнопку Конструктор движений. Появится форма конструктора (
рис.
5.13).

В окне конструктора мы можем выбрать регистр, по которому следует сформировать движение (в нашем случае — это единственный регистрОстаткиМатериалов. ПараметрТип движения регистра может принимать одно из двух значений:

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

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

Автоматическое заполнение производится, во-первых, с учетом типов, во-вторых, с учетом названий. На
рис.
5.14 вы можете видеть окно конструктора движений после выбора в полеТабличная часть табличной части Материалы и нажатия на кнопку Заполнить выражения.

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

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

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

Выделим полеЦентрОтветственности. Ему соответствует реквизитдокументаОтветственныйСотрудник. Для того, чтобы подставить реквизит в поле, достаточно сделать по нему двойной щелчок.

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

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

Сейчас работа с конструктором движений завершена, нажмем на кнопку ОК. Будет сформирована процедура, которая сработает при проведении документа,
рис.
5.16.

Ниже приведен текст процедуры:

Эта процедура расположена в модуле объекта — то есть — документа.

Основой процедуры является цикл:

Этот цикл выполняется для каждой строки (на нее ссылается переменнаяТекСтрокаМатериалы ) табличной части Материалы. То есть, в цикле последовательно перебираются все строки табличной части

В теле цикла создается новое движение из коллекции движений документа:

Далее устанавливается вид движения и заполняются реквизиты движения.

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

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

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

Предлагаем ознакомиться  Соглашение об алиментах размер выплаты, порядок взыскания, ответственность за неисполнение - 2020 год

Проведем документ нажатием на кнопку Провести — посмотрим — какие движения он сформировал и проверим правильность отражения сведений в регистре,
рис.
5.18.

В регистре появились записи. Это — записи по приходу материалов (в левой части каждой строки мы видим знак » «), регистратором выступает документ, который мы только что сформировали. РеквизитыНоменклатура, Центр ответственности, Количество, Сумма, заполнены верно.

Движения документа

Самая важная вкладка, на которой определяется состав регистров, по которым будет делать движения документ:

Рассмотрим подробно свойства документа на этой странице:

Проведение
— разрешить или запретить. Определяет, будут ли движения по данному документу.

Оперативное проведение
— разрешить или запретить. Если установлено разрешить, то проведение документа будущей датой невозможно.

Удаление движений
— определяет режим очистки движения документа: Удалять автоматически при отмене проведения
— движения будут очищены только при нажатии кнопки «Отмена проведения», но не удаляет при перепроведении. Удалять автоматически
— значит, что движения будут удаляться в любом случае, даже если документ 1С перепроводится. Не удалять автоматически
— значит, что удаление движений берет на себя разработчик системы.

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

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

Действие записать

Для непроведенного документа последовательность выполнения событий при записи документа из формы будет следующей:

  1. Модуль формы (&НаКлиенте) — перед записью;
  2. Модуль формы (&НаСервере) — перед записью на сервере;
  3. Модуль объекта — перед записью (начинается транзакция, документ еще не записан);
  4. Модуль объекта — при записи (документ записан);
  5. Модуль формы (&НаСервере) — при записи на сервере (фиксация транзакции);
  6. Модуль формы (&НаСервере) — после записи на сервере;
  7. Модуль формы (&НаКлиенте) — после записи.

Заметим, что для расширения формы документа платформа 1С по-умолчанию устанавливает значение 

Истина

 для свойства 

ПриЗаписиПерепроводить

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

  1. Модуль формы (&НаКлиенте) — перед записью;
  2. Модуль формы (&НаСервере) — обработка проверки заполнения на сервере;
  3. Модуль объекта — обработка проверки заполнения;
  4. Модуль формы (&НаСервере) — перед записью на сервере;
  5. Модуль объекта — перед записью (начало транзакции, документ еще не записан);
  6. Модуль объекта — при записи (документ записан);
  7. Модуль объекта — обработка проведения (формирование набора записей движений документа);
  8. Модуль формы (&НаСервере) — при записи на сервере (записан набор записей движений документа, фиксация транзакции);
  9. Модуль формы (&НаСервере) — после записи на сервере;
  10. Модуль формы (&НаКлиенте) — после записи.


Если для свойства

ПриЗаписиПерепроводить

установить значение

Ложь

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

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

Предлагаем ознакомиться  Требования Для Доцента Вак 2021г | Юридический блог

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

ОбработкаПроведения

. Но, при записи проведенного документа с перепроведением и при записи документа, у которого запрещено проведение, кроме самой записи, в контексте формы и в контексте объекта вызывается также событие

ОбработкаПроверкиЗаполнения

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

Действие отмена проведения


Данное действие инициирует запись документ и запускает следующую последовательность событий:

  1. Модуль формы (&НаКлиенте) — перед записью;
  2. Модуль формы (&НаСервере) — перед записью на сервере;
  3. Модуль объекта — перед записью (начало транзакции);
  4. Модуль объекта — обработка удаления проведения (удаление движений);
  5. Модуль объекта — при записи (движения удалены, документ записан);
  6. Модуль формы (&НаСервере) — после записи на сервере (фиксация транзакции);
  7. Модуль формы (&НаКлиенте) — после записи.

Если действия выполняются не из формы (выполняются программно), отличия состоя в том, что не выполняются события формы!

Действие провести

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

Действие провести и закрыть

Последовательность выполнения событий аналогична действию провести (см. рисунок 2).

Корректировка движений регистра (проведение без проведения)

Универсальные функцииПрактика программированияv8Бесплатно (free)

«Я не могу просто взять и скопировать код с гитхаба», «у нас 1С микросервисами окружена», «возможностей мало» — частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще — берём и используем.

28.12.2020   
6510   
comol   
31    

Настройка и свойства документов в 1c 8.3 и 8.2

Рассмотрим самые интересные вкладки с точки зрения разработчика.

Данные

Одна из основные вкладок документа:

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

Получите 267 видеоуроков по 1С бесплатно:

Универсальное изменение движений документов по регистрам(уф)

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

Внимание!!! При проведении все изменения, введенные вручную, затираются, и происходит стандартное проведение документа.

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

4. Выводы

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