Назовите основное назначение конструктора ввода документа на основании

Обновлено: 02.05.2024

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

Рассмотрим работу механизма ввода на основании на следующем примере: Организация оказывает услуги пассажирского такси. Заказы покупателей регистрируются в документе «Заказ». Заказ может быть формируется диспетчером. Документ «Заказ» содержит следующую информацию:

  1. имя клиента
  2. адрес клиента
  3. адрес откуда
  4. адрес куда
  5. время подачи
  6. желаемый класс автомобиля
  7. список желаемых опций

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

Создание объектов конфигурации



Реализация

В свойствах документа «Заказ» перейдем на закладку «Ввод на основании»:


Нажмем кнопку «Редактировать элемент списка» и выберем из списка справочник «Клиенты»:


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


В открывшемся окне нужно сопоставить поля справочника с реквизитами документа заказа. Это можно сделать, нажав кнопку «Заполнить выражения» и тогда система попытается сама определить, какие поля необходимо скопировать:


Поле адреса нужно сопоставлять вручную, выбрав поле «АдресОткуда» в нижней части, а затем двойным щелчком на реквизите «Адрес» в реквизитах объекта обоснования:


По нажатию «ОК» система генерирует следующий код в модуле документа «Заказ» в процедуре ОбработкаЗаполнения:

Процедура ОбработкаЗаполнения вызывается в ряде случаев, таких как ввод нового документа интерактивно и ввод на основании. В данном случае, если переменная ДанныеЗаполнения является ссылкой на справочник клиентов, выполняется заполнение реквизитов документа. Код обработчика можно модифицировать. Предположим, что клиенты чаще всего хотят подачу такси в течение 15-20 минут. Тогда в код обработчика можно добавить инициализацию реквизита «ВремяПодачи». Также удалим комментарии, созданные конструктором:

Запустим приложение в режиме отладки и проверим, как работает ввод на основании. Добавим пару записей в справочник клиентов:


Откроем одну из них. В окне будет доступна кнопка «Создать на основании», по нажатию которой откроется список с опцией выбора «Заказ»:


При выборе «Заказ» система создает пустой документ и заполняет поля в процедуре ОбработкаЗаполнения:


Сохраним документ и убедимся, что документ был успешно создан, открыв его из спиcка документов заказа:


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


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

Запустим конфигурацию в режиме отладки и посмотрим, что получилось. Добавим опции клиенту:


Сохраним данные и создадим заказ на основании записи справочника:


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

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

Наследование полей задается конфигурально, в конструкторе ввода на основании, для того объекта, который и будет вводиться на основании:

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

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

Вопрос 03.32 экзамена 1С:Профессионал по платформе. Для активности кнопки "Конструктор ввода на основании" в окне редактирования объекта конфигурации …

  1. Обязательно заполнение поля "Вводится на основании"
  2. Обязательно заполнение поля "Является основанием для"
  3. Обязательно заполнение полей "Является основанием для" и "Вводится на основании"

Вопрос 04.09 экзамена 1С:Профессионал по платформе. Назовите инструмент визуального создания алгоритма заполнения объекта "на основании" и основное место его вызова?

  1. Конструктор ввода на основании. Основное место вызова через окно редактирования объекта, закладка "Ввод на основании", кнопка "Конструктор ввода на основании"
  2. Конструктор ввода на основании. Основное место вызова через главное меню "Конструкторы" / "Ввод на основании. "
  3. Мастер ввода на основании. Основное место вызова через окно редактирования объекта, закладка "Ввод на основании", кнопка "Мастер ввода на основании"
  4. Конструктор ввода на основании. Основное место вызова через окно редактирования объекта, закладка "Данные", кнопка "Конструктор ввода на основании"

Вопрос 04.10 экзамена 1С:Профессионал по платформе. Назовите основное назначение конструктора ввода документа "на основании":

  1. Конструктор ввода на основании облегчает задачу разработки процедуры, с помощью которой будет формироваться новый объект при вводе "на основании"
  2. Конструктор ввода документа "на основании" в системе отсутствует
  3. Конструктор ввода на основании облегчает задачу формирования движений в регистрах учета "на основании" данных документа
  4. Конструктор ввода на основании облегчает задачу разработки структуры другого документа "на основании" структуры "документа-основания"

Вопрос 04.11 экзамена 1С:Профессионал по платформе. Можно ли формулу заполнения поля "Состав.Цена" задать произвольным выражением?

  1. Да, можно, правильность написания формулы конструктор не проверяет
  2. Нет, нельзя, формулу можно заполнить только значениями, выделенными "галочками" в списке "Реквизиты объекта основания"
  3. Да, можно, но конструктор проверит правильность написания формул согласно списку "Реквизиты объекта основания"
  4. Нет, нельзя, формулу можно заполнить только значениями из списка "Реквизиты объекта основания"

Вопрос 04.12 экзамена 1С:Профессионал по платформе. Если процедура с именем "ОбработкаЗаполнения" уже определена в модуле документа, то возможно ли в этом случае использование конструктора ввода основании?

  1. Да, но при этом система попросит подтверждение на полное замещение уже существующей процедуры "ОбработкаЗаполнения" новой процедурой
  2. Нет, сначала надо вручную удалить "старую" обработку заполнения, а только потом вызывать конструктор
  3. Да, но система при этом, безусловно, удалит "старую" обработку заполнения
  4. Да, система закомментирует "старую" обработку заполнения и создаст "новую"

Вопрос 04.13 экзамена 1С:Профессионал по платформе. Какое предназначение имеет выделение "галочками" элементов списка "Реквизиты объекта основания"?

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

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

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

Вопрос 04.14 экзамена 1С:Профессионал по платформе. Назовите инструмент визуального создания алгоритма проведения документа и основное место его вызова

  1. Конструктор движений. Основное место вызова через окно редактирования объекта, закладка "Движения", кнопка "Конструктор движений"
  2. Конструктор движений. Основное место вызова через главное меню "Конструкторы" / "Движения регистров. "
  3. Конструктор проведения. Основное место вызова через окно редактирования объекта, закладка "Движения", кнопка "Конструктор проведения"
  4. Конструктор движений. Основное место вызова через окно редактирования объекта, закладка "Проведение", кнопка "Конструктор движений"
  5. Инструмент визуального создания алгоритма проведения документов в системе отсутствует

Вопрос 04.15 экзамена 1С:Профессионал по платформе. Назовите основное назначение конструктора движений документа

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

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

Вопрос 04.16 экзамена 1С:Профессионал по платформе. Можно ли произвести автозаполнение выражений и, если "да", то какими действиями?

  1. Да, можно. В элементе формы "Табличная часть" выбрать табличную часть "Состав" документа и нажать кнопку "Заполнить выражения"
  2. Нет, нельзя. Каждое выражение для поля-приемника необходимо определять "вручную"
  3. Да, можно. Оставить все настройки согласно рисунку и нажать кнопку "Заполнить выражения"

Вопрос 04.17 экзамена 1С:Профессионал по платформе. Процедуру с каким именем и в каком контексте определяет конструктор движений документа?

  1. ОбработкаПроведения. Определяется в модуле объекта документ
  2. ОбработкаПроведения. Определяется в модуле формы документа
  3. ДвиженияДокумента. Определяется в модуле объекта документа
  4. ДвиженияДокумента. Определяется в модуле формы документа

Вопрос 04.18 экзамена 1С:Профессионал по платформе. Если процедура с именем "ОбработкаПроведения" уже определена в модуле документа, то возможно ли в этом случае использование конструктора движений?

  1. Да, но при этом система попросит подтверждение на замещение алгоритма проведения уже существующей процедуры "ОбработкаПроведения" новым
  2. Нет, сначала надо вручную удалить "старую" обработку проведения, а только потом вызывать конструктор
  3. Да, но система при этом, безусловно, удалит "старую" обработку проведения
  4. Да, система закомментирует "старую" обработку проведения и создаст "новую"

Вопрос 04.19 экзамена 1С:Профессионал по платформе. Можно ли значение ресурса "Количество" задать произвольным выражением?

Вопрос 04.30 экзамена 1С:Профессионал по платформе. Как можно вызвать конструктор форм объектов конфигурации?

  1. Из окна редактирования объекта конфигурации, закладка "Форма", при создании новой формы
  2. При помощи контекстного меню из окна "Конфигурация"
  3. Никак. Конструктор форм является составной частью конструктора выходных форм
  4. Верно 1 и 2

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

Вопрос 04.31 экзамена 1С:Профессионал по платформе. При создании формы конструктором формы был установлен флажок "Назначить форму основной". После сохранения этой формы можно ли будет назначить основной другую форму?

  1. Нет, пока не будет удалена текущая основная форма
  2. Нет ни при каких условиях
  3. Можно, предварительно сняв флаг "Основная" в свойствах формы, бывшей основной ранее
  4. Можно в окне редактирования объекта конфигурации

Новая ФормаЭлемента3 прописалась в поле Основная форма объекта конфигурации безо всяких дополнительных действий. При необходимости ее можно заменить на другую тут:

Вопрос 04.32 экзамена 1С:Профессионал по платформе. При создании формы конструктором формы количество размещаемых на форме командных панелей.

  1. не ограничено
  2. не более двух
  3. всегда - две (верхняя и нижняя)

Вопрос 04.33 экзамена 1С:Профессионал по платформе. После нажатия на кнопку "Далее", в соответствии с рисунком, на второй закладке конструктора общих форм можно будет:

  1. Определить состав констант и связанных с ними элементов управления, размещаемых на форме
  2. Определить состав констант, некоторых свойств глобального контекста и связанных с ними элементов управления, размещаемых на форме
  3. Определить состав некоторых свойств глобального контекста и связанных с ними элементов управления, размещаемых на форме
  4. Список реквизитов и связанных с ними элементов управления будет пуст (без возможности добавления)

Вопрос 04.34 экзамена 1С:Профессионал по платформе. Конструктор формы списка справочника на закладке "Далее".

  1. всегда позволяет разместить на форме и дерево групп и список элементов
  2. всегда позволяет разместить на диалоге список элементов и, кроме того, для иерархических справочников с иерархией групп и элементов, - дерево групп
  3. для иерархических справочников состав размещаемых элементов определяется видом иерархии справочника

Вопрос 04.35 экзамена 1С:Профессионал по платформе. Конструктор формы списка иерархического справочника при указании размещения дерева...

  1. сразу позволяет выбрать просмотр групп и элементов
  2. не позволяет выбрать просмотр групп и элементов. Это можно сделать позже - при работе с формой из конфигуратора
  3. не позволяет выбрать просмотр групп и элементов. Это можно сделать позже - при работе с формой из пользовательского режима

Вопрос 04.36 экзамена 1С:Профессионал по платформе. Можно ли в конструкторе формы элемента справочника на втором шаге (кнопка "Далее") указать размещение табличного поля, содержащего данные подчиненного справочника?

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

Правильный ответ первый. Например, справочнику Физические лица подчинен справочник Банковские счета, но в составе таблиц его нет, т.к. это отдельная сущность:

Вопрос 04.37 экзамена 1С:Профессионал по платформе. Можно ли в конструкторе формы документа на втором шаге (кнопка "Далее") указать размещение табличного поля, содержащего данные документа, на основании которого введен данный документ?

  1. Нет, такие действия нужно выполнять уже при работе с формой
  2. Да, при любых условиях
  3. Да, только если данный документ является владельцем только для одного документа

Правильный ответ первый, такой таблицы не будет доступно из конструктора, т.к. это отдельная сущность.

Вопрос 04.38 экзамена 1С:Профессионал по платформе. Можно ли в конструкторе формы документа на втором шаге (кнопка "Далее") указать размещение табличного поля, содержащего данные регистра, для которого данный документ может являться регистратором?

  1. Нет, такие действия выполняются уже при работе с формой
  2. Да, при любых условиях
  3. Да, только если документ может иметь движения только по одному регистру

Правильный ответ второй (но на самом деле - только для обычных форм). Движения являются неотъемлемой частью документа, поэтому могут быть отражены на форме:

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

  1. можно указать необходимость размещения на форме всех или только некоторых элементов управления, соответствующих составу подчиненных объектов
  2. можно указать требуемый вид элементов управления, соответствующих составу подчиненных объектов
  3. верно все вышеперечисленное

Вопрос 04.40 экзамена 1С:Профессионал по платформе. У документа уже определены все основные формы. При создании новой формы в конструкторе выставляют следующие флажки (см. рисунок). Что произойдет после того, как форма будет создана?

  1. Форма2 будет назначена основной формой документа
  2. Форма2 будет назначена основной формой списка документа
  3. Ничего, поскольку основные формы уже назначены
  4. Ничего, поскольку не выставлен флажок "Основная форма списка и выбора"

11 комментариев:

Стоит заметить, что на данный момент 1С не заносит табличные поля в колонки (вопрос 4.28), а располагает их ниже. Если табличных полей больше одного, то для каждого создаётся страница.

Другими словами, настройка "Располагать элементы управления в . колонку(и)" не действует на табличные поля, они всегда располагаются на всю ширину формы (страницы).

"Вопрос 04.32 экзамена 1С:Профессионал по платформе. При создании формы конструктором формы количество размещаемых на форме командных панелей.

1.не ограничено
2.не более двух
3.всегда - две (верхняя и нижняя)

Вот опять. Почему мне нужно запоминать не правильный вариант? Почему 1С не исправляет эту ошибку? Понимаю, что не здесь это решают. Просто крик души. Не может ли так случиться, что в какой то момент они исправят ошибку?

Даааа жалко что приходиться запоминать некоторые ответы типа "но на самом деле", это не первый и не последний вопрос экзамена такой =(

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

Именно так! Ведь никакого противоречия не наблюдается. И напротив, все логично и лаконично )
Конструктор создает столько командных панелей, сколько размещает табличных полей, плюс командные панели формы (1 для УФ и 2 для ОФ).

Вопрос 04.39 - ответ 3 так как, для управляемых и обычных форм можно указывать нужно ли выводить элемент на форму или нет. А для обычных форм в конструкторе формы можно также указать из списка и вид управления формы (поле ввода, поле выбора и тд).

По 4.38 хотел бы прояснить "но на самом деле - только для обычных форм". Так вот.
Термин "Табличное поле" используется сугубо в контексте ОФ. В контексте УФ этот элемент уже носит название "Таблица формы". Исходя из этого мы видим, что вопрос относится к конструктору именно обычной формы.
А раз так) то все встает на свои места и ответ на вопрос становится очевидным.

Вопрос 04.39 В конструкторе формы документа при необходимости нестандартного размещения элементов управления.

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

2. можно указать требуемый вид элементов управления, соответствующих составу подчиненных объектов. Верно в правой части конструктора формы мы можем указать тип элемента формы ( поле ввода, переключатель, надпись и т. д.)

Ага, Вводит в блуд 2 вещи, во первых не указано в вопросе что форма неуправляемая, во вторых за каким-то хреном написано "всех или только некоторых элементов управления, соответствующих составу подчиненных объектов", сама формулировка крайне крючкотворская и неинтуитивная, как будто тут речь об иерархии, или подчинении объектов ИБ, а по факту просто о реквизитах и табличных частях документа и их отражении на форме.

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

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

Внимание! Конструктор доступен только для тех объектов метаданных, для которых указаны объекты-основания

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

Конструктор ввода на основании

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

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

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

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

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

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

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

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

Внимание! Проверяйте соответствие реквизитов не только по типу, но и по имени. Может получиться так, что конструктор для поля Сумма укажет Количество и наоборот.

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

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

Смотреть на Youtube

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