Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Универсальный запрос вставил примитивный запрос но не выдает ничего, в чем я лох

Универсальный запрос вставил примитивный запрос но не выдает ничего, в чем я лох
Я
   skt-roman
 
16.09.21 - 20:01
Универсальный запрос вставил примитивный запрос но не выдает ничего, в чем я лох

Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт
    
    // Дополнительные параметры, переданные из отчета, вызвавшего расшифровку.
    // Информация, передаваемая в переменной ДополнительныеПараметры, может быть использована
    // для реализации специфичных для данного отчета параметрических настроек.
    
    
    
    // Настройка общих параметров универсального отчета
    УправлениеОтчетами.ВосстановитьРеквизитыОтчета(ЭтотОбъект, ДополнительныеПараметры);
    
    // Содержит название отчета, которое будет выводиться в шапке.
    // Тип: Строка.
    // Пример:
    // УниверсальныйОтчет.мНазваниеОтчета = "Название отчета";
    УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним);
    
    // Содержит признак необходимости отображения надписи и поля выбора раздела учета в форме настройки.
    // Тип: Булево.
    // Значение по умолчанию: Истина.
    // Пример:
    // УниверсальныйОтчет.мВыбиратьИмяРегистра = Истина;
    УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь;
    
    // Содержит имя регистра, по метаданным которого будет выполняться заполнение настроек отчета.
    // Тип: Строка.
    // Пример:
    // УниверсальныйОтчет.ИмяРегистра = "ТоварыНаСкладах";
    
    // Содержит значение используемого режима ввода периода.
    // Тип: Число.
    // Возможные значения: 0 - произвольный период, 1 - на дату, 2 - неделя, 3 - декада, 4 - месяц, 5 - квартал, 6 - полугодие, 7 - год
    // Значение по умолчанию: 0
    // Пример:
    // УниверсальныйОтчет.мРежимВводаПериода = 0;
    
//УниверсальныйОтчет.мРежимВводаПериода = 0;


    // Содержит признак необходимости вывода отрицательных значений показателей красным цветом.
    // Тип: Булево.
    // Значение по умолчанию: Ложь.
    // Пример:
    // УниверсальныйОтчет.ОтрицательноеКрасным = Истина;
    
//УниверсальныйОтчет.ОтрицательноеКрасным = ЛОЖЬ;
    
    // Содержит признак необходимости вывода в отчет общих итогов.
    // Тип: Булево.
    // Значение по умолчанию: Ложь.
    // Пример:
    // УниверсальныйОтчет.ВыводитьОбщиеИтоги = Ложь;
    
//УниверсальныйОтчет.ВыводитьОбщиеИтоги = ЛОЖЬ;
    
    // Содержит признак необходимости вывода детальных записей в отчет.
    // Тип: Булево.
    // Значение по умолчанию: Ложь.
    // Пример:
    // УниверсальныйОтчет.ВыводитьДетальныеЗаписи = Истина;
    
//УниверсальныйОтчет.ВыводитьДетальныеЗаписи = ЛОЖЬ;
    
    // Содержит признак необходимости отображения флага использования свойств и категорий в форме настройки.
    // Тип: Булево.
    // Значение по умолчанию: Истина.
    // Пример:
    // УниверсальныйОтчет.мВыбиратьИспользованиеСвойств = Ложь;
    
//УниверсальныйОтчет.мВыбиратьИспользованиеСвойств = ЛОЖЬ;

    // Содержит признак использования свойств и категорий при заполнении настроек отчета.
    // Тип: Булево.
    // Значение по умолчанию: Истина.
    // Пример:
    // УниверсальныйОтчет.ИспользоватьСвойстваИКатегории = Истина;
    
//УниверсальныйОтчет.ИспользоватьСвойстваИКатегории = ЛОЖЬ;

    
    // Содержит признак использования простой формы настроек отчета без группировок колонок.
    // Тип: Булево.
    // Значение по умолчанию: Ложь.
    // Пример:
    // УниверсальныйОтчет.мРежимФормыНастройкиБезГруппировокКолонок = Истина;
    
//УниверсальныйОтчет.мРежимФормыНастройкиБезГруппировокКолонок = ЛОЖЬ;
    
    
    
    ТекстЗапроса = " ВЫБРАТЬ
|    ЗаказПокупателя.Ссылка КАК Заказ
|
|
|ИЗ
|    Документ.ЗаказПокупателя КАК ЗаказПокупателя
|    ЛЕВОЕ СОЕДИНЕНИЕ  Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|    ПО ЗаказПокупателя.ССылка = РеализацияТоваровУслуг.Сделка
|ГДЕ
|    ЗаказПокупателя.Проведен
|    И РеализацияТоваровУслуг.Ссылка ЕСТЬ NULL
|    //и ЗаказПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода ";
    
        
    // Инициализация текста запроса построителя отчета
    УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;

    // Необходимо вызывать для каждого поля запроса.
    // УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить(<ИмяПоля>, <ПредставлениеПоля>);
    //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Подразделение",            "Подразделение");
    //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("НоменклатурнаяГруппа",     "Номенклатурная группа");
    
           УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Заказ","Заказ покупателя");

    
    // Добавление показателей
    // Необходимо вызывать для каждого добавляемого показателя.
    // УниверсальныйОтчет.ДобавитьПоказатель(<ИмяПоказателя>, <ПредставлениеПоказателя>, <ВключенПоУмолчанию>, <Формат>, <ИмяГруппы>, <ПредставлениеГруппы>);
    
    // Добавление предопределенных группировок строк отчета.
    // Необходимо вызывать для каждой добавляемой группировки строки.
    // УниверсальныйОтчет.ДобавитьИзмерениеСтроки(<ПутьКДанным>);
    //УниверсальныйОтчет.ДобавитьИзмерениеСтроки("ЗаказПокупателя");
    
    
    // Добавление предопределенных группировок колонок отчета.
    // Необходимо вызывать для каждой добавляемой группировки колонки.
    // УниверсальныйОтчет.ДобавитьИзмерениеКолонки(<ПутьКДанным>);
    
    
    // Добавление предопределенных отборов отчета.
    // Необходимо вызывать для каждого добавляемого отбора.
    // УниверсальныйОтчет.ДобавитьОтбор(<ПутьКДанным>);
        

    // Добавление настроек сортировки отчета.
    // Необходимо вызывать для каждого поля порядка.
    //ДобавитьПорядок(ПутьКДанным, Знач Направление = Неопределено);
        


    // Установка связи подчиненных и родительских полей
    // УниверсальныйОтчет.УстановитьСвязьПолей(<ПутьКДанным>, <ПутьКДанным>);
    
    // Установка связи полей и измерений
    // УниверсальныйОтчет.УстановитьСвязьПоляИИзмерения(<ИмяПоля>, <ИмяИзмерения>);


    // Установка представлений полей
    УниверсальныйОтчет.УстановитьПредставленияПолей(УниверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета);
    
    // Установка типов значений свойств в отборах отчета
    УниверсальныйОтчет.УстановитьТипыЗначенийСвойствДляОтбора();
    
    // Заполнение начальных настроек универсального отчета
    УниверсальныйОтчет.УстановитьНачальныеНастройки(Ложь);
    
    // Добавление дополнительных полей
    // Необходимо вызывать для каждого добавляемого дополнительного поля.
    //УниверсальныйОтчет.ДобавитьДополнительноеПоле("НомерЗадания", ТипРазмещенияРеквизитовИзмерений.Отдельно, 3);
    
           УниверсальныйОтчет.ДобавитьДополнительноеПоле("ЗаказПокупателя", ТипРазмещенияРеквизитовИзмерений.Отдельно, 3);    


КонецПроцедуры // УстановитьНачальныеНастройки()
   youalex
 
1 - 16.09.21 - 20:13
Можно в отладке посмотреть, какой запрос в итоге формирует Построитель:

ПостроительОтчета (ReportBuilder)
ПолучитьЗапрос (GetQuery)
Синтаксис:
ПолучитьЗапрос()
Возвращаемое значение:
Тип: Запрос.
   1Сергей
 
2 - 16.09.21 - 20:13
Необходимо отобрать все проведенные заказы, которые не указаны ни в одной РТУ?
   lubitelxml
 
3 - 16.09.21 - 20:16
(2) если было ВНУТРЕННЕЕ СОЕДИНЕНИЕ, то да, а тут ЛЕВОЕ... непонятно зачем
   hhhh
 
4 - 16.09.21 - 20:18
может у него во всех рту заказ указан.
   skt-roman
 
5 - 16.09.21 - 20:50
Господа через консоль запросов все работает, а через универсальный отчет нуль
   skt-roman
 
6 - 16.09.21 - 20:51
Каких параметров не хватает не пойму
   skt-roman
 
7 - 16.09.21 - 20:55
Запрос примитивный
   Ёпрст
 
8 - 16.09.21 - 21:38
(0)  УниверсальныйОтчет.ДобавитьДополнительноеПоле("ЗаказПокупателя"

нет такого поля
   skt-roman
 
9 - 16.09.21 - 21:56
(8)
Отлично ну поменял
УниверсальныйОтчет.ДобавитьДополнительноеПоле("Заказ", ТипРазмещенияРеквизитовИзмерений.Отдельно, 3);    

но толку никакого
   Ёпрст
 
10 - 16.09.21 - 22:25
(9) отладчиком проверить, какой текст запроса у построителя
   Ёпрст
 
11 - 16.09.21 - 22:29
ну и так еще, до кучи:

ТекстЗапроса = " ВЫБРАТЬ
|    ЗаказПокупателя.Ссылка КАК Заказ
|{ Выбрать Заказ.*}
   skt-roman
 
12 - 16.09.21 - 22:32
(10) запрос простейший, в консоли все окей, а в универсальном нет, текст запроса там что меняется?
   Ёпрст
 
13 - 16.09.21 - 22:44
(12) если не установлены поля, то да..
   skt-roman
 
14 - 17.09.21 - 11:07
Так и не понял что именно поправить
   VladZ
 
15 - 17.09.21 - 11:11
(0) Сделай на СКД и забей на УниверсальныйОтчет
   1Сергей
 
16 - 17.09.21 - 11:11
(3) Еслу у него в ГДЕ прописано условие ко второй таблице, то похер, левое там или правое - превратиться во внутреннее
   hhhh
 
17 - 17.09.21 - 11:11
(14) наверно, как в скд. Описать список группировок, список выбранных полей и так далее.
   successful
 
18 - 17.09.21 - 11:29
в запросе не указал поля,условия и прочие инструкции для построителя...
   Ёпрст
 
19 - 17.09.21 - 11:38
(14) как в (11) для начала.
Аналогично для условий, сортировок и т.д.
   youalex
 
20 - 17.09.21 - 11:38
(14) посмотри (1) перед ПостроительОтчета.Выполнить()
Можешь там же сразу рассчитать ПостроительОтчета.ПолучитьЗапрос().Выполнить().Пустой()
Если пустой - кури текст запроса и параметры в ПостроительОтчета.ПолучитьЗапрос()
А так можно до бесконечности гадать.
   skt-roman
 
21 - 17.09.21 - 12:02
(18) Запрос примитивный, что там еще нужно добавить?
   Ёпрст
 
22 - 17.09.21 - 12:04
(21) см (11)
   skt-roman
 
23 - 17.09.21 - 12:04
(19)
Добавление
|{ Выбрать Заказ.*}
Не дает результата
   Ёпрст
 
24 - 17.09.21 - 12:05
в отладчике, перед выполнить() какой текст запроса имеет построитель ? С каими параметрами ?
   skt-roman
 
25 - 17.09.21 - 12:08
(24) Как посмотреть?
   skt-roman
 
26 - 17.09.21 - 12:12
Вылетает по 
Функция ВыводВозможен()
    
    Результат = Истина;
    
    Если ПостроительОтчета.ИзмеренияСтроки.Количество() = 0 И ПостроительОтчета.ИзмеренияКолонки.Количество() = 0 И ПостроительОтчета.ВыбранныеПоля.Количество() = 0 Тогда
        
        Результат = Ложь;
        
    КонецЕсли;
    
    Возврат Результат;
   successful
 
27 - 17.09.21 - 12:18
ВЫБРАТЬ
    ЗаказПокупателя.Ссылка КАК Заказ
{ВЫБРАТЬ
    Заказ.*}
ИЗ
    Документ.ЗаказПокупателя КАК ЗаказПокупателя
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        ПО ЗаказПокупателя.Ссылка = РеализацияТоваровУслуг.Сделка
ГДЕ
    ЗаказПокупателя.Проведен
    И РеализацияТоваровУслуг.Ссылка ЕСТЬ NULL
{ГДЕ
    ЗаказПокупателя.Ссылка.*}
{УПОРЯДОЧИТЬ ПО
    Заказ.*}
ИТОГИ ПО
    ОБЩИЕ
{ИТОГИ ПО
    Заказ.*}
   skt-roman
 
28 - 17.09.21 - 12:18
В построителе запрос

ВЫБРАТЬ
    ЗаказПокупателя.Ссылка КАК Заказ
ИЗ
    Документ.ЗаказПокупателя КАК ЗаказПокупателя
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        ПО ЗаказПокупателя.Ссылка = РеализацияТоваровУслуг.Сделка
ГДЕ
    ЗаказПокупателя.Проведен
    И РеализацияТоваровУслуг.Ссылка ЕСТЬ NULL
   вым
 
29 - 17.09.21 - 12:20
РеализацияТоваровУслуг.Ссылка ЕСТЬ NULL

сюда копай
   skt-roman
 
30 - 17.09.21 - 12:23
(29) В консоли все работает, в универсальном отчете нет
 
 
   skt-roman
 
31 - 17.09.21 - 12:25
(27) Дохлый бобик, не работает, попробовал
   вым
 
32 - 17.09.21 - 12:27
(30) тебе интересно почему там работает, а там нет или же тебе надо чтобы просто работало? ... думаем))
   successful
 
33 - 17.09.21 - 12:28
ВСЕ РАБОТАЕТ!!!

// Процедура установки начальных настроек отчета с использованием текста запроса

//
Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт
    
    // Настройка общих параметров универсального отчета

    
    // Содержит название отчета, которое будет выводиться в шапке.

    // Тип: Строка.

    // Пример:

    // УниверсальныйОтчет.мНазваниеОтчета = "Название отчета";

    УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним);
    
    // Содержит признак необходимости отображения надписи и поля выбора раздела учета в форме настройки.

    // Тип: Булево.

    // Значение по умолчанию: Истина.

    // Пример:

    // УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь;

    УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь;
    
    // Содержит имя регистра, по метаданным которого будет выполняться заполнение настроек отчета.

    // Тип: Строка.

    // Пример:

    // УниверсальныйОтчет.ИмяРегистра = "ТоварыНаСкладах";

    
    // Содержит признак необходимости вывода отрицательных значений показателей красным цветом.

    // Тип: Булево.

    // Значение по умолчанию: Ложь.

    // Пример:

    // УниверсальныйОтчет.ОтрицательноеКрасным = Истина;

    
    // Содержит признак необходимости вывода в отчет общих итогов.

    // Тип: Булево.

    // Значение по умолчанию: Истина.

    // Пример:

    // УниверсальныйОтчет.ВыводитьОбщиеИтоги = Ложь;

    
    // Содержит признак необходимости вывода детальных записей в отчет.

    // Тип: Булево.

    // Значение по умолчанию: Ложь.

    // Пример:

    // УниверсальныйОтчет.ВыводитьДетальныеЗаписи = Истина;

    
    // Содержит признак необходимости отображения флага использования свойств и категорий в форме настройки.

    // Тип: Булево.

    // Значение по умолчанию: Истина.

    // Пример:

    // УниверсальныйОтчет.мВыбиратьИспользованиеСвойств = Ложь;

    //УниверсальныйОтчет.мВыбиратьИспользованиеСвойств = Истина;

    
    // Содержит признак использования свойств и категорий при заполнении настроек отчета.

    // Тип: Булево.

    // Значение по умолчанию: Ложь.

    // Пример:

    // УниверсальныйОтчет.ИспользоватьСвойстваИКатегории = Истина;

    
    // Содержит признак использования простой формы настроек отчета без группировок колонок.

    // Тип: Булево.

    // Значение по умолчанию: Ложь.

    // Пример:

    // УниверсальныйОтчет.мРежимФормыНастройкиБезГруппировокКолонок = Истина;

    
    // Дополнительные параметры, переданные из отчета, вызвавшего расшифровку.

    // Информация, передаваемая в переменной ДополнительныеПараметры, может быть использована

    // для реализации специфичных для данного отчета параметрических настроек.

    
    // Описание исходного текста запроса.

    ТекстЗапроса = 
    "ВЫБРАТЬ
    |    ЗаказПокупателя.Ссылка КАК Заказ
    |{ВЫБРАТЬ
    |    Заказ.*}
    |ИЗ
    |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |        ПО ЗаказПокупателя.Ссылка = РеализацияТоваровУслуг.Сделка
    |ГДЕ
    |    ЗаказПокупателя.Проведен
    |    И РеализацияТоваровУслуг.Ссылка ЕСТЬ NULL
    |{ГДЕ
    |    ЗаказПокупателя.Ссылка.*}
    |{УПОРЯДОЧИТЬ ПО
    |    Заказ.*}
    |ИТОГИ ПО
    |    ОБЩИЕ
    |{ИТОГИ ПО
    |    Заказ.*}";

    // В универсальном отчете включен флаг использования свойств и категорий.

    Если УниверсальныйОтчет.ИспользоватьСвойстваИКатегории Тогда
        
        // Добавление свойств и категорий поля запроса в таблицу полей.

        // Необходимо вызывать для каждого поля запроса, предоставляющего возможность использования свойств и категорий.

        // УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля(<ПсевдонимТаблицы>.<Поле> , <ПсевдонимПоля>, <Представление>, <Назначение>);

        
         
        // Добавление свойств и категорий в исходный текст запроса.

        УниверсальныйОтчет.ДобавитьВТекстЗапросаСвойстваИКатегории(ТекстЗапроса);
        
    КонецЕсли;
        
    // Инициализация текста запроса построителя отчета

    УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;
    
    // Представления полей отчета.

    // Необходимо вызывать для каждого поля запроса.

    // УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить(<ИмяПоля>, <ПредставлениеПоля>);

//    УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Номенклатура", "Номенклатура");
    // Добавление показателей

    // УниверсальныйОтчет.ДобавитьПоказатель(<ИмяПоказателя>, <ПредставлениеПоказателя>, <ВключенПоУмолчанию>, <Формат>, <ИмяГруппы>, <ПредставлениеГруппы>);


    // Добавление предопределенных группировок строк отчета.

    // Необходимо вызывать для каждой добавляемой группировки строки.

    // УниверсальныйОтчет.ДобавитьИзмерениеСтроки(<ПутьКДанным>);

//    УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Номенклатура");
    
    // Добавление предопределенных группировок колонок отчета.

    // Необходимо вызывать для каждой добавляемой группировки колонки.

    // УниверсальныйОтчет.ДобавитьИзмерениеКолонки(<ПутьКДанным>);

    
    // Добавление предопределенных отборов отчета.

    // Необходимо вызывать для каждого добавляемого отбора.

    // УниверсальныйОтчет.ДобавитьОтбор(<ПутьКДанным>);

    
    // Добавление предопределенных полей порядка отчета.

    // Необходимо вызывать для каждого добавляемого поля порядка.

    // УниверсальныйОтчет.ДобавитьПорядок(<ПутьКДанным>);

    
    // Установка связи подчиненных и родительских полей

    // УниверсальныйОтчет.УстановитьСвязьПолей(<ПутьКДанным>, <ПутьКДаннымРодитель>);

    
    // Установка связи полей и измерений

    // УниверсальныйОтчет.УстановитьСвязьПоляИИзмерения(<ИмяПоля>, <ИмяИзмерения>);

    
    // Установка представлений полей

    УниверсальныйОтчет.УстановитьПредставленияПолей(УниверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета);
    
    // Установка типов значений свойств в отборах отчета

    УниверсальныйОтчет.УстановитьТипыЗначенийСвойствДляОтбора();
    
    // Заполнение начальных настроек универсального отчета

    УниверсальныйОтчет.УстановитьНачальныеНастройки(Ложь);
    
    // Добавление дополнительных полей

    // Необходимо вызывать для каждого добавляемого дополнительного поля.

    // УниверсальныйОтчет.ДобавитьДополнительноеПоле(<ПутьКДанным>, <Размещение>, <Положение>);

    
КонецПроцедуры// УстановитьНачальныеНастройки()
   skt-roman
 
34 - 17.09.21 - 12:33
(33) вставил целиком эту процедуру, но не работает
   skt-roman
 
35 - 17.09.21 - 12:35
мой простенький запрос в консоли работает, а вот в универсальном отчете нет, чего не хватает?
   Gucci76
 
36 - 17.09.21 - 12:40
Я в ЗУП не так работаю с универсальным отчетом - я в толстом клиенте через ЕЩЕ открываю схему отчета.
   successful
 
37 - 17.09.21 - 12:42
а ты в отчете  в режиме  предприятия добавил заказ в группировке строк
   skt-roman
 
38 - 17.09.21 - 12:49
(37) Добавил
УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Заказ");

Помогло
   серый КТУЛХУ
 
39 - 17.09.21 - 13:02
Перенечи условие на null связанной таблицы из фильтра выборки в условие связи:
    |ИЗ
    |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |        ПО ЗаказПокупателя.Ссылка = РеализацияТоваровУслуг.Сделка
    |        И РеализацияТоваровУслуг.Ссылка ЕСТЬ NULL
    |ГДЕ
    |    ЗаказПокупателя.Проведен
   hhhh
 
40 - 17.09.21 - 13:42
(39) нет, там всё правильно, именно эту строчку нужно в ГДЕ.
   skt-roman
 
41 - 17.09.21 - 17:21
(37) строки в запросе {} все создаются вручную?
   Kassern
 
42 - 17.09.21 - 17:22
(41) речь про характеристики? Если так, то в конструкторе можно добавить
   Kassern
 
43 - 17.09.21 - 17:26
(42) так же параметры виртуальной таблицы на вкладке компоновки данных так же {} проставляет. Можно и в основных параметрах вручную в скобки заключить, тогда автоматом перейдет в вкладку компоновки.
   DrShad
 
44 - 18.09.21 - 09:38
делай отчет на СКД и не парь себе и людям мозг


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.