Программно создать на основании 1с 8.2. Конструктор ввода на основании. Ввод данных в бд

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

Рассмотрим простой пример. Допустим, в прикладном решении существует документ Поступление товара , который фиксирует факт появления в организации некоторых позиций номенклатуры:

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

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

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

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

Укажем, что на основании насоса будет выводиться Акт приема в ремонт.

1. В справочнике Оборудование откроем вкладку Ввод на основании . Нажмем на кнопку Является основанием для .

Выбираем – Документ АктПриемаВРемонт (рис. 37а).

Рис. 37а. Ввод на основании. Выбор объекта

2. На основании АктПриемаВРемонт будет вводится АктВыдачиИзРемонта.

Выполните данные действия для документа (открыть документ АктПриемаВРемонт – Вкладка Ввод на основании – Является основанием для АктВыдачиИзРемонта) (рис. 37б).

Рис. 37б. Ввод на основании. Выбор объекта для Акта приема в ремонт

Для документа АктПриемаВРемонт откроем его Модуль (нажатием правой кнопкой мыши открываем контекстное меню документа АктПриемаВРемонт – выбираем Открыть модуль объекта) (рис. 38).

Рис. 38. Контекстное меню Документа

Создадим (рис. 39). В модуле появилась новая запись (рис. 40а).

Рис. 39. Обработчик событий Обработка заполнения

Рис. 40а. Модуль документа Акт приема в ремонт

По условию задачи Акт приема в ремонт вводится на основании насоса , поэтому в параметры ДанныеЗаполнения будет передана ссылка на этот самый насос .

Реквизиту документа АктПриемаВРемонт Оборудование присвоим значение ДанныеЗаполнения. Для это вводим в процедуру

Оборудование = ДанныеЗаполнения;

Рис. 40б. Модуль документа Акт приема в ремонт

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

Для этого аналогично откроем Модуль объекта документа . Создадим обработчик событий Обработка заполнения .

Данный документ вводится на основании Акта приема в ремонт . Потому в данных заполнения будет ссылка на АктПриемаВРемонт. Значит

    в реквизит Клиент необходимо подставить ДанныеЗаполнения.Клиент,

    в реквизит Оборудование – ДанныеЗаполнения.Оборудования

    в реквизит Склад – ДанныеЗаполнения.Склад (рис. 40в).

Рис. 40в. Модуль документа Акт выдачи из ремонта

5. Также для справочника Склады укажем, что справочник будет использовать свойство Быстрый выбор . Это значит, что теперь Склад будет выбираться не из отдельной формы, открывающейся в отдельном окне, а из маленького списка, который выпадает прямо из поля ввода (открыть Свойства справочника Склады – отметить свойство Быстрый выбор) (рис. 41).

Рис. 41. Фрагмент Свойства справочника. Быстрый выбор

ВВОД ДАННЫХ В БД

1. Насосный завод принес еще один насос в ремонт. Запишем его в справочник – КМ 0-32-180/2-5, с/н7744.

Обратите внимание, что в командной панели появилась кнопка Создать на основании .

Создадим на основании Акт приема в ремонт.

Оборудование, необходимое, уже подставилось (рис. 42). Клиент – Насосный завод. Склад – Основной склад (появился маленький список). Дата- 12.11.2011 г. Провести. Закрыть.

Рис. 42. Ввод Акта приема в ремонт

Отметим недостатки в разработанной конфигурации :

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

    Список ссылок, представленный слева, выглядит не очень красиво (рис. 43).

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

Рис. 43. Список ссылок меню системы

Обновим конфигурацию БД и запустим ее в режиме 1С: Предприятие.

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

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

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

По кнопке Ок, платформа создает программный код ввода на основании и размещает его в модуле объекта:

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

Вопрос 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С:Профессионал по платформе. Какое предназначение имеет выделение "галочками" элементов списка "Реквизиты объекта основания"?

  1. Эти реквизиты система предлагает в качестве формулы заполнения реквизита "Состав.Количество" по принципу совпадения типов реквизитов
  2. Эти реквизиты предлагаются для заполнения реквизитов "Состав.Количество", "Состав.Сумма" по принципу совпадения имен
  3. Эти реквизиты предлагаются для заполнения реквизита "Состав.Количество" по кнопке "Заполнить выражения"
  4. Эти реквизиты система впишет в качестве формул заполнения реквизитов "Состав.Количество", "Состав.Сумма" при нажатии кнопки "ОК"

Правильный ответ первый.

Случайные статьи

Вверх