AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.04.2010, 20:22   #21  
Rezervforall is offline
Rezervforall
Участник
 
142 / 26 (1) +++
Регистрация: 09.06.2009
А то скоро для решения такого вопроса будут предлагать написать с нуля Аксапту 2010.
Старый 28.05.2010, 13:08   #22  
d&m is offline
d&m
MCT
Аватар для d&m
MCP
Manzana Group
MCBMSS
 
459 / 186 (7) ++++++
Регистрация: 11.09.2007
Записей в блоге: 6
Цитата:
Сообщение от 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.
Старый 28.05.2010, 13:43   #23  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
В журнале ГК выдается какая-то ошибка? Я когда настраивал стандартные иерархии не смог заставить систему контролировать заполнение конкретных аналитик (галка в параметрах работает для всех аналитик), приходилось делать доработку, включающую старые настройки аналитик для счетов ГК (в плане счетов) при использовании иерархий.
__________________
Ivanhoe as is..
Старый 28.05.2010, 14:38   #24  
d&m is offline
d&m
MCT
Аватар для d&m
MCP
Manzana Group
MCBMSS
 
459 / 186 (7) ++++++
Регистрация: 11.09.2007
Записей в блоге: 6
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
В журнале ГК выдается какая-то ошибка?
да, ошибка - скриншот приложил

Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
(галка в параметрах работает для всех аналитик)
я эту галку ("Отклонять пустые аналитики") - не ставлю
Миниатюры
Нажмите на изображение для увеличения
Название: ошибка (иерархии аналитик).JPG
Просмотров: 302
Размер:	42.4 Кб
ID:	5853   Нажмите на изображение для увеличения
Название: Правила.JPG
Просмотров: 253
Размер:	67.0 Кб
ID:	5855  

Изображения
 
__________________
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.
Старый 29.05.2010, 00:45   #25  
online
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,283 / 3491 (123) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от d&m Посмотреть сообщение
в итоге - в закупке я могу сделать разноску без аналитик, в журнале ГК - без аналитик разноску сделать не могу. Это нормально? Разве тут не должно быть единообразия?
Извиняюсь - не сразу ответил - в заботах был.
В журнале ГК сделали очень досадный баг в виде "упущенного" конфигурационного ключа.
Дело в том, что в строке ЖГК (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;
}
Проверьте - у меня не Ваш ли случай был?
__________________
Возможно сделать все. Вопрос времени
Старый 29.05.2010, 00:53   #26  
online
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,283 / 3491 (123) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
и еще вдогонку. Штатная проверка пустых аналитик действует сразу на все таблицы по всем аналитикам. Поэтому ее неудобно устанавливать. Я сделал аналог штатной проверки - для этого мне пришлось добавить всего одно поле DenyEmptyDimension в таблицу DimensionSetRuleTable (плюс вывести галку в нижний грид формы правил набора аналитик) и написать буквально 5 строчек кода в \Classes\DimensionSetValidation\checkDimension:
X++:
public boolean checkDimension(Common        _caller,
                              fieldId       _dimensionFieldId,
                              boolean       _checkWriteValidation,
                              boolean       _silent = false)
{
........
                if (validateDimension != emptyDimension)
                {
                    if (_silent)
                    {
                        isValid = isValid && this.isValidCombination(setId, hierarchyId, validateDimension, prefixDimension);
                    }
                    else
                    {
                        isValid = isValid && this.checkCombination(setId, hierarchyId, validateDimension, prefixDimension);
                    }
                }
                //Проверка на пустую аналитику -->
                else
                {
                    if (_checkWriteValidation && dimensionSetRuleSearch.dimensionSetRuleTable().DenyEmptyDimension)
                    {
                        isValid = checkFailed("@SYS79468");
                    }
                }
                // Проверка на пустую аналитику  <--
........
}
Добавление таким образом галки позволило мне применить правило к целому набору (но не всему массиву) на уровне конкретной таблицы (а не всех таблиц)
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 29.05.2010 в 00:59.
За это сообщение автора поблагодарили: gl00mie (3).
Старый 29.05.2010, 18:21   #27  
d&m is offline
d&m
MCT
Аватар для d&m
MCP
Manzana Group
MCBMSS
 
459 / 186 (7) ++++++
Регистрация: 11.09.2007
Записей в блоге: 6
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
(кстати - для корсчета никто аналитики и не думал делать почему-то) -
ну причины, по которым нет аналитик для корр счета, как раз ясна. Чтобы были разные аналитики по счету и корр счету - надо делать полупроводки. Но вернемся к теме

Цитата:
Проверка соответствия иерархии аналитики осуществляется сразу для двух полей (см метод LedgerJournalTrans.checkDimensions()). В проверке честно поставлено условие, что если конфигурационный ключ иерархии аналитик включен - то проверку выполнять. НО! Никто не позаботился о том, что если ключ внутрихолдингового учета выключен - то проверку по внутрихолдинговым аналитикам делать не надо - т.к. их нет!
В связи с этим я изменил у себя код метода checkDimensions():
нет, по-моему, внутрихолдинговые аналитики тут ни при чем. Аксапта требует указать именно обычные аналитики - внутрихолдинговые у меня пустые, ошибок из-за них не возникает.

Цитата:
Сообщение от sukhanchik Посмотреть сообщение
и еще вдогонку. Штатная проверка пустых аналитик действует сразу на все таблицы по всем аналитикам. Поэтому ее неудобно устанавливать. Я сделал аналог штатной проверки - для этого мне пришлось добавить всего одно поле DenyEmptyDimension в таблицу DimensionSetRuleTable (плюс вывести галку в нижний грид формы правил набора аналитик) и написать буквально 5 строчек кода в \Classes\DimensionSetValidation\checkDimension:

Добавление таким образом галки позволило мне применить правило к целому набору (но не всему массиву) на уровне конкретной таблицы (а не всех таблиц)
да, за это спасибо.
но хочется как раз, чтобы аналитики не были обязательны. Т.е. хочу заполняю, хочу не заполняю. Как в закупке - могу спокойно разнеси закупку с пустыми фин аналитиками.
__________________
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.
Старый 29.05.2010, 20:59   #28  
online
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,283 / 3491 (123) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от d&m Посмотреть сообщение
ну причины, по которым нет аналитик для корр счета, как раз ясна. Чтобы были разные аналитики по счету и корр счету - надо делать полупроводки.
Тогда нужно отключать корреспонденцию. Т.е. либо корреспонденция есть и есть аналитика корсчета, либо корреспонденции нет и тогда делаем многострочные проводки.
Цитата:
Сообщение от d&m Посмотреть сообщение
нет, по-моему, внутрихолдинговые аналитики тут ни при чем. Аксапта требует указать именно обычные аналитики - внутрихолдинговые у меня пустые, ошибок из-за них не возникает.
А... постараюсь повнимательнее глянуть
__________________
Возможно сделать все. Вопрос времени
Старый 29.05.2010, 21:54   #29  
d&m is offline
d&m
MCT
Аватар для d&m
MCP
Manzana Group
MCBMSS
 
459 / 186 (7) ++++++
Регистрация: 11.09.2007
Записей в блоге: 6
Цитата:
Сообщение от 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.
Старый 29.05.2010, 22:43   #30  
online
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,283 / 3491 (123) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от d&m Посмотреть сообщение
вовсе нет - полупроводки отлично работают при включенной корреспонденции.
Гм... тут дело-то не столько в технической реализации. Суть аналитик состоит в том, чтобы пометить некоторым образом операции, причем не одну-две - а как правило много (т.е. если к примеру, мы помечаем аналитиками "Подразделение", "Центр затрат", и т.д. операции - то количество операций, где аналитика счета (весь массив целиком) будет в точности совпадать с аналитикой корсчета (тоже весь массив целиком) будет гораздо меньше нежели количество отличающихся операций.

Поэтому для вводящего человека будет проще делать все однообразно - т.е. все полупроводками или все с корсчетами. Т.е. фактически корреспонденция будет отключена, хотя и галка будет стоять.

Я согласен с Вами, что из моей фразы вытекает, что для создания полупроводок нужно снимать флажок, а это не так (спасибо за замечание - сам действительно не проверял). Но тем не менее, считаю, что если при включенном функционале его не использовать - то фактически можно считать, что функционал отключен.
__________________
Возможно сделать все. Вопрос времени
Старый 29.05.2010, 23:49   #31  
d&m is offline
d&m
MCT
Аватар для d&m
MCP
Manzana Group
MCBMSS
 
459 / 186 (7) ++++++
Регистрация: 11.09.2007
Записей в блоге: 6
Цитата:
Сообщение от 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.
Старый 26.07.2010, 16:57   #32  
d&m is offline
d&m
MCT
Аватар для d&m
MCP
Manzana Group
MCBMSS
 
459 / 186 (7) ++++++
Регистрация: 11.09.2007
Записей в блоге: 6
вернусь к вопросу:

почему все-таки правила набора аналитик по-разному действуют на настроенные сущности:
1. заказ на покупку и заказ на продажу - "мягкий" подход: в lookup-ах предлагаются на первой закладке настроенные значения из набора аналитик. Но я могу оставлять аналитики пустыми или выбирать любые другие значения не из набора аналитик (с закладки "Все")

2. журнал ГК, журналы в модулях клиент/поставщик - жесткая проверка: если оставлю аналитики пустыми или выбираю значения, не соответствующие набору (с закладки "Все"), то при разноске получаю ошибку.

Почему проверка набора аналитик для заказа/закупки отличается от проверки набора аналитик для Журнала ГК?

Не берусь судить, что правильнее, мягка проверка (как в заказе/закупка) или жесткая проверка (как в журнале ГК), но разве тут не должно быть однообразия?

Мои настройки:
Заблокировать финансовую аналитику?
__________________
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.
Старый 28.07.2010, 16:06   #33  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Post
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
и еще вдогонку. Штатная проверка пустых аналитик действует сразу на все таблицы по всем аналитикам. Поэтому ее неудобно устанавливать. Я сделал аналог штатной проверки - для этого мне пришлось добавить всего одно поле DenyEmptyDimension в таблицу DimensionSetRuleTable (плюс вывести галку в нижний грид формы правил набора аналитик) и написать буквально 5 строчек кода в \Classes\DimensionSetValidation\checkDimension:
X++:
public boolean checkDimension(Common        _caller,
                              fieldId       _dimensionFieldId,
                              boolean       _checkWriteValidation,
                              boolean       _silent = false)
{
........
                if (validateDimension != emptyDimension)
                {
                    if (_silent)
                    {
                        isValid = isValid && this.isValidCombination(setId, hierarchyId, validateDimension, prefixDimension);
                    }
                    else
                    {
                        isValid = isValid && this.checkCombination(setId, hierarchyId, validateDimension, prefixDimension);
                    }
                }
                //Проверка на пустую аналитику -->
                else
                {
                    if (_checkWriteValidation && dimensionSetRuleSearch.dimensionSetRuleTable().DenyEmptyDimension)
                    {
                        isValid = checkFailed("@SYS79468");
                    }
                }
                // Проверка на пустую аналитику  <--
........
}
Добавление таким образом галки позволило мне применить правило к целому набору (но не всему массиву) на уровне конкретной таблицы (а не всех таблиц)
Рассматривая данный код в Ax 2009 Rollup 5 было выявлено.
метод вызывается с параметром _checkEmptyDimension
X++:
public boolean checkDimension(Common        _caller,
                              fieldId       _dimensionFieldId,
                              boolean       _checkWriteValidation,
                              boolean       _silent = false,
                              boolean       _checkEmptyDimension = false,
                              boolean       _isPrefix = false)
только теперь принудительно включена проверка на пустые аналитики (#define.ValidateEmptyDimensions(true)), т.е.
X++:
public boolean checkDimensions(boolean _checkWriteValidation)
{
    #LedgerJournalFaults
    #define.ValidateEmptyDimensions(true)

    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,
                                                                false,
                                                                #ValidateEmptyDimensions) && ok;

        if (ok)
        {
            // InterCoDimension field should only be set when the two accounts
            // are different or there is an offset account.
В методе \Classes\DimensionSetValidation\checkDimension отрабатывает ELSE
X++:
            // don't check empty dimensions unless expressely told to
            if (validateDimension != emptyDimension || _checkEmptyDimension)
            {
                if (_silent)
                {
                    isValid = this.isValidCombination(setId, hierarchyId, validateDimension, prefixDimension, _isPrefix) && isValid;
                }
                else
                {
                    isValid = this.checkCombination(_caller, _dimensionFieldId, setId, hierarchyId, validateDimension, dimensionSetRule.RefLedgerAccount, prefixDimension, _isPrefix) && isValid;
                }
            }
Проблема по вопросу Заблокировать финансовую аналитику? в \Classes\DimensionSetValidation\checkCombination строка 36

Стек вызова.
Код:
[s]    \Classes\DimensionSetValidation\checkCombination                                                       36
[s]    \Classes\DimensionSetValidation\checkDimension                                                        123
[s]    \Data Dictionary\Tables\LedgerJournalTrans\Methods\checkDimensions                                     13
[s]    \Classes\LedgerJournalCheckPost\checkJournal                                                          212
[s]    \Classes\LedgerJournalCheckPost\run                                                                    72
[c]    \Classes\LedgerJournalCheck\main                                                                       41
[c]    \Classes\FormFunctionButtonControl\Clicked
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
За это сообщение автора поблагодарили: sukhanchik (2).
Старый 28.07.2010, 16:12   #34  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Параметр для проверки пустых аналитик "Главная книга / Настройка / Параметры - "Отклонять пустые аналитики". (LedgerParameters.DenyBlankDimensions ) Не используется в \Classes\DimensionSetValidation
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
Теги
иерархия, финансовая аналитика

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Можно ли отключить и включить аналитику? miklenew DAX: Функционал 24 30.01.2008 14:00
Игра "Поймай аналитику" Hamster DAX: Функционал 6 12.10.2004 17:53
Почему договору нельзя сквозную аналитику присвоить? George V. Tavrizoff DAX: Функционал 3 27.02.2004 11:05
Как грамотно связать ГК и Складскую аналитику? /для отчета/ Anais DAX: Программирование 17 19.02.2004 17:42
Как создать новую складскую аналитику? Михаил Андреев DAX: Программирование 2 18.08.2003 22:43

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:05.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.