Главная » Просмотр файлов » Карпухина Н.Н. Экономические информационные системы

Карпухина Н.Н. Экономические информационные системы (1084313), страница 8

Файл №1084313 Карпухина Н.Н. Экономические информационные системы (Карпухина Н.Н. Экономические информационные системы) 8 страницаКарпухина Н.Н. Экономические информационные системы (1084313) страница 82018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 8)

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

Для этого необходимо:

  1. написать функцию РозничнаяЦена, которая будет возвращать актуальную цену;

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

Поскольку такая функция может понадобиться в дальнейшем, напишем ее в «общедоступном» месте – в общем модуле.

1. Создать функцию РозничнаяЦена в ветке Общие – Общие модули с названием РаботаСоСправочниками. Установить флаг Вызов сервера (чтобы экспортные процедуры и функции этого модуля можно было бы вызвать с клиента) (рис. 71а).

Рис. 71а. Свойства общего модуля

2. Поместите в модуль следующий текст.

Функция РозничнаяЦена(АктуальнаяДата,ЭлементНоменклатурыУслуг)Экспорт

//Создать вспомогательный объект Отбор

Отбор = Новый Структура("НоменклатураУслуг",ЭлементНоменклатурыУслуг);

//Получить актуальные значения ресурсов регистра

ЗначенияРесурсов=РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата,Отбор);

Возврат ЗначенияРесурсов.Цена;

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

Поясним функцию.

Для получения розничной цены необходимо в функцию передать два параметра:

  • АктуальнаяДата – параметр типа Дата, определяет точку на оси времени, в которой нас интересует значение розничной цены.

  • ЭлементНоменклатурыУслуг – ссылка на элемент справочника НоменклатураУслуг, для которого необходимо получить розничную цену.

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

Имя ключа структуры («НоменклатураУслуг ») должна совпадать с именем измерения регистра, заданного в конфигураторе, а значение элемента структуры (ЭлементНоменклатурыУслуг) задает отбираемое по данному измерению значение.

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

Метод ПолучитьПоследнее возвращает структуру, содержащую значения ресурсов, которая сохраняется в переменной ЗначенияРесурсов.

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

Т.о. данную функцию можно вызывать в некоторый момент времени.

3. Далее решим задачу подстановки актуальной цены в документ.

Необходимо открыть Форму документа ВыполнениеУслуги (она была создана ранее). В Модуль формы необходимо дописать Процедуру ПриИзменении.

Для этого дважды щелкните на элемент формы ПереченьНоменклатурыУслуга (рис. 71б).

Рис. 71б. Элементы документа Выполнение услуги

В окне свойств в событии ПриИзменении создайте обработчик события, в который внесем следующий текст:

&НаКлиенте

Процедура ПереченьНоменклатурыУслугаПриИзменении(Элемент)

//Получить следующую строку табличной части

СтрокаТабличнойЧасти=Элементы.ПереченьНоменклатуры.ТекущиеДанные;

//Установить цену

СтрокаТабличнойЧасти.Цена=РаботаСоСправочниками.РозничнаяЦена(Объект.Дата,СтрокаТабличнойЧасти.Услуга);

//Пересчитать сумму

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

Поясним функцию.

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

Затем вызываем функцию РозничнаяЦена() из общего модуля РаботаСоСправочниками.

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

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

Функция возвращает последнее значение цены, и это значение присваивается полю Цена в текущей строке табличной части документа (СтрокаТабличнойЧасти.Цена).

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

Обратите внимание, что процедура ПереченьНоменклатурыУслугаПриИзменении() начинает работать в модуле формы на стороне клиента, т.к. это обработчик интерактивного события формы. Создавая заготовку этой процедуры, платформа автоматически разместит перед описанием процедуры директиву компиляции &НаКлиенте.

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

Проверим в работе выполненные выше действия, запустим приложение в режиме 1С: Предприятие. Поработаем с разработанной конфигурацией.

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

1. Введите в приложение не менее 8-ми документов Оказание услуги.

X. ПЕРЕЧИСЛЕНИЯ

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

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

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

1. Создайте новый объект конфигурации Перечисления с именем ВидыНоменклатурыУслуг (рис. 72а).

Рис. 72а. Выбор объекта конфигурации Перечисления

2. На закладке Данные добавить два значения перечисления (рис. 72б):

  1. УслугаВЦеху,

  2. УслугаВОфисе.

Рис. 72б. Данные перечисления Виды номенклатуры

3. Далее привяжем номенклатуру услуг к значениям перечисления.

В режиме Конфигуратор создадим новый реквизит справочника НоменклатураУслугВидыНоменклатурыУслуг с типом ПеречислениеСсылка.ВидыНоменклатурыУслуг (рис. 72в).

Рис. 72в. Данные справочника НоменклатураУслуг

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

Для каждого элемента справочника Номенклатура услуг задайте соответствующее значение реквизита Вид номенклатуры.

4. Проверим в работе выполненные выше действия, запустим приложение в режиме 1С: Предприятие.

XI. ОБОРОТНЫЕ РЕГИСТРЫ НАКОПЛЕНИЯ

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

Для реализации этих задач создадим «хранилище» данных – оборотный регистр накопления.

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

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

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

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

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

1. Создать новый регистр накопления Выполненные услуги и определить вид регистра – Обороты (рис. 73а).

Рис. 73а. Создание оборотного регистра накопления

2. На закладке Данные создадим измерения регистра:

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

    • Клиент, тип СправочникСсылка.Клиент;

    • Мастер, тип СправочникСсылка.Подразделения.

У регистра будет два ресурса:

    • Количество, Тип данных – Число, Длина – 15, Флаг – неотрицательное, Точность – 0;

    • Стоимость, Тип данных – Число, Длина – 15, Флаг – неотрицательное, Точность – 2.

После создания регистр Выполненные услуги должен выглядеть в дереве конфигурации так, как показано на рис. 73б.

Рис. 73б. Оборотный регистр накопления Выполненные услуги – Измерения и ресурсы

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

Откроем вначале подсистему Бухгалтерия (рис. 73в).

Рис. 73в. Подсистема Бухгалтерия

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

Тоже самое выполните для остальных подсистем.

Рис. 73г. Командный интерфейс подсистемы Бухгалтерия

Характеристики

Тип файла
Документ
Размер
5,19 Mb
Тип материала
Предмет
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6430
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее