Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

СрезПоследних в регистре сведений

СрезПоследних в регистре сведений
Я
   grandmaster
 
15.11.17 - 10:07
Подскажите, как работает срезпоследних. Что я делаю не так?
Возвращает целый список из регистра (ДокументыЭД). Нужно получать последнее значение по текущей дате

ВЫБРАТЬ
                       ДокументыЭДСрезПоследних.ИдентификаторЗапроса КАК ИдентификаторЗапроса,
                       ДокументыЭДСрезПоследних.Период Как Период,
                       РеализацияТоваровУслуг.Ссылка КАК Ссылка
ИЗ
                       РегистрСведений.ДокументыЭД.СрезПоследних(&ТекущаяДата, ) КАК ДокументыЭДСрезПоследних
                           ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                           ПО ДокументыЭДСрезПоследних.Документ = РеализацияТоваровУслуг.Ссылка
ГДЕ
                    РеализацияТоваровУслуг.Ссылка = ДокументыЭДСрезПоследних.Документ
 
 
   Cyberhawk
 
1 - 15.11.17 - 10:09
Чтобы получать "получать последнее значение по текущей дате", срез не подходит, т.к. ты не знаешь, с какими значениями измерений эта запись
   grandmaster
 
2 - 15.11.17 - 10:11
(1) разве нет такой функции, чтоб получать последнее значение из регистра? я думал как раз срезпоследних это оно, разве не так?
   grandmaster
 
3 - 15.11.17 - 10:12
(1) и что значит ваше
"ты не знаешь, с какими значениями измерений эта запись"
   FIXXXL
 
4 - 15.11.17 - 10:14
(2) срез последних - он по СОЧЕТАНИЯМ измерений
у тебя там сколько измерений?
   grandmaster
 
5 - 15.11.17 - 10:16
(4) что значит измерений?
количество строк? полей? я не понимаю
строк очень много
надо получать последнее по текущей дате
   lodger
 
6 - 15.11.17 - 10:16
(0) начни с того, что написать структуру регистра.
Измерения:
...
...
ресурсы:
...
...
   grandmaster
 
7 - 15.11.17 - 10:19
(6)
Измерения:
Документ
ВариантОбмена

Ресурсы:
Файл
Статус
ИдентификаторЗапроса
   h-sp
 
8 - 15.11.17 - 10:26
(7) ну значит по каждому документу реализация и по каждому варианту обмена будет отдельная строчка в срезе.

Ну то есть в ваш срез должны по-любому попасть все документы реализации, который есть в регистре.
   Cyberhawk
 
9 - 15.11.17 - 10:27
(2) Функция как раз есть: ПолучитьПоследнее
   Cyberhawk
 
10 - 15.11.17 - 10:27
(3) То и значит
 
 Рекламное место пустует
   grandmaster
 
11 - 15.11.17 - 10:32
(8) так а я что делаю?
ГДЕ
                    РеализацияТоваровУслуг.Ссылка = ДокументыЭДСрезПоследних.Документ
   grandmaster
 
12 - 15.11.17 - 10:33
(9) так и как быть то?
   h-sp
 
13 - 15.11.17 - 10:34
(11) что означает эта магическая формула? И какое отношение она имеет к теме разговора?
   azernot
 
14 - 15.11.17 - 10:35
(12) Подумать, что ты хочешь получить, посмотреть что ты по факту получаешь, и понять, как добиться того, чтобы эти две сущности совпали.
   h-sp
 
15 - 15.11.17 - 10:35
(12) не использовать срез последних.
   HEKPOH
 
16 - 15.11.17 - 10:37
(0) в инете много статей, объясняющих что такое "срез последних". Изучай
   Cyberhawk
 
17 - 15.11.17 - 10:38
(12) Отдай на аутсорс
   azernot
 
18 - 15.11.17 - 10:38
Срез последних лучше всего понимается через пример  "КурсыВалют".
Есть измерение - Валюта, есть ресурс - Курс.
Срез на дату - даст последние (на эту дату) курсы каждой валюты. Было бы странно, если бы срез выдавал самый последний введённый курс по какой-то непонятной валюте.
   grandmaster
 
19 - 15.11.17 - 10:42
ахаха у меня такое чувство, что я попал на ответы мэила.

- что это значит?
Cyberhawk
(3) То и значит

- что тогда делать?
h-sp
(12) не использовать срез последних.

не все же такие умные господа, как вы
могли бы и помочь человеку.
   grandmaster
 
20 - 15.11.17 - 10:42
(18) спасибо, более-менее уже прояснилось
   azernot
 
21 - 15.11.17 - 10:43
(19) Это всего лишь означает, что тебе надо переформулировать вопрос. Если ты не получаешь ответ, значит твой вопрос непонятен.
   grandmaster
 
22 - 15.11.17 - 10:45
(21) что может быть не понятного в том, что мне надо получить последнюю запись регистра сведений. что тут может быть не понятного то?
   azernot
 
23 - 15.11.17 - 10:47
(22) Если бы в (0) не было текста запроса, ты бы уже получил ответ. Но текст запроса, говорит о том, что не всё так просто.
Для чего тебе запись? Ты хочешь получить документ из неё?
   grandmaster
 
24 - 15.11.17 - 10:47
последняя созданная строка в регистре сведений
   grandmaster
 
25 - 15.11.17 - 10:48
(23) идентификатор
   lodger
 
26 - 15.11.17 - 10:48
вот здесь добавь &ВариантОбмена 

ИЗ
РегистрСведений.ДокументыЭД.СрезПоследних(&ТекущаяДата,&ВариантОбмена) КАК ДокументыЭДСрезПоследних

"РеализацияТоваровУслуг.Ссылка КАК Ссылка" - поменять на ДокументыЭДСрезПоследних.Документ.

в ГДЕ пиши
ДокументыЭДСрезПоследних.Документ ССЫЛКА Документ.РеализацияТоваровУслуг

соединение с таблицей "Документ.РеализацияТоваровУслуг" пока что убери. потом с ней разберешься.
   azernot
 
27 - 15.11.17 - 10:52
ВЫБРАТЬ ПЕРВЫЕ 1
    ДокументыЭД.Документ КАК Документ ,
    ДокументыЭД.ВариантОбмена КАК ВариантОбмена ,
    ДокументыЭД.Файл КАК Файл ,
    ДокументыЭД.Статус КАК Статус,
    ДокументыЭД.ИдентификаторЗапроса КАК ИдентификаторЗапроса 
ИЗ
    РегистрСведений.ДокументыЭД КАК ДокументыЭД
ГДЕ
    ДокументыЭД.Период <= &НужнаяДата

УПОРЯДОЧИТЬ ПО
    Период УБЫВ
   lodger
 
28 - 15.11.17 - 10:53
(27) получишь один ближайший документ перед указанной датой. это то что ТопикСтартеру и надо было?
   azernot
 
29 - 15.11.17 - 10:56
(28) Исходя из (24) - да. Если ТС получит не то, что ожидает, он переформулирует задачу.
   Cyberhawk
 
30 - 15.11.17 - 10:58
(22) Вроде тебе уже ответили в этой ветке, как это сделать
   grandmaster
 
31 - 15.11.17 - 11:07
(26) Неверные параметры "РегистрСведений.ДокументыЭД.СрезПоследних, 1"
РегистрСведений.ДокументыЭД.СрезПоследних(&ТекущаяДата,<<?>>&ВариантОбмена ) КАК ДокументыЭДСрезПоследних
   lodger
 
32 - 15.11.17 - 11:07
(31) ну додумкал бы. ВариантОбмена = &ВариантОбмена
   grandmaster
 
33 - 15.11.17 - 11:12
(32)  ВЫБРАТЬ
    ДокументыЭДСрезПоследних.ИдентификаторЗапроса КАК ИдентификаторЗапроса,
    ДокументыЭДСрезПоследних.Период КАК Период,
    ДокументыЭДСрезПоследних.Документ КАК Документ,
    ДокументыЭДСрезПоследних.ВариантОбмена КАК ВариантОбмена
ИЗ
    РегистрСведений.ДокументыЭД.СрезПоследних(&ТекущаяДата, ВариантОбмена=&ВариантОбмена И Документ=&Документ) КАК ДокументыЭДСрезПоследних
ГДЕ
    ДокументыЭДСрезПоследних.ВариантОбмена = &ВариантОбмена
 
 
   lodger
 
34 - 15.11.17 - 11:15
(33) в этом случаем
"ГДЕ ДокументыЭДСрезПоследних.ВариантОбмена = &ВариантОбмена" - избыточное условие. оно уже выполнено тут "ВариантОбмена=&ВариантОбмена".

по итогу, вот это то что ты хотел?
   h-sp
 
35 - 15.11.17 - 11:17
(34) всё-таки (27) он хотел. Наверное.
   grandmaster
 
36 - 15.11.17 - 11:17
(34) ВЫБРАТЬ
    ДокументыЭДСрезПоследних.ИдентификаторЗапроса КАК ИдентификаторЗапроса,
    ДокументыЭДСрезПоследних.Период КАК Период,
    ДокументыЭДСрезПоследних.Документ КАК Документ,
    ДокументыЭДСрезПоследних.ВариантОбмена КАК ВариантОбмена
ИЗ
    РегистрСведений.ДокументыЭД.СрезПоследних(
            &ТекущаяДата,
            ВариантОбмена = &ВариантОбмена
                И Документ = &Документ) КАК ДокументыЭДСрезПоследних
ГДЕ
    ДокументыЭДСрезПоследних.ВариантОбмена = &ВЕТИС        
    И ДокументыЭДСрезПоследних.Документ = &РеализацияТоваровУслуг

возвращает 0 строк
   h-sp
 
37 - 15.11.17 - 11:19
(36) ну наверно разные задаешь параметры &Документ и &РеализацияТоваровУслуг. Задай одинаково.
   grandmaster
 
38 - 15.11.17 - 11:28
(37) где я задаю?
у меня &РеализацияТоваровУслуг это нужное значение поля ДокументыЭДСрезПоследних.Документ
   МимохожийОднако
 
39 - 15.11.17 - 11:29
Возьми консоль запросов. На ней и тренируй свои запросы
   lodger
 
40 - 15.11.17 - 11:31
(36) пиши так:
ВЫБРАТЬ
    ДокументыЭДСрезПоследних.ИдентификаторЗапроса КАК ИдентификаторЗапроса,
    ДокументыЭДСрезПоследних.Период КАК Период,
    ДокументыЭДСрезПоследних.Документ КАК Документ,
    ДокументыЭДСрезПоследних.ВариантОбмена КАК ВариантОбмена
ИЗ
    РегистрСведений.ДокументыЭД.СрезПоследних(
            &ТекущаяДата,
            ВариантОбмена = &ВЕТИС
                И Документ = &РеализацияТоваровУслуг) КАК ДокументыЭДСрезПоследних
   azernot
 
41 - 15.11.17 - 11:31
Мне просто интересно, как ТС понимает параметеры:
&ВариантОбмена
&Документ

И почему заводит отдельные параметры
&ВЕТИС
&РеализацияТоваровУслуг
   grandmaster
 
42 - 15.11.17 - 11:34
(41)
&ВЕТИС
&РеализацияТоваровУслуг

Это значения параметров по которым я делаю срез
   grandmaster
 
43 - 15.11.17 - 11:34
(39) так в ней и работаю
   h-sp
 
44 - 15.11.17 - 11:36
(42) ну и пиши как в (40) это как раз срез.

а то что ты пишешь
ГДЕ
    ДокументыЭДСрезПоследних.ВариантОбмена = &ВЕТИС        
    И ДокументыЭДСрезПоследних.Документ = &РеализацияТоваровУслуг

это уже не срез. Это бред какой-то. Выкинь это ГДЕ.
   azernot
 
45 - 15.11.17 - 11:36
(42) А что такое
&ВариантОбмена
&Документ
?
И почему это не
&ВЕТИС
&РеализацияТоваровУслуг
?


И таки не совсем последняя запись тебе нужна, а последняя по конкретному документу и варианту обмена? ;)
   grandmaster
 
46 - 15.11.17 - 11:40
(45) ну у меня и так и так вы водит строки
   МимохожийОднако
 
47 - 15.11.17 - 11:41
(7) Регистр подчинён регистратору?
   grandmaster
 
48 - 15.11.17 - 13:15
(45)
&ВариантОбмена И &Документ - это параметры
А ВЕТИС и РеализацияТоваровУслуг - это значения этих параметров по которым идёт отбор

(44) Почему же бред. Если я пишу условие параметров, по которым надо найти строку
   МимохожийОднако
 
49 - 15.11.17 - 13:19
(48) Сначала получи таблицу без отбора, потом добавляй, если не удаётся разобраться.
Повторяю вопрос: Регистр подчинён регистратору?
 
 Рекламное место пустует
   h-sp
 
50 - 15.11.17 - 13:20
(48) в этом ваша ошибка. Потому что &ВариантОбмена И &Документ тоже значения.
   Сти
 
51 - 15.11.17 - 13:21
(48) бред - потому что в условии самого среза (которое внутри скобок) оно уже отобрано по этим условиям
   azernot
 
52 - 15.11.17 - 13:22
(48) Вы попробовали запрос из (40)? Он выдал то, что вы хотели?
   grandmaster
 
53 - 15.11.17 - 13:26
(49) не подченён регистру

(52) нет не выдал, ничего не выдал 

ИЗ
    РегистрСведений.ДокументыЭД.СрезПоследних(
            &ТекущаяДата,
            ВариантОбмена = &ВЕТИС
                И Документ = &РеализацияТоваровУслуг) КАК ДокументыЭДСрезПоследних

Тут значения параметров записаны в виде параметра т.к.  стоит амперсант. Вроде так нельзя писать
   azernot
 
54 - 15.11.17 - 13:28
(53) Давайте весь код, как вы инициируете запрос, какие параметры устанавливаете, как запрос выполняете. Похоже это единственный способ вам помочь

Запрос в (40) безупречен, он не может не сработать, если у вас есть в регистре записи по варианту обмена &ВЕТИС и по документу &РеализацияТоваровУслуг
   h-sp
 
55 - 15.11.17 - 13:31
(54) получается, что не получится. ему надо

Документ ССЫЛКА РеализацияТоваровУслуг
   grandmaster
 
56 - 15.11.17 - 13:32
(54)     Запрос = Новый Запрос();
    Запрос.Текст = "ВЫБРАТЬ
                   |    ДокументыЭДСрезПоследних.ИдентификаторЗапроса КАК ИдентификаторЗапроса,
                   |    ДокументыЭДСрезПоследних.Период КАК Период,
                   |    ДокументыЭДСрезПоследних.Документ КАК Документ,
                   |    ДокументыЭДСрезПоследних.ВариантОбмена КАК ВариантОбмена
                   |ИЗ
                   |    РегистрСведений.ДокументыЭД.СрезПоследних(
                   |            &ТекущаяДата,
                   |            ВариантОбмена = &ВариантОбмена
                   |                И Документ = &Документ)
                   | КАК ДокументыЭДСрезПоследних";
    Запрос.УстановитьПараметр("ВариантОбмена", "ВЕТИС");
    Запрос.УстановитьПараметр("Документ",      "РеализацияТоваровУслуг");
    Запрос.УстановитьПараметр("ТекущаяДата",   ТекущаяДата());
    
    Результат = Запрос.Выполнить().Выгрузить();
   azernot
 
57 - 15.11.17 - 13:33
(56) Этот запрос не сработает точно.
Возвращаемся к началу.
Что вам нужно?
Пробовали ли вы запрос из (27)? Чем он вас не устроил?
   grandmaster
 
58 - 15.11.17 - 13:36
(57) возвращать последнее значение с отбором "ВариантОбмена", "ВЕТИС");
"Документ",      "РеализацияТоваровУслуг");
   azernot
 
59 - 15.11.17 - 13:37
(56) Далее.
Какой тип имеет измерение "ВариантОбмена" регистра "ДокументыЭД"?

Что будет если вместо "И Документ = &Документ" написать 
"И Документ ССЫЛКА Документ.РеализацияТоваровУслуг"
   azernot
 
60 - 15.11.17 - 13:37
(58) Таких записей в регистре нет (если конечно, измерение "Документ" не имеет тип "Строка")
   azernot
 
61 - 15.11.17 - 13:39
(58) Давайте зайдём с другого конца. Какую задачу вы решаете? Для чего вам эти записи, что вы с ними будете делать? И вообще, это какая-то типовая конфигурация или полная самописка?
   grandmaster
 
62 - 15.11.17 - 13:40
(59) Тип измерения "ВариантОбмена"
ПеречислениеСсылка.ВариантыУниверсальногоОбмена
   azernot
 
63 - 15.11.17 - 13:41
(62) Так
попробуйте
   grandmaster
 
64 - 15.11.17 - 13:41
(61) по последней данной записи мне нужно вытягивать из поля идентификатор - значение
   azernot
 
65 - 15.11.17 - 13:41
Запрос.УстановитьПараметр("ВариантОбмена", Перечисление.ВариантыУниверсальногоОбмена.ВЕТИС);
   azernot
 
66 - 15.11.17 - 13:42
Короче, вот так попробуйте, вообще без параметров, кроме даты

ВЫБРАТЬ 
    ДокументыЭДСрезПоследних.ИдентификаторЗапроса КАК ИдентификаторЗапроса, 
    ДокументыЭДСрезПоследних.Период КАК Период,
    ДокументыЭДСрезПоследних.Документ КАК Документ,
    ДокументыЭДСрезПоследних.ВариантОбмена КАК ВариантОбмена
ИЗ 
    РегистрСведений.ДокументыЭД.СрезПоследних(
            &ТекущаяДата,
            ВариантОбмена = Значение(Перечисление.ВариантыУниверсальногоОбмена.ВЕТИС)
                И Документ ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ДокументыЭДСрезПоследних
   grandmaster
 
67 - 15.11.17 - 13:47
(66) слава яйцам
прошу за грубость))
возвращает теперь все значения с ВЕТИС и Документом реализация товаров и услуг
Осталось теперь получать только последнее по текущей дате
   azernot
 
68 - 15.11.17 - 13:48
(67) Пи...ц (прошу за грубость).

Чем не устроил этот запрос?

ВЫБРАТЬ ПЕРВЫЕ 1 
    ДокументыЭД.Документ КАК Документ , 
    ДокументыЭД.ВариантОбмена КАК ВариантОбмена , 
    ДокументыЭД.Файл КАК Файл ,
    ДокументыЭД.Статус КАК Статус,
    ДокументыЭД.ИдентификаторЗапроса КАК ИдентификаторЗапроса 
ИЗ
    РегистрСведений.ДокументыЭД КАК ДокументыЭД
ГДЕ
    ДокументыЭД.Период <= &НужнаяДата

УПОРЯДОЧИТЬ ПО
    Период УБЫВ
   azernot
 
69 - 15.11.17 - 13:51
Если проблема в том, что даёт не по ВЕТИС, и не по РеализацииТоваровУслуг, то надо просто дописать условия:

ВЫБРАТЬ ПЕРВЫЕ 1 
    ДокументыЭД.Документ КАК Документ , 
    ДокументыЭД.ВариантОбмена КАК ВариантОбмена , 
    ДокументыЭД.Файл КАК Файл ,
    ДокументыЭД.Статус КАК Статус,
    ДокументыЭД.ИдентификаторЗапроса КАК ИдентификаторЗапроса 
ИЗ
    РегистрСведений.ДокументыЭД КАК ДокументыЭД
ГДЕ
    ДокументыЭД.Период <= &НужнаяДата
       И ДокументыЭД.ВариантОбмена = Значение(Перечисление.ВариантыУниверсальногоОбмена.ВЕТИС)
       И ДокументыЭД.Документ ССЫЛКА Документ.РеализацияТоваровУслуг

УПОРЯДОЧИТЬ ПО
    Период УБЫВ
   grandmaster
 
70 - 15.11.17 - 13:51
(68) Ну потому что здесь берёт последнюю запись из регистра. Без отбора.
Тоесть последней может быть с другим документом и статусом и запрос её выберет
   grandmaster
 
71 - 15.11.17 - 13:52
(69) щас попробую
   grandmaster
 
72 - 15.11.17 - 13:52
(69) вместо &НужнаяДата я так понял писать ТекущаяДата()?
   azernot
 
73 - 15.11.17 - 13:53
Запрос.УстановитьПараметр("НужнаяДата",   ТекущаяДата());
   grandmaster
 
74 - 15.11.17 - 13:54
(73) ну да я это и имел ввиду
   azernot
 
75 - 15.11.17 - 13:58
(74) А вы можете предположить, почему я написал именно "НужнаяДата", а не "ТекущаяДата"?
   grandmaster
 
76 - 15.11.17 - 14:03
(73) а не подскажете как теперь вытянуть из запроса поле (идентификатор запроса). управляемая форма. не находит идентификаторзапроса
    Запрос = Новый Запрос();
    Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
                   |    ДокументыЭД.Документ КАК Документ,
                   |    ДокументыЭД.ВариантОбмена КАК ВариантОбмена,
                   |    ДокументыЭД.Файл КАК Файл,
                   |    ДокументыЭД.Статус КАК Статус,
                   |    ДокументыЭД.ИдентификаторЗапроса КАК ИдентификаторЗапроса
                   |ИЗ
                   |    РегистрСведений.ДокументыЭД КАК ДокументыЭД
                   |ГДЕ
                   |    ДокументыЭД.Период <= &НужнаяДата
                   |    И ДокументыЭД.ВариантОбмена = ЗНАЧЕНИЕ(Перечисление.ВариантыУниверсальногоОбмена.ВЕТИС)
                   |    И ДокументыЭД.Документ ССЫЛКА Документ.РеализацияТоваровУслуг
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    ДокументыЭД.Период УБЫВ";
    Запрос.УстановитьПараметр("НужнаяДата",   ТекущаяДата());
    
    Результат = Запрос.Выполнить().Выгрузить();   
       
    receiveRequestXDTO.applicationId    = Результат.ИдентификаторЗапроса;
   grandmaster
 
77 - 15.11.17 - 14:04
(75) честно не знаю даже
   h-sp
 
78 - 15.11.17 - 14:04
receiveRequestXDTO.applicationId    = Результат[0].ИдентификаторЗапроса;
   grandmaster
 
79 - 15.11.17 - 14:09
azernot и  h-sp - огромное вам спасибо добрые люди! +1 вам к карме. Всё вышло что хотел. Впредь буду более аккуратен, в первую очередь в постановки вопрос
   azernot
 
80 - 15.11.17 - 14:09
Результат = Запрос.Выполнить().Выгрузить();   
Выборка = Результат.Выбрать();
Если Выборка.Следующий() ТОгда
       
    receiveRequestXDTO.applicationId    = Результат.ИдентификаторЗапроса;
Иначе
    receiveRequestXDTO.applicationId    = "Нет записей!";
КОнецЕсли;
   azernot
 
81 - 15.11.17 - 14:10
Т.е. так:
    
Результат = Запрос.Выполнить().Выгрузить();   
Выборка = Результат.Выбрать();
Если Выборка.Следующий() ТОгда
       
    receiveRequestXDTO.applicationId    = Выборка.ИдентификаторЗапроса;
Иначе
    receiveRequestXDTO.applicationId    = "Нет записей!";
КОнецЕсли;
   azernot
 
82 - 15.11.17 - 14:11
А-а, там Выгрузить() уже есть.. тогда (78). ТОлько может быть там нет ни одной строки, и будет ошибка.
   grandmaster
 
83 - 15.11.17 - 14:15
(82) не будет, оно сначала выгружает ответ сервера в регистр, затем по идентификатору выполняется запрос на сервер. Вообще м ошибки в любом случае не будет!
Ещё раз спасибо
   azernot
 
84 - 15.11.17 - 14:16
(77) А всё просто. Потому, что там не обязательно именно Текущая дата. Запрос сработает с любой датой.
Захотите вы получить последнюю запись по Вентису, по реализации за прошлый год - просто передадите туда конец прошлого года.
   lodger
 
85 - 15.11.17 - 15:15
почитал ветку с начала - слов нет.
ыыы.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует