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

Обновлено: 28.04.2024

Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.

Обращаем Ваше внимание, что c 1 сентября 2022 года вступают в силу новые федеральные государственные стандарты (ФГОС) начального общего образования (НОО) №286 и основного общего образования (ООО) №287. Теперь требования к преподаванию каждого предмета сформулированы предельно четко: прописано, каких конкретных результатов должны достичь ученики. Упор делается на практические навыки и их применение в жизни.

Мы подготовили 2 курса по обновлённым ФГОС, которые помогут Вам разобраться во всех тонкостях и успешно применять их в работе. Только до 30 июня Вы можете пройти дистанционное обучение со скидкой 40% и получить удостоверение.

Лабораторная работа № 9

Тема работы: Проведение документа «Приходная накладная »по нескольким регистрам.

Цель работы: Научиться проводить различные документы по нескольким регистрам.

Ход выполнения работы.

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

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

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

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

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

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

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

3. На закладке Данные создадим для регистра одно измерение – Материал с типом СправочникСсылка.Номенклатура и один ресурс - Стоимость с длиной 15 и точностью 2 .

4. После создания регистр СтоимостьМатериалов должен выглядеть в дереве конфигурации следующим образом


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

6. Аналогично, выделив подсистемы ОказаниеУслуг и УчетМатериалов, в панели навигации в группе Обычное включим видимость у команды Стоимость материалов и перенесем ее в группу См.также. Теперь можем приступить к внесению изменений в процедуру проведения наших документов. Начнем с самого простого - документа ПриходнаяНакладная.

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

8. Перейдем на закладку Прочее и откроем модуль объекта. Для этого нажмем кнопку Модуль объекта. Откроем процедуру обработчика события ОбработкаПроведения. В самом конце цикла перед строкой КонецЦикла добавим строки кода, создающие движения в регистре СтоимостьМатериалов (листинг 1 )

Листинг 1. Движения документа «ПриходнаяНакладная» (фрагмент)

//регистр стоимость материалов

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

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

Процедура ОбработкаПроведения(Отказ, Режим)

// Данный фрагмент построен конструктором.

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

Для чего нужны измерения регистра, ресурсы и реквизиты?
Измерение - накопление числовой информации в данном разрезе;
Резурсы - виды числовой информации, накапливаемой регистром;
Измерение так же является критерием отбора при получении данных;
Реквизиты - набор попутных данных для записи регистра;

Что такое движение регистра и что такое регистратор?
Движение регистра - в регистр отправляется некоторый набор записей, содержащий значение измерения, значения приращения ресурсов, ссылку на документ, который вызвал эти изменения (регистратор);
Регистратор - объект информационной базы данных (документ), который производит конкретные движения;

Как создать новый регистр накопления и описать его структуру?
В 1С:Конфигуратор правый клик - добавить. Структура определяется на вкладке "Данные"


Как создать движение документа с помощью конструктора движений?
Выбираем нужный документ в конфигураторе, правый клик - изменить, закладка "Движения"



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


Как с помощью встроенного языка обойти табличную часть документа и обратится к её данным?
Это можно сделать с помощью циклов.
Для Каждого СтрокаТабличнойЧасти ИЗ ТабличнаяЧасть ЦИКЛ
Сообщить(СтрокаТабличнойЧасти.Услуга)
КонецЦикла

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

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

Конструктор движений позволяет:

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

Вызов конструктора движений 1С:

Конструктор может быть вызван из окна редактирования документа на вкладке "Движения":

Вызов конструктора движений 1С

Примечание: если кнопка "Конструктор движений" неактивна, то необходимо проверить свойство подчиненного регистра учета «Режим записи» - «Подчинение регистратору» (обязательно указание документа-регистратора записи).

Окно конструктора движений

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


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

По нажатии кнопки "ОК" платформа сформирует в модуле документа обработку проведения, которая впоследствии будет вызываться в момент проведения документа:

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

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

Откроем окно редактирования объекта конфигурации Документ ОказаниеУслуги.
Перейдем на закладку Движения и в списке регистров конфигурации отметим регистр накопления ОстаткиМатериалов.
- Нажмем кнопку Конструктор движений:
1.Тип движения регистра - Расход
2. В поле выбора Табличнаячасть выберем табличную часть нашего документа - ПереченьНоменклатуры.
3.Нажмем кнопкуЗаполнить выражения.
4. Выделим поле регистра Материал и в окне Реквизитыдокумента дважды щелкнуть по строке ТекСтрокаПереченьНомеклатуры.Номенклатура., нажмем «ОК»


Рис. 6.9. Конструктор движения регистров

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

Для этого откроем форму документа ОказаниеУслуги.
В левом верхнем окне перейдем на закладку Командныйинтерфейс.
В разделе Панельнавигации раскроем группуПерейти и установим видимость для команды открытия регистра накопления Остаткиматериалов.

Запустим 1С:Предприятие в режиме отладки и в разделе Оказаниеуслуг откроем документ Оказание услуги № 1 и нажмемПровести и закрыть, то есть перепроведем его.
Теперь выполним команду Остаткиматериалов и откроем список нашего регистра накопления:


Рис. 6.10. Движения по регистру Остатки материалов

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

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

Конструктор можно вызвать двумя способами:

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

Описание конструктора


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

Поле А — список регистров, по которым формируются движения;
Поле Б — список реквизитов текущего документа, доступные для выбора (если в движениях участвует табличная часть, ее необходимо выбрать в одноименном поле);
Поле В — список полей текущего регистра накопления, доступные для заполнения;

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

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

Кнопка «Очистить выражения» — очищает любые изменения.

Кнопка «ОК» завершает работу конструктора с сохранением изменений.

Кнопка «Отмена» завершает работу конструктора без сохранения изменений.

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

Результатом работы конструктора будет процедура ОбработкаПроведения() в модуле текущего объекта. Обратите внимание, что в процедуре присутствуют служебные комментарии конструктора. Таким образом конструктор отделяет свои изменения от кода, введенного вручную:

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

Смотреть на Youtube

Читайте также: