Что такое ввод на основании в 1с
Ввод на основании
Механизм ввода на основании — это один из прикладных механизмов платформы. Он позволяет упростить работу пользователя с прикладным решением и избавить его от повторного ввода данных, которые уже хранятся в информационной базе.
Рассмотрим простой пример. Допустим, в прикладном решении существует документ Поступление товара, который фиксирует факт появления в организации некоторых позиций номенклатуры:
После того, как номенклатура получена от поставщика, следует оформить документ Оплата товаров и услуг, в котором указать поставщика и сумму, которую ему необходимо перечислить за поставленный товар:
В такой ситуации механизм ввода на основании позволяет сформировать документ Оплата товаров и услуг автоматически, используя информацию, которая хранится в документе Поступление товара. Это выполняется буквально одним нажатием мыши:
После выполнения этой команды система создаст новый документ Оплата товаров и услуг и заполнит его реквизиты по информации, имеющейся в поступлении. Пользователю останется лишь выбрать конкретные расчетные счета, если у поставщика и нашей организации их несколько.
Таким образом механизм ввода на основании позволяет создавать новые объекты прикладного решения (справочники, документы и т. д.) на основании информации, содержащейся в других, существующих объектах прикладного решения.
Алгоритм, по которому существующая информация будет использоваться во вновь создаваемых объектах, описывается средствами встроенного языка при создании прикладного решения.
Конструктор ввода на основании
Для облегчения труда разработчика система содержит конструктор ввода на основании, позволяющий автоматизировать написание таких алгоритмов. Подробнее…
Ввод документов и элементов справочников на основании
В режиме конфигуратора можно легко включить и настроить ввод на основании. Свойства любого документа или справочника открываются двойным щелчком по нему в дереве метаданных. Настройки ввода на основании находятся на вкладке «Ввод на основании». Для удобства сопоставления данных реализован «Конструктор ввода на основании». С помощью данного помощника можно сопоставить данные взятые из объекта основания с данными объекта приемника.
Ввод Контрагента на основании Организации
В конфигурации есть два справочника «Организации» и «Контрагенты». Для примера можно настроить создание контрагента на основании организации. Для этого в режиме конфигуратора, нужно открыть свойства справочника «Контрагенты». На вкладке «Ввод на основании» по нажатию на «Карандаш» в области «Вводится на основании» откроется форма выбора объектов оснований.
На форме можно выбрать объекты которые будут выступать основаниями при создании элементов справочника «Контрагенты».
После добавления объектов, нужно настроить сопоставление реквизитов объекта источника и приемника.
При использовании конструктора ввода на основании автоматически создается или замещается процедура ОбработкаЗаполнения() расположенная в модуле объекта. Поэтому внесенные вручную изменения будут потеряны.
После работы «Конструктора ввода на основании» в модуле объекта будет создана процедура ОбработкаЗаполнения().
Использование ввода на основании.
Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться
Как в 1С создать на основании программно
Рассмотрим простой пример программного ввода документа в 1С на основании. Допустим необходимо после проведения приходного документа «Приход» создать расходный документ «Расход» на основании данных полученных из приходного документа.
Простое создание на основании стандартным способом платформы 1С
В документе «Расход» или «Приход» нужно настроить связь на вкладке «Ввод на основании»:
Где указать с кем он связан:
Должна получиться следующая картина:
Далее в модуле документа «Расход» нужно создать процедуру «Обработка заполнения» с помощью клика в верхнем меню:
Если в документе уже существуют данная процедура — нужно не создавать новую, а добавлять код в существующую процедуру.
И прописать программный код заполнения. Пример кода:
Программный код можно также создать автоматически для этого нужно воспользоваться «Конструктором ввода на основания».
Конструктор ввода на основании
Чтобы в 1С автоматически создать процедуру, нужно нажать на кнопку «Конструктор ввода на основании»:
Где с помощью функции «Заполнить выражения» можно автоматически сопоставить название реквизитов:
Если реквизиты различаются по названию, их можно сопоставить вручную. Например, в одной табличной части у вас реквизит «Номенклатура», а в другой «Товар».
После нажатия на «Ок», 1С сама сформирует готовый программный код:
Внимание! Конструктор нельзя использовать, если процедура заполнения уже существует — вы потеряете существующий программный код.
Создание документа после записи первого документа с последующей записью созданного
Для реализации такой задачи можно использовать метод объекта Заполнить(), в параметры которого необходимо будет передать данные заполнения из документа прихода. Метод инициирует событие ОбработкаЗаполнения() и вызов процедуры-обработчика в модуле объекта документа «Расход».
Создание объекта после записи с открытием управляемой формы
Для программного создания документа в 1С с открытием управляемой формы пользователю можно использовать функцию ОткрытьФорму(), в параметры которой можно передавать данные для заполнения.
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Ввод на основании в 1С 8.3
Ввод на основании
Механизм ввода на основании позволяет автоматически заполнять реквизиты объекта при его создании на основании другого объекта.
Например, есть документ Приход товара. На его основании можно создать документ оплаты и автоматически заполнить в нем контрагента и сумму из прихода товара.
Настройки ввода на основании выполняются на закладке Ввод на основании. В верхней части указывается какие объекты могут являться основанием для заполнения текущего объекта:
В нижней части какие объекты могут создаваться на основании текущего:
В нашем примере на основании документа Приход товара можно создать документ Оплата.
Теперь в пользовательском режиме в форме документа и в форме списка появится подменю Создать на основании, в котором будут созданы команды ввода на основании для всех объектов, которые создаются на основании текущего объекта:
После нажатия на кнопку «Оплата» будет открыта форма нового документа Оплата:
При этом хотелось бы, чтобы реквизиты документа оплаты автоматически заполнялись из документа прихода товара. Процедура, которая вызывается при вводе на основании называется ОбработкаЗаполнения и находится в модуле объекта.
ОбработкаЗаполнения
Обработчик ОбработкаЗаполнения нужно создавать у того объекта, который создается на основании. В нашем примере это будет документ Оплата. В параметре ДанныеЗаполнения передается ссылка на объект-основание. Алгоритм заполнения нужно реализовать самим:
Ввод на основании
Ввод на основании используется в случаях, когда при создании нового объекта могут быть использованы данные уже существующего объекта. Ввод на основании может быть реализован для справочников, документов, планов видов характеристик, планов счетов, планов видов расчета и бизнес-процессов. В общем случае объект может быть создан на основании любого объекта из перечисленных выше, например, документ может быть создан на основании справочника.
Рассмотрим работу механизма ввода на основании на следующем примере: Организация оказывает услуги пассажирского такси. Заказы покупателей регистрируются в документе «Заказ». Заказ может быть формируется диспетчером. Документ «Заказ» содержит следующую информацию:
Создание объектов конфигурации
Реализация
В свойствах документа «Заказ» перейдем на закладку «Ввод на основании»:
Нажмем кнопку «Редактировать элемент списка» и выберем из списка справочник «Клиенты»:
Далее запустим конструктор ввода на основании нажатием на кнопку «Конструктор ввода на основании»:
В открывшемся окне нужно сопоставить поля справочника с реквизитами документа заказа. Это можно сделать, нажав кнопку «Заполнить выражения» и тогда система попытается сама определить, какие поля необходимо скопировать:
Поле адреса нужно сопоставлять вручную, выбрав поле «АдресОткуда» в нижней части, а затем двойным щелчком на реквизите «Адрес» в реквизитах объекта обоснования:
По нажатию «ОК» система генерирует следующий код в модуле документа «Заказ» в процедуре ОбработкаЗаполнения:
Процедура ОбработкаЗаполнения вызывается в ряде случаев, таких как ввод нового документа интерактивно и ввод на основании. В данном случае, если переменная ДанныеЗаполнения является ссылкой на справочник клиентов, выполняется заполнение реквизитов документа. Код обработчика можно модифицировать. Предположим, что клиенты чаще всего хотят подачу такси в течение 15-20 минут. Тогда в код обработчика можно добавить инициализацию реквизита «ВремяПодачи». Также удалим комментарии, созданные конструктором:
Запустим приложение в режиме отладки и проверим, как работает ввод на основании. Добавим пару записей в справочник клиентов:
Откроем одну из них. В окне будет доступна кнопка «Создать на основании», по нажатию которой откроется список с опцией выбора «Заказ»:
При выборе «Заказ» система создает пустой документ и заполняет поля в процедуре ОбработкаЗаполнения:
Сохраним документ и убедимся, что документ был успешно создан, открыв его из спиcка документов заказа:
Теперь предположим, что у клиентов могут быть опции, которые всегда присутствуют в заказе данного клиента. Например, «Некурящий водитель». Тогда их можно задавать в справочнике клиентов и копировать в документ заказа. Расширим справочник «Клиенты» табличной частью «Опции»:
Теперь необходимо модифицировать процедуру ОбработкаЗаполнения документа. Это можно было бы сделать через конструктор, но тогда процедура обработки будет перезаписана, поэтому добавим код копирования табличной части вручную:
Запустим конфигурацию в режиме отладки и посмотрим, что получилось. Добавим опции клиенту:
Сохраним данные и создадим заказ на основании записи справочника:
Таким образом, данные табличной части были успешно скопированы в заказ. Для этого простого примера реализацию ввода на основании можно считать законченной.
- Что такое ввод на компьютере
- Что такое ввод напрямую