Показать сообщение отдельно
Старый 12.04.2009, 01:55   #1  
Kabardian is offline
Kabardian
Талантливый разгвоздяй
Аватар для Kabardian
 
424 / 338 (12) ++++++
Регистрация: 14.12.2008
Адрес: Москва
Записей в блоге: 14
Печать накладных на разных языках
Dynamics AX 4.0
Kernel: 4.0.2501.116
Application: 4.0.2501.121
Localization: Eastern Europe



Установил демо-данные на английском языке. Для тестирования печати накладных по заказу на покупку на языке отличном от языка демо-компании, настроил текстовые описания на русском языке для следующих данных:
  • номенклатуры;
  • единицы измерения;
  • условия оплаты.
Для чистоты эксперимента создал 2 одинаковых заказа на покупку: один на русском, другой на английском. Распечатал по этим заказам проформы накладных (русскую случайно разнес, но мы же знаем, что это не влияет на результат ). При печати язык системы соответствовал языку заказа на покупку, чтобы язык меток на отчете совпал с языком данных. И вот, что получилось:
  • Заказ на покупку 1 (EN-US):
  • Заказ на покупку 2 (RU):

Несмотря на то, что для конкретного условия оплаты был указан соответствующий русский текст, на печать уверенно выводился английский. Объяснение этому я нашел в display-методе paymentCode таблицы VendInvoiceJour:

X++:
//BP Deviation Documented
display PaymTxt paymentCode()
{
    if (this.FixedDueDate)
    {
        return strfmt('%1', this.FixedDueDate);
    }
    return PaymTerm::txt(this.Payment, CompanyInfo::find().LanguageId); //строка с ошибкой
}
Здесь говорится, что при выводе на печать нужно использовать язык, указанный в "Данных о компании". Какой глубокий философский смысл именно для условий оплаты брать код языка из "Данных о компании"?

Я не смог найти ответ на этот вопрос, поэтому считаю это багом. Если кто-нибудь знает причину, напишите, пожалуйста.

P. S. Заменив строку с ошибкой на следующую, можно исправить этот мини-баг:
X++:
return PaymTerm::txt(this.Payment, this.LanguageId)
Результат:

Последний раз редактировалось Kabardian; 12.04.2009 в 02:01.
За это сообщение автора поблагодарили: mazzy (2), belugin (3), kashperuk (5), plumbum (1).