|  27.12.2011, 23:51 | #1 | 
| Участник | Не разносятся верно складские журналы 
			
			Прошу подсказать возможные причины следующего.  Разношу складской журнал типа Перенос, апдейтятся все нужные таблицы (InventTrans и так далее), но в LwdgerTrans операция не фиксируется. Счета у складов с которого (Счёт ГК) и на который переношу (Корр. счёт) разные. Спасибо. Последний раз редактировалось Cardagant; 27.12.2011 в 23:56. | 
|  | 
|  28.12.2011, 00:01 | #2 | 
| Ищущий знания... | Цитата: 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  28.12.2011, 00:02 | #3 | 
| Участник | 
			
			Версия: DAX 2009
		 | 
|  | 
|  28.12.2011, 00:18 | #4 | 
| Ищущий знания... | 
			
			Разноску запасов настроили (Управление запасами \ Настройка \ Разноска \ Разноска)? Там на форме на вкладке Запасы необходимо сделать настройки для Расхода, Прихода, Внутрихолдинговые расчеты с клиентами, Внутрихолдинговые расчеты с поставщиками. P.S. вот тут об одном приколе на эту тему писал... 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  28.12.2011, 00:25 | #5 | 
| Участник | 
			
			Да, все настройки в форме Управление запасами \ Настройка \ Разноска \ Разноска сделаны верно.
		 | 
|  | 
|  28.12.2011, 00:41 | #6 | 
| Microsoft Dynamics | Цитата: В стандартной функциональности разноска в ГК будет выполняться только в случае, если при переносе изменяется сайт или, при использовании российских профилей учета, изменяется профиль учета. Еще есть зависимость от российского параметра: Управление запасами\ Настройка\ Параметры\ Разное\ Финансовая разноска\ Журналы переноса и заказы на перемещение. В последних ролапах AX2009 эта логика еще докручивалась, чтобы учитывать счета разноски, соответствующие профилям учета. Если у вас есть модификации разноски в зависимости от складов, они тоже должны быть вписаны в эту логику. В общем, чтобы понять логику и от чего она зависит, смотрите метод класса InventMov_Jour_Transfer.mustBeBookedFinancially(), из него все должно быть очевидно. | 
|  | |
| За это сообщение автора поблагодарили: lev (5). | |
|  28.12.2011, 00:47 | #7 | 
| Ищущий знания... | Цитата: 
		
			Сообщение от gene
			   Что означает "счета у складов"? В стандартной функциональности счета разноски движений номенклатуры не зависят от складов. У вас сделаны какие-то модификации? В стандартной функциональности разноска в ГК будет выполняться только в случае, если при переносе изменяется сайт или, при использовании российских профилей учета, изменяется профиль учета. Еще есть зависимость от российского параметра: Управление запасами\ Настройка\ Параметры\ Разное\ Финансовая разноска\ Журналы переноса и заказы на перемещение. В последних ролапах AX2009 эта логика еще докручивалась, чтобы учитывать счета разноски, соответствующие профилям учета. Если у вас есть модификации разноски в зависимости от складов, они тоже должны быть вписаны в эту логику. В общем, чтобы понять логику и от чего она зависит, смотрите метод класса InventMov_Jour_Transfer.mustBeBookedFinancially(), из него все должно быть очевидно.  ). В первую очередь поверить галку "Журналы переноса и заказы на перемещение" в параметрах запасов, скорее всего она у вас не стоит. Перевод конечно у поля не ахти, если не читать HelpText, который пишется внизу формы при вставании на поле, трудно понять его предназначение   
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  28.12.2011, 00:59 | #8 | 
| Участник | Цитата: Спасибо вам за советы. Завтра посмотрю подробнее места, указанные вами. | 
|  | 
|  28.12.2011, 00:59 | #9 | 
| Ищущий знания... | 
			
			Ещё хочется добавить. Если вы используете складскую аналитику "Профиль учета", то посмотрите вот эту тему (ссылка дана сразу на нужное сообщение от fed), она поможет вам избежать проблем с задвоением InventTransPosting'ов, при рпзноске переносов. 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  28.12.2011, 16:45 | #10 | 
| Участник | 
			
			Посмотрел согласно вашим советам места в системе, всё верно. Так что здесь что-то ещё не так...
		 | 
|  | 
|  28.12.2011, 16:50 | #11 | 
| Ищущий знания... | 
			
			А у вас метод mustBeBookedFinancially() класса InventMov_Jour_Transfer модифицирован?
		 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  28.12.2011, 16:55 | #12 | 
| Участник | |
|  | 
|  28.12.2011, 17:01 | #13 | 
| Участник | 
			
			Вот код этого метода в системе: X++: boolean  mustBeBookedFinancially()
{
    InventDim   inventDimTo;
    InventDim   inventDimFrom;
    ;
    if (CompanyInfo::features_W() == CRSEFeatures_W::RU && !InventParameters::find().EnableTransferFinancialPosting_RU)
    {
        inventDimFrom = inventJournalTrans.inventDim();
        inventDimTo = inventJournalTrans.toInventDim();
        if (inventDimFrom.InventProfileId_RU == inventDimTo.InventProfileId_RU)
        {
            return false;
        }
    }
        if (InventParameters::find().InventPosting_ZTR)
    {
        if (this.accountBalanceSheet() == this.accountOperations())/* || this.accountOperations() && this.storno_RU()*/)//!!storno_RU
            return false;
        return true;
    }
    else if (!InventParameters::find().EnableTransferFinancialPosting_RU)
    {
        return false;
    }
   
    if (inventJournalTrans.InventTransId == inventJournalTrans.ToInventTransId || !inventJournalTrans.ToInventTransId)
        return false;
    if (!super())
        return false;
    inventDimFrom = inventJournalTrans.inventDim();
    inventDimTo = inventJournalTrans.toInventDim();
    if (CompanyInfo::features_W() == CRSEFeatures_W::RU && inventDimFrom.InventProfileId_RU != inventDimTo.InventProfileId_RU)
    {
        return true;
    }
    if (inventDimFrom.InventSiteId != inventDimTo.InventSiteId)
    {
        return true;
    }
    if (!InventDim::isInventDimEqualItemDim(this.dimGroupId(), inventDimFrom, inventDimTo))
    {
        return true;
    }
    return false;
} | 
|  | 
|  28.12.2011, 17:08 | #14 | 
| Ищущий знания... | 
			
			как раз он НЕ должен быть модифицирован   т.е. в стандартной системе, при наличии выше описанных в теме настроек, проводки по переносам создаются (вчера вечером протестил). если у Вас проводки не создаются, значит скорее всего в системе были какие либо доработки. Проверка на возможность формирования фин операций в системе выполняется в указанном методе (mustBeBookedFinancially()). 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  28.12.2011, 17:14 | #15 | 
| Участник | Цитата: 
		
			Сообщение от lev
			   как раз он НЕ должен быть модифицирован   т.е. в стандартной системе, при наличии выше описанных в теме настроек, проводки по переносам создаются (вчера вечером протестил). если у Вас проводки не создаются, значит скорее всего в системе были какие либо доработки. Проверка на возможность формирования фин операций в системе выполняется в указанном методе (mustBeBookedFinancially()). Такой вопрос ещё, быть может подскажете где происходит инициализация сумм для разноски журнала Перенос? | 
|  | 
|  28.12.2011, 17:15 | #16 | 
| Ищущий знания... | Цитата: 
		
			Сообщение от Cardagant
			   Вот код этого метода в системе: X++: boolean  mustBeBookedFinancially()
{
    InventDim   inventDimTo;
    InventDim   inventDimFrom;
    ;
    if (CompanyInfo::features_W() == CRSEFeatures_W::RU && !InventParameters::find().EnableTransferFinancialPosting_RU)
    {
        inventDimFrom = inventJournalTrans.inventDim();
        inventDimTo = inventJournalTrans.toInventDim();
        if (inventDimFrom.InventProfileId_RU == inventDimTo.InventProfileId_RU)
        {
            return false;
        }
    }
        if (InventParameters::find().InventPosting_ZTR)
    {
        if (this.accountBalanceSheet() == this.accountOperations())/* || this.accountOperations() && this.storno_RU()*/)//!!storno_RU
            return false;
        return true;
    }
    else if (!InventParameters::find().EnableTransferFinancialPosting_RU)
    {
        return false;
    }
   
    if (inventJournalTrans.InventTransId == inventJournalTrans.ToInventTransId || !inventJournalTrans.ToInventTransId)
        return false;
    if (!super())
        return false;
    inventDimFrom = inventJournalTrans.inventDim();
    inventDimTo = inventJournalTrans.toInventDim();
    if (CompanyInfo::features_W() == CRSEFeatures_W::RU && inventDimFrom.InventProfileId_RU != inventDimTo.InventProfileId_RU)
    {
        return true;
    }
    if (inventDimFrom.InventSiteId != inventDimTo.InventSiteId)
    {
        return true;
    }
    if (!InventDim::isInventDimEqualItemDim(this.dimGroupId(), inventDimFrom, inventDimTo))
    {
        return true;
    }
    return false;
}X++: if (InventParameters::find().InventPosting_ZTR) { if (this.accountBalanceSheet() == this.accountOperations())/* || this.accountOperations() && this.storno_RU()*/)//!!storno_RU return false; return true; } else if (!InventParameters::find().EnableTransferFinancialPosting_RU) { return false; } 2. И ещё разок на всякий случай спрошу, в параметрах галка "Журнал переноса и заказ на перемещение" (EnableTransferFinancialPosting_RU) стоит? 3. Ещё нужно разобраться, что у Вас возвращают методы this.accountBalanceSheet() и this.accountOperations(), может быть в них ещё что то дописано. В общем нужно воспользоваться дебагером и потрассировать разноску журнала переноса. 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  28.12.2011, 17:17 | #17 | 
| Ищущий знания... | Цитата: может у вас какие то ещё проверки написаны не только в этом методе? 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  28.12.2011, 17:19 | #18 | 
| Ищущий знания... | Цитата: 
		
			Сообщение от lev
			   вот этих строк в стандарте нет: X++: if (InventParameters::find().InventPosting_ZTR) { if (this.accountBalanceSheet() == this.accountOperations())/* || this.accountOperations() && this.storno_RU()*/)//!!storno_RU return false; return true; } else if (!InventParameters::find().EnableTransferFinancialPosting_RU) { return false; } 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  28.12.2011, 17:23 | #19 | 
| Ищущий знания... | Цитата: надеюсь народ, кто точно знает, либо подтвердит, мои предположения, либо напишет как есть на самом деле. 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  28.12.2011, 17:23 | #20 | 
| Участник | 
			
			При дебаге было видно, что AmountMST и AmountCur, CostAmount нулевые, хотя определены параметры количество и цена в строке журнала. Возможно, суммы некорректно передаются в ваучер?
		 Последний раз редактировалось Cardagant; 28.12.2011 в 17:31. | 
|  |