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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.08.2011, 23:12   #1  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Опыт настройки проводки 10 -> 20 с помощью профилей в AX2009
После 4 часов борьбы с системой и проклиная тот день, когда я стал консультантом, я настроил проводку СКЛАД -> НЗП как это принято в России. Как обычно, без дебаггера не обошлось. Думаю, мой опыт будет интересен.

Идея проста: есть склад "СКЛАД" и склад "ПРОИЗВ"одство. Физически они разделены. Надо соединить склад СКЛАД с профилем "10", а склад ПРОИЗВ - с профилем "20". На этом месте сразу же сталкиваемся с доработкой #1: профиль по умолчанию хорошо присоединяется в модулях заказов и закупок, однако в журналах склада и производства профиль каждый раз надо указывать руками. Казалось бы, в записи склада есть поля для профиля по умолчанию, но его указание не приводит к автоматическому выбору профиля в журналах. Лечится тремя строками в методе \Data Dictionary\Maps\InventStorageDimMap\Methods\initFromInventLocation:
X++:
    if (_inventLocation.InventProfileId_RU && (! dimSearch || dimSearch.findActive(_dimGroupId, fieldnum(InventDim, InventProfileId_RU))))
    {
        this.InventProfileId_RU = _inventLocation.InventProfileId_RU;
    }
Хорошо. Берем наше сырье, которое лежит на палетах, переносим со склада на склад. Смотрим проводки ГК - тишина. Пусто. Все ясно: генерирование проводок не предусмотрено русскими для модуля управления складом и переноса палет в нем.

Не беда: создаем классический журнал переноса, указываем палету, склад С и склад По, нажимаем разноску и испытываем шок: система не может разнести журнал перноса, в котором палета перемещается из точки А в точку Б. "Используйте функцию переноса палет." Круг замкнулся.

Слава богу, замечательная компания FWI, в которой я имею честь работать, обладает доработанным журнала переноса, который умеет перемещать палеты. Активизировав ее, я, наконец, получил желаемое
Дхх - К10
Д20 - Кхх,
где хх - некий клиринговый счет. Нельзя сказать, что он мне особо нужен, но и не мешает.

Резюме: идея работает, однако
1) удобство работы с профилями оставляет желать лучшего
2) если используются палеты и управление складом, то без доработок не обойтись.
За это сообщение автора поблагодарили: mazzy (5), Pustik (3), lev (5), S.Kuskov (10), ashu (1), mnt_dx (1).
Старый 05.08.2011, 21:37   #2  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
1C
Лучший по профессии 2015
 
619 / 453 (17) +++++++
Регистрация: 28.04.2003
Адрес: Москва
Я еще на АХ30 написал мод для разноски номенклатур от нужного набора слк аналитик.
От склада - просто напрашивалось и было остро необходимо (в комплекте с генерированием проводки при переносе).
Но введя еще аналитику Состояние и разноску от пары Склад+Состояние, стало возможным не делать Склады по числу перестановок от состояний на них, а например, использовать их по назначению - реальной географии склада (филиал и тп).
Делать же Склад_хранение, Склад_производство, Склад_монтаж, Склад_брак и тп можно, только если складов 2-3
А вот если их 30? То в списке их нужно делать 120? Это уже жесть!
Мы ж для чего учет ведем по складам, чтоб понимать, где что лежит в реальности по оборотке складской - на то она и аналитика, чтоб срезы давать.
Когда появился штатный мод разноски от профиля и сайты, то это вызвало некий скепсис, а по коду все эти "160 мест в коде, где нужно было тянуть аналитику" совпали с моим же модом и он свелся к паре методов всего. Ну а профили вырубаются конфиг ключом, за что огромное мерси.
И можно пользовать удобную настройку, таскаемую по разным версиям АХ

Итого, можно сделать удобно и это довольно просто, тк теперь есть все необходимые правки на уровне стандарта и аналитика (любые ее комбинации) протянуты по всей разноске (просто сделана. зависимость не на нужных, а на лишних-новых), соотв настроить разноску можно от любой аналитики - да, кодинг, но мелкий и уж точно быстрее затрачиваемое на придумывания, как это сделать без кодинга, время. Или кодинга допиливания заполнения новых аналитик от старых.

Все это суровое ИМХО, тк логистикой в чистом виде не занимался оч давно и просто не осознал всю прелесть нововведений профилей и сайтов, тогда как старое, проверенное, работает и позволяет настраивать любую нужную разноску по номенклатуре вообще без затыков.
Старый 18.11.2011, 13:46   #3  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от EVGL Посмотреть сообщение
X++:
    if (_inventLocation.InventProfileId_RU && (! dimSearch || dimSearch.findActive(_dimGroupId, fieldnum(InventDim, InventProfileId_RU))))
    {
        this.InventProfileId_RU = _inventLocation.InventProfileId_RU;
    }
Update: тут не хватало проверки this.TableId == tableNum(InventDim)
Старый 18.11.2011, 14:02   #4  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
см. так же тему "Склад, Профиль учета, Складские аналитики"
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 18.11.2011, 14:09   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от EVGL Посмотреть сообщение
...
Слава богу, замечательная компания FWI, в которой я имею честь работать, обладает доработанным журнала переноса, который умеет перемещать палеты. Активизировав ее, я, наконец, получил желаемое
Дхх - К10
Д20 - Кхх,
где хх - некий клиринговый счет. Нельзя сказать, что он мне особо нужен, но и не мешает.
...
А как бухгалтера восприняли эти фин проводки? не просили оставить одну проводку Д20 - К10? без всяких там транзитных счетов?
И если просили, то как Вы смогли их убедить, что им это не мешает?
Поделитесь опытом please
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 18.11.2011, 14:16   #6  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от lev Посмотреть сообщение
А как бухгалтера восприняли эти фин проводки? не просили оставить одну проводку Д20 - К10? без всяких там транзитных счетов?
И если просили, то как Вы смогли их убедить, что им это не мешает?
Поделитесь опытом please
В конечном итоге мне удалось их убедить (потребовалось несколько дней), что им такие проводки вообще не нужны.
... при наличии модуля производства. В конечном итоге сырье потреблено не тогда, когда по бумагам уходит со склада, а когда его ставят на машину и превращают в готовый продукт или полуфабрикат.
Старый 18.11.2011, 14:23   #7  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от EVGL Посмотреть сообщение
В конечном итоге мне удалось их убедить (потребовалось несколько дней), что им такие проводки вообще не нужны.
... при наличии модуля производства. В конечном итоге сырье потреблено не тогда, когда по бумагам уходит со склада, а когда его ставят на машину и превращают в готовый продукт или полуфабрикат.
Повезло Вам
у меня видимо будет более сложная дорога...
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 18.11.2011, 14:42   #8  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от EVGL Посмотреть сообщение
... На этом месте сразу же сталкиваемся с доработкой #1: профиль по умолчанию хорошо присоединяется в модулях заказов и закупок, однако в журналах склада и производства профиль каждый раз надо указывать руками. Казалось бы, в записи склада есть поля для профиля по умолчанию, но его указание не приводит к автоматическому выбору профиля в журналах. Лечится тремя строками в методе \Data Dictionary\Maps\InventStorageDimMap\Methods\initFromInventLocation:
X++:
    if (_inventLocation.InventProfileId_RU && (! dimSearch || dimSearch.findActive(_dimGroupId, fieldnum(InventDim, InventProfileId_RU))))
    {
        this.InventProfileId_RU = _inventLocation.InventProfileId_RU;
    }
на мой взгляд тут доработка немного посложней, а именно:
1. В map InventStorageDimMap добавляем поле InventProfileId_RU.
2. В mappings для таблиц: CustTable, InventDim, PurchTable, SalesTable, VendTable добавляем соответствующие связи полей.
3. В map InventStorageDimMap изменяем методы:
1. modifiedField(). А именно добавляем в case по изменению поля InventLocationId проверку на незаполненность профиля учета. В результате этот case будет выглядеть так:
X++:
    if (this.InventLocationId && (!this.InventSiteId    || // No site. Hence default site might be applicable
                                          !this.InventProfileId_RU)) // Добавлена проверка профиля
            {
                if (this.isFormDataSource())
                {
                    this.InventStorageDimMap::modifiedInventLocationFromParent(this.InventStorageDimMap::formDataSourceJoinParent());
                }
            }
2. modifiedInventLocationFromParent(). А именно добавляем переменную InventJournalTrans (строки складских журналов), и в switch по parent.TableId добавляем новый case. В итоге этот метод будет выглядеть так:
X++:
    fieldId             fieldId;
    ProdJournalProd     prodJournalProd;
    ProdJournalRoute    prodJournalRoute;
    InventJournalTrans  inventJournalTrans; // Добавлена переменная строк складских журналов
    ;

    if (parent.TableId && parent.TableId != tablenum(Common)) // A parent is found
    {
        switch (parent.TableId)
        {
            case tablenum(InventItemLocation):
                break;

            case tablenum(ProdJournalProd):
                prodJournalProd = parent;
                this.InventStorageDimMap::initFromInventLocation(this.InventStorageDimMap::inventLocation(),
                                                                 prodJournalProd.prodTable().inventTable().DimGroupId);
                break;

            case tablenum(ProdJournalRoute):
                prodJournalRoute = parent;
                this.InventStorageDimMap::initFromInventLocation(this.InventStorageDimMap::inventLocation(),
                                                                 prodJournalRoute.prodTable().inventTable().DimGroupId);
                break;

            // Добавлен case по строкам складских журналов -->
            case tablenum(InventJournalTrans)   :
                inventJournalTrans  =parent;
                this.InventStorageDimMap::initFromInventLocation(this.InventStorageDimMap::inventLocation(),
                                                                 inventJournalTrans.inventTable().DimGroupId);
                break;
            // Добавлен case по строкам складских журналов <--
            default:
                fieldId = fieldname2id(parent.TableId,fieldstr(InventTable,ItemId));
                if (fieldId)
                {
                    this.InventStorageDimMap::initFromInventLocation(this.InventStorageDimMap::inventLocation(),
                                                                     InventTable::find(parent.(fieldId)).DimGroupId);
                }
                else
                {
                    this.InventStorageDimMap::initFromInventLocation(this.InventStorageDimMap::inventLocation());
                }
                break;
        }
    }
    else // No parent exist
    {
        this.InventStorageDimMap::initFromInventLocation(this.InventStorageDimMap::inventLocation());
    }
3. initFromInventLocation(). А именно в конце метода добавляем проверку активности аналитики "Профили учета", и инициализацию профиля (собственно те две строки, про которые говорил EVGL):
X++:
    if (!dimSearch || dimSearch.findActive(_dimGroupId, fieldnum(InventDim, InventProfileId_RU)))
    {
        this.InventProfileId_RU = _inventLocation.InventProfileId_RU;
    }
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 18.11.2011, 14:56   #9  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
На самом деле, проще всего в \Data Dictionary\Tables\InventDim\Methods\modifiedField засандалить. Это я так, слишком красиво сделать хотел.
Старый 18.11.2011, 15:15   #10  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от EVGL Посмотреть сообщение
На самом деле, проще всего в \Data Dictionary\Tables\InventDim\Methods\modifiedField засандалить. Это я так, слишком красиво сделать хотел.
Нее, это на первый взгляд самый простой способ, но как там проверить активна ли аналитика в группе аналитик номенклатуры, и надо ли её вообще заполнять?

Конечно можно что нибудь придумать, ну уж лучше сделать красиво!
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 18.11.2011, 15:21   #11  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Цитата:
Сообщение от lev Посмотреть сообщение
Повезло Вам
у меня видимо будет более сложная дорога...
Нам пришлось делать доработки, чтобы не было проводок через транзитный счет, в переносе остается только одна проводка ГК, которая генерится для расходной складской проводки. Это касалось у нас только журналов переносов, в заказах на перемещения слава Богу не пришлось делать.

Если интересно, могу сказать что нужно модифицировать.

Последний раз редактировалось Bega; 18.11.2011 в 15:35.
Старый 18.11.2011, 15:35   #12  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Bega Посмотреть сообщение
Нам пришлось делать доработки, чтобы не было проводок через транзитный счет, в переносе остается только одна проводка ГК, которая генерится для расходной складской проводки. Это касалось у нас только журналов переносов, в заказах на перемещения слава Богу не пришлось делать.
О! Скорее всего мне это и предстоит! Сильно много убили времени на модификации?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 18.11.2011, 16:23   #13  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Bega Посмотреть сообщение
Если интересно, могу сказать что нужно модифицировать.
Было бы интересно!
Заранее спасибо!
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 18.11.2011, 16:37   #14  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
Цитата:
Сообщение от Bega Посмотреть сообщение
Нам пришлось делать доработки, чтобы не было проводок через транзитный счет, в переносе остается только одна проводка ГК, которая генерится для расходной складской проводки. Это касалось у нас только журналов переносов, в заказах на перемещения слава Богу не пришлось делать.

Если интересно, могу сказать что нужно модифицировать.
А еще проводки через транзитный счет есть в отложенном переходе прав собственности. Там складских проводок аж три штуки, вот где есть место для творчества.

На вскидку, модифицируется семейство классов InventMovement.

Хотя я бы сто раз подумал, стоит ли переписывать складскую разноску, только для того чтобы получить правильную корреспонденцию в ГК. К тому же при неаккуратном изменении можно еще поиметь проблемы с коррекциями при закрытии склада.
__________________
Dynamics AX Experience
Старый 18.11.2011, 17:00   #15  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Bega Посмотреть сообщение
Нам пришлось делать доработки, чтобы не было проводок через транзитный счет, в переносе остается только одна проводка ГК, которая генерится для расходной складской проводки. Это касалось у нас только журналов переносов, в заказах на перемещения слава Богу не пришлось делать.

Если интересно, могу сказать что нужно модифицировать.
немного уточню, на вскидку понятно что и где придется допиливать, хочется узнать были ли какие либо подводные камни, и на что особо обратить внимание!
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 18.11.2011, 17:06   #16  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Цитата:
Сообщение от lev Посмотреть сообщение
немного уточню, на вскидку понятно что и где придется допиливать, хочется узнать были ли какие либо подводные камни, и на что особо обратить внимание!
Цитата:
Сообщение от lev Посмотреть сообщение
О! Скорее всего мне это и предстоит! Сильно много убили времени на модификации?
1. В классе InventMov_Jour_TransferReceipt метод mustBeBookedFinancially() должен возвращать false.
2. В классе InventMov_Jour_Transfer создать метод, возвращающий расход это или приход с учетом сторно:
X++:
private boolean isIssue(boolean _checkStorno = true)
{
    boolean issue = (this.transQty() <= 0);
    ;
    if (_checkStorno&&inventJournalTrans.Storno_RU)
    {
        issue = !issue;
    }

    return issue;
}
3. В классе InventMov_Jour_Transfer изменить метод accountOperations():
X++:
LedgerAccount accountOperations()
{
    if (! cacheAccountOperations)
    {
        if (this.isIssue())
            cacheAccountOperations = InventPosting::item(InventAccountType::InventReceipt,this.itemId(),this.inventTable().ItemGroupId, this.inventDim());
        else
            cacheAccountOperations = InventPosting::item(this.assetId() ? InventAccountType::InventIssueFixedAsset : InventAccountType::InventIssue,
                                                            this.itemId(), this.inventTable().ItemGroupId, this.inventDim()) ;
    }

    return cacheAccountOperations;
}
4. В классе InventMov_Jour_Transfer изменить метод postingOperations():
X++:
LedgerPostingType postingOperations()
{
    if (this.isIssue())
        return LedgerPostingType::InventReceipt;
    else
        return (this.assetId()) ?   LedgerPostingType::InventIssueFixedAsset :
                                    LedgerPostingType::InventIssue;
}
За это сообщение автора поблагодарили: EVGL (10), CDR (3), Pustik (3), lev (10), gl00mie (3), S.Kuskov (10), Kabardian (5).
Старый 18.11.2011, 18:03   #17  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
В дополнение к методу mustBeBookedFinancially() стоит также по аналогии перекрыть методы mustBeBookedBalanceSheet() и mustBeBookedOperations(), что бы в InventTransPosting не проставлялись левые счета/разноска.

А вы тестировали эти модификации на предмет коррекций при закрытии склада?
__________________
Dynamics AX Experience
За это сообщение автора поблагодарили: gene (2).
Старый 19.11.2011, 11:03   #18  
gene is offline
gene
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
76 / 93 (4) ++++
Регистрация: 21.07.2006
Адрес: Москва
Цитата:
Сообщение от Bega Посмотреть сообщение
1. В классе InventMov_Jour_TransferReceipt метод mustBeBookedFinancially() должен возвращать false.
<и т.д.>
Два вопроса:
1. Вы тестировали это совместно с профилями учета? Есть подозрение, что могут быть проблемы в случае, если в переносе меняется профиль учета и, соответственно, номенклатурный счет.
2. Вы тестировали это с закрытием склада, если при закрытии меняется себестоимость расходной проводки по переносу? Что будет с коррекцией прихода?
Старый 19.11.2011, 23:42   #19  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Цитата:
Сообщение от gene Посмотреть сообщение
Два вопроса:
1. Вы тестировали это совместно с профилями учета? Есть подозрение, что могут быть проблемы в случае, если в переносе меняется профиль учета и, соответственно, номенклатурный счет.
2. Вы тестировали это с закрытием склада, если при закрытии меняется себестоимость расходной проводки по переносу? Что будет с коррекцией прихода?
С этими модификациями мы живем с начала 2010 года. Склад закрываем каждый месяц. У нас активно используются профили учета для НЗП, есть переносы со сменой профиля учета. Особых проблем не замечено - копейки отваливаются из-за округлений, это как всегда. Если бы был транзитный счет, копейки были бы на нем, а у нас - на 20-ке, 10-ках и т.п. Но это мелочи. Те модификации, которые перечислил, я собрал из большого проекта, надеюсь ничего не забыл.

Последний раз редактировалось Bega; 19.11.2011 в 23:50.
За это сообщение автора поблагодарили: gene (2).
Старый 19.11.2011, 23:56   #20  
gene is offline
gene
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
76 / 93 (4) ++++
Регистрация: 21.07.2006
Адрес: Москва
Цитата:
Сообщение от Bega Посмотреть сообщение
С этими модификациями мы живем с начала 2010 года. Склад закрываем каждый месяц. У нас активно используются профили учета для НЗП, есть переносы со сменой профиля учета. Особых проблем не замечено - копейки отваливаются из-за округлений, это как всегда. Если бы был транзитный счет, копейки были бы на нем, а у нас - на 20-ке, 10-ках и т.п. Но это мелочи. Те модификации, которые перечислил, я собрал из большого проекта, надеюсь ничего не забыл.
Спасибо за информацию, интересно, попробую поиграть с вашим кодом.
Теги
ax2009, профиль учета

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Бухгалтерские проводки по отборочной накладной PMS DAX: Функционал 12 24.04.2012 13:45
axinthefield: Choosing a Single Deployment or Multiple Deployments of AX2009 Blog bot DAX Blogs 0 15.06.2011 03:25
Ax2009 Workflow. Действия -> Просмотр журнала Poleax DAX: Программирование 2 25.05.2011 12:23
emeadaxsupport: Running AX2009 batches with a recurrence of 1 minute Blog bot DAX Blogs 0 14.04.2011 18:11
Профили выполнения проводки George V. Tavrizoff DAX: Функционал 8 07.09.2004 16:56
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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