SAP BPC 10.0 NW EPM FUNCTION
Document Sample


BLINOVDANIIL
SAP BPC 10.0 NW
EPM - Функции
Автор: Daniil Blinov
about.me/blinovdaniil 1
BLINOVDANIIL
Функции EPM | Теория
Функции EPM представляют собой формулы, которые позволяют извлекать
конкретные данные или информацию и представлять отчет определенным образом,
эффективно и гибко.
• Функции EPM можно вводить непосредственно в строке формул.
Чтобы упростить создание и изменение формул и свести к минимуму опечатки и
синтаксические ошибки, следует использовать функцию авто заполнения формул
Microsoft Office Excel. После ввода =EPM (или =EPM, так как регистр не учитывается),
под ячейкой отображается динамический раскрывающийся список всех функций
EPM.
• Также можно использовать стандартное диалоговое окно Microsoft Office Excel
Вставка функции, нажав кнопку Вставить функцию на вкладке EPM ленты.
Относящиеся к EPM функции собраны в категории EPMFunctions
about.me/blinovdaniil 2
BLINOVDANIIL
Функции EPM | Теория
Примечание:
• При использовании функций EPM следует отключить функции распознавания
обычных и локальных элементов.
• Общие сведения: Текст вводится в формулы без учета регистра; Параметры строки
должны вводиться между символами "". Например: “счет“; Знак разделения,
используемый для разделения параметров функции, зависит от разделителя
элементов списка, определенного в локальных параметрах.
• Функция EPM создается по умолчанию для активного соединения листа.
Соединение по умолчанию отображается в раскрывающемся списке Активное
соединение панели EPM. Этот раскрывающийся список позволяет непосредственно
выбрать другое соединение, или можно выбрать команду Выбрать другое
cоединение, затем выбрать другое соединение в открывшемся окне Диспетчер
соединений.
• Категория FPMXLClient.TechnicalCategory доступна только для внутреннего
использования и не должна использоваться другими пользователями.
about.me/blinovdaniil 3
BLINOVDANIIL
Функции EPM | OlapMember
Ссылки на функцию EPMOlapMember В формуле функции EPM для ссылки на ячейку,
которая содержит элемент, размещенный на одной из трех осей отчета (определяется
атрибутом =EPMOlapMember), необходимо использовать функцию EPMMemberID в
двух следующих случаях:
• Eсли идентификатор и описание EPMOlapMember отображаются в отчете;
• Eсли в отчете отображается только описание или идентификатор EPMOlapMember и
если это описание или этот идентификатор не являются уникальными в источнике
данных.
Пример с функцией EPMMemberProperty. Не определяйте эту функцию следующим
образом: =EPMMemberProperty("connection1"; B4; "HLEVEL")
Используйте следующее определение:
=EPMMemberProperty("connection1"; EPMMemberID(B4);"HLEVEL")
about.me/blinovdaniil 4
BLINOVDANIIL
Функции EPM | MemberID
Примечание:
• Параметр Использовать EPMMemberID в формулах EPM и команда Вставить
EPMMemberID в формулы применяются как к функциям EPM, так и к локальным
элементам.
• Однако следует иметь в виду, что выбор этого параметра может снизить скорость
работы. Извлеченные элементы. Модуль расширения EPM выполняет поиск
элементов в следующем порядке: по полному уникальному имени, по
идентификатору, по описанию.
Пример:
Идентификатор элемента M совпадает с описанием элемента W. При вводе описания
элемента M в качестве параметра функции EPM будет извлечен элемент W, поскольку
система сначала выполняет поиск по идентификатору. Извлеченный элемент
представляет собой тот элемент, идентификатор которого был введен.
К переменным функциям в Microsoft Excel относятся функции NOW, TODAY, RAND,
OFFSET, INDIRECT, а также, в зависимости от аргументов, INFO и CELL.
about.me/blinovdaniil 5
BLINOVDANIIL
Функции EPM | EPMUser
Этой функцией извлекается имя учетной записи указанного соединения.
Параметр: Имя соединения.
Описание: Необязательный параметр. Если значение не указано, используется
активное соединение.
about.me/blinovdaniil 6
BLINOVDANIIL
Функции EPM | EPMServer
Этой функцией извлекается адрес сервера для указанного соединения.
Параметр: Имя соединения.
Описание: Необязательный параметр. Если значение не указано, используется
активное соединение.
about.me/blinovdaniil 7
BLINOVDANIIL
Функции EPM | EPMEnvDatabaseDesc
Этой функцией извлекается описание среды или базы данных для указанного
соединения.
Параметр: Имя соединения.
Описание: Необязательный параметр. Если значение не указано, используется
активное соединение.
about.me/blinovdaniil 8
BLINOVDANIIL
Функции EPM | EPMEnvDatabaseID
Этой функцией извлекается описание среды или базы данных для указанного
соединения.
Параметр: Имя соединения.
Описание: Необязательный параметр. Если значение не указано, используется
активное соединение.
about.me/blinovdaniil 9
BLINOVDANIIL
Функции EPM | EPMModelCubeID
Этой функцией извлекается имя модели или куба для указанного соединения.
Параметр: Имя соединения.
Описание: Необязательный параметр. Если значение не указано,
используется активное соединение.
about.me/blinovdaniil 10
BLINOVDANIIL
Функции EPM | EPMModelCubeDesc
Этой функцией извлекается имя модели или куба для указанного соединения.
Параметр: Имя соединения.
Описание: Необязательный параметр. Если значение не указано, используется
активное соединение.
about.me/blinovdaniil 11
BLINOVDANIIL
Функции EPM для отчетов
Некоторые функции EPM позволяют выполнять определенные действия для отчетов.
Примечание:
• Не вводите функции непосредственно рядом с ячейкой отчета. Оставьте пустую
строку или столбец между функцией и отчетом. Кроме того, функции следует вводить
над отчетами. В этом случае при перемещении отчетов функции не перемещаются.
• После ввода функции выполните обновление рабочей таблицы
about.me/blinovdaniil 12
BLINOVDANIIL
Функции EPM для отчетов | EPMDimensionOverride
Переопределение выбора элементов для указанного измерения в одном или в
нескольких отчетах.
Выбором элементов измерения, выполняемым в диалоговом окне Выбор элементов,
заменяются указанные ячейка или диапазон ячеек.
Например:
=EPMDimensionOverride("000;001;002","Категория"," PLAN | ACTUAL,FORECAST |
ACTUAL,FORECAST,PLAN | ACTUAL")
• В отчете 000 элементы измерения "Категория" будут переопределены элементом
PLAN.
• В отчете 001 элементы измерения "Категория" будут переопределены элементами
ACTUAL и FORECAST.
• В отчете 002 элементы измерения "Категория" будут переопределены элементами
ACTUAL, FORECAST и PLAN.
• Четвертым элементом переопределяется определение ACTUAL, которое не будет
применяться ни для какого отчета
about.me/blinovdaniil 13
BLINOVDANIIL
Функции EPM для отчетов | EPMDimensionOverride
Например:
=EPMDimensionOverride("000;001;002;003","Категория"," PLAN | ACTUAL")
• В отчете 000 элементы измерения "Категория" будут переопределены элементом
PLAN.
• В отчете 001 элементы измерения "Категория" будут переопределены элементом
ACTUAL.
• В отчете 002 элементы измерения "Категория" будут переопределены элементами
ACTUAL.
• В отчете 003 элементы измерения "Категория" будут переопределены элементами
ACTUAL.
Примечание: Главный отчет имеет приоритет над остальными отчетами.
about.me/blinovdaniil 14
BLINOVDANIIL
Функции EPM для отчетов | EPMAxisOverride
Эта функция позволяет переопределять одно или несколько измерений (и их
элементы) для указанной оси (оси строки или столбца).
Если ввести функцию и затем нажать клавишу Enter, переопределение элемента
отобразится в панели EPM, но не в отчете. Чтобы отобразить переопределение,
обновите отчет.
Примечание:
• Не следует использовать функцию EPMAxisOverride больше одного раза для одной и
той же оси и одного и того же отчета.
• При вводе одной функции для оси строк и одной функции для оси столбцов ось строк
имеет приоритет на осью столбцов.
• Если описание элемента существует в нескольких измерениях, после ввода функции
будет открыто сообщение с информацией о том, что данное описание является
неоднозначным, и рекомендацией использовать вместо него идентификатор
элемента.
• Если идентификатор элемента существует в нескольких измерениях, после ввода
функции будет открыто сообщение с информацией о том, что данный идентификатор
является неоднозначным, и рекомендацией использовать полное уникальное имя
элемента в качестве альтернативного варианта.
about.me/blinovdaniil 15
BLINOVDANIIL
Функции EPM для отчетов | EPMCopyRange
Эта функция позволяет добавлять и повторять содержимое диапазона ячеек
до достижения конца (столбцы) или правого края (строки) отчета. Диапазон
добавляется к сетке данных и в зоны сдвига (при наличии последних),
начинаясь после оси строк и ниже оси столбцов.
• В отчет добавляется следующее содержание указанного исходного
диапазона.
• Если исходный диапазон, который необходимо добавить, меньше, чем
диапазон отчета, то, пока не будет заполнен диапазон отчета, будет
повторяться следующее содержимое исходного диапазона: все настройки
формата; формулы и фиксированный текст в ячейках отчета, которые не
содержат никаких данных.
Можно добавить диапазон к одному или нескольким отчетам с помощью
параметра reportID.
Например: "000;001", где 000 соответствует первому отчету из листа
(называемому также отчетом по умолчанию), а 001 соответствует второму
отчету из листа.
Примечание: Для разделения отчетов используется символ . ;
about.me/blinovdaniil 16
BLINOVDANIIL
Функции EPM для отчетов | EPMInsertCellsBeforeAfterBlock
Этой функцией вставляются ячейки до или после блока элементов для указанного
измерения.
Если исходный диапазон, который необходимо вставить, меньше, чем диапазон
назначения в
отчете:
• первые ячейки исходного диапазона вставляются перед блоком элементов.
• последующие избыточные ячейки исходного диапазона копируются и
дублируются во все
ячейки диапазона назначения, пока не будет достигнут конец отчета.
Примечание:
Вставленные ячейки считаются "ложными" элементами. Вставленный элемент
распознается по
формуле, начинающейся с =EPMInsertedMember(.
about.me/blinovdaniil 17
BLINOVDANIIL
Функции EPM для отчетов | EPMMemberID
Этой функцией извлекается уникальное имя указанного элемента измерения,
который включается в отчет.
Уникальное имя содержит следующие элементы: [имя измерения].[имя
иерархии].[имя элемента]
about.me/blinovdaniil 18
BLINOVDANIIL
Функции EPM для отчетов | EPMReportOptions
Эта функция позволяет переопределять параметры для одного или нескольких
отчетов.
Переопределение применяется к отчету, только если на вкладке Параметры окна
Редактор отчетов не выбран параметр Наследовать параметры листа
Допускается указывать один или несколько параметров. Для разделения параметров
в списке используется символ ;.
Примечание:
Ниже дан список значений для соответствующих параметров отчетов:
“CalculateParentsInHierarchies” “CalculateParentsInHierarchies=true”
“CalculateParentsInHierarchies=false“
Доп.сведения:
KeepFormulaOnData; ShowSourceDataInComments; KeepEmptyColumns;
KeepEmptyRows; RepeatRowHeaders; RepeatColumnHeaders; FreezeDataRefresh и т.д.
about.me/blinovdaniil 19
BLINOVDANIIL
Функции EPM для отчетов | EPMMemberSortingOverride
Эта функция позволяет переопределить сортировку и группировку элементов,
определенных ранее с помощью интерфейса (область Сортировка и группировка
элементов в окне Выбор элементов), для указанного измерения в одном или
нескольких отчетах.
about.me/blinovdaniil 20
BLINOVDANIIL
Функции EPM для отчетов | EPMReadOnlyData
Эта функция позволяет отказаться от сохранения данных, введенных в
указанные диапазоны
about.me/blinovdaniil 21
BLINOVDANIIL
Функции EPM для отчетов | EPMReportID
Этой функцией извлекается уникальное имя отчета, из которого указывается элемент.
Если указанный элемент принадлежит оси, общей для нескольких отчетов,
извлекается идентификатор главного отчета.
about.me/blinovdaniil 22
BLINOVDANIIL
Функции EPM для отчетов | EPMFullContext
Для указанного соединения этой функцией извлекаются элементы измерения
контекста и элементы, содержащиеся на оси страниц для заданного отчета. Для
каждого измерения на оси страниц элемент контекста переопределяется элементом
оси страниц.
Примечание:
Если значение ReportID не известно, отображаются только элементы контекста.
Элементы отображаются в выбранной ячейке, разделенные заданным
разделителем.
about.me/blinovdaniil 23
BLINOVDANIIL
Функции EPM для отчетов | EPMContextMember
Этой функцией извлекается элемент контекста для указанного измерения. При
двойном щелчке в ячейке, содержащей функцию, откроется диалоговое окно,
отображающее все элементы для указанного измерения. Можно выбрать другой
элемент, и контекст изменится. Список элементов можно дополнительно
отфильтровать с помощью свойств измерений.
Пример:
EPMContextMember("Финансы","Сущность","CALC=N;GROUP=SALES"). Для соединения
"Финансы" в ячейке отображается элемент контекста измерения "Объект". При
двойном щелчке по ячейке в диалоговом окне отображается список всех элементов
объекта, отфильтрованных по значениям свойств CALC=N и GROUP=SALES.
about.me/blinovdaniil 24
BLINOVDANIIL
Функции EPM для отчетов | EPMDimensionProperty
Этой функцией извлекаются свойства указанного измерения в указанном диапазоне
ячеек.
Примечание:
В каждой из ячеек будет отображаться по одному свойству. Если выбрано число ячеек
меньшее, чем число свойств, то будут отображаться не все свойства. Поэтому
необходимо выбирать достаточно большой диапазон назначения.
about.me/blinovdaniil 25
BLINOVDANIIL
Функции EPM для отчетов | EPMDimensionPropertyValues
Эта функция извлекает значения указанного свойства заданного измерения для
заданного
диапазона ячеек.
about.me/blinovdaniil 26
BLINOVDANIIL
Функции EPM для отчетов | EPMMemberDesc
Этой функцией извлекается описание указанного элемента измерения
Примечание:
• Если описание элемента существует в нескольких измерениях, после ввода
функции будет открыто сообщение с информацией о том, что данное описание
является неоднозначным, и рекомендацией использовать вместо него
идентификатор элемента.
• Если идентификатор элемента существует в нескольких измерениях, после ввода
функции будет открыто сообщение с информацией о том, что данный
идентификатор является неоднозначным, и рекомендацией использовать полное
уникальное имя элемента в качестве альтернативного варианта.
about.me/blinovdaniil 27
BLINOVDANIIL
Функции EPM для отчетов | EPMMemberProperty
Этой функцией извлекается значение указанного свойства для указанного элемента.
Примечание:
• Если описание элемента существует в нескольких измерениях, после ввода функции
будет открыто сообщение с информацией о том, что данное описание является
неоднозначным, и рекомендацией использовать вместо него идентификатор
элемента.
• Если идентификатор элемента существует в нескольких измерениях, после ввода
функции будет открыто сообщение с информацией о том, что данный идентификатор
является неоднозначным, и рекомендацией использовать полное уникальное имя
элемента в качестве альтернативного варианта.
about.me/blinovdaniil 28
BLINOVDANIIL
Функции EPM для отчетов | EPMMemberOffset
Этой функцией извлекается элемент, связанный с другим элементом указанием
смещения от данного элемента, для извлечения предыдущего или последующего
элемента. В ячейку, содержащую функцию EPMMemberOffset, добавляются элементы
на основе выбранного элемента.
По умолчанию, если не включен необязательный параметр уровня, добавляется
элемент на том же самом уровне, что и указанный элемент.
Пример:
EPMMemberOffset("Finance",D4,"1")
Если ячейка D4 содержит значение 2009.Q1, и никакой уровень не указан, при числе
добавлений 1 возвращается значение 2009.Q2, при числе добавлений 2
возвращается значение 2009.Q3
и так далее.
Если ячейка D4 содержит значение 2009.TOTAL, и не указан уровень, при увеличении
на 1 возвращается значение 2010.TOTAL.
about.me/blinovdaniil 29
BLINOVDANIIL
Функции EPM для отчетов | EPMSelectMember
Этой функцией извлекается указанный элемент измерения. При двойном щелчке в
ячейке, содержащей функцию, откроется диалоговое окно, отображающее все
элементы для измерения.
Можно выбрать любой элемент. Список элементов можно дополнительно
отфильтровать с помощью свойств измерений.
about.me/blinovdaniil 30
BLINOVDANIIL
Функции EPM для отчетов | EPMCellRanges
Эта функция позволяет определять динамические диапазоны ячеек.
about.me/blinovdaniil 31
BLINOVDANIIL
Функции EPM для отчетов | EPMRefreshTime
Этой функцией извлекаются время и дата последнего обновления данных для
указанного соединения.
about.me/blinovdaniil 32
BLINOVDANIIL
Функции EPM для отчетов | EPMScaleData
Этой функцией извлекаются данные для всего набора элементов и масштабируются
эти данные. Все неуказанные элементы берутся из контекста.
Данные делятся на число, введенное как масштабный параметр, а результат
отображается в выбранной ячейке.
При использовании соединения Planning and Consolidation деление выполняется
только для масштабируемых счетов. Для не масштабируемых счетов в ячейке
отображается исходная сумма.
Примечание:
• Если описание элемента существует в нескольких измерениях, после ввода
функции будет открыто сообщение с информацией о том, что данное описание
является неоднозначным, и рекомендацией использовать вместо него
идентификатор элемента.
• Если идентификатор элемента существует в нескольких измерениях, после ввода
функции будет открыто сообщение с информацией о том, что данный
идентификатор является неоднозначным, и рекомендацией использовать полное
уникальное имя элемента в качестве альтернативного варианта.
about.me/blinovdaniil 33
BLINOVDANIIL
Функции EPM для отчетов | EPMRetrieveData
Этой функцией извлекаются данные для всего набора элементов. Все неуказанные
элементы берутся из контекста.
Примечание:
• Если описание элемента существует в нескольких измерениях, после ввода функции
будет открыто сообщение с информацией о том, что данное описание является
неоднозначным, и рекомендацией использовать вместо него идентификатор
элемента.
• Если идентификатор элемента существует в нескольких измерениях, после ввода
функции будет открыто сообщение с информацией о том, что данный идентификатор
является неоднозначным, и рекомендацией использовать полное уникальное имя
элемента в качестве альтернативного варианта.
about.me/blinovdaniil 34
BLINOVDANIIL
Функции EPM для отчетов | EPMDimensionList
Этой функцией извлекается список всех измерений модели или куба для указанного
соединения.
Можно выбрать для отображения:
• все измерения в текущей ячейке, где указанным символом разделяются имена
измерений;
• все измерения в одном или нескольких раскрывающихся списках.
about.me/blinovdaniil 35
BLINOVDANIIL
Функции EPM для отчетов | EPMSaveComment
Эта функция позволяет вводить или изменять комментарий для целого набора
элементов в указанной ячейке. Все неуказанные элементы берутся из контекста.
После ввода или изменения комментария его можно сохранить с помощью кнопки
Сохранить данные. Комментарий сохраняется на сервере.
about.me/blinovdaniil 36
BLINOVDANIIL
Функции EPM для отчетов | EPMSaveData
Эта функция позволяет извлекать данные из базы данных в указанную ячейку и
изменять эти данные для полного набора элементов. Все неуказанные элементы
берутся из контекста.
После определения функции следует обновить лист. В указанной ячейке (первый
параметр в функции) и в ячейке, куда была введена функция, будут отображены
данные из базы данных.
Введите данные в указанную ячейку. Затем выполните сохранение с помощью кнопки
Сохранить данные. Введенные данные будут сохранены на сервере. При очередном
обновлении данные из базы данных будут отображены в обеих ячейках.
about.me/blinovdaniil 37
BLINOVDANIIL
Функции EPM для отчетов | EPMSaveDataOnly
Эта функция позволяет вводить данные для целого набора элементов в указанной
ячейке. Все неуказанные элементы берутся из контекста.
После определения функции следует обновить лист. В указанной ячейке (первый
параметр функции) будут отображаться последние введенные данные (если данные
никогда не вводились, ячейка будет пуста). В ячейке, куда была введена функция,
будут отображаться данные из базы данных. Введите данные в указанную ячейку.
Затем выполните сохранение с помощью кнопки Сохранить данные. Введенные
данные будут сохранены на сервере.
В ячейке, куда была введена функция, всегда отображаются данные из базы данных,
в то время как в ячейке, в которую вводились данные, отображаются последние
введенные данные.
about.me/blinovdaniil 38
BLINOVDANIIL
Функции EPM для отчетов | EPMWorkStatus
Этой функцией извлекается информация о рабочем статусе
about.me/blinovdaniil 39
BLINOVDANIIL
Функции EPM для отчетов | EPMComparison
Соединения Planning and Consolidation. Если эта функция используется для других
соединений, выполняется простое вычитание, так как невозможно извлечь тип
учетной записи. Выполняется сравнение двух значений по методу "лучше-хуже" на
основе свойства типа учетной записи для элемента учетной записи.
Свойство типа учетной записи имеет следующие значения:
• INC (Income)
• EXP (Expense)
• AST (Asset)
• LEQ (Liabilities & Equity)
about.me/blinovdaniil 40
BLINOVDANIIL
Функции EPM для отчетов | EPMDimensionType
Этой функцией извлекается измерение в зависимости от его типа.
Предусмотренные типы измерений: A, C, D, E, F, G, I, R, S, T и Un.
• A – для счетов
• C – для категорий
• D – для источников данных
• E – для объектов
• F – для мер
• G – для владения
• I – для межфирменных данных
• R – для измерения типов валюты
• S – для подтаблицы
• T – для времени
• Un: каждому определенному пользователем измерению назначается
числовое значение после буквы U: U1, U2, U3 и так далее
about.me/blinovdaniil 41
BLINOVDANIIL
Функции EPM для отчетов | EPMCommentFullContext
Этой функцией извлекаются все комментарии, связанные с набором элементов
измерения, которые полностью определены. Если указанный для измерения элемент
отсутствует, вместо него используется элемент контекста.
about.me/blinovdaniil 42
BLINOVDANIIL
Функции EPM для отчетов | EPMCommentPartialContext
Этой функцией извлекаются все комментарии, связанные с набором элементов
измерения, которые частично определены. Все элементы, не указанные в функции,
игнорируются.
Пусть, например, модель содержит следующие измерения: счет, объект и время. Если
в функции не указан элемент для измерения времени, то возвращаются все
комментарии, введенные за все периоды.
about.me/blinovdaniil 43
BLINOVDANIIL
Функции EPM для отчетов | EPMURL
Эта функция служит для извлечения заданного текста, при двойном щелчке
которого в браузере открывается веб-страница Planning and Consolidation или любая
другая веб-страница по указанному URL-адресу.
about.me/blinovdaniil 44
BLINOVDANIIL
Функции EPM для отчетов | EPMBook
Эта функция служит для извлечения заданного текста, при двойном щелчке которого
открывается книга, опубликованная на веб-клиенте Planning and Consolidation.
• Если книги, которые требуется просмотреть, опубликованы в виде нескольких
файлов PDF, не следует использовать параметры locationType и teamID.
• Если книги, которые требуется просмотреть, опубликованы в виде одного файла
PDF, необходимо указать параметр locationType, т.е. тип расположения из шаблона
публикации книги:
• 2=открытый
• 3=закрытый
• 4=группа. Если в качестве типа расположения указана группа, следует задать
параметр teamID.
about.me/blinovdaniil 45
BLINOVDANIIL
Функции EPM для отчетов | EPMLink
Эта функция извлекает указанный текст, при двойном щелчке которого открывается
отчет, содержащийся в другом файле, то есть рабочая книга Microsoft Excel, документ
Word или презентация PowerPoint.
about.me/blinovdaniil 46
BLINOVDANIIL
Функции EPM для отчетов | EPMDocumentList
Эта функция открывает представление документов Planning and Consolidation и
извлекает отфильтрованный список документов. Затем документ из списка можно
открыть двойным щелчком.
about.me/blinovdaniil 47
BLINOVDANIIL
Функции EPM для отчетов | EPMDocument
Эта функция служит для извлечения заданного текста, при двойном щелчке которого
открывается документ, сохраненный в представлении документов Planning and
Consolidation. Документ открывается в веб-браузере.
about.me/blinovdaniil 48
BLINOVDANIIL
Функции EPM для отчетов | EPMExecuteAPI
Эта функция позволяет выполнять API непосредственно из ячейки в рабочей таблице.
API выполняется при щелчке по ячейке со вставленной функцией.
about.me/blinovdaniil 49
BLINOVDANIIL
СПАСИБО!
Дата: 25.12.2012 года
Автор: Даниил Блинов
E-mail: bdaniil@gmail.com
Сайт: www.blinovdaniil.com
about.me/blinovdaniil 50
Get documents about "