- •5.Что такое предопределенные элементы
- •6.Какие основные формы существуют у справочника
- •7.Когда следует использовать редактирование справочника в списке, а когда – в диалоге
- •12.Какие существуют основные формы документа
- •13.Для чего предназначен объект конфигурации Регистр накопления
- •14.Для чего нужны измерения регистра, ресурсы и реквизиты
- •15.Что такое движения регистра и что такое регистратор
- •16.Как средствами встроенного языка обойти табличную часть документа и обратиться к ее данным
- •17.Как средствами встроенного языка сформировать и записать движения документа в регистр накопления
- •18.Как создать новый регистр накопления и описать его структуру
- •19.Как создать движения документа с помощью конструктора движений
- •20.Для чего предназначен объект конфигурации Отчет
- •21.Для чего предназначен объект конфигурации Макет
- •22.Как изменить табличный документ
- •23.Какая разница в заполнении ячейки табличного документа текстом, параметром и шаблоном
- •24.Как с помощью встроенного языка вывести в табличный документ новую область
- •25.Как изменить внешний вид и поведение элемента управления, расположенного в форме
- •26.Как отобразить сумму по колонке табличного поля
- •33.Как получить значения ресурсов наиболее поздних записей регистра средствами встроенного языка
- •34.Для чего предназначен объект конфигурации Перечисление
- •35.Как обратиться к значению перечисления средствами встроенного языка
- •36.Для чего используется сервер вызов сервера?
- •37.Как с помощью конструктора создать движения документа по нескольким регистрам
- •38.Что такое оборотный регистр накопления?
- •39.Для чего предназначен объект встроенного языка Запрос
- •40.Что является источником данных запроса
- •41.В чем отличие между реальными, виртуальными и ссылочными таблицами
- •42.Из каких частей состоит текст запроса, какие из них являются обязательными
- •43.Каковы основные синтаксические конструкции языка запросов
- •44.Как использовать конструктор запроса
- •45.Что такое псевдонимы в языке запросов
- •46.Что такое параметры запроса
- •47.Что такое параметры виртуальной таблицы
- •48.Что такое левое соединение
- •49.Как упорядочить данные в отчете
- •50.Как использовать в отчете данные нескольких таблиц
- •51.Как использовать группировки в структуре отчета
- •52.Как вывести в отчет иерархические данные
- •53.Как управлять выводом итогов по группировкам и общих итогов
- •54.Как создать отчет, содержащий диаграмму
- •55.Как использовать параметры в системе компоновки данных
- •56.Как дополнить данные отчета всеми датами в группировке по периоду
37.Как с помощью конструктора создать движения документа по нескольким регистрам
Откроем в конфигураторе окно редактирования объекта конфигурации Документ ПриходнаяНакладная и перейдем на закладку Движения. В списке регистров отметим, что документ будет создавать теперь движения и по регистру СтоимостьМатериалов. Запустим конструктор движений и согласимся с тем, что существующая процедура ОбработкаПроведения будет замещена.
Перед нами откроется окно конструктора движений, которое будет содержать созданные нами ранее движения документа по регистру ОстаткиМатериалов. Добавим в список регистров, по которым формируются движения, еще один – СтоимостьМатериалов. Выберем для него ту же табличную часть Материалы и заполним выражения.
Для ресурса Стоимость выберем значения реквизита табличной части Сумма
Нажмем OK и посмотрим на текст, который сформировал конструктор (листинг 3.1).
Листинг 3.1. Процедура ОбработкаПроведения()
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора,
// внесенные вручную изменения будут утеряны!!!
Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
// Регистр ОстаткиМатериалов Приход
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаМатериалы.Материал;
Движение.Склад = Склад;
Движение.Количество = ТекСтрокаМатериалы.Количество;
КонецЦикла;
Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
// Регистр СтоимостьМатериалов Приход
Движение = Движения.СтоимостьМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаМатериалы.Материал;
Движение.Стоимость = ТекСтрокаМатериалы.Сумма;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Как вы видите, конструктор создал два цикла обхода табличной части документа – отдельно для каждого регистра. Так происходит потому, что в общем случае документ может иметь несколько табличных частей, и информация, содержащаяся в каждой из них, может предназначаться для своего отдельного регистра.
В нашем случае табличная часть всего одна, поэтому можно объединить эти два цикла в один, закомментировав следующие строки (листинг 3.2):
Листинг 3.2. Объединение двух циклов в один
// КонецЦикла;
// Для Каждого ТекСтрокаМатериалы Из Материалы Цикл
Запустим 1С:Предприятие в режиме отладки и перепроведем документы ПриходнаяНакладная №1 и №2.
Затем откроем Приходную накладную №1 и убедимся, что документ создает желаемые записи в регистрах накопления.
38.Что такое оборотный регистр накопления?
Оборотный регистр накопления очень похож на знакомый уже нам регистр остатков, но для него понятие «остаток» не имеет смысла. Оборотный регистр накапливает только обороты, остатки ему безразличны. Поэтому единственной виртуальной таблицей, которую будет создавать система для такого регистра, будет таблица оборотов. В остальном оборотный регистр ничем не отличается от регистра остатков.
При создании оборотного регистра накопления нет особой сложности в определении того, какие именно данные должны являться измерениями регистра - мы можем назначить в качестве его измерений любые нужные нам данные. Совсем иная ситуация в случае регистра накопления, поддерживающего накопление остатков. Для него выбор измерений должен выполняться исходя из того, что движения регистра могут быть осуществлены в две стороны: приход и расход. Таким образом, в качестве измерений нужно выбирать те данные, по которым движения точно будут осуществляться как в одну, так и в другую сторону.
