Форма. Форма списка, форма элемента — КиберПедия 

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Форма. Форма списка, форма элемента

2017-07-24 4141
Форма. Форма списка, форма элемента 5.00 из 5.00 4 оценки
Заказать работу

Работа пользователя в режиме "1С:Предприятие" происходит не напрямую с объектом, хранящим информацию, а посредством объекта Форма. Следует отметить, что в зависимости от текущей задачи пользователя работа с одним и тем же объектом может происходить с использованием различных форм. Например, для справочника при работе с ним как со списком элементов используется Форма списка, а при работе с одним элементом данного списка используется Форма элемента. В том случае, когда разработчик не предпринимал никаких дополнительных мер по настройке объекта, системой будет автоматически создана соответствующая форма, с которой и будет работать пользователь. Если же по каким-либо причинам автоматическая форма не устраивает пользователя, то разработчик имеет возможность самостоятельно создать необходимую форму.

Создадим форму списка для справочника Контрагенты. Для этой цели перейдем на закладку формы и создадим новую форму списка с помощью конструктора (Рис. 4.30).

Рис. 4.30.

Будем последовательно делать настройки, которые предлагает конструктор. На первой закладке укажем, что создаем форму списка (Рис. 4.31).

Рис. 4.31.


Далее отметим те реквизиты справочника, которые мы хотим видеть (Рис. 4.32)

Рис. 4.32.

В результате будет создана форма (Рис. 4.33)

Рис. 4.33.

Откроем закладку Команды – Глобальные команды и перетащим элемент "Элементы.Список.ТекущиеДанные.Ссылка" в левое окно в "Командная панель" (Рис. 4.34).

Рис. 4.34.

В свойствах появившегося элемента укажем "ТолькоВоВсехДействиях" в значение "Нет" (Рис.4.35)

Рис. 4.35.

Теперь в пользовательском режиме в форме списка справочника сотрудники и у пользователя появится возможность просматривать только те договоры, которые относятся к текущему контрагенту (Рис. 4.36).

Рис. 4.36.

Аналогичным образом может быть создана и форма элемента для справочника (Рис. 4.37). Главное, это указать правильный тип формы.

Рис. 4.37.

Например, для справочника "Сотрудники" форма элемента не должна отображать реквизит "Родитель" - группу, в которой находится текущий элемент справочника. Терминология платформы в данном случае входит в противоречие с "общечеловеческим" пониманием данного термина. Чтобы не смущать пользователя, удали эту информацию с формы (Рис. 4.38)

Рис. 4.38.

 

 

Перечисление

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

Итак, в нашей базе мы хотим иметь информацию о том, является ли наш сотрудник штатным работником или совместителем. Каким образом это сделать? Ну, во-первых, эта информация должна быть указана для каждого сотрудника, и для этого необходимо создать новый реквизит справочника Сотрудники. Во-вторых, сотрудник может быть либо штатным, либо совместителем, поэтому логично создать новое перечисление и именно его указать в качестве типа данных нашего нового реквизита справочника.

Создаем новое перечисление ВидыПриемаНаРаботу. Для этого правой кнопкой мыши на ветке Перечисления вызываем контекстное меню и выбираем пункт Добавить. (Рис. 5.1)

Рис. 5.1.

Далее задаем имя: ВидыПриемаНаРаботу, при этом автоматически заполняется поле Синоним точно так же, как это происходило для справочников. (Рис. 5.2)

На закладке Данные правой кнопкой мыши на пункте Значения вызываем контекстное меню и выбираем пункт Добавить, либо выбираем соответствующую кнопку в панели инструментов. Появляется уже знакомая нам палитра свойств (Рис. 5.3), в которой задаем Имя - значения перечисления. Аналогично создаем следующее значение.

Рис. 5.2.

Рис. 5.3.

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

После всех этих действий в справочник Сотрудники добавим новый реквизит ВидПриемаНаРаботу с типом данных ПеречислениеСсылка.ВидыПриемаНаРаботу (Рис. 5.4).

Рис. 5.4.

Обратите внимание, что после обновления у пользователя всё равно отсутствует возможность указать способ приёма на работу. Это связано с тем, что форма элемента была нами создана, и платформа теперь не вмешивается в ее работу. Чтобы данная информация стала доступна пользователю, необходимо внести изменения на форму элемента справочника.

 

Элементы управления формы

Как уже упоминалось выше, пользователь работает не напрямую с объектом, а с экранной формой, причем с одним и тем же объектом пользователь может работать посредством разных форм. Система предоставляет разработчику возможность использовать ряд стандартных механизмов (элементов формы), с помощью комбинаций которых можно создать практически любой функционал и внешний вид. Прямой аналогией может служить детский конструктор "Лего", когда из некоторого набора "кубиков" можно собрать что-то совершенно новое. Далее мы рассмотрим ряд таких стандартных механизмов более подробно. Причем следует иметь в виду, что данные возможности экранной формы не привязаны к какому-то конкретному виду объектов конфигурации и, соответственно, могут применяться для любой экранной формы любого объекта.

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

Имя – системное имя, уникальный идентификатор, позволяющий обратиться именно к данному элементу

ПутьКДанным – устанавливает связь между тем элементом формы, что отображается на форме, и тем реквизитом, где храниться информация

Видимость – позволяет либо показать, либо спрятать от пользователя элемент формы

Доступность – позволяет пользователю видеть элемент формы, но не позволяет его интерактивно изменять

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

Рис. 6.1.

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

Поле

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

Поле ввода

В справочнике Сотрудники у нас есть реквизит ВидПриемаНаРаботу, однако пользователь не имеет возможности работать с ним. Для того, чтобы такая возможность появилась, необходимо разместить этот реквизит на форме элемента справочника. Удобно работать с этим реквизитом позволит элемент формы Поле с видом Поле ввода.

Чтобы разместить на форме поле вода, в котором будут отражаться данные реквизита, можно воспользоваться двумя различными способами. Можно добавить новый элемент формы, указав тип Поле (Рис. 6.2) и указав затем в его свойствах ПутьКДанным, Вид и Заголовок (Рис. 6.3)

Рис. 6.2.

Рис. 6.3.

Того же результата можно достичь, если придерживая левую кнопку мышки перетащить реквизит из окна реквизитов в окно элементов формы (Рис. 6.4)

Рис. 6.4.

Для поля ввода наиболее важными свойствами будут являться:

Заголовок - текстовый заголовок, видимый пользователю

Положение заголовка – положение заголовка относительно поля ввода

Пропускать при вводе – позволяет автоматически перемещать курсор на поле при редактировании элементов на форме

Активизировать по умолчанию – позволяет сделать поле активным при открытии формы

Предупреждение при редактировании – позволяет выдавать пользователю предупреждение при редактировании данных поля, в том случае, если указано ОтображениеПредупрежденияПриРедактировании

Поле флажка

С помощью флажка на форме могут отображаться данные с типом Булево или Число.

Создадим форму элемента для справочника Номенклатура (Рис. 6.5).

Рис. 6.5.

После этого добавим в справочник реквизит Услуга с типом Булево для того, можно было указать, является ли данный элемент справочника товаром или услугой. Теперь добавим этот реквизит на форму. Для этого перетащим реквизит Услуга из окна реквизитов в окно элементов формы (Рис. 6.6)

Рис. 6.6.

Поскольку реквизиты с типом Булево удобнее всего отображать на форме в виде флажка, то система сама автоматически укажет данный вид поля (Рис. 6.7)

Рис. 6.7.

Для флажка наиболее важными для нас будут являться следующие свойства:

Заголовок – текстовый заголовок, видимый пользователю

Положение заголовка – положение заголовка относительно флажка

Самостоятельно

Добавьте в справочнике Номенклатура новый реквизит "Весовой", который на форме должен отображаться в виде флажка.

 

Поле переключателя

Переключатель предназначен для того, чтобы предоставить пользователю выбор одного из нескольких заранее известных вариантов.

В справочнике Номенклатура для каждого товара будем указывать его качество, которое может быть одним из трех: высокое, обычное и низкое. Для этого создадим новое перечисление КачествоТоваров из трех значений. После этого в справочнике Номенклатура добавим новый реквизит КачествоТовара с соответствующим типом данных. В свойствах реквизита укажем значение заполнения (значение, которое будет выбираться по умолчанию) (Рис. 6.8)

Рис. 6.8.

Чтобы создать необходимое количество элементов переключателя, необходимо воспользоваться СпискомВыбора. Кроме того, традиционно элементы переключателя обычно располагаются друг под другом, для чего в настройках укажем количество колонок (Рис. 6.9).

Рис. 6.9.

Для переключателя наиболее важными для нас будут являться следующие свойства:

Заголовок – текстовый заголовок, видимый пользователю

Положение заголовка - определяет положение заголовка относительно элементов переключателя

Список выбора – определяет элементы переключателя, их количество, представление на форме и выбираемые значения

Количество колонок – определяет внешний вид переключателя


Самостоятельно

Добавьте в справочнике Номенклатура новый реквизит "Происхождение номенклатуры", который на форме должен отображаться в виде переключателя из 3-х значений: "отечественный", "импортный" и "неизвестно".

Команда

Команда позволяет пользователю возможность выполнить какие-либо из заранее определенных на этапе конфигурирования действий. Эти действия могут быть либо стандартными (Рис. 6.10), либо описаны на встроенном языке в модуле формы и затем связаны с командой (Рис. 6.11) посредством кнопки (или гиперссылки) и выполняться при нажатии пользователем на этот объект.

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

Рис. 6.10.

Рис. 6.11.

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

Текст процедуры, выполняемой при нажатии кнопки:

&НаКлиенте

Процедура Команда1(Команда)

Сообщить("Нажата кнопка");

КонецПроцедуры

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

У кнопки важными для нас будут являться следующие свойства:

Заголовок – текстовое представление объекта на форме

Вид – устанавливает внешний вид команды в виде кнопки или гиперссылки

ИмяКоманды – устанавливает связь между объектом формы и выполняемым действием

Картинка – позволяет разместить на форме картинку, отображаемую в зависимости от установок свойства Отображение

Группа

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


Обычная группа

Элемент Группа с видом Обычная группа позволяет визуально объединить несколько элементов на форме, управлять их расположением на форме (Рис.6.13)

Рис. 6.13.

Для обычной группы наиболее важными будут являться свойства:

Заголовок – надпись на форме

Отображение – определяет внешний вид группы на форме

Группировка – определяет характер расположения на форме элементов, входящих в группу

Используя вложенность групп можно располагать элементы на форме практически любым способом.


Командная панель

Командная панель позволяет группировать только кнопки, вызывающих команды, которые могут быть как стандартными, так и созданными разработчиком (Рис. 6.14).

Рис. 6.14.

Группа страниц

Группа с видом Страницы и Страница позволяют разместить элементы на форме в виде нескольких слоёв-страниц. Для этого необходимо создать группу с видом Страницы, а затем для каждой страницы в ее составе создать группу с видом Страница (Рис. 6.15 и Рис. 6.16) и уже на ней разместить элементы формы обычным порядком.

Рис. 6.15.

Рис. 6.16.

Для нас будут важны следующие свойства:

ОтображениеСтраниц – для группы Страницы задает вид отображения закладок на форме

Заголовок – для группы Страница задает заголовок на закладке формы

Таблица

Таблица позволяет отобразить на форме таблицу, например табличную часть объекта (Рис. 6.16)

Рис. 6.16.

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

Обработчик события

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

В справочнике Контрагенты у нас храниться краткое и полное наименование контрагента. Логично предположить, что эти названия будут похожи. Следовательно, когда пользователь вводит краткое наименование желательно его же продублировать в полное, т.е. при событии изменение наименования необходимо выполнить определенные действия. Какие именно действия мы желаем выполнять при наступлении события, система сама предсказать не может. Необходимо самостоятельно написать процедуру, которая должна будет выполняться системой, и связать эту процедуру с тем событием, которое обрабатывается (Рис. 7.1).

Рис. 7.1.

Текст процедуры обработчика события:

&НаКлиенте

Процедура НаименованиеПриИзменении(Элемент)

Если Объект.ПолноеНаименование = "" Тогда

Объект.ПолноеНаименование = Объект.Наименование;

КонецЕсли;

КонецПроцедуры

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

Рассмотрим следующую ситуацию: необходимо для каждой номенклатурной позиции указать ставку НДС, причем у услуг ставка НДС должна быть только 18%. В этом случае необходимо проверить при сохранении элемента, является ли данный элемент справочника услугой.

Создадим справочник, для хранения всех возможных ставок НДС, в котором ставку 18% сделаем преопределенной. В справочнике "Номенклатура" добавим соответствующий реквизит и выведем его на форму.

В том случае, когда элемент номенклатуры является услугой и ставка НДС не 18%, необходимо указать пользователю на недопустимость данной ситуации и не записывать элемент до тех пор, пока пользователь либо не укажет нужную ставку НДС, либо не укажет, что это товар.

Для решения этой задачи воспользуемся обработчиком события ПередЗаписьюНаСервере (Рис. 7.2)

Рис. 7.2.

Текст процедуры:

&НаСервере

Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

Если ТекущийОбъект.Услуга И

(ТекущийОбъект.ОсновнаяСтавкаНДС <> Справочники.СтавкиНДС.НДС18) Тогда

Сообщить("У услуги ставка НДС может быть только 18%");

Отказ = Истина;

КонецЕсли;

КонецПроцедуры

 

 


Документ

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

Для отражения в системе факта выплаты денежных средств создадим новый вид документов. Операция по созданию нового вида документа происходит аналогично созданию нового справочника – в окне дерева объектов конфигурации правой кнопкой мышки на ветке Документы вызываем контекстное меню и выбираем пункт Добавить. В открывшемся окне необходимо задать Имя документа, т.е. его вид. На это имя налагаются все те же ограничения, что и на имена остальных объектов конфигурации. Назовем создаваемый документ РасходДенег, а в качестве Синонима укажем Списание денежных средств (Рис. 8.1). Далее необходимо определить структуру нашего документа, которая задается набором его реквизитов.

Рис. 8.1.

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


Реквизиты шапки

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

Рис. 8.2.

Как мы уже говорили, для документа всегда существуют реквизиты Дата и Номер. В окне редактирования документа РасходДенег на закладке Нумерация необходимо задать следующие свойства, относящиеся к его дате и номеру (Рис. 8.2):

· Автонумерация – данный флаг включает автоматическое формирование номера документа при его создании. В последствии номер может быть изменен.

· Длина номера – максимальное количество символов, которое может занимать номер документа.

· Контроль уникальности – этот флаг включает автоматический контроль системой номера документа. В случае нарушения правил нумерации системой будет выдано соответствующее предупреждение.

· Тип номера – определяет тип данных номера документа. Это может быть число или строка. С одной стороны, удобно, когда документы нумеруются по порядку, но бывает необходимо задавать не только числовой порядковый номер, но и буквенный префикс документа. В таком случае весь номер надо определить как строковый, т.е. практически то же самое, что и с кодом справочника.

· Периодичность – обычно нумерация документов идет не сквозная, а в пределах какого-то временного интервала, чаще всего года. Для реализации этого в системе предусмотрен соответствующий механизм. Предусмотрены следующие варианты периодичности номеров:

§ непериодический;

§ в пределах года;

§ в пределах квартала;

§ в пределах месяца;

§ в пределах дня.

Для документа Рас ходДенег изменим длину номера на 6 знаков и периодичность на значение В пределах года.

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

· Контрагент,

· Договор,

· Сумма.

Рис. 8.3.

На закладке Данные, точно так же, как это делалось и для справочника, добавляем новые реквизиты. (Рис 8.3) Зададим Имя реквизита, его тип и, в случае необходимости, дополнительные настройки типа, например длину строки или точность числа. Поскольку в системе уже хранится информация о контрагентах и договорах, то и тип реквизитов Контрагент и Договор необходимо указать СправочникСсылка.Контрагенты и СправочникСсылка.Договоры соответственно. Для реквизита Сумма потребуется не только указать тип Число, но и точность 2, чтобы можно было корректно заносить суммы поступивших денег. Кроме того, чтобы иметь возможность выплатить денежные средства не только контрагентам, но и сотрудникам, можно для реквизита Контрагент указать составной тип данных СправочникСсылка.Контрагенты и СправочникСсылка.Сотрудники.

Формы документа

Точно так же, как и при работе со справочником, пользователь работает не напрямую с объектом "Документ", а посредством экранной формы. Соответственно, при работе с одним документом используется Форма документа (Рис. 8.4), а для работы с несколькими документами данного вида используется Форма списка (Рис. 8.5).

Рис. 8.4.

Рис. 8.5.

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

Рис. 8.6.

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

Рис. 8.7.

Широкие возможности по настройке списка предоставлены пользователю непосредственно в режиме "1С:Предприятие". Для этой цели в форме списка документа необходимо нажать кнопку Все действия и в открывшемся меню выбрать пункт Настройка списка. После этого, последовательно заполняя настройки по закладкам (Рис. 8.8 – Рис. 8.12) пользователь может добиться того, чтобы список отображалась наиболее удобным для него способом (Рис. 8.13).

Рис. 8.8.

Рис. 8.8.

Рис. 8.9.

Рис. 8.10.

Рис. 8.11.

Рис. 8.12.

Рис. 8.13.

Следует отметить, что настройки списка автоматически сохраняются платформой для каждого пользователя.

Самостоятельно

Создайте документ Поступление денежных средств (Рис. 8.14)

Рис. 8.14.

 
   

 


Обратите внимание, что пользователь имеет возможность (в определенных пределах) изменить внешний вид формы самостоятельно (Рис. 8.15 и Рис. 8.16). Для этого необходимо выбрать пункт меню Изменить форму из выпадающего списка, сформированного при нажатии на кнопку "Еще".

Рис. 8.15.

Рис. 8.16.

Редактор формы в пользовательском режиме работает по тем же принципам, что мы рассматривали для работы в режиме конфигуратора – группы, положение, заголовки и т.д. Причем для реквизитов ссылочного типа пользователь может дополнительно вывести на форму информацию (Рис.8.17)

Рис. 8.17.

Естественно, что иногда пользователь может сделать некорректные настройки и испортить форму. В таком случае форма может быть легко возвращена к виду, заданному в конфигураторе. Для этого по кнопке "Еще" необходимо выбрать пункт меню "Установить стандартные настройки" (Рис.8.18)

Рис. 8.18.

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

Так как реквизиты плательщика имеют смысл только в случае безналичной оплаты, то сделаем так, чтобы они были не видны во всех остальных случаях. Для того, чтобы удобнее было прятать реквизиты, сгруппируем их (Рис.8.19)

Рис. 8.19.

Чтобы реквизиты исчезали, когда меняется способ оплаты, задействуем обработчик события ПриИзменении для способа оплаты (Рис. 8.20)

Рис. 8.20.

Кроме того, необходимо использовать обработчик события ПриОткрытии для всей формы (Рис.8.21)

Рис. 8.21.

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

&НаКлиенте

Процедура СпособОплатыПриИзменении(Элемент)

Элементы.Группа1.Видимость= НоваяВидимость (Объект.СпособОплаты);

КонецПроцедуры

 

&НаСервере

Функция НоваяВидимость (Способ)

Если Способ = Перечисления.СпособыОплаты.Безналичные Тогда

Воз=Истина;

Иначе

Воз=Ложь;

КонецЕсли;

Возврат Воз;

КонецФункции

 

&НаКлиенте

Процедура ПриОткрытии(Отказ)

Элементы.Группа1.Видимость=НоваяВидимость(Объект.СпособОплаты);

КонецПроцедуры

В результате для пользователя в режиме "1С:Предприятие" внешний вид формы будет изменяться динамически, в зависимости от действий пользователя (Рис.8.22).

Рис. 8.22.

Реквизиты табличной части

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

В нашем случае для документа ПриходнаяНакладная необходимо создать табличную часть Товары с реквизитами Товар, Количество, Цена и Сумма с типами значений СправочникСсылка.Номенклатура, Число с точностью 3 и Число с точностью 2 соответственно. Создание табличной части документа также идентично созданию табличной части справочника. На закладке Данные в соответствующем окне с помощью контекстного меню создается табличная часть, а потом и ее реквизиты (Рис. 8.21).

Рис. 8.21.

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

Рис. 8.22.

Для расчета суммы необходимо задействовать обработчики событий При изменении для количества и цены (Рис. 8.22). Хотя результат этих обработчиков должен быть одинаков, для удобства приведено два разных способа написания этого действия.

&НаКлиенте

Процедура ТоварыКоличествоПриИзменении(Элемент)

Элементы.Товары.ТекущиеДанные.Сумма = Элементы.Товары.ТекущиеДанные.Цена * Элементы.Товары.ТекущиеДанные.Количество;

КонецПроцедуры

 

&НаКлиенте

Процедура ТоварыЦенаПриИзменении(Элемент)

СтрокаРасчета = Элементы.Товары.ТекущиеДанные;

СтрокаРасчета.Сумма = СтрокаРасчета.Цена * СтрокаРасчета.Количество;

КонецПроцедуры

Рис. 8.23.

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

Рис. 8.24.

Рис. 8.25.

В подвале можно отображать как заранее известный и фиксированный текст (Рис. 8.25), так и автоматически вычисляемые платформой данные. В нашем случае это будет итог по колонке сумма (Рис. 8.26).

Рис. 8.26.

В результате пользователь получит следующую форму (Рис. 8.27) для работы с документом приходная накладная.

Рис. 8.27.


Самостоятельно

Создайте документ Расходная накладная (Рис. 8.28 - Рис. 8.30)

Рис. 8.28.

Рис. 8.29.

Рис. 8.30.

 
   

 


Документ РасходнаяНакладная имеет более сложную структуру, чем рассмотренный ранее документ ПриходнаяНакладная, поэтому задействуем еще ряд механизмов для облегчения работы пользователя. Для того, чтобы в табличную часть Товары пользователь мог подбирать только товары, а в табличную часть Услуги, соответственно, услуги, в свойствах реквизитов установим параметры выбора (Рис. 8.31).

Рис. 8.31.

Так же улучшим работу пользователя с сотрудником. Сделаем так, что доступными к выбору станут только не уволенные сотрудники. Нам потребуется создать новую форму выбора в справочнике "Сотрудники", причем форма должна быть неосновной, т.е. будет использовано только для нашей расходной накладной (Рис. 8.32)

Рис. 8.32.

Рис. 8.33.

В этой форме мы данные будем отображать без учета иерархии (Рис. 8.33)

Рис. 8.34.

Теперь укажем, что в расходной накладной выбор сотрудника будет происходить именно посредством новой формы (Рис. 8.34) и добавим отбор только работающих сотрудников (Рис. 8.35).

Рис. 8.35.

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

Естественно, необходимо произвести расчет суммы НДС, согласно указанной ставки


Поделиться с друзьями:

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

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

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.263 с.