Последняя версия 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 КБ) 7395 просмотров

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 скачиваний

Аватара пользователя
Develop-Soft
Сообщения: 963
Зарегистрирован: Вт мар 05, 2019 6:09 pm
Благодарил (а): 38 раз
Поблагодарили: 203 раза
Контактная информация:

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

Сообщение Develop-Soft » Ср июн 19, 2019 2:36 pm

drts писал(а):Как обойти?

Походу - никак... Операции "Сервис"а выполняются без проверок и какого-либо взаимодействия с формой.

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

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

Сообщение admin » Ср июн 19, 2019 3:46 pm

Верно. Скрипт или в расширении smart использовать функцию smart_setfieldvalue (точно не помню не отключал ли я там afterpost).

drts
Эксперт
Сообщения: 362
Зарегистрирован: Сб окт 29, 2016 11:35 pm
Откуда: Новороссийск
Благодарил (а): 25 раз
Поблагодарили: 4 раза

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

Сообщение drts » Ср июн 19, 2019 5:59 pm

Ок. Скрипт, значит скрипт.

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

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

Сообщение Иван » Чт окт 10, 2019 11:16 am

Как можно подкорректировать сприпт регистра наличия что б запись из таблицы копировало только с определенным значением
поля объекта? В таблице списка товаров есть объект "Статус проводки", значения: оприходован, оприходован как избыток, брак, недостача. В наличие в идеале должно копировать только оприходован и избыток.

Решил вопрос костылем в виде доп поля количества (что уже зависит от объекта) что будет копировать в регистр. Думаю так проще.

HoVlaN
Новичок
Сообщения: 11
Зарегистрирован: Чт апр 28, 2016 3:00 pm

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

Сообщение HoVlaN » Вс окт 20, 2019 12:07 pm

Хотел использовать это расширение в своей задаче, но не вышло. Выдает ошибку. Делал как и в примере с расширением.
Думал так чего-то намудрил, решил на основе другого примера сделать - ошибка такая же.
Error.jpg
Ошибка
Error.jpg (20.57 КБ) 331 просмотр
Вложения
DEMO_DB.rar
(85.12 КБ) 15 скачиваний

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

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

Сообщение admin » Вс окт 20, 2019 12:38 pm

В операции = допустимо использовать только объекты.

HoVlaN
Новичок
Сообщения: 11
Зарегистрирован: Чт апр 28, 2016 3:00 pm

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

Сообщение HoVlaN » Вс окт 20, 2019 12:56 pm

Значит мне не удастся передать цену либо подтягивать отдельно?

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

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

Сообщение admin » Вс окт 20, 2019 1:10 pm

Храните цену в товаре. Подтягивайте из товара.


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