Similar presentations:
№6 Общие модули_ табличный документ_ объектная модель работы с данными (1)
1.
Общие модули.Табличный документ.
Объектная модель работы
с данными
2.
Общие модулиВ общих модулях хранятся процедуры и функции,
которые вызываются из других модулей системы. Сам по
себе общий модуль не исполняется. Исполняются
отдельные его процедуры/функции в момент их вызова
из других модулей.
Общий модуль
Алгоритм выбора каталога файла
Модуль формы
Модуль команды
Модуль управляемого
приложения
3.
Вынесем блок кода по выбору каталога вобщий модуль
Общий модуль создаем в блоке «Общие»
4.
Вынесем блок кода по выбору каталога вобщий модуль
1.
Имя модуля должно быть понятным.
2. Модуль открывается двойным щелчком
или по ссылке в свойствах.
3. Флаг
«Глобальный»
указывает
на
использование модуля в глобальном
контексте.Вы сможете вызывать вашу
экспортную
процедуру,
по
наименованию, словно эта функция
процедуры модуля, который на данный
момент выполняется. Не рекомендуется
использовать этот флаг, если модуль
будет использоваться редко.
4. Можно
указать
место,
где
будет
исполняться
модуль.
Если
указать
несколько директив, то явное указание
директивы в модуле будет обязательным
5.
Вынесем блок кода по выбору каталога вобщий модуль
Для использования процедур и функций, описанных в
общем модуле, из других модулей необходимо
добавлять
«ЭКСПОРТ»
после
описания
процедуры/функции
Общий модуль
Процедура Процедура1()
КонецПроцедуры
Модуль формы
Процедура Процедура1() Экспорт
КонецПроцедуры
6.
ЗаданиеВынесем блок нашего кода по выбору каталога в общий
модуль. Перенесем нашу логику в общий модуль
_РаботаСФайлами, а на форме выполним вызов функции
из общего модуля.
7.
ЗаданиеВынесем блок нашего кода по прочтению файла в
общий модуль. В нашу функцию в общем модуле мы
передадим параметр ИмяКаталога, потому что в этом
модуле значение имени каталога нам неизвестно
8.
ЗаданиеВынесем блок нашего кода по загрузке данных в
таблицу в общий модуль. Для этого нужно создать
новый общий модуль с исполнением на сервере,
так
как
таблица
значений
на
клиенте
существовать не может
9.
ЗаданиеСоздадим функцию и перенесем в нее данные
10.
ЗаданиеУказываем параметры, так как это необходимо. И так
как это функция, то в конце возвращаем значение.
11.
ЗаданиеТак как код этой функции получился довольно
объемным, то рекомендуется добавить ей описание.
Сделать это можно нажав правой кнопкой мыши на
функцию и выбрать Рефакторинг – Создать описание
функции
12.
ЗаданиеМы получим следующий шаблон, его можно заполнить
13.
ЗаданиеПри обращении к функции будет доступно наше
описание
14.
ЗаданиеВызываем функцию из общего модуля вместо нашего
объемного кода и проверяем работоспособность
15.
ЗаданиеА теперь сохраним наши данные на форме, чтобы при
открытии формы данные остались. Для этого заходим в
Свойства формы, в разделе Использование выставляем
значение
параметра
«АвтоматическоеСохранениеДанных» – «Использовать»
16.
ЗаданиеВ результате в реквизитах формы появится флаг
«Сохранение», ставим его у тех реквизитов, чьи
значения хотим сохранять.
17.
Табличный документ18.
Задание1.
2.
3.
4.
5.
6.
7.
8.
Назовите отличие Структуры от Соответствия?
Каким образом именуются колонки у таблицы значений?
Где существует таблица значений? Как думаете, почему?
Что такое директива?
В чем отличия директивы НаСервере и НаСервереБезКонтекста?
В чем отличие процедуры и функции?
Что такое параметр?
Какое ключевое слово сделает нашу процедуру/функцию
доступной из любого места?
9. Как вы понимаете, что такое обработчик события?
10. Выполните задание: необходимо создать обработку, у которой на
форме будет 3 числа (реквизиты формы). По кнопке «Найти
наименьшее число» необходимо вывести сообщение о том, какое
из трех, введенных пользователем чисел, наименьшее.
19.
Отобразим нашу таблицу на формеЗа все визуальные отображения отвечает клиент, но на
клиенте таблицы значений не существует. Для
решения задачи нам необходим такой объект данных,
который будет существовать и на клиенте, и на
сервере.
Такой объект называется «Табличный документ».
Подробнее по ссылке: https://v8.1c.ru/platforma/tablichnyydokument/
20.
Отобразим нашу таблицу на формеУ ячеек табличного документа есть свойство «Текст»,
изменение которого влияет на содержание ячейки.
Именно этим мы и воспользуемся.
21.
Отобразим нашу таблицу на формеАлгоритм создание табличного документа по таблице
значений может часто использоваться в работе,
поэтому вынесем этот алгоритм в общий модуль. Так
как таблица значений существует на сервере, то и
перенос информации мы осуществим на сервере.
22.
Отобразим нашу таблицу на формеСоздадим табличный документ. А также укажем
параметр функции, мы будем передавать в нее
таблицу значений
23.
Отобразим нашу таблицу на формеЗаполним шапку таблицы
24.
Отобразим нашу таблицу на формеЗаполним тело таблицы
25.
Отобразим нашу таблицу на формеВ конце вернем табличный документ
26.
Отобразим нашу таблицу на формеВозвращаемся в модуль формы и вызываем нашу
функцию
27.
Отобразим нашу таблицу на формеНам нужно показать наш табличный документ. Но
метод Показать() работает только на клиенте, поэтому
нам нужно передать наш табличный документ на
клиент
28.
Отобразим нашу таблицу на формеРезультат
29.
Домашнее задание- Сделать вывод таблицы значений в табличный
документ
- Выполнить в приходных и расходных документах
расчет суммы при изменении цены и
количества/расчет цены при изменении суммы
30.
Пример кода к ДЗ31.
Объектная модель работыс данными
32.
Объектная модель. УровниМенеджер
Менеджер.<Имя1>
Менеджер.<Имя2>
Менеджер.<Имя3>
Объект1.<Имя2>
Объект2.<Имя2>
Объект3.<Имя2>
Ссылка1.<Имя2>
Ссылка2.<Имя2>
Ссылка3.<Имя2>
33.
Объектная модель. УровниСправочникМенеджер
СправочникМенеджер.
Склады
СправочникМенеджер.
Товары
СправочникМенеджер.
Контрагенты
СправочникОбъект1.
Товары
СправочникОбъект2.
Товары
СправочникОбъект3.
Товары
СправочникСсылка1.
Товары
СправочникСсылка2.
Товары
СправочникСсылка3.
Товары
34.
Объектная модель. Уровни1. Менеджер – управляет всеми остальными уровнями
2. Менеджер.<Имя1> - управляет элементами (аналог формы списка)
3. Объект.<Имя1> - управляет на уровне конкретного
объекта
4. Ссылка.<Имя1> - нужна для чтения и доступа к объекту
через ссылку
35.
Пример работы с объектной модельюСоздадим программно элементы справочника
«Сотрудники».
Для этого создадим общую команду
Группа — расположение будущей команды на
интерфейсе.
36.
Пример работы с объектной модельюСоздание элементов справочника доступно только на
сервере, поэтому в модуле команды необходимо
добавить серверную процедуру. Сразу прописываем её
вызов в обработке команды
37.
Пример работы с объектной модельюСоздаем новый элемент справочника
38.
Пример работы с объектной модельюЗаполняем поле наименование и записываем элемент
39.
Пример работы с объектной модельюСейчас при нажатии кнопки «Создать сотрудника» в
информационной базе добавляются новые элементы
40.
Пример работы с объектной модельюМодифицируем программу. Добавим реквизиты справочнику. На
реквизит СНИЛС наложим маску
Когда в системе 1С есть поле ввода, которое имеет тип «строка», то в
таком случае к нему есть возможность применить маску ввода данных.
Данная функция отвечает за форматирование внешнего вида
информации и за её количество. Маска ввода может находить
практическое применение: маска ввода даты, маска ввода номера
телефона, кода из сообщения.
41.
Задача 2Перенесем наш код в модуль менеджера справочника
«Сотрудники», в связи с тем, что работаем сейчас на
уровне менеджера
42.
Задача 2В модуле менеджера пишем процедуру
«СоздатьСотрудника»,
добавим параметры
43.
Задача 2Создаем новый элемент. Обратите внимание, что в
модуле менеджера нам не нужно писать
Справочники.Сотрудники
44.
Задача 2Заполним реквизиты
45.
Задача 2Сделаем нашу процедуру экспортной для доступности
из других модулей
46.
Задача 2В модуле команды заменим код создания элемента
справочника
47.
Поиск по справочникуПроизведем поиск по нашему справочнику. Для этого
создадим общую форму. И добавим на неё реквизит
«Фамилия»
48.
Поиск по справочникуДобавляем на форму новую команду «НайтиСотрудника»
49.
Поиск по справочникуЕсть три метода поиска у справочника:
50.
Поиск по справочникуБудем искать по наименованию и использовать для
поиска реквизит формы. У метода
«НайтиПоНаименованию» есть параметр
«ТочноеСоответствие», по умолчанию стоит Ложь. С его
помощью можно регулировать точность поиска.
51.
Поиск по справочникуЗапишем найденное значение в переменную
52.
Поиск по справочникуПроверим, нашлось ли наше значение. Для этого
используем метод Пустая(). Если элемент справочника
не найден, то метод вернет нам Истину
53.
Поиск по справочникуПротестируем
54.
Редактирование элементовПопробуем изменить найденный элемент. На что
получим одну из самых частых ошибок:
55.
Редактирование элементовДля редактирования нам необходимо получить Объект
из Ссылки