Последняя версия DataExpress 3 beta от 1 сентября 2019 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница
ИзображениеИзображениеИзображение

Работа с регистрами

Расширение функционала и существующих возможностей программы с помощью модулей расширений и плагинов от сторонних разработчиков.

Модератор: Разработчики расширений

Аватара пользователя
admin
Разработчик
Сообщения: 4613
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 19 раз
Поблагодарили: 90 раз

Работа с регистрами

Сообщение admin » Чт сен 20, 2018 11:31 pm

1. Копировать в регистр
Расширение копирует данные формы и ее подчиненные данные в другую форму, называемую регистром. Это позволяет решать некоторые задачи, в которых имеется три уровня подчиненности данных: Операция->Изделие->Комплектующее, Меню->Блюдо->Продукты, Операция->Услуги->Работы, материалы и т. д. Возможности запросов ограничены, они могут извлекать данные только из двух уровней подчиненности: формы и таблицы. Но если в таблице есть объекты, которые имеют какой-то состав (например, изделие состоит из комплектующих), то запрос не может получить этот состав. Для этого приходилось связывать формы запросами и использовать свойство объекта "Заполнить таблицу". Вместо этого можно просто копировать нужные для анализа данные в отдельную форму и использовать простые запросы для получения результатов. При этом интерфейс программы заметно упростится, т. к. будет избавлен от лишних элементов.

Для того, чтобы легче было разобраться с настройками действия сделал такой сводный рисунок на примере демо-базы.
REGISTERDEMO.png
REGISTERDEMO.png (94.08 КБ) 7397 просмотров

2. Записать в регистр остатков
Реализация хранения итогов в форме, называемой регистром остатков. С помощью этого действия вы сможете, к примеру, вычислять остатки товаров на текущий момент. Это альтернатива вычислению остатков с помощью запроса. Запросу приходится каждый раз просматривать таблицы, чтобы вычислить остатки. Если данных много, это может занимать некоторое время. В регистре остатки уже рассчитаны и их получение происходит практически мгновенно. Расчет остатков происходит при сохранении и удалении записей. Действие ищет в регистре соответствующую запись и меняет в ней числовое поле: увеличивает или уменьшает значение в зависимости от выбранной операции. Если запись не найдена, то она добавляется. Действие может предупреждать об отрицательных остатках. Предупреждение отображается в окне вывода.

1.1 - добавлено действие "Записать в регистр остатков".
1.0 - первая версия.

Registers.zip
(6.96 КБ) 113 скачиваний
Вложения
REGBALANCEDEMO.zip
Демонстрация регистра остатков
(107.52 КБ) 218 скачиваний
Registers 1.1.zip
Актуальная версия
(10.9 КБ) 176 скачиваний
REGISTERDEMO.zip
Демонстрация копирования в регистр
(78.19 КБ) 177 скачиваний

Аватара пользователя
admin
Разработчик
Сообщения: 4613
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 19 раз
Поблагодарили: 90 раз

Re: Работа с регистрами

Сообщение admin » Вт мар 05, 2019 11:20 am

Иван писал(а):Теоретически реализация расширения "Регистр" без привязки к форме по объекту возможна?

Не совсем понял (совсем не понял).

cordek
Опытный
Сообщения: 353
Зарегистрирован: Вс май 14, 2017 2:53 pm
Благодарил (а): 42 раза
Поблагодарили: 3 раза

Re: Работа с регистрами

Сообщение cordek » Вт мар 05, 2019 11:54 am

Иван писал(а):Шикарное расширение, использую его для просчета рецептур. Недавно был реализован To Do List с отправкой заданий в телеграмм посредством cmd, и хотелось допилить возможность вытягивать историю изменения формы. Это в первую очередь нужно для реализации передачи заданий дальше, то есть менеджер получивший задание просто корректирует задачу (не создает новую), и перенаправляет ее в работу, если есть такая необходимость (например если поступил вопрос из сайта, но по сути он должен быть направлен бухгалтеру). Если есть история формы по id можно вытянуть статусы и ответственных, время изменения и т.д. (наглядно видно что откуда и куда). Теоретически реализация расширения "Регистр" без привязки к форме по объекту возможна?


а можно пощупать ваше решение?

Аватара пользователя
Гocть
Эксперт
Сообщения: 1583
Зарегистрирован: Пн ноя 27, 2017 8:02 am
Поблагодарили: 9 раз

Re: Работа с регистрами

Сообщение Гocть » Вт мар 05, 2019 12:00 pm

cordek писал(а):а можно пощупать ваше решение?

Осторожно, чтобы никто не видел.
Фрилансер. Разработка на заказ. Консультирование.

Аватара пользователя
Иван
Интересующийся
Сообщения: 85
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 8 раз
Поблагодарили: 2 раза

Re: Работа с регистрами

Сообщение Иван » Вт мар 05, 2019 12:06 pm

admin писал(а):
Иван писал(а):Теоретически реализация расширения "Регистр" без привязки к форме по объекту возможна?

Не совсем понял (совсем не понял).


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

Модификация: регистр 2.0 копирует все без привязки к форме, то есть изменил форму, создалась новая запись в регистре.

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

Аватара пользователя
Иван
Интересующийся
Сообщения: 85
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 8 раз
Поблагодарили: 2 раза

Re: Работа с регистрами

Сообщение Иван » Вт мар 05, 2019 12:08 pm

cordek писал(а):
Иван писал(а):Шикарное расширение, использую его для просчета рецептур. Недавно был реализован To Do List с отправкой заданий в телеграмм посредством cmd, и хотелось допилить возможность вытягивать историю изменения формы. Это в первую очередь нужно для реализации передачи заданий дальше, то есть менеджер получивший задание просто корректирует задачу (не создает новую), и перенаправляет ее в работу, если есть такая необходимость (например если поступил вопрос из сайта, но по сути он должен быть направлен бухгалтеру). Если есть история формы по id можно вытянуть статусы и ответственных, время изменения и т.д. (наглядно видно что откуда и куда). Теоретически реализация расширения "Регистр" без привязки к форме по объекту возможна?


а можно пощупать ваше решение?


База уже содержит данные. Но могу вытянуть что интересно если спросите конкретнее.

Аватара пользователя
Иван
Интересующийся
Сообщения: 85
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 8 раз
Поблагодарили: 2 раза

Re: Работа с регистрами

Сообщение Иван » Вт мар 05, 2019 12:08 pm

Гocть писал(а):
cordek писал(а):а можно пощупать ваше решение?

Осторожно, чтобы никто не видел.


База уже содержит данные. Но могу вытянуть что интересно если спросите конкретнее.

Аватара пользователя
admin
Разработчик
Сообщения: 4613
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 19 раз
Поблагодарили: 90 раз

Re: Работа с регистрами

Сообщение admin » Вт мар 05, 2019 6:11 pm

Иван писал(а):Модификация: регистр 2.0 копирует все без привязки к форме, то есть изменил форму, создалась новая запись в регистре.

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

Это уже на логирование похоже.

Аватара пользователя
Иван
Интересующийся
Сообщения: 85
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 8 раз
Поблагодарили: 2 раза

Re: Работа с регистрами

Сообщение Иван » Вт мар 05, 2019 7:44 pm

admin писал(а):
Иван писал(а):Модификация: регистр 2.0 копирует все без привязки к форме, то есть изменил форму, создалась новая запись в регистре.

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

Это уже на логирование похоже.


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

j-функции
Вложения
screen-shot.png
screen-shot.png (182.54 КБ) 1075 просмотров

Аватара пользователя
admin
Разработчик
Сообщения: 4613
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 19 раз
Поблагодарили: 90 раз

Re: Работа с регистрами

Сообщение admin » Вс мар 31, 2019 8:57 pm

Добавлено новое действие "Записать в регистр остатков".

Аватара пользователя
Иван
Интересующийся
Сообщения: 85
Зарегистрирован: Сб дек 22, 2018 2:16 pm
Благодарил (а): 8 раз
Поблагодарили: 2 раза

Re: Работа с регистрами

Сообщение Иван » Вс апр 07, 2019 1:52 pm

admin писал(а):Добавлено новое действие "Записать в регистр остатков".


Я так понял попробовав что с числами можно только выполнять действие + или -. А с объектами сохранять значения полей, это верно?

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


Вернуться в «Расширения и плагины»