Программно ввести на основании 1с 8.3. V. Ввод на основании. Ввод данных в бд
В программном решении, одни объекты могут вводиться на основании других, при этом значения полей совпадающего типа данных прямо наследуются от исходного объекта, либо могут быть вычислены по заданному алгоритму:
Наследование полей задается конфигурально, в конструкторе ввода на основании, для того объекта, который и будет вводиться на основании:
Конструктор ввода на основании подсказывает, какие поля могут наследоваться прямо (они отмечены зелеными галочками, и автоподставляются по кнопке Заполнить выражения ). Также в конструкторе можно прописать иные выражения заполнения:
По кнопке Ок, платформа создает программный код ввода на основании и размещает его в модуле объекта:
При необходимости код можно доработать вручную. Но важно понимать. что если потом к конструктору обратиться еще раз, то ручные изменения затрутся. Поэтому прямо в коде содержится предупреждение об этом. И также при попытке открыть конструктор после генерации программного кода платформа выдаст такое предупреждение (причем безотносительно того, редактировался ли на самом деле код или нет):
Вопрос 03.32 экзамена 1С:Профессионал по платформе. Для активности кнопки "Конструктор ввода на основании" в окне редактирования объекта конфигурации …
- Обязательно заполнение поля "Вводится на основании"
- Обязательно заполнение поля "Является основанием для"
- Обязательно заполнение полей "Является основанием для" и "Вводится на основании"
Правильный ответ первый:
Вопрос 04.09 экзамена 1С:Профессионал по платформе. Назовите инструмент визуального создания алгоритма заполнения объекта "на основании" и основное место его вызова?
- Конструктор ввода на основании. Основное место вызова через окно редактирования объекта, закладка "Ввод на основании", кнопка "Конструктор ввода на основании"
- Конструктор ввода на основании. Основное место вызова через главное меню "Конструкторы" / "Ввод на основании..."
- Мастер ввода на основании. Основное место вызова через окно редактирования объекта, закладка "Ввод на основании", кнопка "Мастер ввода на основании"
- Конструктор ввода на основании. Основное место вызова через окно редактирования объекта, закладка "Данные", кнопка "Конструктор ввода на основании"
Правильный ответ первый, см. скриншоты выше.
Вопрос 04.10 экзамена 1С:Профессионал по платформе. Назовите основное назначение конструктора ввода документа "на основании":
- Конструктор ввода на основании облегчает задачу разработки процедуры, с помощью которой будет формироваться новый объект при вводе "на основании"
- Конструктор ввода документа "на основании" в системе отсутствует
- Конструктор ввода на основании облегчает задачу формирования движений в регистрах учета "на основании" данных документа
- Конструктор ввода на основании облегчает задачу разработки структуры другого документа "на основании" структуры "документа-основания"
Правильный ответ первый.
Вопрос 04.11 экзамена 1С:Профессионал по платформе. Можно ли формулу заполнения поля "Состав.Цена" задать произвольным выражением?
- Да, можно, правильность написания формулы конструктор не проверяет
- Нет, нельзя, формулу можно заполнить только значениями, выделенными "галочками" в списке "Реквизиты объекта основания"
- Да, можно, но конструктор проверит правильность написания формул согласно списку "Реквизиты объекта основания"
- Нет, нельзя, формулу можно заполнить только значениями из списка "Реквизиты объекта основания"
Правильный ответ первый. Можно написать любую формулу, синтаксического контроля при этом нет.
Вопрос 04.12 экзамена 1С:Профессионал по платформе. Если процедура с именем "ОбработкаЗаполнения" уже определена в модуле документа, то возможно ли в этом случае использование конструктора ввода основании?
- Да, но при этом система попросит подтверждение на полное замещение уже существующей процедуры "ОбработкаЗаполнения" новой процедурой
- Нет, сначала надо вручную удалить "старую" обработку заполнения, а только потом вызывать конструктор
- Да, но система при этом, безусловно, удалит "старую" обработку заполнения
- Да, система закомментирует "старую" обработку заполнения и создаст "новую"
Правильный ответ первый, см. разбор выше.
Вопрос 04.13 экзамена 1С:Профессионал по платформе. Какое предназначение имеет выделение "галочками" элементов списка
"Реквизиты объекта основания"?
- Эти реквизиты система предлагает в качестве формулы заполнения реквизита "Состав.Количество" по принципу совпадения типов реквизитов
- Эти реквизиты предлагаются для заполнения реквизитов "Состав.Количество", "Состав.Сумма" по принципу совпадения имен
- Эти реквизиты предлагаются для заполнения реквизита "Состав.Количество" по кнопке "Заполнить выражения"
- Эти реквизиты система впишет в качестве формул заполнения реквизитов "Состав.Количество", "Состав.Сумма" при нажатии кнопки "ОК"
Правильный ответ первый.
Укажем, что на основании насоса будет выводиться Акт приема в ремонт.
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С: Предприятие.
Механизм ввода на основании - это один из прикладных механизмов платформы . Он позволяет упростить работу пользователя с прикладным решением и избавить его от повторного ввода данных, которые уже хранятся в информационной базе.
Рассмотрим простой пример. Допустим, в прикладном решении существует документ Поступление товара , который фиксирует факт появления в организации некоторых позиций номенклатуры:
После того, как номенклатура получена от поставщика, следует оформить документ Оплата товаров и услуг , в котором указать поставщика и сумму, которую ему необходимо перечислить за поставленный товар:
В такой ситуации механизм ввода на основании позволяет сформировать документ Оплата товаров и услуг автоматически, используя информацию, которая хранится в документе Поступление товара . Это выполняется буквально одним нажатием мыши:
После выполнения этой команды система создаст новый документ Оплата товаров и услуг и заполнит его реквизиты по информации, имеющейся в поступлении. Пользователю останется лишь выбрать конкретные расчетные счета, если у поставщика и нашей организации их несколько.
Таким образом механизм ввода на основании позволяет создавать новые объекты прикладного решения (справочники, документы и т.д.) на основании информации, содержащейся в других, существующих объектах прикладного решения.