VI. ОДНА ПРОЦЕДУРА ДЛЯ ОБРАБОТКИ НЕСКОЛЬКИХ СОБЫТИЙ



В рассмотренном выше примере два раза был использован один и тот же программный код при обработке событий.

 

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

1. В дереве объектов конфигурации выбрать Общие далее Общие модули, кнопка Добавить(рис. 68а).

Рис. 68а. Выбор объекта конфигурации Общие модули

2. Назовем новый общий модуль РаботаСДокументами (рис. 68б). Установим в свойствах флажок Клиент (управляемое приложение), а флажок Сервер снимем. Это значит, что экземпляры этого модуля будут скомпилированы в контексте тонкого клиента и в контексте веб-клиента.

Рис. 68б. Свойства объекта конфигурации Общие модули

 

3. Внесем в модуль следующий текст:

 

В процедуру РассчитатьСумму() передаем переменную СтрокаТабличнойЧасти, которая была определена в обработчике событий ПриИзменении полей Количество и Цена документа Акт приема в ремонт.

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

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

 

4. Внесем изменения в Модуль Формы документа Акт приема в ремонт для полей Количество и Цена.

 

В результате выполнения первой строки процедуры обработчика переменная СтрокаТабличнойЧасти будет содержать объект ДанныеФормыСтруктура. Этот объект содержит данные ,находящиеся в текущей строке табличной части документа (Элементы.Услуги.ТекущиеДанные).

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

 

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

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

1. Внесите еще 2 записи в Акты приема в ремонт для того, чтобы проверить работу приложения после изменений (рис. 67ж).

VII. ДОКУМЕНТ «ОКАЗАНИЕ УСЛУГИ»

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

 

1. Добавим новый ДокументВыполнениеУслуги. Введем данные, как показано на рис. 69. Обратите внимание на Представление списка – Оказание услуги, так документ будет называться в приложении.

Рис. 69а. Установка основных свойств документа

2. Отметим необходимые подсистемы (рис. 69б).

Рис. 69б. Определение списка подсистем

3. На закладке Данные создадим реквизиты документа (рис. 69в):

- Клиент – СправочникСсылка.Клиенты. Установим свойство Проверка заполнения в значение Выдавать ошибку;

- Оборудование Справочник.Сссылка.Оборудование. Установим свойство Проверка заполнения в значение Выдавать ошибку;

- Склад – СправочникСсылка.Склады. Выбреем для свойства Значение заполнение предопределенный элемент Основной склад справочника.

- Мастер – Справочник.Ссылка.Подразделения. Установим свойство Проверка заполнения в значение Выдавать ошибку.

Рис. 69в. Реквизиты документа ВыполнениеУслуги

 

В табличной части документа создадим ПереченьНоменклатуры с реквизитами (рис. 69г):

- Услуга, тип СправочникСсылка.НоменклатураУслуг;

- Количество, тип Число, длина 15, точность 3, неотрицательное;

- Цена, тип Число, длина 15, точность 2, неотрицательное;

- Сумма, тип Число, длина 15, точность 3, неотрицательное.

Рис. 69г. Реквизиты табличной части документа ВыполнениеУслуги

 

4. На закладке Формы создайте основную форму документа аналогично Форме АктПриемаВРемонт.

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

Необходимо создать два обработчика событий ПереченьНоменклатурыКоличествоПриИзменении и ПереченьНоменклатурыЦеныПриИзменении.

 

5. Также отредактируем Командный интерфейс, чтобы подсистеме Оказание услуг была доступна команда создания новых документов.

 

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

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

1. Внесите не менее 10 документов Оказание услугидля того, чтобы проверить работу приложения после изменений.

Рис. 69д. Форма ввода данных по документу Оказание услуги

VIII. ПЕРИОДИЧЕСКИЙ РЕГИСТР СВЕДЕНИЙ

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

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

В дальнейшем может возникнуть потребность анализа изменений стоимости услуг во времени.

Для этого воспользуемся Регистром сведений.

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

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

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

 

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

 

1. Добавить новый Регистр сведений (рис. 70а).

Рис. 70а. Выбор объекта конфигурации Регистр сведений

 

2. Присвоим имя Регистру сведений – Цены. Установим периодичностьВ пределах секунды (т.к. необходимо отслеживать цены несколько раз в течении дня). Также установим Представление записи как Цена, а Представление списка как Цены на номенклатуру(рис. 70б).

Рис. 70б. Основные свойства регистра сведений Цены

 

Обратите внимание на свойство Режим записи. По умолчанию оно имеет значение – Независимый, т.е. в созданный независимый регистр сведений в дальнейшем можно будет вводить данные без использования регистратора», вручную».

 

3. На закладке Подсистемы по логике конфигурации укажем, что регистр будет доступен в разделах Бухгалтерия, Оказание услуг.

 

4. На закладке Данные создадим измерение НоменклатураУслуг с типом СправочникСсылка.НоменклатураУслуг. Укажем, что это измерение будет Ведущим (рис. 70в).

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

Рис. 70в. Создание ведущего измерения регистра сведений

 

4. Далее создадим ресурсЦена,тип Число, длина 15, точность 2, неотрицательное (рис. 70г).

Рис. 70г. Ресурс регистра сведений

 

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

 

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

1. Задайте несколько вариантов цен от 2-х до 5-ти по каждой услуги из справочника на разные даты при помощи формы (рис. 70д).

Рис. 70г. Форма для ввода цен на услуги в регистре сведений

 


Дата добавления: 2018-04-15; просмотров: 336; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!