Файл: Методические указания к лабораторным работам по дисциплине Разработка интеллектуальных мобильных приложений и чатботов Самара 2021.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 20.03.2024

Просмотров: 128

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Товары
Вначале сделаем список товаров более информативным. Для этого создадим форму списка справочника Товары и ограничим состав полей списка товаров реквизитами Наименование, Код, Артикул и Описание.
Отображение и выбор картинки товара
Теперь, используя справочник хранимых файлов, мы можем добавить ссылку на файл картинки в список реквизитов товара и отобразить картинку в форме товара, а также предоставить возможность перевыбора этой картинки.
Для этого в окне редактирования справочника Товары на закладке
Данные добавим реквизит
ФайлКартинки типа
СправочникСсылка.ХранимыеФайлы и установим у него в свойстве Связи
параметров выбора отбор по владельцу – Отбор.Владелец(Ссылка), а также свойство Синоним зададим как Картинка.
Добавление реквизита «ФайлКартинки» в справочник «Товары»
То есть в справочнике Товары будет храниться не сама картинка товара, а ссылка на нее. Такой подход, когда все данные типа ХранилищеЗначения хранятся отдельно от других данных объекта,
является методически правильным. Дело в том, что при обращении к данным объектов они целиком считываются из базы данных. Поэтому манипулирование этими объектами может замедляться из-за необходимости считывания из базы данных больших объемов информации. Особенно это чувствительно на мобильном устройстве.
Отбор по владельцу в свойствах реквизита нужен для того, чтобы при выборе хранимых файлов их список отбирался бы по владельцу. В нашем случае при выборе картинки товара должны предлагаться только файлы картинок, относящиеся к конкретному товару.
Также сделаем небольшое улучшение в интерфейсе – нажмем кнопку Стандартные
реквизиты и установим для поля
Родитель синоним Группа.
Теперь создадим форму элемента справочника Товары и отобразим в ней поле для выбора картинки, а также поместим само изображение товара.
Для этого в палитре свойств элемента формы ФайлКартинки установим свойства: КнопкаВыпадающегоСписка –
Нет, КнопкаОчистки – Да, ОтображениеКнопкиВыбора – В поле ввода.
Палитра свойств поля формы товара «ФайлКартинки»

Для отображения картинки в форме добавим строковый реквизит АдресКартинки, в котором будет храниться навигационная ссылка на данные картинки в справочнике хранимых файлов. Перетащим реквизит АдресКартинки в форму. У соответствующего поля формы установим свойства: Вид – Поле картинки, ПоложениеЗаголовка – Нет.
Палитра свойств поля формы товара «АдресКартинки»
Форма товара в редакторе формы
Затем установим значение реквизита АдресКартинки при создании формы товара.
Для этого создадим обработчик события формы ПриСозданииНаСервере и заполним его
&НаСервере
Процедура
ПриСозданииНаСервере
(
Отказ
,
СтандартнаяОбработка
)


ФайлКартинки
=
Объект
ФайлКартинки
;
Если
НЕ
ФайлКартинки
Пустая
()
Тогда
АдресКартинки
=
ПолучитьНавигационнуюСсылку
(
ФайлКартинки
,
"ДанныеФ
айла"
)
Конецесли;
КонецПроцедуры
В этом обработчике мы присваиваем реквизиту
АдресКартинки навигационную ссылку на реквизит ДанныеФайла хранимого файла, на который указывает реквизит товара ФайлКартинки. Таким образом, при создании формы товара, если у товара установлена картинка, она автоматически отображается в форме.
При перевыборе картинки товара в поле ФайлКартинки мы должны отследить изменение картинки и обновить навигационную ссылку в реквизите АдресКартинки.
Для этого создадим обработчик события ПриИзменении для поля формы ФайлКартинки и заполним его
&НаКлиенте
Процедура
ФайлКартинкиПриИзменении
(
Элемент
)
ФайлКартинки
=
Объект
ФайлКартинки
;
Если
НЕ
ФайлКартинки
Пустая
()
Тогда
АдресКартинки
=
ПолучитьНавигационнуюСсылку
(
ФайлКартинки
,
"ДанныеФ
айла"
)
Иначе
АдресКартинки
=
""
;
Конецесли;
КонецПроцедуры
Также при начале выбора картинки товара нужно проверить, чтобы данные товара были записаны. Для этого создадим обработчик события НачалоВыбора для поля формы ФайлКартинки и заполним его
&НаКлиенте
Процедура
ФайлКартинкиНачалоВыбора
(
Элемент
,
ДанныеВыбора
,
СтандартнаяО
бработка
)
Если
Объект
Ссылка
Пустая
()
Тогда
ПоказатьПредупреждение
(,
"Данные не записаны!"
);
СтандартнаяОбработка
=
Ложь;

Возврат;
КонецЕсли;
КонецПроцедуры
Теперь проверим, как это работает.
Откроем форму товара Туфли и нажмем кнопку выбора в поле Картинка. Поскольку раньше мы добавили картинку Туфли в справочник ХранимыеФайлы и указали этот товар в качестве владельца файла, то нам будет показана именно эта запись из списка хранимых файлов.
Выбор картинки товара в форме товара
Нажмем кнопку Выбрать, и выбранная картинка будет установлена как картинка товара и сразу же показана в форме.

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


Создание картинки товара в выбор ее в форме товара
Отображение картинки товара
Если в форме товара нажать на ссылку Файлы, то можно увидеть список всех подчиненных этому товару файлов. Здесь можно, например, создать несколько картинок для одного товара. Поскольку ранее в форму списка хранимых файлов мы добавили команду Открыть файл, то можно открыть выделенный в списке файл ассоциированным с ним приложением.

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


Следуя теоретической части, выполните следующие задания:
1. Создать форму документа Заказ и усовершенствовать ее внешний вид.
2. Улучшить внешний вид списка клиентов.
3. Улучшить справочник ХранимыеФайлы.
4. Сделать список товаров более информативным и улучшить интерфейс.

Лабораторная работа № 7
Цель работы.
Создание отчетов.
Теория.
Приход товаров
Для учета поступлений товаров создадим документ
ПриходнаяНакладная (представление списка – Поступления).
Добавим реквизит документа Склад (тип СправочникСсылка.Склады,
Проверка заполненияВыдавать ошибку).
Добавим табличную часть документа Товары с реквизитами:

Товар (тип СправочникСсылка.Товары, Проверка
заполнения
Выдавать ошибку);

Цвет (тип СправочникСсылка.Цвета, Проверка
заполнения
Выдавать ошибку);

Размер (тип СправочникСсылка.Размеры, Проверка
заполнения
Выдавать ошибку);

Цена (тип Число, длина 10, 2, Неотрицательное, Проверка заполнения
Выдавать ошибку);

Количество (тип Число, длина 5, 0);

Сумма (тип Число, длина 10, 2).
Затем создадим основную форму этого документа. Внешним видом формы мы заниматься не будем, только добавим под таблицей товаров стандартные итоговые поля ИтогКоличество и ИтогСумма из табличной части документа.

Форма приходной накладной в редакторе формы
А также добавим в модуль формы процедуры для автоматического пересчета суммы по товару при изменении его цены и количества.
&НаКлиенте
Процедура
ТоварыЦенаПриИзменении
(
Элемент
)
СтрокаТабличнойЧасти
=
Элементы
Товары
ТекущиеДанные
;
СтрокаТабличнойЧасти
Сумма
=
СтрокаТабличнойЧасти
Количество
*
Строк аТабличнойЧасти
Цена
;
КонецПроцедуры
Обработчик события «ПриИзменении» для поля «ТоварыКоличество»
&НаКлиенте
Процедура
ТоварыКоличествоПриИзменении
(
Элемент
)
СтрокаТабличнойЧасти
=
Элементы
Товары
ТекущиеДанные
;
СтрокаТабличнойЧасти
Сумма
=
СтрокаТабличнойЧасти
Количество
*
Строк аТабличнойЧасти
Цена
;
КонецПроцедуры
Назначение этих процедур уже неоднократно разбиралось ранее, поэтому мы не будем еще раз на этом останавливаться.
Затем создадим клиентские обработчики события ПриИзменении для полей таблицы формы ТоварыЦена и ТоварыКоличество и свяжем их с соответствующими процедурами в модуле формы.


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

Клиент (тип СправочникСсылка.Клиенты, Проверка
заполнения
Выдавать ошибку);

Курьер (тип СправочникСсылка.Пользователи, Проверка заполнения
Выдавать ошибку);

Склад (тип СправочникСсылка.Склады, Проверка
заполнения
Выдавать ошибку);

Основание (тип ДокументСсылка.Заказ).
Добавим табличную часть документа Товары с реквизитами:

Товар (тип СправочникСсылка.Товары, Проверка
заполнения
Выдавать ошибку);

Цвет (тип СправочникСсылка.Цвета, Проверка
заполнения
Выдавать ошибку);

Размер (тип СправочникСсылка.Размеры, Проверка
заполнения
Выдавать ошибку);

Цена (тип Число, длина 10,
2,
Неотрицательное, Проверка
заполненияВыдавать ошибку);

Количество (тип Число, длина 5, 0);

Сумма (тип Число, длина 10, 2).

На закладке Ввод на основании окна редактирования документа укажем, что документ вводится на основании документа Заказ.
Список объектов, на основании которых вводится документ «Расходная накладная»
Затем создадим основную форму этого документа. Внешним видом формы мы заниматься не будем, только добавим под таблицей товаров стандартные итоговые поля ИтогКоличество и ИтогСумма из табличной части документа. Кроме того, установим у поля Основание свойство
ТолькоПросмотр, чтобы пользователь не мог изменять ссылку на заказ, на основании которого создана расходная накладная.
А также добавим в модуль формы процедуры для автоматического пересчета суммы по товару при изменении его цены и количества
&НаКлиенте
Процедура
ТоварыЦенаПриИзменении
(
Элемент
)
СтрокаТабличнойЧасти
=
Элементы
Товары
ТекущиеДанные
;
СтрокаТабличнойЧасти
Сумма
=
СтрокаТабличнойЧасти
Количество
*
Строк аТабличнойЧасти
Цена
;
КонецПроцедуры
Обработчик события «ПриИзменении» для поля «ТоварыКоличество»
&НаКлиенте
Процедура
ТоварыКоличествоПриИзменении
(
Элемент
)