gifts2017

Интерактивное размещение элементов на форме

Опубликовал Виктор Пыженко (prog.ert) в раздел Программирование - Работа с интерфейсом

Разработка позволяет интерактивно “рисовать” элементы на форме.
Предполагалось, что будет использоваться для автоматизации рабочего места официанта ресторана (кафе), для автоматизации бильярдной.

Используется библиотека fabricjs

Работает в тонком клиенте, веб и толстом клиентах.

Для веб клиента необходимо в константах задать имя сервера, на котором размещена база, и в папку самого веб сервера кинуть файл fabric.min.js (примерно вот так C:\WebServer\htdocs\fabric.min.js)

Библиотеку или скачать с сайта  разработчика, или сохранить из макета обработки.

 

В демо конфигурации для примера взят зал ресторана (кафе), в котором нужно разместить столики.

Для этого в конфигураторе есть пара справочников, Залы и Столики, который подчинен справочнику залы. Координаты столиков и их размеры хранятся в регистре РазмещениеСтоликов.

При старте формы, панель находится в режиме "просмотра", и пользователь может только кликнуть по какому-либо столику, при этом будет выведено сообщение, по каком именно объекту был клик... в этом месте можно вставить ввод нового заказа, к примеру

 

В этом же событии отрабатываются и другие действия. В режиме редактирования это добавление и удаление.

Какое именно событие было отправлено, можно определить по переменной val_event. val_event - это ссылка на скрытое поле html документа... 

Для входа в режим редактирования нажимаем "Начать редактирование", при этом будут доступны кнопки Добавить, Удалить, Удалить все и Выровнять. Так же в html документе сработает функция editMode()

При нажатии на Добавить, на экране будет выведен список столиков текущего зала, в котором уже указаны столики, которые добавлены. При выборе столика в в html документ будет послан id столика, который нужно добавить. Теперь обработка "ждет" клика. После клика на панель будет добавлен выбранный столик в указанное место. В регистр РазмещениеСтоликов будет добавлена информация о параметрах столика.

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

После нажатия "Удалить все" просто происходит очистка панели и удаление записей в регистре.

 

Обмен данными между 1с и html документом происходит через JSON, работу с которым недавно добавили.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Демо база
.cf 248,15Kb
12.05.15
8
.cf 248,15Kb 8 Скачать

См. также

Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа