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

Копировать в регистр

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

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

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

Копировать в регистр

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

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

Для того, чтобы легче было разобраться с настройками действия сделал такой сводный рисунок на примере демо-базы.
REGISTERDEMO.png
REGISTERDEMO.png (94.08 КБ) 851 просмотр
Вложения
Registers.zip
(6.96 КБ) 79 скачиваний
REGISTERDEMO.zip
(83.08 КБ) 79 скачиваний

Теги:

Vofka18
Интересующийся
Сообщения: 180
Зарегистрирован: Вс мар 04, 2018 4:54 pm

Re: Копировать в регистр

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

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

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

Re: Копировать в регистр

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

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

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

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

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

Если это "регистр накопления", то без проблем можно его оперативно опросить перед проведением в "проверке значения".
Фрилансер. Разработка на заказ. Консультирование.

Vofka18
Интересующийся
Сообщения: 180
Зарегистрирован: Вс мар 04, 2018 4:54 pm

Re: Копировать в регистр

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

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

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

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

Re: Копировать в регистр

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

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

Vofka18
Интересующийся
Сообщения: 180
Зарегистрирован: Вс мар 04, 2018 4:54 pm

Re: Копировать в регистр

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

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

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

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

Re: Копировать в регистр

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

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

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

cordek
Опытный
Сообщения: 277
Зарегистрирован: Вс май 14, 2017 2:53 pm

Re: Копировать в регистр

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

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

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

Re: Копировать в регистр

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

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

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

Аватара пользователя
Иван
Новичок
Сообщения: 12
Зарегистрирован: Сб дек 22, 2018 2:16 pm

Re: Копировать в регистр

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

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

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


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


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