|
![]() |
#1 |
Administrator
|
Цитата:
А вообще почитайте про иерархию аналитик. Иерархия аналитик - это фактически перечень разрешенных значений аналитик. Т.е. можно задать перечень возможных значений, после чего нельзя будет выбрать запрещенную аналитику. А в зависимости от параметра "Активировать наборы" и сохранить запись с запрещенной аналитикой. Для использования всего этого поставьте в параметрах главной книги параметр "Активировать наборы" (закладка Главная книга) в значение "При обновлении и разноске"
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: Aquarius (1). |
![]() |
#2 |
Участник
|
Цитата:
Цитата:
Сообщение от Bober
Для настройки RLS нужно знать исчерпывающий список мест, где аналитику не нужно видеть
|
|
![]() |
#3 |
Administrator
|
Цитата:
Все зависит от параметра "Активировать наборы". В частности, в заказах на продажу проверка стоит на методе SalesTable.validateWrite() Т.е. заказ не сохранится, если значение не будет являться разрешенным. Хотя само поле заполнить конечно можно
__________________
Возможно сделать все. Вопрос времени |
|
![]() |
#4 |
Участник
|
|
|
![]() |
#5 |
Administrator
|
Цитата:
1. Пользователь может "не заметить" (хотя это бред конечно - но тем не менее) 2. Возможно, что (только если есть свои модификации) что-то сделано так, что не отреагирует на переименование аналитики Цитата:
Если бы передавался false - то проверка осуществлялась бы только при сохранении (но не при разноске) без учета параметра. Собственно говоря я почему так упрямо возражаю - т.к. в таком режиме использую иерархию аналитик, когда поставили такую же задачу. Т.е. штатный функционал - фурычит ![]()
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 29.04.2010 в 12:13. |
|
![]() |
#6 |
Участник
|
|
|
![]() |
#7 |
Участник
|
Цитата:
![]() Пришлось лезть в код метода checkDimension: X++: if (!this.useValidation() || (LedgerParameters::find().DimensionSetActive == DimensionSetActive::AtPosting && _checkWriteValidation)) { return true; } То есть метода Цитата:
только при сохранении (но не при разноске)
|
|
![]() |
#8 |
Administrator
|
Цитата:
Но: 1. Если в параметрах модуля выбрано не AtPosting (При разноске), а AtUpdateAndPosting (При разноске и обновлении), то выполняется проверка при сохранении записи (как изначально и было нужно - т.е. проверка будет выполнена ДО разноски - на этапе ввода (сохранения записи)) 2. Теоретически, если вызвать из кода метод с 3-м параметром false, то можно добиться проверки только при сохранении (при этом значение в параметрах модуля может быть любым кроме Нет).
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 29.04.2010 в 12:59. |
|
![]() |
#9 |
MCT
|
Цитата:
Сообщение от sukhanchik
![]() А вообще почитайте про иерархию аналитик. Иерархия аналитик - это фактически перечень разрешенных значений аналитик. Т.е. можно задать перечень возможных значений, после чего нельзя будет выбрать запрещенную аналитику. А в зависимости от параметра "Активировать наборы" и сохранить запись с запрещенной аналитикой.
Для использования всего этого поставьте в параметрах главной книги параметр "Активировать наборы" (закладка Главная книга) в значение "При обновлении и разноске" в итоге - в закупке я могу сделать разноску без аналитик, в журнале ГК - без аналитик разноску сделать не могу. Это нормально? Разве тут не должно быть единообразия?
__________________
Sometimes there is a moment as you are awakening - when you become aware of the real world around you, - but you are still dreaming. - You may think you can fly but you do better not try. |
|
![]() |
#10 |
Administrator
|
Цитата:
В журнале ГК сделали очень досадный баг в виде "упущенного" конфигурационного ключа. Дело в том, что в строке ЖГК (LedgerJournalTrans) существуют 2 набора аналитик: одни для счета (кстати - для корсчета никто аналитики и не думал делать почему-то) - это поле LedgerJournalTrans.Dimension и другие - для внутрихолдиногового учета.- поле LedgerJournalTrans.InterCoDimension. Проверка соответствия иерархии аналитики осуществляется сразу для двух полей (см метод LedgerJournalTrans.checkDimensions()). В проверке честно поставлено условие, что если конфигурационный ключ иерархии аналитик включен - то проверку выполнять. НО! Никто не позаботился о том, что если ключ внутрихолдингового учета выключен - то проверку по внутрихолдинговым аналитикам делать не надо - т.к. их нет! В связи с этим я изменил у себя код метода checkDimensions(): X++: public boolean checkDimensions(boolean _checkWriteValidation) { boolean ok = true; DimensionSetCaller dimensionSetCaller; ; if (isConfigurationkeyEnabled(configurationkeynum(DimensionSetHierarchy))) { dimensionSetCaller = DimensionSetCaller::construct(this, fieldnum(LedgerJournalTrans, Dimension)); ok = appl.dimensionSetValidation(false, dimensionSetCaller.getCompanyId()).checkDimension(this, fieldnum(LedgerJournalTrans, Dimension), _checkWriteValidation) && ok; if (isConfigurationkeyEnabled(configurationkeynum(LedgerAdvIntercompanyAccounting))) // Вот здесь не хватает проверки на конфигурационный ключ { dimensionSetCaller.parmDimensionFieldId(fieldnum(LedgerJournalTrans, InterCoDimension)); ok = appl.dimensionSetValidation(false, dimensionSetCaller.getCompanyId()).checkDimension(this, fieldnum(LedgerJournalTrans, InterCoDimension), _checkWriteValidation) && ok; } } return ok; }
__________________
Возможно сделать все. Вопрос времени |
|