Конфигурирование платформы 1С:Предприятие 8 » Конструкторы в 1С:Предприятие 8 » 
0

Конструктор движений регистров

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

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

  1. Из контекстного меню дерева метаданных для объекта метаданных:
  2. Из окна объекта метаданных на закладке «Движения»:
Внимание! Конструктор доступен только для тех документов, для которых перечислены зависимые регистры накопления и\или сведений.

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

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

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

Кнопки «Назад» и «Далее» руководят переходом по полям регистра (поле В).

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

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

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

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

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

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

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

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

// регистр ОстаткиНоменклатуры Расход
Движения.ОстаткиНоменклатуры.Записывать = Истина;
Для Каждого ТекСтрокаСписокНоменклатуры Из СписокНоменклатуры Цикл
	Движение = Движения.ОстаткиНоменклатуры.Добавить();
	Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
	Движение.Период = Дата;
	Движение.Номенклатура = ТекСтрокаСписокНоменклатуры.Номенклатура;
	Движение.Партия = Партия;
	Движение.Количество = ТекСтрокаСписокНоменклатуры.Количество;
	Движение.Сумма = ТекСтрокаСписокНоменклатуры.Сумма;
КонецЦикла;

// регистр Продажи 
Движения.Продажи.Записывать = Истина;
Для Каждого ТекСтрокаСписокНоменклатуры Из СписокНоменклатуры Цикл
	Движение = Движения.Продажи.Добавить();
	Движение.Период = Дата;
	Движение.Номенклатура = ТекСтрокаСписокНоменклатуры.Номенклатура;
	Движение.Количество = ТекСтрокаСписокНоменклатуры.Количество;
	Движение.Стоимость = Стоимость;
	Движение.СуммаПродажи = ТекСтрокаСписокНоменклатуры.Сумма;
	Движение.СуммаПрибыли = ТекСтрокаСписокНоменклатуры.Сумма - Стоимость;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
Внимание! Если Вы впервые вызываете конструктор, а процедура ОбработкаПроведения() уже есть в модуле объекта и содержит код, то по окончании работы конструктора она будет замещена. Все изменения, внесенные вручную могут быть утеряны!

Смотреть на Youtube

Добавить комментарий

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