|

1С: Элемент программное создание формы с интерактивными кнопками


Содержание:

1. 1С: Предприятие Элемент, логика работы приложения и основные понятия

2. Реализация программы 1С: Элемент

1С: Предприятие Элемент, логика работы приложения и основные понятия

Функциональность приложения:

                Приложение «1С: Предприятие. Элемент» функционирует в соответствии с заданным проектом, который состоит из различных элементов. Каждый элемент представляет собой описание определенной группы сущностей или процессов в конкретной предметной области, обладающих схожими характеристиками и ролями.

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

Описание модели данных:

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

Фиксированный набор значений:

                В процессе разработки приложений часто возникает необходимость в фиксированных наборах значений, таких как состояния заказов (например, Открыт, В работе, Выполнен) или виды цен (Оптовые, Розничные и т.д.). Эти значения задаются разработчиком и используются пользователями при редактировании прайс-листов или изменении состояния заказов.

Хранение данных:

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

Контракт:

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

Глобальное клиентское событие:

                Глобальное клиентское событие позволяет задать событие на уровне подсистемы или проекта, к которому могут подписываться другие методы.      Это особенно полезно, когда один компонент интерфейса должен уведомить другие компоненты о наступлении определенного события.

Интеграционная шина:

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

Реализация программы 1С: Элемент

Задача: Необходимо в приложении программно добавить кнопки с переходами в другие приложения, которые меняют цвет при наведении, добавив в текущее приложение.

Шаг 1.

В навигаторе проекта создаём Компонент интерфейса => Фиксированная группа.

Выбираем “Ориентация : Горизонтальная”, чтобы наши кнопки были расположены горизонтально.

Шаг 2. Открываем форму и создаём метод ПослеСоздания:

@Обработчик

метод ПослеСоздания()

    Содержимое.Очистить()

    знч Меню = ПолучитьМеню()

    для Элемент из Меню

        ДобавитьКнопкуМеню(Элемент,Цвет(Элемент.Наименование))

    ;    

;

В нём очищаем содержимое

Шаг 3.

Создаём структуру, в которой храним: Наименование, Ссылка, Картинка.

структура ПунктМеню

    обз знч Наименование:Строка

    обз знч Ссылка:Строка

    обз знч Картинка:ДвоичныйОбъект.Ссылка 

;

Шаг 4.

Создаём метод ПолучитьМеню, в котором добавляем сами кнопки, их название, путь и картинки.

@Локально

метод ПолучитьМеню(): Массив<ПунктМеню>

    знч Меню: Массив<ПунктМеню>

    Меню.Добавить(новый ПунктМеню(“Время призов”, “vremyaprizov,”,Ресурс{ koderline /ЗвездаВкружке.png}.Ссылка))

    Меню.Добавить(новый ПунктМеню(“Билеты и отели”, “tickets,”,Ресурс{ koderline /билеты.png}.Ссылка))

    Меню.Добавить(новый ПунктМеню(“Одежда и обувь”, “category?id=odezda,”,Ресурс{ koderline /одежда.png}.Ссылка))

    Меню.Добавить(новый ПунктМеню(“Электроника”, “category?id=electronic,”,Ресурс{koderline/электроника.png}.Ссылка))

    Меню.Добавить(новый ПунктМеню(“Дом и сад”, “category?id=domisad,”,Ресурс{ koderline /дом.png}.Ссылка))

    Меню.Добавить(новый ПунктМеню(“Детские товары”, “category?id=detskiytovary,”,Ресурс{ koderline /детскиетовары.png}.Ссылка))

    Меню.Добавить(новый ПунктМеню(“Акции”, “akcii,”,Ресурс{ koderline /акции.png}.Ссылка))

    Меню.Добавить(новый ПунктМеню(“Премиум”, “premium,”,Ресурс{ koderline /премиум.png}.Ссылка))

    возврат Меню   

;

Путь к картинке берем из ресурсов, нажав “Скопировать относительный путь”.

Скопировать относительный путь

Шаг 5.

Создаём процедуру, в которой определяем цвета названия кнопок и функцию реализации ДобавитьКнопкуМеню().

@Локально

метод Цвет(Наименование: Строка): неизвестно

    если Наименование ==”Время призов”

        возврат Цвета.Красный

    иначе если Наименование ==”Билеты и отели”

        возврат Цвета.Зеленый

    иначе

        возврат Цвета.Стилевые.Текст 

    ; 

;

@Локально

метод ДобавитьКнопкуМеню(Элемент: ПунктМеню, Цвет: неизвестно)

    Содержимое.Добавить(новый Надпись(

        Значение = Элемент.Наименование,

        Ссылка = Элемент.Ссылка,

        Изображение = Элемент.Картинка,

        Цвет = Цвет,

        ПриНаведении = &ПриНаведении,

        ПриПотереНаведения = &ПриПотереНаведения

    )) 

;

Шаг 6.

                Описываем методы ПриНаведении и ПриПотереНаведения, в которых задаём цвет.

метод ПриНаведении(Компонент:Компонент,Событие:СобытиеКомпонента)

    (Компонент как Надпись).Цвет = Цвета.Синий   

;

метод ПриПотереНаведения(Компонент:Компонент,Событие:СобытиеКомпонента)

    (Компонент как Надпись).Цвет = Цвет((Компонент как Надпись).Значение как Строка)     

;

Получившиеся кнопки.

Кнопки при наведени

 Ошибка

    Переход на форму по кнопке.

Итог: У нас отображаются кнопки, которые при наведении подсвечиваются синим цветом, при нажатии переходит на форму, так как у нас нету формы, отображается ошибка точки входа.

Специалист компании ООО “Кодерлайн”,

Юрков Алексей


Помогла ли вам статья? Оставьте свой комментарий:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Блог про 1С:Предприятие

Copyright © 2024 TopKoder

Мы занимаемся внедрением и обслуживанием программных продуктов 1С.