Добавить новый регистр сведений. Имя – Расценки. Периодичность – в пределах секунды (дата с точностью до секунды), режим записи – независимый.
Вкладка Данные. Измерение – ВидРабот (тип данных – ссылка на справочник ВидРабот). Ресурс – Стоимость. В регистре будут храниться сведения о расценках в разрезе видов работ на указанный период.
Прикладная задача: использование регистра сведений при заполнении документов
Вернемся к документу Договор на оказание услуг. Выше отмечалось, что для пользователя необходима автоматизация следующих операций при работе с договором:
· при выборе услуги – автоматический вывод последней цены по Прайсу (последней по отношению к дате документа Договор);
· при изменении значения количества – расчет полей Сумма, НДС, Сумма СНДС, а также итоговых полей документа.
Запуск требуемой процедуры будет производиться в момент события изменения значения объекта формы Поля - ввода Услуга. Для соответствующего поля в форме вызвать окно свойств (двойной щелчок по полю ввода Услуга), в списке свойств в разделе События найти событие При изменении, щелкнуть по лупе. В модуле формы появляется «заготовочка» процедуры обработки СпецификацияУслугУслугаПриИзменении. Сформируем текст процедуры:
|
|
Процедура СпецификацияУслугУслугаПриИзменении(Элемент) | |
СТЧ=ЭлементыФормы.СпецификацияУслуг.ТекущиеДанные; | Ссылку на текущую строку присваиваем переменной СТЧ |
Отбор=Новый Структура("Услуга", СТЧ.Услуга); | Создаем новую (временную) структуру данных, которая состоит из заголовка поля («Услуга»), значения поля (СТЧ.Услуга). Данной структуре присваиваем имя Отбор. Отбор – предопределенное имя для объекта Отбор, по которому осуществляется текущая фильтрация записей при считывании или записи набора. Внимание: имя поля («Услуга») должно точно соответствовать имени соответствующего измерения в регистре сведений Прайс. |
Значение=РегистрыСведений.ПрайсУслуги.ПолучитьПоследнее(Дата,Отбор) | Обращаемся к регистру сведений ПрайсУслуги и используем метод ПолучитьПоследнее (Дата, Отбор), который возвращает нам значения ресурсов наиболее поздней записи регистра, которая соответствует дате договора (параметр Дата) и значению передаваемого измерения (Отбор). Возвращается соответствующая запись регистра, которой присваиваем имя Значение. |
СТЧ.ЦенаПродажи=Значение.ЦенаПродажи; | Присваиваем значение ЦеныПродажи найденной записи соответствующему полю документа. |
КонецПроцедуры |
Запустить приложение, ввести договор, проверить работу процедуры.
Процедуру расчета полей Сумма, НДС, Сумма СНДС, а также итоговых полей документа сформировать самостоятельно (см. процедуру на стр. 6).
|
|
Регистры Накопления
Объект конфигурации регистр накопления предназначен для описания структур хранения данных, поставляемых другими объектами базы, чаще всего документами. Данные документов будут храниться в регистре в виде отдельных записей одинаковой структуры. Структура регистра задается разработчиком при создании регистра и включает также измерения и ресурсы. Для формирования записей регистра при проведении документов создается процедура движения. Каждому движению присваивается вид движения: приход (+) или расход (-). Каждая запись регистра привязывается к порождающему ее документу (регистратору).
При работе с запросами Регистр накопления представляется как виртуальная таблица, позволяющая отобразить не только показатели прихода и расхода ресурсов, но и остатки. При этом разработчику не требуется прописывать дополнительные процедуры итогов, что очень удобно при анализе информации, разработке отчетов и др.
Для на шей информационной системы регистры накопления необходимы для:
· контроля выполнения договоров;
· контроля запасов на складе;
· ряда других контролирующих и аналитических функций, в том числе учете затрат.
Создание регистров накопления
На данном этапе разработаем 2 регистра накопления:
Выполнение договора. Позволяет накапливать информацию о выполнении обязательств перед контрагентами в разрезе конкретных договоров, услуг. Регистраторами являются: Договор на оказание услуг (вид движения – приход), Акт об оказании услуг (вид движения – расход). На основании записей регистра можно отслеживать ход выполнения обязательств, анализировать взаимоотношения с клиентами, проводить мониторинг «востребованности» услуг и др.
Движение материалов. Позволяет накапливать информацию о движении материалов: поступление, расход, запасы. Регистраторы: Поставка материалов (вид движения – приход), Акт об оказании услуг (вид движения – расход). На основании записей данного регистра можно отслеживать оборот материальных запасов, определять потребность в закупках, контролировать запасы.
Регистр накопления ВыполнениеДоговоров.
Создать новый регистр, присвоить имя. Вид регистра – остатки (в представлениях регистра при конструировании запросов будут автоматически рассчитываться остатки в заданных пользователем измерениях).
Вкладка Данные. Измерения: Контрагент, Договор, Услуга, ЦенаПоДоговору. Типы данных – ссылки на соответствующие справочники и документы. Ресурсы: Количество, Сумма.
Вкладка Регистраторы. Активизировать соответствующие регистраторы (Договор об оказании услуг, Акт об оказании услуг).
Регистр накопления ДвижениеМатериалов.
Создать новый регистр, присвоить имя. Вид регистра – остатки
Вкладка Данные. Измерения: Материал. Типы данных – ссылки на соответствующие справочники и документы. Ресурсы: Количество, Сумма.
Вкладка Регистраторы. Активизировать соответствующие регистраторы (ПоставкаМатериалов, Акт об оказании услуг).