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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.04.2017, 18:11   #1  
Blog bot is offline
Blog bot
Участник
 
25,584 / 848 (80) +++++++
Регистрация: 28.10.2006
erconsult: Electronic Reporting (ER) Cookbook
Источник: http://erconsult.eu/blog/electronic-...g-er-cookbook/
==============

The Electronic Reporting module in Dynamics 365 for Operations, previously known as General Electronic Reporting (GER) was one of the coolest application inventions in Dynamics AX7. Programmed apparently in my alma mater – the Dynamics development office in Moscow – this “ER” is a surprisingly powerful tool with an own in-built programming language for transformations. A consultant may configure any vendor payment format or any moderately complex GL export (such as the German GDPdU or French FEC) within days with literally no customizations, and test it in-place.


Over the last year, I implemented the British BACS18, the Swiss DTA, the Spanish SEPA sub-format and the North American ACH outbound payment format. While the AX wiki is a good start, the best way to learn the tool is practice. Below are some transformation code snippets that may help you along the steep learning curve.

Line counters

In the payment files, there are often line numbers. The ER element “Counter” is intended to be used, but it is incremented on every occurrence in the format. I.e. the counter has a global context, and the same count may not be used more than once in a row.
A total of records in a footer section is a special case: you may enumerate the lines with a Counter, then use a function of the Group by type over the data source to get a total count.
With 2 concurrent counters you have no other choice but to use the [real numeric] use the journal line number, and convert it into an integer:
NUMBERFORMAT(VALUE(model.Payments.PaymentIdentifications.SourceBusinessEntityDescription), "00000000000")

Simple transformation formula examples

Convert an amount into an amount with fixed 2 decimal places after the comma
NUMBERFORMAT(model.Payments.InstructedAmount, "#.00")
Remove the decimal separator, produce an amount in pence / cents
REPLACE(NUMBERFORMAT(parameter,"0.00"), ".", "", false)
Remove line breaks from the postal address without a regular expression, and truncate to 70 characters
LEFT(REPLACE(model.Payments.Debtor.PostalAddress.AddressLine, "\n", " ", true), 70)
Remove all non-numeric characters with a regular expression
RIGHT(REPLACE(parameter, "[^0-9]", "", true),6)
REPLACE(model.Payments.DebtorAccount.Identification.Number, "[^0-9]", "", true)

Calculate a weighted check sum

The below expression adds the 9th checksum digit to an US ABA routing number, should the user be entering only the significant 8 digits. The RIGHT(NUMBERFORMAT(10 – VALUE(), “#”, 1) is a crude implementation of modulo 10.
CASE(
LEN(parameter), 9, parameter,
8, parameter&RIGHT(NUMBERFORMAT(10-VALUE(RIGHT(NUMBERFORMAT(
((VALUE(MID(parameter, 1, 1))+VALUE(MID(parameter, 4, 1)))+VALUE(MID(parameter, 7, 1)))*3+
((((VALUE(MID(parameter, 2, 1))+VALUE(MID(parameter, 5, 1)))+VALUE(MID(parameter, 8, 1)))*7+
VALUE(MID(parameter, 3, 1)))+VALUE(MID(parameter, 6, 1))), "#"),
1)),
"#"), 1),
RIGHT(parameter, 9))

Day number in a year (1-366)

The British BACS18 format contained a date format that really made me suffer: for the 1st of February 2016 it expected “ 16032” where 32 was the day count from the 1st of January. The below code took me a while; it uses the Gregorian calendar formula and predates the fact that if you start counting months from March, the length of the months oscillates 31-30-31…
CONCATENATE(" ", DATEFORMAT(parameter, "yy"),
NUMBERFORMAT(
ROUNDDOWN(275 * NUMBERVALUE(DATEFORMAT(parameter, "MM"),".","") / 9, 0) -
(ROUNDDOWN( (NUMBERVALUE(DATEFORMAT(parameter, "MM"),".","") + 9) / 12, 0) *
(1 + ROUNDDOWN( ((NUMBERVALUE(DATEFORMAT(parameter, "yyyy"),".","") –
4 * ROUNDDOWN (NUMBERVALUE(DATEFORMAT(parameter,"yyyy"),".","") / 4, 0) + 2) / 3), 0) ) )+
NUMBERVALUE(DATEFORMAT(parameter, "dd"),".","") - 30,
"000"))

Data model

To master the file format, you must first learn the data model, the ER’s configurable abstraction layer over the Dynamics database. Outbound vendor payments use the Payment model.

table {border-collapse: collapse;} th, td {border: 1px solid black; padding: 10px; text-align: left;}It provides generic payment attributes,

AttributeModel nodePayment date (user parm or journal date)model.Payments.RequestedExecutionDateAmountmodel.Payments.InstructedAmountISO payment currency (journal line currency)model.Payments.CurrencyJournal line number (see Line counters)model.Payments.PaymentIdentifications.SourceBusinessEntityDescriptionPayment / Notemodel.Payments.PaymentsNotesVoucher+RecId (a unique line ID)model.Payments.PaymentIdentifications.EndToEndIdentificationDate of todaymodel.CreationDateTime

our bank details,

AttributeModel nodeOur name (company name)model.Payments.Debtor.NameOur full address (company address)model.Payments.Debtor.PostalAddress.AddressLineName of our bankmodel.Payments.DebtorAgent.NameOur bank account numbermodel.Payments.DebtorAccount.Identification.NumberOur IBANmodel.Payments.DebtorAccount.Identification.IBANRouting number of our bankmodel.Payments.DebtorAgent.RoutingNumberBIC of our bankmodel.Payments.CreditorAgent.BICFI

and their (beneficiary) bank details:

AttributeModel nodeTheir name (vendor’s name)model.Payments.Creditor.NameTheir full address (vendor’s payment address)model.Payments.Creditor.PostalAddress.AddressLineName of their bankmodel.Payments.CreditorAgent.NameTheir bank account numbermodel.Payments.CreditorAccount.Identification.NumberTheir IBANmodel.Payments.CreditorAccount.Identification.IBANRouting number of their bankmodel.Payments.CreditorAgent.RoutingNumberBIC of their bankmodel.Payments.CreditorAgent.BICFIThe post Electronic Reporting (ER) Cookbook appeared first on ER-Consult.



Источник: http://erconsult.eu/blog/electronic-...g-er-cookbook/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
Старый 17.04.2017, 14:07   #2  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1630 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Несколько вопросов к автору:
1. можно ли это использовать как полноценную замену отчетности - типа у нас есть требования десятка отчетов(типа накладных и т.п.). мы можем создать модель данных с необходимыми таблицами(что не очень сложно) и сделать так чтобы пользователи дальше уже сами делали эти отчеты? Как я понял это будет заполнение шаблонов Excel. соответственно интерфейсно хотелось бы чтобы это были кнопки на формах, по нажатию на которые открывался Excel.
или все же это не настолько мощная утилита?

2. почему Day number in a year (1-366) было не сделать просто дисплей методом в АХ(использую функцию dayofYr()) . или это трудоемко?
Старый 17.04.2017, 15:32   #3  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от trud Посмотреть сообщение
1. можно ли это использовать как полноценную замену отчетности - типа у нас есть требования десятка отчетов(типа накладных и т.п.). мы можем создать модель данных с необходимыми таблицами(что не очень сложно) и сделать так чтобы пользователи дальше уже сами делали эти отчеты? Как я понял это будет заполнение шаблонов Excel. соответственно интерфейсно хотелось бы чтобы это были кнопки на формах, по нажатию на которые открывался Excel.
или все же это не настолько мощная утилита?
Можно разметить шаблон Excel названиями ячеек а потом связать участки шаблона с даннами в редакторе формата. Оналайн редактора Excel нет - только вот так: 1) Создание шаблона 2) Импорт шаблона 3) Связь с моделью данных

Цитата:
Сообщение от trud Посмотреть сообщение
почему Day number in a year (1-366) было не сделать просто дисплей методом в АХ(использую функцию dayofYr()) . или это трудоемко?
ER не поддерживает вызовы методов с неконстантными параметрами. Если создать display method без параметров, надо было бы его протаскивать через модель данных - то есть дальше формат мог бы работать только с измененной моделью и ее пришлось бы поддерживать.

И еще это потребовало бы изменения X++ кода и распространения его.

Последний раз редактировалось belugin; 17.04.2017 в 15:53.
За это сообщение автора поблагодарили: alex55 (1).
Старый 17.04.2017, 16:27   #4  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1630 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от belugin Посмотреть сообщение
Оналайн редактора Excel нет - только вот так: 1) Создание шаблона 2) Импорт шаблона 3) Связь с моделью данных
Спасибо.
интерестно а вот это "работающий" процесс. т.е. можно применять для замены реальных отчетов SSRS? Какие есть ограничения-особенности
Старый 17.04.2017, 16:40   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от trud Посмотреть сообщение
Спасибо.
интерестно а вот это "работающий" процесс. т.е. можно применять для замены реальных отчетов SSRS? Какие есть ограничения-особенности
Так же как Office Open XML отчеты в Ax2012 (в российской локализации) отсутствует возможность пакетной печати. То есть результаты пакетных заданий складываются в отдельную табличку но пользователь может распечатать их только интерактивно.

Так, в-принципе, отчеты формируются тем же OOXML и либо отдаются в браузер либо складываются в Document Management. Наверняка есть какие-то органичения по отношению к тому, что можно вытворить тем же способом через X++ но я их не назову так сразу.
За это сообщение автора поблагодарили: trud (2).
Старый 18.04.2017, 05:39   #6  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1630 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от belugin Посмотреть сообщение
Наверняка есть какие-то органичения по отношению к тому, что можно вытворить тем же способом через X++ но я их не назову так сразу.
А диалог можно вывести? т.е. самый простой сценарий- добавить на форму клиентов кнопку запрограммировав вывод диалога с 2 датами(С и По) и в результате хотим получить отчет который показывает данные клиента + данные проводок по клиенту зафильтрованные по введенным датам в диалоге.
т.е. программист описывает 2 ентити - клиенты и проводки, пишет метод фильтрации. а пользователь уже делает себе отчет и шаблон.
такие сценарии возможны? и есть что-нибудь подобное в стандарте?
Старый 17.04.2017, 16:22   #7  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Благодарю, добавить особо нечего. Кастомные методы стараюсь не использовать, до сих пор пришлось сделать только один: для перекодирования счетов ГК из одного плана в другой через Default consolidation account.
Старый 21.04.2017, 16:28   #8  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Черт, в последней версии приложения появилась встроенная функция DAYOFYEAR. Столько красивой алгебры впустую...
За это сообщение автора поблагодарили: Logger (1).
Старый 08.08.2017, 19:33   #9  
mnt_dx is offline
mnt_dx
Участник
Axapta Retail User
Лучший по профессии 2014
 
1,747 / 188 (10) ++++++
Регистрация: 17.02.2011
Адрес: К Северу через Северо-Запад
Не знаю как вы все, я вот этот GER совсем не понял и термины "easily" и "customizable" к нему по мне никак не применимы. Для отчетов проще привлечь таки программиста.
Старый 27.09.2017, 23:19   #10  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1235 (44) ++++++++
Регистрация: 11.04.2008
У меня два вопроса:
1. Можно лі сделать возможным передачу параметров прі вызове метода табліцы?
2. Можно лі как-то упростіть следуюшій сценарій: у нас есть таблица CompanyInfo, которая участвует во многих конфигурациях. При добавлении нового поля, приходится ручками пройтись по всем конфигам и протянуть это поле. Весьма трудоемко. Пример: некоторые партнеры предоставляют внешние решения для печати отчетов. На выходе аксапты им нужен XML, а дальше они его трансформируют куда-то еще, в PDF например. CompanyInfo присутсвует во всех отчетах. Добавление нового поля сулит кучу времени по перенастройке и тестированию этого огорода. Как эту проблему можно решить, позволяет ли архитектура это сделать? Пока на ум приходит написать сбоку кнопку, которая сделает это автоматически. Может есть более интересные варианты?

Sorry for my font...

Последний раз редактировалось DSPIC; 27.09.2017 в 23:22. Причина: Е nt
Старый 28.09.2017, 01:09   #11  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от DSPIC Посмотреть сообщение
У меня два вопроса:
1. Можно лі сделать возможным передачу параметров прі вызове метода табліцы?
2. Можно лі как-то упростіть следуюшій сценарій: у нас есть таблица CompanyInfo, которая участвует во многих конфигурациях. При добавлении нового поля, приходится ручками пройтись по всем конфигам и протянуть это поле. Весьма трудоемко. Пример: некоторые партнеры предоставляют внешние решения для печати отчетов. На выходе аксапты им нужен XML, а дальше они его трансформируют куда-то еще, в PDF например. CompanyInfo присутсвует во всех отчетах. Добавление нового поля сулит кучу времени по перенастройке и тестированию этого огорода. Как эту проблему можно решить, позволяет ли архитектура это сделать? Пока на ум приходит написать сбоку кнопку, которая сделает это автоматически. Может есть более интересные варианты?
1. Согласно https://docs.microsoft.com/en-us/dyn...d-ops/toc.json, можно, но только констант.
2. Сделать метод типа CompanyInfo.toString() чтобы сериализовать все возможные поля, а потом реализовать функцию наподобие SPLIT(), но которая бы реагировала на символ-разделитель чтобы заново разбить на составные части.

Последний раз редактировалось EVGL; 28.09.2017 в 01:16.
За это сообщение автора поблагодарили: trud (4), mazzy (2).
Старый 28.09.2017, 09:27   #12  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от DSPIC Посмотреть сообщение
2. Можно лі как-то упростіть следуюшій сценарій: у нас есть таблица CompanyInfo, которая участвует во многих конфигурациях.
У нас нет функциональности для переиспользования таких вещей.
Нельзя ли несколько отчетов строить на одной и той же модели?

Если вы направите ваши вопросы в Yammer, то вопрос прочитает не только я, но и другие люди из нашей команды
Старый 28.09.2017, 11:30   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
Если вы направите ваши вопросы в Yammer, то вопрос прочитает не только я, но и другие люди из нашей команды
1.
Майкрософт меняет адреса и ссылки на своих ресурсах. Сильно опасаюсь, что и Яммер не минует чаша сия. Поэтому, если хотите оставить свои вопросы и ответы на долгое время, лучше написать здесь.

2.
Думаю, что другим людям из команды можно и axforum почитать.
Ведь никто не гарантирует от них ответы ни на яммере, ни на аксфоруме. А здесь своих пользователей все же больше.

3.
Уводить дискуссию на другой ресурс - невежливо.
Давайте обсуждать здесь.
__________________
полезное на axForum, github, vk, coub.
Старый 28.09.2017, 13:00   #14  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Я не увожу никого - просто информирую. Я ж не отказываюсь обсуждать тут. Более того, привожу ссылки на аксфорум если тут возникает вопрос, на который сам не могу ответить.

AxForum:
  • на русском языке (проще читать нам, но нет западной аудитории)
  • постоянные ссылки
  • доступен поисковикам
  • не знаю, есть ли подписка на таги (т.е. люди из команды могут тупо подписаться на тег GER?)
  • вежливо по отношению к администрации

Yammer:
  • на английском языке
  • нет доверия к постоянности ссылок
  • официальный канал (люди из команды там уже присутствуют и прочим microsofties не надо специально решистрироваться)
  • есть подписка на таги (топики)
  • в целом возможности беднее

Последний раз редактировалось belugin; 28.09.2017 в 13:14.
За это сообщение автора поблагодарили: mazzy (2).
Старый 28.09.2017, 13:27   #15  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
вежливо по отношению к администрации
вежливо по отношению к остальным участникам axForum, конечно )

rss по тегу Добавлена фича: можно получать rss потоки по тегам.
__________________
полезное на axForum, github, vk, coub.
Старый 28.09.2017, 00:01   #16  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
думаю, что Макс Белугин может ответить на этот вопрос самым компетентным образом.

однако, сразу хочу сказать, что GER сейчас развивается очень мощно.
поэтому для GER особенно важна версия системы.
думаю, что стоит указать вплоть до билда.
__________________
полезное на axForum, github, vk, coub.
Старый 28.09.2017, 00:37   #17  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Кстати, если он так развивается, то что мешает добавить
DIV
MOD
и добавить целочисленный параметр 'scope' для независимой нумерации с помощью элемента Counter?
Старый 07.10.2017, 01:15   #18  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от EVGL Посмотреть сообщение
Кстати, если он так развивается, то что мешает добавить
DIV
MOD
и добавить целочисленный параметр 'scope' для независимой нумерации с помощью элемента Counter?
Добавил идею: https://ideas.dynamics.com/ideas/dyn...ions/ID0002824, поскольку это оборачивается реальной проблемой для пользователей на моем проекте. Может, есть возможность включить один Counter в запись в текстовом файле первый раз, а потом как-то через списки или reflection поместить его в запись второй раз?
Так или иначе, прошу заинтересованных читателей форума проголосовать.
Старый 07.10.2017, 22:21   #19  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от EVGL Посмотреть сообщение
поскольку это оборачивается реальной проблемой для пользователей на моем проекте. Может, есть возможность включить один Counter в запись в текстовом файле первый раз, а потом как-то через списки или reflection поместить его в запись второй раз?
Так или иначе, прошу заинтересованных читателей форума проголосовать.
Я посмотрю что тут можно сделать в понедельник. Про Div Mod понятно, про скойпы в кайнткры тоже более менее (то есть каунтер скопа n+1 сбрасывается при инкременте/сбросе каунтера скопа n?)

Про записи списки и reflection - не очень.
Старый 08.10.2017, 16:54   #20  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от belugin Посмотреть сообщение
Я посмотрю что тут можно сделать в понедельник. Про Div Mod понятно, про скойпы в кайнткры тоже более менее (то есть каунтер скопа n+1 сбрасывается при инкременте/сбросе каунтера скопа n?)

Про записи списки и reflection - не очень.
Спасибо! Задача очень простая, вывести такие строки в файл платежа:

Umzug GmbH, 01, 124.46, AT5614200200006111111, 01
Amazon Ltd, 02, 5677.32, LU5614200200006222222, 02
xxxxxxxxxx, 03, xxxxx, xxxxxxxxxxx, 03
Теги
electronic reporting, erconsult, ger

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
daxdilip: Book Review - Microsoft Dynamics AX 2012 Reporting CookBook Blog bot DAX Blogs 0 07.01.2014 01:12
palleagermark: Book review: Microsoft Dynamics AX 2012 Reporting Cookbook Blog bot DAX Blogs 0 28.11.2013 20:12
kamalblogs: Dynamics Ax 2012 Reporting cookbook published & 5 reasons why you should go for it Blog bot DAX Blogs 1 20.10.2013 15:12
kamalblogs: Dynamics Ax 2012 Reporting cookbook published & 5 reasons why you should go for it Blog bot DAX Blogs 0 30.09.2013 10:11
NAV reporting: Building a Matrix Report in Microsoft Dynamics NAV 2009 SP1 Blog bot Dynamics CRM: Blogs 0 28.08.2009 18:26

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

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

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