Последняя версия DataExpress 26.8.17

Изображение Скачать | Изображение Что нового? | Демо

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

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

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

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

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

Сообщение admin » 20 сен 2018, 23:31

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

2. Записать в регистр остатков
Реализация хранения итогов в форме, называемой регистром остатков. С помощью этого действия вы сможете, к примеру, вычислять остатки товаров на текущий момент. Это альтернатива вычислению остатков с помощью запроса. Запросу приходится каждый раз просматривать таблицы, чтобы вычислить остатки. Если данных много, это может занимать некоторое время. В регистре остатки уже рассчитаны и их получение происходит практически мгновенно. Расчет остатков происходит при сохранении и удалении записей. Действие ищет в регистре соответствующую запись и меняет в ней числовое поле: увеличивает или уменьшает значение в зависимости от выбранной операции. Если запись не найдена, то она добавляется. Действие может предупреждать об отрицательных остатках. Предупреждение отображается в окне вывода.
Вложения
Registers 1.5.1.zip
(11.5 КБ) 58 скачиваний
RegistersWeb 1.5.1.zip
(6.35 КБ) 24 скачивания
Registers 1.5.zip
(11.41 КБ) 394 скачивания
Registers 1.4.zip
(11.38 КБ) 187 скачиваний
REGISTERDEMO.zip
(102.73 КБ) 481 скачивание
REGBALANCEDEMO.zip
(109.62 КБ) 398 скачиваний
Registers 1.3.zip
(11.34 КБ) 193 скачивания
Registers 1.2.zip
(11.66 КБ) 204 скачивания

Vofka18
Специалист
Сообщения: 971
Зарегистрирован: 04 мар 2018, 16:54
Благодарил (а): 181 раз
Поблагодарили: 244 раза

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

Сообщение Vofka18 » 15 окт 2018, 10:05

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

Аватара пользователя
Гocть
Эксперт
Сообщения: 1576
Зарегистрирован: 27 ноя 2017, 08:02
Благодарил (а): 1 раз
Поблагодарили: 29 раз

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

Сообщение Гocть » 15 окт 2018, 11:01

Vofka18 писал(а):остатки вычислять уже из регистров а не из документов прихода\расхода
Vofka18 писал(а):По назначению ли я буду использовать данное расширение?

Скорее всего нет, т.к. этот регистр больше напоминает "регистр сведений", а вам для учета приход/расход нужен "регистр накопления" (остатков). Это уже другой вид регистра с иной логикой.

Вот к примеру я добавил 2 отдельных меню (нужно посчитать сколько ушло яиц куриных):
Изображение
По регистру мы видим то что внесли, но подсчет данных будет почти равносилен прямому пересчету документов. Нам же нужна готовая цифра 6 в "сколько всего яиц мы потратили".

Vofka18 писал(а):2) В вычисляемых полях регистров, можно ли прописать какую нить функцию для запрета проведения по условию?

Если это "регистр накопления", то без проблем можно его оперативно опросить перед проведением в "проверке значения".
Последний раз редактировалось admin 14 июн 2026, 08:21, всего редактировалось 1 раз.
Причина: Удалена ссылка на БД в облаке
Фрилансер. Разработка на заказ. Консультирование.

Vofka18
Специалист
Сообщения: 971
Зарегистрирован: 04 мар 2018, 16:54
Благодарил (а): 181 раз
Поблагодарили: 244 раза

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

Сообщение Vofka18 » 15 окт 2018, 11:32

Гocть писал(а):а вам для учета приход/расход нужен "регистр накопления" (остатков). Это уже другой вид регистра с иной логикой.

А случайно нет ли у вас никакой наработки в данном направлении? Изначально думал, что все эти регистры, примочки 1С-ки, и они не пригодятся при разработке своей базы. Плюс отсутствие опыта в построении архитектуры БД. А сейчас когда база уже работает, постоянно вылазят всякие проблемы и приходится аккуратненько менять все, не потеряв данных(ну в плане чтоб остатки остались правильными...), и постепенно вникая во все эти вопросы, понимаю что "проведение" это не просто галочка в документе :D, и данные по проводкам следует хранить отдельно...
А до конца не понимаю что именно нужно сделать... тут по сути вопрос не по Dataexpress, а по архитектуре БД :(

Аватара пользователя
Гocть
Эксперт
Сообщения: 1576
Зарегистрирован: 27 ноя 2017, 08:02
Благодарил (а): 1 раз
Поблагодарили: 29 раз

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

Сообщение Гocть » 15 окт 2018, 12:03

Готовой наработки нет, есть только общее представление о процессах учета. Даже отдельно взятые разработчики типовых конфиг 1С иногда не имеют полного представления о той архитектуре, которую они создают, ну а чтобы такое нечто похожее реализовать в DataExpress нужно много времени, больше опыта и мозги не одного умника.
Регистры придумали внедрять в 1С, но наверное они не открыли этим америку а просто внедрили как способ оптимизации работы с бд и расширили под частые задачи и законодательство РФ (регистр бухгалтерии, например) и других стран потребителей.
Фрилансер. Разработка на заказ. Консультирование.

Vofka18
Специалист
Сообщения: 971
Зарегистрирован: 04 мар 2018, 16:54
Благодарил (а): 181 раз
Поблагодарили: 244 раза

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

Сообщение Vofka18 » 15 окт 2018, 12:12

Гocть писал(а):Готовой наработки нет, есть только общее представление о процессах учета. Даже отдельно взятые разработчики типовых конфиг 1С иногда не имеют полного представления о той архитектуре, которую они создают, ну а чтобы такое нечто похожее реализовать в DataExpress нужно много времени, больше опыта и мозги не одного умника.
Регистры придумали внедрять в 1С, но наверное они не открыли этим америку а просто внедрили как способ оптимизации работы с бд и расширили под частые задачи и законодательство РФ (регистр бухгалтерии, например) и других стран потребителей.

Спасибо за ответ. А не подскажите где можно почитать именно о алгоритме поведения регистра накопления? А то везде натыкаюсь только на пример реализации в 1с , а что он из себя представляет "в нутри", так сказать, не могу нигде найти...

Аватара пользователя
Гocть
Эксперт
Сообщения: 1576
Зарегистрирован: 27 ноя 2017, 08:02
Благодарил (а): 1 раз
Поблагодарили: 29 раз

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

Сообщение Гocть » 15 окт 2018, 12:20

Vofka18 писал(а):А то везде натыкаюсь только на пример реализации в 1с

Ну значит DataExpress вторая после 1С, где такая фича требуется :lol: .
Для понимания общих принципов работы могу лишь подтолкнуть к прочтению документации на официальном сайте 1с, а попробовать что-то можно в "версии для обучения программированию" (качается там же).
Фрилансер. Разработка на заказ. Консультирование.

Аватара пользователя
cordek
Эксперт
Сообщения: 2548
Зарегистрирован: 14 май 2017, 14:53
Благодарил (а): 737 раз
Поблагодарили: 605 раз
Контактная информация:

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

Сообщение cordek » 15 окт 2018, 19:06

Как вариант реализовать отдельный регистр проведения, и отдельный по выводу остатков. Пересчет остатков реализовать в скрипте, который будет выполнятся по мере проведения в регистре.
балуюсь разработкой LIMS JDX
cordek {/а} yandex/ru

Аватара пользователя
Гocть
Эксперт
Сообщения: 1576
Зарегистрирован: 27 ноя 2017, 08:02
Благодарил (а): 1 раз
Поблагодарили: 29 раз

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

Сообщение Гocть » 15 окт 2018, 19:40

cordek писал(а):отдельный по выводу остатков

Проводим документ, он разносится в регистр сведений, который в свою очередь вызывает процедуру пересчета товара в регистре остатков и в случае расхождений запрещает проведение документа и откатывает обе операции в обратном порядке? :shock:
Или я неправильно понял.
Фрилансер. Разработка на заказ. Консультирование.

Аватара пользователя
Иван
Опытный
Сообщения: 291
Зарегистрирован: 22 дек 2018, 14:16
Откуда: Kiev
Благодарил (а): 43 раза
Поблагодарили: 116 раз

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

Сообщение Иван » 05 мар 2019, 11:05

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

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


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


Вернуться в «Каталог расширений»