Имя: Пароль:
1C
1С v8
Тормозит работа с ТЧ заказа
,
0 Dirk Diggler
 
27.12.11
10:12
Сабж, сегодня заметил - при введении новой строки заметная пауза. УПП, база(файловая) пока оч. скромных размеров - 2 ГБ, одновременно работают 5 пользователей, из них в заказах ковыряется только 2. Сервер - IBM System x3850, так что железа с запасом.
Замер производительности показывает, что тормозит ЗапросПоСкидкам. Тормоза оч. заметны, это не норма. Как ускорить?
1 qwerty072
 
27.12.11
10:15
покажи какой запрос по скидкам!видимо его надо автоматизировать
2 Dirk Diggler
 
27.12.11
10:16
это из общего модуля ОбработкаТабличныхЧастей типовой УПП:

   Запрос = Новый Запрос("
       |ВЫБРАТЬ РАЗРЕШЕННЫЕ
       |    РегПороги.ЗначениеПорога КАК ЗначениеПорога
       |ИЗ
       |    (ВЫБРАТЬ
       |        ЕСТЬNULL(СУММА(РегПродажи.СуммаОборот), 0) КАК СуммаОборот
       |    ИЗ
       |        РегистрНакопления.ПродажиПоДисконтнымКартам.Обороты(&ДатаНач, &ДатаКон, ,
       |           ДисконтнаяКарта = &ДисконтнаяКарта) КАК РегПродажи
       |    ) КАК РегПродажи
       |ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       |    (ВЫБРАТЬ
       |        Пороги.НижняяГраница,
       |        Пороги.ЗначениеПорога
       |    ИЗ
       |        РегистрСведений.ПорогиНакопительныхСкидок.СрезПоследних(&ДатаКон) КАК Пороги
       |    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       |        (ВЫБРАТЬ
       |            МАКСИМУМ(ПорогиМакс.Период) КАК Период
       |        ИЗ
       |            РегистрСведений.ПорогиНакопительныхСкидок.СрезПоследних(&ДатаКон) КАК ПорогиМакс
       |    ) КАК ПорогиМакс
       |    ПО
       |        Пороги.Период = ПорогиМакс.Период
       |) КАК РегПороги
       |ПО
       |    РегПороги.НижняяГраница <= РегПродажи.СуммаОборот
       |ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       |    (ВЫБРАТЬ
       |        МАКСИМУМ(РегПороги.НижняяГраница) КАК НижняяГраница
       |    ИЗ
       |        (ВЫБРАТЬ
       |            ЕСТЬNULL(СУММА(РегПродажи.СуммаОборот), 0) КАК СуммаОборот
       |        ИЗ
       |            РегистрНакопления.ПродажиПоДисконтнымКартам.Обороты(&ДатаНач, &ДатаКон, ,
       |               ДисконтнаяКарта = &ДисконтнаяКарта) КАК РегПродажи
       |        ) КАК РегПродажи
       |    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       |        (ВЫБРАТЬ
       |            Пороги.НижняяГраница
       |        ИЗ
       |            РегистрСведений.ПорогиНакопительныхСкидок.СрезПоследних(&ДатаКон) КАК Пороги
       |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       |            (ВЫБРАТЬ
       |                МАКСИМУМ(ПорогиМакс.Период) КАК Период
       |            ИЗ
       |                РегистрСведений.ПорогиНакопительныхСкидок.СрезПоследних(&ДатаКон) КАК ПорогиМакс
       |            ) КАК ПорогиМакс
       |        ПО
       |            Пороги.Период = ПорогиМакс.Период
       |        ) КАК РегПороги
       |    ПО
       |        РегПороги.НижняяГраница <= РегПродажи.СуммаОборот
       |    ) КАК РегПорогиМакс
       |ПО
       |    РегПорогиМакс.НижняяГраница = РегПороги.НижняяГраница
       |");

       Запрос.УстановитьПараметр("ДатаНач", ПериодНакопления.ДатаНач);
       Запрос.УстановитьПараметр("ДатаКон", ПериодНакопления.ДатаКон);
       Запрос.УстановитьПараметр("ДисконтнаяКарта", ДисконтнаяКарта);

       Выборка = Запрос.Выполнить().Выбрать();
       Если Выборка.Следующий() Тогда
           ПроцентНакопительнойСкидки = Выборка.ЗначениеПорога;
       Иначе
           ПроцентНакопительнойСкидки = 0;
       КонецЕсли;
   КонецЕсли;

   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("Дата"                     , ДатаСкидок);
   Запрос.УстановитьПараметр("МассивНоменклатуры"       , МассивНоменклатуры);
   Запрос.УстановитьПараметр("МассивХарактеристик"      , МассивХарактеристик);
   Запрос.УстановитьПараметр("МассивКачество"           , МассивКачество);
   Запрос.УстановитьПараметр("МассивПолучателей"        , МассивПолучателей);
   Запрос.УстановитьПараметр("ДеньНедели"               , Перечисления.ДниНедели[ДеньНедели(ДатаСкидок) - 1]);
   Запрос.УстановитьПараметр("ТекущееВремя"             , Дата(1, 1, 1, Час(ДатаСкидок), Минута(ДатаСкидок), Секунда(ДатаСкидок)));
   Запрос.УстановитьПараметр("КурсКратность"            , КурсКратность);
   Запрос.УстановитьПараметр("Сумма"                    , СуммаДокумента);
   Запрос.УстановитьПараметр("ВидОплаты"                , ВидОплаты);
   Запрос.УстановитьПараметр("ДисконтнаяКарта"          , ДисконтнаяКарта);
   Запрос.УстановитьПараметр("ВидДисконтнойКарты"       , ДисконтнаяКарта.ВидДисконтнойКарты);

   Если ЭтоНакопительнаяСкидка Тогда
       Запрос.УстановитьПараметр("ПроцентНакопительнойСкидки" , ПроцентНакопительнойСкидки);
   КонецЕсли;

   ТекстЗапроса = "
   |    ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    СпрНоменклатура.Номенклатура КАК Номенклатура,
   |    СпрНоменклатура.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |    СпрКачество.Ссылка КАК Качество,
   |    РегСкидкиНоменклатуры.Условие КАК НУсловие,
   |    РегСкидкиНоменклатуры.ЗначениеУсловия КАК НЗначениеУсловия,
   |    РегСкидкиНоменклатуры.ОграничениеСкидкиНаценки КАК НОграничениеСкидкиНаценки,
   |    " + ?(ЭтоНакопительнаяСкидка, "ВЫБОР КОГДА РегСкидкиНоменклатуры.ПроцентСкидкиНаценки ЕСТЬ НЕ NULL
   |    И (РегСкидкиНоменклатуры.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоДисконтнойКарте)
   |    ИЛИ РегСкидкиНоменклатуры.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоВидуДисконтныхКарт)) ТОГДА &ПроцентНакопительнойСкидки ИНАЧЕ РегСкидкиНоменклатуры.ПроцентСкидкиНаценки КОНЕЦ", "РегСкидкиНоменклатуры.ПроцентСкидкиНаценки") + " КАК НПроцентСкидкиНаценки,
   |    РегСкидкиПоЦеновымГруппам.Условие КАК ЦУсловие,
   |    РегСкидкиПоЦеновымГруппам.ЗначениеУсловия КАК ЦЗначениеУсловия,
   |    РегСкидкиПоЦеновымГруппам.ОграничениеСкидкиНаценки КАК ЦОграничениеСкидкиНаценки,
   |    " + ?(ЭтоНакопительнаяСкидка, "ВЫБОР КОГДА РегСкидкиПоЦеновымГруппам.ПроцентСкидкиНаценки ЕСТЬ НЕ NULL
   |    И (РегСкидкиПоЦеновымГруппам.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоДисконтнойКарте)
   |    ИЛИ РегСкидкиПоЦеновымГруппам.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоВидуДисконтныхКарт)) ТОГДА &ПроцентНакопительнойСкидки ИНАЧЕ РегСкидкиПоЦеновымГруппам.ПроцентСкидкиНаценки КОНЕЦ", "РегСкидкиПоЦеновымГруппам.ПроцентСкидкиНаценки") + " КАК ЦПроцентСкидкиНаценки
   |ИЗ
   |    (ВЫБРАТЬ
   |        СпрНоменклатура.Ссылка КАК Номенклатура,
   |        ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК ХарактеристикаНоменклатуры
   |    ИЗ
   |        Справочник.Номенклатура КАК СпрНоменклатура
   |    ГДЕ
   |        СпрНоменклатура.Ссылка В (&МассивНоменклатуры)
   |    ОБЪЕДИНИТЬ ВСЕ
   |    ВЫБРАТЬ
   |        СпрХарактеристики.Владелец,
   |        СпрХарактеристики.Ссылка
   |    ИЗ
   |        Справочник.ХарактеристикиНоменклатуры КАК СпрХарактеристики
   |    ГДЕ
   |        СпрХарактеристики.Ссылка В (&МассивХарактеристик)
   |    ОБЪЕДИНИТЬ ВСЕ
   |    ВЫБРАТЬ
   |        ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка),
   |        ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)
   |    ) КАК СпрНоменклатура
   |    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
   |        Справочник.Качество КАК СпрКачество
   |    ПО
   |    СпрКачество.Ссылка В (&МассивКачество)
   |ЛЕВОЕ СОЕДИНЕНИЕ
   |    (ВЫБРАТЬ
   |        РегСкидкиНоменклатуры.Номенклатура,
   |        РегСкидкиНоменклатуры.ХарактеристикаНоменклатуры,
   |        РегСкидкиНоменклатуры.Качество,
   |        РегСкидкиНоменклатуры.Условие,
   |        ВЫБОР КОГДА РегСкидкиНоменклатуры.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоСуммеДокумента) ТОГДА
   |            ВЫРАЗИТЬ(РегСкидкиНоменклатуры.ЗначениеУсловия КАК ЧИСЛО) * &КурсКратность * КурсыВалют.Курс / КурсыВалют.Кратность
   |        ИНАЧЕ
   |            РегСкидкиНоменклатуры.ЗначениеУсловия
   |        КОНЕЦ КАК ЗначениеУсловия,
   |        МАКСИМУМ(РегСкидкиНоменклатуры.ПроцентСкидкиНаценки) КАК ПроцентСкидкиНаценки,
   |        РегСкидкиНоменклатуры.ОграничениеСкидкиНаценки * &КурсКратность * КурсыВалют.Курс / КурсыВалют.Кратность КАК ОграничениеСкидкиНаценки
   |    ИЗ
   |        РегистрСведений.СкидкиНаценкиНоменклатуры.СрезПоследних(&Дата,
   |           Номенклатура В (&МассивНоменклатуры)
   |           И Качество В (&МассивКачество)
   |           И ПолучательСкидки В (&МассивПолучателей)) КАК РегСкидкиНоменклатуры
   |    ЛЕВОЕ СОЕДИНЕНИЕ
   |        РегистрСведений.ВремяДействияСкидок КАК ВремяДействия
   |    ПО
   |        РегСкидкиНоменклатуры.Регистратор = ВремяДействия.Регистратор
   |    ЛЕВОЕ СОЕДИНЕНИЕ
   |        РегистрСведений.КурсыВалют.СрезПоследних(&Дата) КАК КурсыВалют
   |    ПО
   |        РегСкидкиНоменклатуры.Валюта = КурсыВалют.Валюта
   |    ГДЕ
   |        (ВремяДействия.ДеньНедели ЕСТЬ NULL
   |           ИЛИ ВремяДействия.ДеньНедели = &ДеньНедели
   |           И &ТекущееВремя МЕЖДУ ВремяДействия.ВремяНачала И ВремяДействия.ВремяОкончания)
   |           И РегСкидкиНоменклатуры.Валюта <> ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
   //|           И РегСкидкиНоменклатуры.ПроцентСкидкиНаценки <> 0
   |           И (РегСкидкиНоменклатуры.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1) ИЛИ КОНЕЦПЕРИОДА(РегСкидкиНоменклатуры.ДатаОкончания, ДЕНЬ) >= &Дата)
   |           И (РегСкидкиНоменклатуры.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоСуммеДокумента) И ВЫРАЗИТЬ(РегСкидкиНоменклатуры.ЗначениеУсловия КАК ЧИСЛО) * &КурсКратность * КурсыВалют.Курс / КурсыВалют.Кратность < &Сумма ИЛИ РегСкидкиНоменклатуры.Условие <> ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоСуммеДокумента))
   |           И (РегСкидкиНоменклатуры.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоВидуОплаты) И РегСкидкиНоменклатуры.ЗначениеУсловия = &ВидОплаты ИЛИ РегСкидкиНоменклатуры.Условие <> ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоВидуОплаты))
   |           И (РегСкидкиНоменклатуры.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоВидуДисконтныхКарт) И РегСкидкиНоменклатуры.ЗначениеУсловия = &ВидДисконтнойКарты ИЛИ РегСкидкиНоменклатуры.Условие <> ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоВидуДисконтныхКарт))
   |           И (РегСкидкиНоменклатуры.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоДисконтнойКарте) И РегСкидкиНоменклатуры.ЗначениеУсловия = &ДисконтнаяКарта ИЛИ РегСкидкиНоменклатуры.Условие <> ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоДисконтнойКарте))
   |    СГРУППИРОВАТЬ ПО
   |        РегСкидкиНоменклатуры.Номенклатура,
   |        РегСкидкиНоменклатуры.ХарактеристикаНоменклатуры,
   |        РегСкидкиНоменклатуры.Качество,
   |        РегСкидкиНоменклатуры.Условие,
   |        ВЫБОР КОГДА РегСкидкиНоменклатуры.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоСуммеДокумента) ТОГДА
   |            ВЫРАЗИТЬ(РегСкидкиНоменклатуры.ЗначениеУсловия КАК ЧИСЛО) * &КурсКратность * КурсыВалют.Курс / КурсыВалют.Кратность
   |        ИНАЧЕ
   |            РегСкидкиНоменклатуры.ЗначениеУсловия
   |        КОНЕЦ,
   |        РегСкидкиНоменклатуры.ОграничениеСкидкиНаценки * &КурсКратность * КурсыВалют.Курс / КурсыВалют.Кратность
   |    ) КАК РегСкидкиНоменклатуры
   |ПО
   |    СпрНоменклатура.Номенклатура = РегСкидкиНоменклатуры.Номенклатура
   |       И (СпрНоменклатура.ХарактеристикаНоменклатуры = РегСкидкиНоменклатуры.ХарактеристикаНоменклатуры ИЛИ РегСкидкиНоменклатуры.ХарактеристикаНоменклатуры = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))
   |       И СпрКачество.Ссылка = РегСкидкиНоменклатуры.Качество
   |ЛЕВОЕ СОЕДИНЕНИЕ
   |    (ВЫБРАТЬ
   |        РегСкидкиПоЦеновымГруппам.ЦеноваяГруппа,
   |        РегСкидкиПоЦеновымГруппам.Качество,
   |        РегСкидкиПоЦеновымГруппам.Условие,
   |        ВЫБОР КОГДА РегСкидкиПоЦеновымГруппам.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоСуммеДокумента) ТОГДА
   |            ВЫРАЗИТЬ(РегСкидкиПоЦеновымГруппам.ЗначениеУсловия КАК ЧИСЛО) * &КурсКратность * КурсыВалют.Курс / КурсыВалют.Кратность
   |        ИНАЧЕ
   |            РегСкидкиПоЦеновымГруппам.ЗначениеУсловия
   |        КОНЕЦ КАК ЗначениеУсловия,
   |        МАКСИМУМ(РегСкидкиПоЦеновымГруппам.ПроцентСкидкиНаценки) КАК ПроцентСкидкиНаценки,
   |        РегСкидкиПоЦеновымГруппам.ОграничениеСкидкиНаценки * &КурсКратность * КурсыВалют.Курс / КурсыВалют.Кратность КАК ОграничениеСкидкиНаценки
   |    ИЗ
   |        РегистрСведений.СкидкиНаценкиПоЦеновымГруппам.СрезПоследних(&Дата, Качество В (&МассивКачество) И ПолучательСкидки В (&МассивПолучателей)) КАК РегСкидкиПоЦеновымГруппам
   |    ЛЕВОЕ СОЕДИНЕНИЕ
   |        РегистрСведений.ВремяДействияСкидок КАК ВремяДействия
   |    ПО
   |        РегСкидкиПоЦеновымГруппам.Регистратор = ВремяДействия.Регистратор
   |    ЛЕВОЕ СОЕДИНЕНИЕ
   |        РегистрСведений.КурсыВалют.СрезПоследних(&Дата) КАК КурсыВалют
   |    ПО
   |        РегСкидкиПоЦеновымГруппам.Валюта = КурсыВалют.Валюта
   |    ГДЕ
   |        (ВремяДействия.ДеньНедели ЕСТЬ NULL
   |           ИЛИ ВремяДействия.ДеньНедели = &ДеньНедели
   |           И &ТекущееВремя МЕЖДУ ВремяДействия.ВремяНачала И ВремяДействия.ВремяОкончания)
   |           И РегСкидкиПоЦеновымГруппам.Валюта <> ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
   //|           И РегСкидкиПоЦеновымГруппам.ПроцентСкидкиНаценки <> 0
   |           И(РегСкидкиПоЦеновымГруппам.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1) ИЛИ КОНЕЦПЕРИОДА(РегСкидкиПоЦеновымГруппам.ДатаОкончания, ДЕНЬ) >= &Дата)
   |           И(РегСкидкиПоЦеновымГруппам.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоСуммеДокумента) И ВЫРАЗИТЬ(РегСкидкиПоЦеновымГруппам.ЗначениеУсловия КАК ЧИСЛО) * &КурсКратность * КурсыВалют.Курс / КурсыВалют.Кратность < &Сумма ИЛИ РегСкидкиПоЦеновымГруппам.Условие <> ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоСуммеДокумента))
   |           И (РегСкидкиПоЦеновымГруппам.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоВидуОплаты) И РегСкидкиПоЦеновымГруппам.ЗначениеУсловия = &ВидОплаты ИЛИ РегСкидкиПоЦеновымГруппам.Условие <> ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоВидуОплаты))
   |           И (РегСкидкиПоЦеновымГруппам.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоВидуДисконтныхКарт) И РегСкидкиПоЦеновымГруппам.ЗначениеУсловия = &ВидДисконтнойКарты ИЛИ РегСкидкиПоЦеновымГруппам.Условие <> ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоВидуДисконтныхКарт))
   |           И (РегСкидкиПоЦеновымГруппам.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоДисконтнойКарте) И РегСкидкиПоЦеновымГруппам.ЗначениеУсловия = &ДисконтнаяКарта ИЛИ РегСкидкиПоЦеновымГруппам.Условие <> ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоДисконтнойКарте))
   |    СГРУППИРОВАТЬ ПО
   |        РегСкидкиПоЦеновымГруппам.ЦеноваяГруппа,
   |        РегСкидкиПоЦеновымГруппам.Качество,
   |        РегСкидкиПоЦеновымГруппам.Условие,
   |        ВЫБОР КОГДА РегСкидкиПоЦеновымГруппам.Условие = ЗНАЧЕНИЕ(Перечисление.УсловияСкидкиНаценки.ПоСуммеДокумента) ТОГДА
   |            ВЫРАЗИТЬ(РегСкидкиПоЦеновымГруппам.ЗначениеУсловия КАК ЧИСЛО) * &КурсКратность * КурсыВалют.Курс / КурсыВалют.Кратность
   |        ИНАЧЕ
   |            РегСкидкиПоЦеновымГруппам.ЗначениеУсловия
   |        КОНЕЦ,
   |        РегСкидкиПоЦеновымГруппам.ОграничениеСкидкиНаценки * &КурсКратность * КурсыВалют.Курс / КурсыВалют.Кратность
   |    ) КАК РегСкидкиПоЦеновымГруппам
   |ПО
   |    СпрНоменклатура.Номенклатура.ЦеноваяГруппа = РегСкидкиПоЦеновымГруппам.ЦеноваяГруппа
   |       И СпрКачество.Ссылка = РегСкидкиПоЦеновымГруппам.Качество
   |ГДЕ
   |    РегСкидкиНоменклатуры.Условие ЕСТЬ НЕ NULL
   |    ИЛИ РегСкидкиПоЦеновымГруппам.Условие ЕСТЬ НЕ NULL
   |";

   Запрос.Текст = ТекстЗапроса;

   Возврат Запрос.Выполнить().Выгрузить();
3 vmv
 
27.12.11
10:19
этот лот уходит в 2012
4 qwerty072
 
27.12.11
10:28
:)
мда...для начала убери ВЫРАЗИТЬ, это сильно притормаживает работу, округление можно делать при выводе
5 asady
 
27.12.11
10:35
(0) перепиши с использованием временных таблиц - потом можно и оптимизировать
6 Alex S D
 
27.12.11
10:36
(4) думаешь это ускорит работу?
7 Alex S D
 
27.12.11
10:36
отключи использование скидок
8 Dirk Diggler
 
27.12.11
10:41
(5) мне вообще имхается, что правильным будет вообще отключать вычисление автоскидок, если у контрагента нет ни единой активной записи в соот-щем РС, и делать это надо ПриИзмененииКонтрагента. Сейчас это делается при открытии дока, и контрагент не проверяется...
9 qwerty072
 
27.12.11
10:43
(6) конечно, во всей выборке идёт преобразование к числу и сравнивается, это лишнее!
10 Dirk Diggler
 
27.12.11
10:52
(7) думал уже ))) да вообще мне кажется нездоровым  - тормоза при работе с тч. может где физически что недотягивает?
11 qwerty072
 
27.12.11
11:22
(4) пробывал?
12 Dirk Diggler
 
27.12.11
11:43
(11) пока нет. не так сразу...
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.