09.06.2021, 12:51 | #461 |
Участник
|
Надо настроить Multiplicity на том элементе, который должен повторяться
|
|
09.06.2021, 17:10 | #462 |
Участник
|
Спасибо за подсказку - получилось! Я не обратил внимание, что это свойство контекстнозависимое - у корневого объекта и объекта вложенного в объект его нет, появляется только у объекта вложенного в массив.
И наткнулся на глюк GER-а - если просто изменить Multiplicity у уже существующего объекта, то он вообще пропадает из маппинга. Но после удаления и создания заново, сразу при создании задав 1..*, все становится правильно: в маппинге это уже список записей и данные загружаются. Спасибо за помощь. |
|
15.08.2021, 10:33 | #463 |
Участник
|
Надо вывести в отчет финаналитики в отдельные колонки причем их количество переменное, определяется выбранным в параметрах отчета набором аналитик. Настроил шаблон
и в маппинге формата диапазон с горизонтальной репликацией Все красиво получилось - во всех строках (заголовок, номера колонок, данные и итоги) выполняется вставка со сдвигом в право. Переношу отчет (через xml-файл) со среды разработки на среду тестирования и получаю такой результат Выглядит так, что в строках с заголовками и номерами колонок вставка ячеек выполнилась, но значения заполняются без учета сдвига. А в строках данных и итогов вообще доп.ячейки не вставляются и значения аналитик просто перекрывают последующие ячейки. Как можно понять различное поведение системы при выполнении одного и того же формата в разных средах и можно ли как-то на это влиять? Может кто-то сталкивался с подобной проблемой? Последний раз редактировалось Libovs; 15.08.2021 в 10:59. |
|
15.08.2021, 10:57 | #464 |
Участник
|
Похожая ситуация и с вертикальной репликацией. В шаблоне настроена двухуровневая группировка
В среде разработки при выполнении формата группировки "размножаются" Переношу конфигурацию формата на тестовую среду и получаю такой результат Выглядит так, будто на разных средах выполняется разный код - вызываются разные функции Excel или функция вставки строки с разными параметрами. Можно ли как-то на это влиять? Последний раз редактировалось Libovs; 15.08.2021 в 11:00. |
|
15.08.2021, 17:19 | #465 |
Участник
|
На вид все ок только данные разные.
А как вы делаете горизонтальный диапазон столбцов +заполнение в них данных? Если есть стандарт с подобным назовите pls формат, интересно |
|
15.08.2021, 18:03 | #466 |
Участник
|
Версия приложения одна и та же? Набор включенных фич er один и тот же?
|
|
15.08.2021, 18:45 | #467 |
Участник
|
На счет стандарта ничего сказать не могу, модель и формат делал сам "от корня" и все конструкции тоже придумывал сам.
Данные разные т.к. формат (отчет) выполнялся на разных средах. Делал так - в маппинге модели из GeneralJournalEntry отбираю записи по номеру ваучера, затем из GeneralJournalAccountEntry сами проводки; из структуры LedgerDimension выбираю аналитики, имеющие непустые значения $GeneralJournalLines:Вычисляемое поле = FILTER(GeneralJournalEntry, GeneralJournalEntry.SubledgerVoucher='$LedgerTransLines'.Voucher): Список записей $GeneralJournalAccountLines:Вычисляемое поле = FILTER(GeneralJournalAccountEntry, VALUEIN(GeneralJournalAccountEntry.GeneralJournalEntry, '$LedgerTransLines'.'$GeneralJournalLines', '$LedgerTransLines'.'$GeneralJournalLines'.RecId)): Список записей Финансовые аналитики LedgerDimension.Dimension(Счет ГК.Dimension):Запись Вычисляемые поля $GeneralJournalLine:Вычисляемое поле = FIRSTORNULL(WHERE('$LedgerTransLines'.'$GeneralJournalLines', '$LedgerTransLines'.'$GeneralJournalLines'.RecId=@.GeneralJournalEntry)): Запись $LedgerDimension:Вычисляемое поле = WHERE(@.'LedgerDimension.Dimension'.'Main account and dimensions', @.'LedgerDimension.Dimension'.'Main account and dimensions'.Value.Code<>""): Список записей Затем маппинг на модель Transactions(Проводки):Список записей = @.'$GeneralJournalAccountLines' AccountingDate(Дата учета):Дата = @.'$GeneralJournalLine'.AccountingDate AmountAccounting(Сумма в валюте учета):Вещественный = @.AccountingCurrencyAmount AmountReporting(Сумма в валюте отчетности):Вещественный = @.ReportingCurrencyAmount AmountTransaction(Сумма в валюте транзакции):Вещественный = @.TransactionCurrencyAmount Currency(Валюта):Строка = @.TransactionCurrencyCode JournalNumber(Номер журнала):Строка = @.'$GeneralJournalLine'.JournalNumber LedgerDimension(Аналитики):Список записей = @.'$LedgerDimension' Definition:Запись = @.Definition Name:Строка = @.Definition.Name Type:Строка = @.Definition.Type Value:Запись = @.Value Code:Строка = @.Value.Code Description:Строка = @.Value.Description LedgerDimensionValue(Аналитики значение):Строка = @.LedgerAccount MainAccountName(Счет ГК название):Строка = @.'>Relations'.MainAccount.Name MainAccountValue(Счет ГК):Строка = @.'>Relations'.MainAccount.MainAccountId Text(Описание):Строка = @.Text Voucher(Ваучер):Строка = @.'$GeneralJournalLine'.SubledgerVoucher В формате параметрами определяются счета ГК ($ReportAccounts) и набор аналитик ($DimensionSet) для фильтрации данных из модели Входные параметры пользователя $DimensionSet(Набор финансовых аналитик):Входной параметр пользователя: DimensionSetName $ReportAccounts(Счета ГК):Входной параметр пользователя: Список записей Value:MainAccountNum В сопоставлении вычисляются Вычисляемые поля $AnalyticsCount:Вычисляемое поле = COUNT('$AnalyticsList'): Целочисленный $AnalyticsList:Вычисляемое поле = DimensionHierarchy.'findByTypeAndName()'(DimensionHierarchyType.Focus, '$DimensionSet').'<Relations'.DimensionHierarchyLevel: Список записей $AnalyticsListOrdered:Вычисляемое поле = ORDERBY('$AnalyticsList', '$AnalyticsList'.Level): Список записей Вычисляемые поля $AnalyticName:Вычисляемое поле = @.'>Relations'.DimensionAttribute.Name: Строка $FilteredLines:Вычисляемое поле = WHERE(model.JournalLines, AND(model.JournalLines.AccountType=ACType.Vend, model.JournalLines.OffsetAccountType=ACType.Ledger, model.JournalLines.Journal.Posted, VALUEIN(model.JournalLines.OffsetLedgerMainAccount, '$ReportAccounts', '$ReportAccounts'.Value))): Список записей $ReportLines:Вычисляемое поле = ORDERBY('$FilteredLines', '$FilteredLines'.TransDate): Список записей $Transactions:Вычисляемое поле = ALLITEMS('$ReportLines'.Transactions): Список записей Вычисляемые поля $Analytics:Вычисляемое поле = '$AnalyticsListOrdered': Список записей Вычисляемые поля $AnalyticInfo:Вычисляемое поле = FIRSTORNULL(WHERE('$ReportLines'.'$Transactions'.LedgerDimension, '$ReportLines'.'$Transactions'.LedgerDimension.Definition.Name=@.'$AnalyticName')): Запись $AnalyticName:Вычисляемое поле = '$AnalyticsListOrdered'.'>Relations'.DimensionAttribute.Name: Строка $Visible:Вычисляемое поле = VALUEIN(@.MainAccountValue, '$ReportAccounts', '$ReportAccounts'.Value): Логический и маппятся на ячейки отчета Диапазон<TransLine>: Vertical? = @.'$Transactions' Ячейка<Trans_Month> = DateTimeUtil.month(DATETODATETIME(@.AccountingDate)) Ячейка<Trans_Date> = @.AccountingDate Ячейка<Trans_Supplier> = ('$ReportLines'.Vendor.AccountNum&"-")&'$ReportLines'.Vendor.Name Ячейка<Trans_Description> = @.Text Analytics: Диапазон<Trans_Analytics>: Horizontal = @.'$Analytics' Ячейка<Trans_Analytics> = @.'$AnalyticInfo'.Value.Code Ячейка<Trans_Creator> = '$ReportLines'.Approver.Name Ячейка<Trans_Created> = '$ReportLines'.modifiedDateTime |
|
15.08.2021, 18:48 | #468 |
Участник
|
Я не админ, а консультант, подскажите:
Как посмотреть версию приложения? Какие фичи могут влиять на вывод в Эксель? Надо сравнить весь список? Со слов админа обе среды это виртуальная машина (SANDBOX) предоставляемый и администрируемый самим МС. Что именно на ней проинсталлировано - понять сложно (мне, по крайней мере). Последний раз редактировалось Libovs; 15.08.2021 в 18:53. |
|
15.08.2021, 18:59 | #469 |
Участник
|
Как я показал выше. Но у меня проблема в том, что на разных средах выполнение одного и того же формата приводит к различным результатам.
|
|
16.08.2021, 12:27 | #470 |
Участник
|
Цитата:
Прежде всего использование EPPlus - "Enable usage of EPPlus library in Electronic reporting framework" |
|
16.08.2021, 16:58 | #471 |
Участник
|
Среда где горизонтальная репликация выполняется
Установленная версия продукта: 10.0.20 (10.0.886.92) Установленная версия платформы: Update44 (7.0.6060.96) среда где не выполняется Установленная версия продукта: 10.0.20 (10.0.886.92) Установленная версия платформы: Update44 (7.0.6060.96) Фичи, включенные на первой среде, но не включенные на второй На мою проблему могут влиять ? Включить использование библиотеки EPPlus в платформе для электронной отчетности Оптимизация времени создания источника данных запроса во время выполнения отчетов электронной отчетности Эти тоже к ER относятся, но они включают (насколько я знаю) возможность прямого вывода на сетевой принтер и конвертацию из форматов MS Office в pdf Агент маршрутизации документов как назначение электронной отчетности для исходящих документов Преобразовать исходящие документы электронной отчетности из форматов Microsoft Office в PDF |
|
16.08.2021, 17:28 | #472 |
Участник
|
EPPlus может помочь, остальное - вряд ли
|
|
16.08.2021, 20:12 | #473 |
Участник
|
Спасибо за помощь - помогло. Теперь горизонтальная репликация выполняется корректно и ОДИНАКОВО! на обоих средах.
Попробую теперь по аналогии разобраться с "размножением" группировок при вертикальной репликации. |
|
16.08.2021, 23:55 | #474 |
Участник
|
А вот с ""размножением" группировки при вертикальной репликации ситуация прямо противоположная - если фича EPPlus выключена - группировки в выходом файле формируются, но стоит ее включить - и группировок нет.
Получается, что можно использовать только что-то одно. Печалька. |
|
17.08.2021, 10:59 | #475 |
Участник
|
Цитата:
На будущее кому интересно чуть более развернуто. |
|
17.08.2021, 12:12 | #476 |
Участник
|
|
|
18.08.2021, 15:13 | #477 |
Участник
|
|
|
28.08.2021, 18:35 | #478 |
Участник
|
Выбираю все проводки по одному номеру ваучера
$GeneralJournalLines:Вычисляемое поле = FILTER(GeneralJournalEntry, GeneralJournalEntry.SubledgerVoucher='$LedgerTransLines'.Voucher): Список записей $GeneralJournalAccountLines:Вычисляемое поле = FILTER(GeneralJournalAccountEntry, VALUEIN(GeneralJournalAccountEntry.GeneralJournalEntry, '$LedgerTransLines'.'$GeneralJournalLines', '$LedgerTransLines'.'$GeneralJournalLines'.RecId)): Список записей Поля Методы Отношения Финансовые аналитики ---LedgerDimension.Dimension(Счет ГК.Dimension):Запись Вычисляемые поля ---$GeneralJournalLine:Вычисляемое поле = FIRSTORNULL(WHERE('$LedgerTransLines'.'$GeneralJournalLines', '$LedgerTransLines'.'$GeneralJournalLines'.RecId=@.GeneralJournalEntry)): Запись ---$LedgerDimension:Вычисляемое поле = WHERE(@.'LedgerDimension.Dimension'.'Main account and dimensions', @.'LedgerDimension.Dimension'.'Main account and dimensions'.Value.Code<>""): Список записей Поле LedgerDimension представляется веткой Финаналитики. Мапплю этот список на модель Transactions(Проводки):Список записей = @.'$GeneralJournalAccountLines' ---AccountingDate(Дата учета):Дата = @.'$GeneralJournalLine'.AccountingDate ---AmountAccounting(Сумма в валюте учета):Вещественный = @.AccountingCurrencyAmount ---AmountReporting(Сумма в валюте отчетности):Вещественный = @.ReportingCurrencyAmount ---AmountTransaction(Сумма в валюте транзакции):Вещественный = @.TransactionCurrencyAmount ---Currency(Валюта):Строка = @.TransactionCurrencyCode ---JournalNumber(Номер журнала):Строка = @.'$GeneralJournalLine'.JournalNumber ---LedgerDimension(Аналитики):Список записей = @.'$LedgerDimension' ------Definition:Запись = @.Definition ---------Name:Строка = @.Definition.Name ---------Type:Строка = @.Definition.Type ------Value:Запись = @.Value ---------Code:Строка = @.Value.Code ---------Description:Строка = @.Value.Description ---LedgerDimensionValue(Аналитики значение):Строка = @.LedgerAccount ---MainAccountName(Счет ГК название):Строка = @.'>Relations'.MainAccount.Name ---MainAccountValue(Счет ГК):Строка = @.'>Relations'.MainAccount.MainAccountId ---Text(Описание):Строка = @.Text ---Voucher(Ваучер):Строка = @.'$GeneralJournalLine'.SubledgerVoucher Список аналитик в модели заполняется без ошибок |
|
28.08.2021, 18:51 | #479 |
Участник
|
Но если я фильтрую список транзакций - нужны не все, а только по определенным счетам
$GeneralJournalAccountFilter:Вычисляемое поле = WHERE(@.'$GeneralJournalAccountLines', VALUEIN(FIRSTORNULL(@.'$GeneralJournalAccountLines'.'>Relations'.MainAccount).MainAccountId, AccountsList, AccountsList.Value)): Список записей Поля Методы Отношения Финансовые аналитики ---LedgerDimension.Dimension(Счет ГК.Dimension):Запись Вычисляемые поля ---$GeneralJournalLine:Вычисляемое поле = FIRSTORNULL(WHERE('$LedgerTransLines'.'$GeneralJournalLines', '$LedgerTransLines'.'$GeneralJournalLines'.RecId='$LedgerTransLines'.'$GeneralJournalAccountLines'.GeneralJournalEntry)): Запись ---$LedgerDimension:Вычисляемое поле = WHERE('$LedgerTransLines'.'$GeneralJournalAccountLines'.'LedgerDimension.Dimension'.'Main account and dimensions', '$LedgerTransLines'.'$GeneralJournalAccountLines'.'LedgerDimension.Dimension'.'Main account and dimensions'.Value.Code<>""): Список записей И мапплю на модель это список Transactions(Проводки):Список записей = @.'$GeneralJournalAccountFilter' то при проверке ошибок нет, но при выполнении на каждую запись выдается ошибка Вычисление выражения для пути "$LedgerDimension". ---LedgerDimension.Dimension/Main account and dimensions ------Элемент "LedgerDimension.Dimension" конфигурации "1" не найден. Проверял и для других таблиц где есть поле типа LedgerDimension - результат тот же - если список получен функцией FILTER - то структура Финаналитики отрабатывает нормально; но если список получен функцией WHERE - то обращение к элементу Финаналитики приводит к ошибке во время выполнения с ничего не объясняющим сообщением. Может кто-то сталкивался с такой ситуацией и знает возможность ее обойти? |
|
29.08.2021, 09:58 | #480 |
Участник
|
А зачем обходить?
Вроде как ms, если не ошибаюсь, рекомендуется использовать filter вместо where. |
|
Теги |
generic electronic reporting, ger |
|
|