Создание документа «Оказание услуги»
Теперь мы аналогичным образом создадим второй документ, необходимый нам, – Оказание услуги. Для этого потребуется выполнить следующие действия:
На закладке Основные определим, как будет представлен документ в интерфейсе «1С:Предприятия». Представление объекта задавать не будем, вместо него будет использоваться Синоним объекта.
Представление списка зададим как Оказание услуг. На закладке Подсистемы отметим, что документ будет доступен в подсистемах Оказание услуг и Бухгалтерия. На закладке Данные создадим реквизиты документа:
q создать новый объект конфигурации Документ ОказаниеУслуги с реквизитами:
Склад, тип СправочникСсылка.Склады, Выберем для свойства Значение заполнения предопределенный элемент Основной справочника Склады;
Клиент, тип СправочникСсылка.Клиенты, Установим свойство Проверка заполнения в значение Выдавать ошибку;
Мастер, тип СправочникСсылка.Сотрудники, Установим свойство Проверка заполнения в значение Выдавать ошибку;
q создать табличную часть этого документа ПереченьНоменклатуры с реквизитами:
§ Номенклатура, тип СправочникСсылка.Номенклатура,
§ Количество, тип Число, длина 15, точность 3, неотрицательное,
§ Цена, тип Число, длина 15, точность 2, неотрицательное,
§ Сумма, тип Число, длина 15, точность 2, неотрицательное,
q Установим для табличной части в целом и для каждого ее реквизита свойство Проверка заполнения в значение Выдавать ошибку.
q создать основную форму документа,
q
Для поля ПереченьНоменклатурыКоличество создадим обработчик события ПриИзменении (выполняющийся на клиенте), в котором будем вызывать процедуру РассчитатьСумму из общего модуля РаботаСДокументами.
При этом откроется модуль формы с шаблоном обработчика события ПереченьНоменклатурыКоличествоПриИзменении, который мы пока заполнять не будем, а перейдем в окно элементов формы на закладку Форма и аналогичным образом создадим обработчик события ПереченьНоменклатурыЦенаПриИзменении для поля ПереченьНоменклатурыЦена.
Далее модуль формы документа ОказаниеУслуги нужно заполнить следующим образом (листинг 4.5).
&НаКлиенте
Процедура ПереченьНоменклатурыКоличествоПриИзменении(Элемент) СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные; РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры
&НаКлиенте
Процедура ПереченьНоменклатурыЦенаПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные;
РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры
В заключение отредактируем командный интерфейс, чтобы в разделе Оказание услуг была доступна команда создания новых документов.
Для этого откроем окно редактирования объекта конфигурации Подсистема ОказаниеУслуг и нажмем кнопку Командный интерфейс. В открывшемся окне отразятся все команды данной подсистемы.
В группе Панель действий. Создать включим видимость у команды Оказание услуги: создать (рис. 4.26).
В результате документ ОказаниеУслуги будет выглядеть следующим образом (рис. 3.11):
Рис. 3.11. Документ «ОказаниеУслуги»
После того, как эти действия будут выполнены, запустим 1С:Предприятие в режиме отладки и убедимся, что при вводе цены и количества в табличную часть документа ОказаниеУслуги сумма пересчитывается по нашему алгоритму.
Обратите внимание, что склад Основной подставляется по умолчанию, а для полей Мастер и Клиент выполняется проверка заполнения. А также при вводе цены и количества в табличную часть документа Оказание услуги сумма пересчитывается по нашему алгоритму.