Имя: Пароль:
1C
 
Регистр Правил !?
Ø
0 PavelGP
 
09.02.05
06:21
В статье на "Итланде" встретил такое понятие как "регистры Правил" и это касалось 1С 7.7, может кто подскажет ..что это такое?
Может новинка в 25 релизе ?
1 PavelGP
 
09.02.05
06:48
Не уж то не кто не знает ..!?
2 aKomper
 
09.02.05
06:50
Дай ссылку почитать
3 PavelGP
 
09.02.05
06:53
4 aKomper
 
09.02.05
06:55
О, это тема! Давно такое хотел замутить, вот есть что почитать теперь.
5 PavelGP
 
09.02.05
07:02
Так это что объект методанных..!?
6 aKomper
 
09.02.05
07:03
В 7.7 - нет, не слышал что-то. Хочу делать на обычных справочниках
7 Wasya
 
09.02.05
07:06
А почитать не судьба? Регистр правил - это понятие введенное авторами. Он реализуется на обычном регистре.
8 aKomper
 
09.02.05
07:10
(7) - В 7.7 на регистрах?
9 Zerg
 
09.02.05
07:30
(8) А что, а 7.7 нету регистров?
10 aKomper
 
09.02.05
07:37
(9) - Регистры в 7.7? Счас, надо поискать, не видел че-то я их там никогда :-)
11 Wasya
 
09.02.05
07:41
в v8 реализуется на регистре сведений.
12 PavelGP
 
09.02.05
07:43
11 Про 8.0 все понятно ..Регистр сведений озднозначно ..
а вот в 7.7 только на справочниках и хитроумного кода помоему так!
13 Zerg
 
09.02.05
07:44
(10) Ну поищи
14 aKomper
 
09.02.05
07:46
(0) спрашивает про 7.7, а не 8. В 7.7 то, что написано в (3), на регистрах реализовать, конечно, можно, но бессмысленно, по-моему, в большинстве случаев, поскольку придется еще и документ для установки прав лабать. А на справочниках все просто и удобно, как и сделано, опять же, в (3). Просмотрите ее, пожалуйста, все, кто тут чего-то пишет. Тема интересная, может, кто что подскажет по реализации такой вещи?
15 Z1
 
09.02.05
10:57
(0) Основная идея статьи управление выполнением программы на основании данных.
(12) Регистр сведений легко делается и в v7.
смотри http://www.mista.ru/articles1c/hare/article.76.html<br>(14)Регистр лучше чем справочник. Отменил проедение документа и нет правила
16 aKomper
 
09.02.05
11:03
(15) - Я это же поставил как недостаток. Можно документами изменять и периодические реквизиты справочников, для чего тут регистр тогда?
17 Item
 
09.02.05
11:11
Имхо, справочник и только, поскольку будет работать вне зависимости от установленных компонент.
18 aKomper
 
09.02.05
11:14
(17) - Точно говоришь, как это я мог такое забыть? Проклятый склероз :-)
19 Lee
 
09.02.05
11:14
(14) - что имеено интересует в реализации? все уже давно реализованно (демку можно скачать с сайта фирмы КИНТ) в вообще несложно создать отдельную конфигурацию "ресгитры правил" которая будет прикручивается к любой конфе мин за 30 мин.
(15) - Регистр лучше чем справочник, но хуже чем документ (по том простой причине что он не нужен впринципе)
20 Z1
 
09.02.05
11:15
(16) Читай статью из 15. Регистры сведений гораздо лучше чем переодич.
реквизиты справочников ( ИМНО) как по логическому представлению так и
физической реализацией и в dbf и sql.
На регистрах сведений элементарно строятся регистры правил.
21 aKomper
 
09.02.05
11:17
(20) - речь идет о 7.7. Откуда там регистры сведений?
22 корум
 
09.02.05
11:20
Хорошая статья. Полгода как у меня такая вещь работает.
Сделана на справочнике + 50 строк кода в глобальном модуле (для одного "регистра правил")
23 Z1
 
09.02.05
11:21
(19) Основная идея регистра (и в том числе и регистра правил)
Это Отношение ( функция ) на множестве документов ( видах документов) (
множестве проведенных документов).
24 Z1
 
09.02.05
11:29
(21) читай ссылку из 15
Статья называется "Регистры сведений на v7"
25 aKomper
 
09.02.05
11:42
Регистр сведений как объект метаданных отсутствует в 7.7. Я говорил именно об этом, а вот с чем ты не согласен, я так и не понял.
26 Lee
 
09.02.05
11:43
(23) - Если речь идет о регистрах накопления (v7 нет регистров сведений), то у данных регистров ресурс может быть только числом а у регистра правил рерус может быть любой так что в v7 регистры накопления для реализации регистров правил отпадают. В документе же все реализовать гораздо проще и лучше чем на справочнике т.к. в документе есть табличная часть которая почти идеально подходит для реализации РП.
27 Item
 
09.02.05
11:47
Реализация на справочнике:
1. Длина кода = 0
2. Длина наименования = 0
3. Реквизит Идентификатор, строка, сортировка // идентификатор записи
4.5.6... Реквизит <Измерение>, любой тип, доступный отбору (необязательно)
Ключевой вопрос - формирование уникального идентификатора записи, для измерений конкретного типа справочника, документа, и др. ссылок это строка, полученная путем сложения шестисимвольных идентификаторов измерений, полученных из внутреннего значения и сжатых в 36-ти значное представление _SrtToID(). Дли количества таких измерений не более четырех можно в качестве идентификатора использовать код справочника.
Таким образом реализуется быстрый доступ к записи по набору измерений, а также контроль уникальности записи в регистре-справочнике.
В общем случае при использовании любых типов данных строится универсальная функция ВнутрИдентификтор(Значение, Тип, Длина, Точность), а длина реквизита Идентификатор подбирается с учетом длины представлений значений этих типов.
Недостатки: длинные строки не поддаются реализации,
Достоинства: логика, скорость, ресурсы любого типа, периодические измерения не требуют дополнителього кода.
28 Z1
 
09.02.05
11:52
(25) Да я со всем согласен. Мысль регистр сведений из v8 легко реализуется
на платформе v7 c помощью регистров накоплений v7 ( или регистров оборотов).
(26)
Постулат (определение) :
регистрах накопления (v7) без измерений и ресурсов
только с реквизитами - это регистр сведений на v7.
( Реквизит регистра накопления может быть любым объектом v7)
29 Item
 
09.02.05
11:52
(27) сори.. в последней строке - "периодические ресурсы"
30 aKomper
 
09.02.05
11:58
А что за демка на КИНТе? Я слил, но там ДЛЛ-ка, хотел не парить голову и содрать код, теперь вот придется парить, все-таки..
31 Lee
 
09.02.05
12:00
(28) Теория с практикой порой расходятся :) Попробуйтереализовать РП на справочниках, документах и регистрах и сами увидите что лучше.
32 Палыч
 
09.02.05
12:02
Вопрос ко всем: для какой цели используете регистры правил?
(Можно просто перечислить назначение и общее количество регистров).
33 Lee
 
09.02.05
12:02
(30) dll которая там есть к РП отношения ни какого не имеет.
34 Item
 
09.02.05
12:05
(31) Я привел реализацию регистра сведений, регистр правил это немного другое понятие. Но в общем не спорю, поскольку на регистрах и документах не делал.
35 Item
 
09.02.05
12:07
(32) Почитайте
часть1: itland.ru/lib/index.php?id=48
часть2: itland.ru/lib/index.php?id=247
36 Item
 
09.02.05
12:11
(28)
> Постулат (определение) :
> регистрах накопления (v7) без измерений и ресурсов
> только с реквизитами - это регистр сведений на v7.
А как таки быть с уникальность набора измерений и ручным изменением регистра?
37 Z1
 
09.02.05
12:13
(31) У меня давно работает логика регистров правил на регистре сведений в v7.
Кратко постановка задачи ( попробуйте свои подходы)
Есть поставщики, склады, товары ( могут быть и группы товаров одна цена на всю группу товаров).
Для некоторых таких троек мы задаем спец цены . Цены естественно меняются
во времени. Этот регистр вычисляется при проведении определенных
документов - разных типов документов. Если отменим проведение документа то
регистр пропадет. проведем сново появиться. Минус Ваших решений придеться
писать свой аналог включить выключить правило. Я же не говорю что нельзя реализовать но на мой взгляд сложнее. Опять же все зависит от задачи.
(ИНМО) - на v7 Регистры Правил лучше всего реализовывать с помощью
регистра накоплений содержащий только реквизиты ( такой регистр я называю регистром сведений v7 - он очень близок к регистру сведений v8).
38 Палыч
 
09.02.05
12:18
(35)
Я читал
http://www.itland.ru/lib/index.php?id=48<br>http://www.itland.ru/lib/index.php?id=247<br> ;и еще вот это:
http://www.itland.ru/lib/index.php?id=341<br>Меня интересует для чего ПРАКТИЧЕСКИ применяется эта технология.
39 aKomper
 
09.02.05
12:23
(37) - меня смущает одно - методы получения итогов из регистров и справочников. Мне не нужно динамически менять правила, их нужно записать один раз и применять для документов, вот и все, что треба, как видите, все просто
40 Item
 
09.02.05
12:25
(31) включить выключить правило - для справочника действует УстановитьРеквизитСправочника() в применении к периодическому ресурсу, хотя проблема лишней записи остается. Но здесь мы с вами смешали в кучу вышеназваннон достоинство периодического реквизита v7 и понятие регистра сведений. Разве в v8 проведение документа поддерживает откат изменений РС? Интересуюсь искренне, поскольку практики в v8 не имею.
41 Item
 
09.02.05
12:27
(40) читать в заголовке не 31 а 37
42 Z1
 
09.02.05
12:39
(40) Я не против периодического реквизита v7 ( для простых отношений)но посмотрите как периодич. реквизиты реализованы на уровне базы данных в v7 -все в одной неуправляемой таблице.
Опять сложное отношение (см 37) уже не сделаешь на переодич элементах
справочника v7.
43 Item
 
09.02.05
12:50
(42) Да, реализованы худо. Но посмотрите как работает регистр сведений в v8 - юзер открыл и внес что надо. А как в принципе реализовать уникальность набора измерений и ручное изменение в регистре накопления v7?
44 Lee
 
09.02.05
13:12
(38) Вообщето в статьях были примеры для чего применяются РП. Возможно надо прочитать еще раз...
45 Палыч
 
09.02.05
13:16
(44)
А вот язвить не надо!
Сам ты для чего используешь сабж?
46 Lee
 
09.02.05
13:24
(45) Вообщето я не язвил а говорил вполне серьезно (в каждой статье есть пример использования).
Вот только несколько применений
1.Права доступа
2.Установка значений реквизитов документов (Типов цен, скидок и т.д.)
47 СевероВосток
 
09.02.05
13:37
(43) Для контроля уникальности набора реквизитов есть чУдная процедура (в таблице значений) - свертка.
48 Палыч
 
09.02.05
13:41
(46)
Ну возьмем, хотя бы, права доступа. Для своей базы я с ходу могу придумать штук 30 различных наборов детерминатов и еще неизвестно сколько появится по ходу работы. Т.е. в базу надо будет добавить 30 справочников. Вот я о чем.
49 Lee
 
09.02.05
13:50
(48) Разумеется нет.
Существует 3 вида РП
1.Служебный (детерминанты и корни нам известны)
2.Системный (детерминанты и корни нам известны, но сам РП строится на таблице mlx так данные в нем не аргегатного типа, например РП склонения слов)
3.Произвольный (детерминанты и корни нам НЕ известны)
так вот для описанной выше задачи используется произвольный РП - он один, вне зависимости сколько измерений и ресурсов вы придумаете.
50 СевероВосток
 
09.02.05
13:57
to Палыч:
Преимущества технологии "Регистров правил" становятся наиболее очевидны в тиражных продуктах. В "доработанных под клиента" конфигурациях логику можно (опять же до определенного момента) прописывать в коде. Тиражный продукт должен удовлетворять множеству различных требований (правил) клиентов, причем непротиворечивым образом.
Поскольку конфигурация "Учет. Анализ. Управление" (КИНТ) одна и та же для всех клиентов, то естественно, что регистры правил в ней широко используются.
Один из примеров (практических!). Выбор типовой операции в документе (какие движения и проводки должен сделать документ). В текущем релизе УАУ детерминант РП "Установка ТОП" состоит из 12(!) измерений. Не поленюсь перечислить (без расшифровки семантики): Приоритет, Направление, Вид документа, Товар, Категория товара, ОС, Фирма, Контрагент, Подразделение, Бизнес-цикл, Категория клиента, Префикс УРБД. Данный набор определяет контекст, от значения которого зависит выбор операции в документе. Не существует альтернативы регистрам правил для решения подобных задач (а их множество, если оглядеться повнимательнее) в общем виде.
51 Item
 
09.02.05
14:00
(47) Боюсь, что вы не поняли.
Регистр сведений суть функциональная зависимость от нескольких аргументов, и значение каждого ресурса определено однозначно.
А вот при использовании движений регистра v7 два документа могут установить два значения одного и того же ресурса.
Вот я и спрашиваю сторонников регистров: как вы решаете эту проблему?
52 СевероВосток
 
09.02.05
14:09
(51) Я вообще не сторонник ни регистров, ни справочников, ни документов :).
В (47) я лишь намекнул на то, что в принципе любой из этих объектов можно выгрузить в ТЗ и проконтролировать уникальность детерминанта через операцию свертки.
53 Палыч
 
09.02.05
14:11
(49,50)
Ага!
Но как обобщить детерминанты из различных областей логики программы: скажем, от склонения фамилий и выбора печатной формы документа до разграничения прав на выдачу наличности из кассы и товаров со склада?
90% элементов детерминантов - не пересекаются!
зы: я имею ввиду не тиражное решение
54 Z1
 
09.02.05
14:20
(51) До конца не понимаю зачем нужна одназначность.
Если есть в измерении время то это не совсем наверное правильно.
Если нет времени то тогда действительно регистры сведений нужно реализовывать в v7 на справочниках.
Но даже приведенные в этой ветке примеры ( Права доступа,
Установка значений реквизитов документов ) зависят от времени.
Для меня понятие в понятии Регистр явно или неявно связано со временем.
В Ваших задачах наверное по другому, поэтому мы вкладываем разный смысл в одинаковые термины.
55 Item
 
09.02.05
14:24
(53) В третьей статье из итланда, на которую вы мне указали, по картинкам:)можно полагать, что все регистры правил реализованы автором одним справочником плюс служебными подчиненными.
56 СевероВосток
 
09.02.05
14:37
(53) А для чего надо обобщать детерминанты? Они не пересекаются и... правильно делают. Каждый РП имеет свой (уникальный) детерминант.
Или я не понял вопроса?
57 Item
 
09.02.05
14:39
(51) В том то и дело, что по определению не может быть в регистре сведений две записи с одинаковым набором измерений. И время как специфическое измерение не является исключением. Точно так в v7 нельзя установить два разных значения периодического реквизита на одну дату (один документ).
Вот и получается, что для реализации РС, требующего регистрацию изменений документами, регистр накопления v7 подходит, а для всех прочих РС, даже периодических, но не требующих регистрации, НЕ БУДЕТ РАБОТАТЬ, в отличие от того же справочника.
58 LostGen
 
09.02.05
14:50
Заинтересовало. Где взять демо-конфу с РП на "пощупать-поизучать"?
59 СевероВосток
 
09.02.05
14:56
to Палыч:
Сопоставил (53) и (48) и понял, что вам не хотелось бы создавать 30 справочников, реализующих различные пользовательские детерминанты. Ок, вопрос понятен.
В УАУ (там РП на справочниках) справочники не размножаются по причине использования подчиненных (и еще каких-то хитрых механизмов вроде ссылочного детерминанта).
Но вообще, последние веяния - реализация пользовательских РП на документах (реализовано). Один РП - один документ (сами правила - в табличной части).
---
По поводу реализации в V8. Не уверен, что регистры сведений впрямую подойдут для реализации РП.
60 Палыч
 
09.02.05
14:58
(54)
Согласен!
Продолжим рассуждение: в статьях на итланде приведена лишь идея (весьма полезная) с иллюстрациями. Единственный пример реального ее использования - "Учет. Анализ. Управление" от КИНТ-а (если ошибаюсь, примеры, пожалста, в студию).
Вопросы технической реализации РП оставим, пока, в стороне.
Как мы уже выяснили, область применения РП довольно обширна: от RLS до описания бухгалтерских проводок.
Так вот, когда я себе представляю конфигурацию хотя бы только с RLS на РП, то вижу этакого "монстра", в котором количество справочников РП сравнимо (если не превышает) количество "основных" справочников.
Пока я ничего не утверждаю - плохо это или хорошо. Просто хочу услышать мнение аудитории, особенно имеющих практический опыт в этом вопросе.
61 Палыч
 
09.02.05
15:00
(60) было для (56)
62 Wasya
 
09.02.05
15:02
(55) неправ. Там журнал документов и открытый документ.
63 Палыч
 
09.02.05
15:11
Насчет реализации: для меня пока актуальны 7.7, SQL и 1С++, поэтому, думаю, достаточно в конфигураторе завести справочник и потом обращаться с ним как с обычной SQL-ной таблицей.
64 Item
 
09.02.05
15:17
(62) Научите меня еще различать пиктограммы на дочерних окнах и панелях инструментов.
65 Item
 
09.02.05
15:24
Кстати, вне зависимости от способа реализации, для обработки большого объема данных РС в отчетах красиво смотрится метод Запрос.Получить(Группировка1, Группировка2,..) в запросе с группировками по измерениям без итогов. Прям как для этого создан.
66 Wasya
 
09.02.05
15:38
(65) в этом весь смысл. Нужная информация получается простейшим запросом.
67 Wasya
 
09.02.05
15:45
(62) Облажался. Действительно справочники.
68 Item
 
09.02.05
15:48
(66) Когда дело касается всего одной записи, например при пересчете строки документа нужно бысто найти запись по измерениям и выдать значение ресурса, то запрос по всему РС в этом случае - просто расточительство. Потому-то в реализации и нужен некий ИД записи, "естественный" или искуственный.
69 СевероВосток
 
09.02.05
15:49
(60) Насчет "монстра".
Вспомнил, что вначале служебные РП в УАУ реализовывались именно как отдельные справочники. А потом, когда их количество перевалило за десяток, спохватились и свели все служебные РП в пару справочников.
70 Палыч
 
09.02.05
16:12
(69)
А, ну вот...
71 reminder
 
09.02.05
17:24
(60) Реально алгоритмы подобного рода нужны при действительно сложной
задаче. Например такое я делал для того чтобы сделать перевод с одного
плана счетов на другой (Украина) не только остатки но и движения за полгода. Делалось это еще в 2000 году, статей Дмитрия Малюгина я правда не читал ж))
А идею взял из старой старой проги файрвола AtGuard, где он сам динамически всплывает с предложением задать набор атрибутов типа порт, ИПвходящий, TCP/UDP и так далее, а на выходе дается либо Разрешить либо Нет.
У меня же было так: первичными атрибутами являлись атрибуты стандартной бух проводки (СчетДебет, СубконтоДебет1, ... СчетКредит, ..., Суммма.
Иногда входящий набор был не только 1 проводкой, а серией проводок,
то есть Атомом считалось более одной проводки.
А выход был последовательным преобразованием входа в выход (функциями, а не только жесткими детерминантами). Делал на документах. Перехватил стандартную Операция.Записать и при проведении любого документа перебирались документы ПравилаПереноса и если правила не находилось то всплывал НовыйДокумент с уже заданными входящими параметрами и предлагал выбрать (настроить) выход. Если же правило было - конвертировалось по нему. За неделю простого проведения разных документов динамически заполнили все правила и вуаля ж))
Насколько целесообразно это применять в простой конфигурации тут вопрос.
Больше этот алгоритм мне лично никогда не потребовался ж))
А если вопрос в коэффициенте угла пальцев дык есть более интересные способы повеселиться ж))
72 Палыч
 
10.02.05
07:28
(71)
Ха! Чё-та все сложные, блин, задачи попадаются ;-)
И где вы простые берете? ;-)
73 СевероВосток
 
10.02.05
08:45
to Палыч
Кстати, было бы неплохо, если бы кто-нибудь сподвигнулся создать в 1С++ класс такой - РП... :)
74 Палыч
 
10.02.05
09:25
(73)
Да класс-то не проблема.
Идея должна созреть!
зы: Посмотрел я УАУ. Действительно "тиражное" решение.
75 СевероВосток
 
10.02.05
09:27
(74) А почему "тиражное" в кавычках?
76 Палыч
 
10.02.05
09:37
Ну в смысле, оно действительно ТИРАЖНОЕ, читай - требует доработки ;-)