1. Копировать в регистр
Расширение копирует данные формы и ее подчиненные данные в другую форму, называемую регистром. Это позволяет решать некоторые задачи, в которых имеется три уровня подчиненности данных: Операция->Изделие->Комплектующее, Меню->Блюдо->Продукты, Операция->Услуги->Работы, материалы и т. д. Возможности запросов ограничены, они могут извлекать данные только из двух уровней подчиненности: формы и таблицы. Но если в таблице есть объекты, которые имеют какой-то состав (например, изделие состоит из комплектующих), то запрос не может получить этот состав. Для этого приходилось связывать формы запросами и использовать свойство объекта "Заполнить таблицу". Вместо этого можно просто копировать нужные для анализа данные в отдельную форму и использовать простые запросы для получения результатов. При этом интерфейс программы заметно упростится, т. к. будет избавлен от лишних элементов.
2. Записать в регистр остатков
Реализация хранения итогов в форме, называемой регистром остатков. С помощью этого действия вы сможете, к примеру, вычислять остатки товаров на текущий момент. Это альтернатива вычислению остатков с помощью запроса. Запросу приходится каждый раз просматривать таблицы, чтобы вычислить остатки. Если данных много, это может занимать некоторое время. В регистре остатки уже рассчитаны и их получение происходит практически мгновенно. Расчет остатков происходит при сохранении и удалении записей. Действие ищет в регистре соответствующую запись и меняет в ней числовое поле: увеличивает или уменьшает значение в зависимости от выбранной операции. Если запись не найдена, то она добавляется. Действие может предупреждать об отрицательных остатках. Предупреждение отображается в окне вывода.
Работа с регистрами
Модератор: Разработчики расширений
- admin
- Разработчик
- Сообщения: 8013
- Зарегистрирован: 14 мар 2016, 11:32
- Откуда: Ленинградская
- Благодарил (а): 290 раз
- Поблагодарили: 1890 раз
Работа с регистрами
- Вложения
-
- 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: Работа с регистрами
Добрый день, очень не хватало подобного функционала, наконец добрался, чтоб позаниматься своей БД и внедрить данное расширение, но есть пару вопросов, подскажите.
Решил использовать данное расширение, для очень ответственной задачи в моей БД, это учет остатков по партиям(по моему, это самое правильное решение). Создать два регистра по приходам и расходам, и остатки вычислять уже из регистров а не из документов прихода\расхода.
Так вот собственно вопросы:
1) По назначению ли я буду использовать данное расширение? Будут ли какие подводные камни, чтоб по максимуму смог их предусмотреть. (в плане, может кто уже реализовал подобное, были ли какие проблемы)
2) В вычисляемых полях регистров, можно ли прописать какую нить функцию для запрета проведения по условию? Тоесть если у меня не достаточно остатков, чтобы программа выдала сообщение и не провела документ? Если нет такой возможности, подскажите где прописать подобное условие, чтобы не сломать логику всего расширения.
Заранее благодарен!
Решил использовать данное расширение, для очень ответственной задачи в моей БД, это учет остатков по партиям(по моему, это самое правильное решение). Создать два регистра по приходам и расходам, и остатки вычислять уже из регистров а не из документов прихода\расхода.
Так вот собственно вопросы:
1) По назначению ли я буду использовать данное расширение? Будут ли какие подводные камни, чтоб по максимуму смог их предусмотреть. (в плане, может кто уже реализовал подобное, были ли какие проблемы)
2) В вычисляемых полях регистров, можно ли прописать какую нить функцию для запрета проведения по условию? Тоесть если у меня не достаточно остатков, чтобы программа выдала сообщение и не провела документ? Если нет такой возможности, подскажите где прописать подобное условие, чтобы не сломать логику всего расширения.
Заранее благодарен!
- Гocть
- Эксперт
- Сообщения: 1576
- Зарегистрирован: 27 ноя 2017, 08:02
- Благодарил (а): 1 раз
- Поблагодарили: 29 раз
Работа с регистрами
Vofka18 писал(а):остатки вычислять уже из регистров а не из документов прихода\расхода
Vofka18 писал(а):По назначению ли я буду использовать данное расширение?
Скорее всего нет, т.к. этот регистр больше напоминает "регистр сведений", а вам для учета приход/расход нужен "регистр накопления" (остатков). Это уже другой вид регистра с иной логикой.
Вот к примеру я добавил 2 отдельных меню (нужно посчитать сколько ушло яиц куриных):

По регистру мы видим то что внесли, но подсчет данных будет почти равносилен прямому пересчету документов. Нам же нужна готовая цифра 6 в "сколько всего яиц мы потратили".
Vofka18 писал(а):2) В вычисляемых полях регистров, можно ли прописать какую нить функцию для запрета проведения по условию?
Если это "регистр накопления", то без проблем можно его оперативно опросить перед проведением в "проверке значения".
Последний раз редактировалось admin 14 июн 2026, 08:21, всего редактировалось 1 раз.
Причина: Удалена ссылка на БД в облаке
Причина: Удалена ссылка на БД в облаке
Фрилансер. Разработка на заказ. Консультирование.
-
Vofka18
- Специалист
- Сообщения: 971
- Зарегистрирован: 04 мар 2018, 16:54
- Благодарил (а): 181 раз
- Поблагодарили: 244 раза
Re: Работа с регистрами
Гocть писал(а):а вам для учета приход/расход нужен "регистр накопления" (остатков). Это уже другой вид регистра с иной логикой.
А случайно нет ли у вас никакой наработки в данном направлении? Изначально думал, что все эти регистры, примочки 1С-ки, и они не пригодятся при разработке своей базы. Плюс отсутствие опыта в построении архитектуры БД. А сейчас когда база уже работает, постоянно вылазят всякие проблемы и приходится аккуратненько менять все, не потеряв данных(ну в плане чтоб остатки остались правильными...), и постепенно вникая во все эти вопросы, понимаю что "проведение" это не просто галочка в документе
А до конца не понимаю что именно нужно сделать... тут по сути вопрос не по Dataexpress, а по архитектуре БД
- Гocть
- Эксперт
- Сообщения: 1576
- Зарегистрирован: 27 ноя 2017, 08:02
- Благодарил (а): 1 раз
- Поблагодарили: 29 раз
Re: Работа с регистрами
Готовой наработки нет, есть только общее представление о процессах учета. Даже отдельно взятые разработчики типовых конфиг 1С иногда не имеют полного представления о той архитектуре, которую они создают, ну а чтобы такое нечто похожее реализовать в DataExpress нужно много времени, больше опыта и мозги не одного умника.
Регистры придумали внедрять в 1С, но наверное они не открыли этим америку а просто внедрили как способ оптимизации работы с бд и расширили под частые задачи и законодательство РФ (регистр бухгалтерии, например) и других стран потребителей.
Регистры придумали внедрять в 1С, но наверное они не открыли этим америку а просто внедрили как способ оптимизации работы с бд и расширили под частые задачи и законодательство РФ (регистр бухгалтерии, например) и других стран потребителей.
Фрилансер. Разработка на заказ. Консультирование.
-
Vofka18
- Специалист
- Сообщения: 971
- Зарегистрирован: 04 мар 2018, 16:54
- Благодарил (а): 181 раз
- Поблагодарили: 244 раза
Re: Работа с регистрами
Гocть писал(а):Готовой наработки нет, есть только общее представление о процессах учета. Даже отдельно взятые разработчики типовых конфиг 1С иногда не имеют полного представления о той архитектуре, которую они создают, ну а чтобы такое нечто похожее реализовать в DataExpress нужно много времени, больше опыта и мозги не одного умника.
Регистры придумали внедрять в 1С, но наверное они не открыли этим америку а просто внедрили как способ оптимизации работы с бд и расширили под частые задачи и законодательство РФ (регистр бухгалтерии, например) и других стран потребителей.
Спасибо за ответ. А не подскажите где можно почитать именно о алгоритме поведения регистра накопления? А то везде натыкаюсь только на пример реализации в 1с , а что он из себя представляет "в нутри", так сказать, не могу нигде найти...
- Гocть
- Эксперт
- Сообщения: 1576
- Зарегистрирован: 27 ноя 2017, 08:02
- Благодарил (а): 1 раз
- Поблагодарили: 29 раз
Re: Работа с регистрами
Vofka18 писал(а):А то везде натыкаюсь только на пример реализации в 1с
Ну значит DataExpress вторая после 1С, где такая фича требуется
Для понимания общих принципов работы могу лишь подтолкнуть к прочтению документации на официальном сайте 1с, а попробовать что-то можно в "версии для обучения программированию" (качается там же).
Фрилансер. Разработка на заказ. Консультирование.
- cordek
- Эксперт
- Сообщения: 2548
- Зарегистрирован: 14 май 2017, 14:53
- Благодарил (а): 737 раз
- Поблагодарили: 605 раз
- Контактная информация:
Re: Работа с регистрами
Как вариант реализовать отдельный регистр проведения, и отдельный по выводу остатков. Пересчет остатков реализовать в скрипте, который будет выполнятся по мере проведения в регистре.
балуюсь разработкой LIMS JDX
cordek {/а} yandex/ru
cordek {/а} yandex/ru
- Гocть
- Эксперт
- Сообщения: 1576
- Зарегистрирован: 27 ноя 2017, 08:02
- Благодарил (а): 1 раз
- Поблагодарили: 29 раз
Re: Работа с регистрами
cordek писал(а):отдельный по выводу остатков
Проводим документ, он разносится в регистр сведений, который в свою очередь вызывает процедуру пересчета товара в регистре остатков и в случае расхождений запрещает проведение документа и откатывает обе операции в обратном порядке?
Или я неправильно понял.
Фрилансер. Разработка на заказ. Консультирование.
- Иван
- Опытный
- Сообщения: 291
- Зарегистрирован: 22 дек 2018, 14:16
- Откуда: Kiev
- Благодарил (а): 43 раза
- Поблагодарили: 116 раз
Re: Работа с регистрами
admin писал(а):Расширение копирует данные формы и ее подчиненные данные в другую форму, называемую регистром. Это позволяет решать некоторые задачи, в которых имеется три уровня подчиненности данных: Операция->Изделие->Комплектующее, Меню->Блюдо->Продукты, Операция->Услуги->Работы, материалы и т. д. Возможности запросов ограничены, они могут извлекать данные только из двух уровней подчиненности: формы и таблицы. Но если в таблице есть объекты, которые имеют какой-то состав (например, изделие состоит из комплектующих), то запрос не может получить этот состав. Для этого приходилось связывать формы запросами и использовать свойство объекта "Заполнить таблицу". Вместо этого можно просто копировать нужные для анализа данные в отдельную форму и использовать простые запросы для получения результатов. При этом интерфейс программы заметно упростится, т. к. будет избавлен от лишних элементов.
Для того, чтобы легче было разобраться с настройками действия сделал такой сводный рисунок на примере демо-базы.
REGISTERDEMO.png
Шикарное расширение, использую его для просчета рецептур. Недавно был реализован To Do List с отправкой заданий в телеграмм посредством cmd, и хотелось допилить возможность вытягивать историю изменения формы. Это в первую очередь нужно для реализации передачи заданий дальше, то есть менеджер получивший задание просто корректирует задачу (не создает новую), и перенаправляет ее в работу, если есть такая необходимость (например если поступил вопрос из сайта, но по сути он должен быть направлен бухгалтеру). Если есть история формы по id можно вытянуть статусы и ответственных, время изменения и т.д. (наглядно видно что откуда и куда). Теоретически реализация расширения "Регистр" без привязки к форме по объекту возможна?