|
проблемы с тч | ☑ | ||
---|---|---|---|---|
0
Singenor
18.07.12
✎
11:06
|
Запрос = Новый Запрос("ВЫБРАТЬ
| УЮ_Сервис.Контрагент.ОсновнойДоговорКонтрагента.Наименование КАК Наименование, | УЮ_Сервис.Контрагент.ОсновнойДоговорКонтрагента.Дата КАК ДатаНач, | УЮ_Сервис.Контрагент.ОсновнойДоговорКонтрагента.СрокДействия КАК ДатаКон, | NULL КАК ОсновнойДоговорКонтрагентаСсылка, | NULL КАК Ссылка, | УЮ_Сервис.Контрагент.ОсновнойДоговорКонтрагента КАК договорформа, | УЮ_Сервис.Контрагент.ОсновнойДоговорКонтрагента.ВидВзаиморасчетов.Код КАК Код |ИЗ | БизнесПроцесс.УЮ_Сервис КАК УЮ_Сервис | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | NULL, | NULL, | NULL, | Контрагенты.ОсновнойДоговорКонтрагента.Ссылка, | Контрагенты.Ссылка, | NULL, | NULL |ИЗ | Справочник.Контрагенты КАК Контрагенты"); Выборка = Запрос.Выполнить().Выбрать(); //Если Выборка.Следующий() Тогда Для Каждого стр из Выборка Цикл Если Выборка.Код = "000000001" Тогда Если Выборка.ДатаКон > ЭтотОбъект.Дата Тогда ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.ЦветТекста = WebЦвета.Зеленый; ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.Заголовок= "Долга нет " + СокрЛП(Выборка.Наименование); Иначе ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.ЦветТекста = WebЦвета.Красный; ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.Заголовок= "У вас долг" + СокрЛП(Выборка.Наименование); КонецЕсли; КонецЕсли; Если Выборка.Код = "000000003" Тогда Если Выборка.ДатаКон > ЭтотОбъект.Дата Тогда ЭлементыФормы.НадписьПодпискаИТС.ЦветТекста = WebЦвета.Зеленый; ЭлементыФормы.НадписьПодпискаИТС.Заголовок= "Долга нет" + СокрЛП(Выборка.Наименование); Иначе ЭлементыФормы.НадписьПодпискаИТС.ЦветТекста = WebЦвета.Красный; ЭлементыФормы.НадписьПодпискаИТС.Заголовок= "Долга нет " + СокрЛП(Выборка.Наименование); КонецЕсли; КонецЕсли; КонецЦикла; |
|||
1
Singenor
18.07.12
✎
11:07
|
на строке
Для Каждого стр из Выборка Цикл выдет ошибку итератор для значения не определен, почему? как испавиьт? |
|||
2
эцп
18.07.12
✎
11:08
|
Пока Выборка.Следующий() Цикл
//тело цикла КонецЦикла; |
|||
3
Maxus43
18.07.12
✎
11:08
|
Выборка = Запрос.Выполнить().Выбрать().выгрузить();
|
|||
4
Maxus43
18.07.12
✎
11:09
|
всмысле:
Выборка = Запрос.Выполнить.выгрузить(); |
|||
5
Alex S D
18.07.12
✎
11:10
|
Пока Выборка.Следующий() Цикл
|
|||
6
Alex S D
18.07.12
✎
11:10
|
аа, было)
|
|||
7
Singenor
18.07.12
✎
11:17
|
всеравно не идет по ТЧ. в первом случае находит как нужно, когда идет цикл по 2 кругу, то значение тупо нулл, и все(
|
|||
8
Maxus43
18.07.12
✎
11:18
|
(7) не надо коментить нормальный код потомушта
//Если Выборка.Следующий() Тогда верни назад |
|||
9
Singenor
18.07.12
✎
11:22
|
(8) у меня сначала так было и все нормально формировало, нопонимаешь, если уменя в ТЧ 2 записи, он смотрит тока по одной, и ее и выводит внужное мне место, а вторую запись не трогает, а мне надо, чтоб он шел по тч, то есть так:
если код = "1" тогда Переменная = значение 1 если код = "2" тогда переменная = значение 2 в моем же случае, по коду, который я выше запостил, он видит просто, что код = 1, и записывает эту переменную. а у второй он видит чот код !=1 и не записывает ее |
|||
10
Alex S D
18.07.12
✎
11:27
|
"а у второй он видит чот код !=1 и не записывает ее" а чему он равен?
|
|||
11
Singenor
18.07.12
✎
11:29
|
вот поиск по коду для первой переменной:
Если Выборка.Код = "000000001" Тогда Если Выборка.ДатаКон > ЭтотОбъект.Дата Тогда ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.ЦветТекста = WebЦвета.Зеленый; ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.Заголовок= "Долга нет " + СокрЛП(Выборка.Наименование); Иначе ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.ЦветТекста = WebЦвета.Красный; ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.Заголовок= "У вас долг" + СокрЛП(Выборка.Наименование); КонецЕсли; КонецЕсли; вот поиск по коду для второй переменной: Если Выборка.Код = "000000003" Тогда Если Выборка.ДатаКон > ЭтотОбъект.Дата Тогда ЭлементыФормы.НадписьПодпискаИТС.ЦветТекста = WebЦвета.Зеленый; ЭлементыФормы.НадписьПодпискаИТС.Заголовок= "Долга нет" + СокрЛП(Выборка.Наименование); Иначе ЭлементыФормы.НадписьПодпискаИТС.ЦветТекста = WebЦвета.Красный; ЭлементыФормы.НадписьПодпискаИТС.Заголовок= "Долга нет " + СокрЛП(Выборка.Наименование); КонецЕсли; КонецЕсли; |
|||
12
Alex S D
18.07.12
✎
11:31
|
(11) ну так только если Выборка.Код = "000000003" он и запишет твою так называемую переменную
|
|||
13
Singenor
18.07.12
✎
11:33
|
так у меня в ТЧ две записи, у одной код "00000001" у друой "0000003", и мне нужно, чтобы с кодом --1 он записывал в одну строчку, а с кодом ---3 в другую
|
|||
14
Maxus43
18.07.12
✎
11:34
|
|ОБЪЕДИНИТЬ ВСЕ
| |ВЫБРАТЬ | NULL, | NULL, | NULL, | Контрагенты.ОсновнойДоговорКонтрагента.Ссылка, | Контрагенты.Ссылка, | NULL, | NULL |ИЗ | Справочник.Контрагенты КАК Контрагенты"); вот это нафига вобще? |
|||
15
Alex S D
18.07.12
✎
11:35
|
(13) ниче не понял.. в какую еще строчку записывал? судя по твоему коду , меняется надпись
|
|||
16
Alex S D
18.07.12
✎
11:35
|
отладчик включи короче
|
|||
17
Singenor
18.07.12
✎
11:37
|
ща короче скрин выложу
|
|||
18
hhhh
18.07.12
✎
11:44
|
(17) ну в общем 7 скринов ждем от тебя:
1. табличная часть УЮ_Сервис 2-3. Два этих контрагента на закладке договоры, чтобы мы могли посмотреть, какие у них основные договоры. 4-5. Два договора этих контрагентов, чтобы мы увидели, какие виды взаиморасчетов заданы. 6-7. Эти два вида взаиморасчетов, чтобы увидеть коды 1 и 3. Кстати, что такое УЮ_Сервис? Это услуги проституток? |
|||
19
Singenor
18.07.12
✎
11:45
|
http://s017.radikal.ru/i428/1207/cf/130f007bdbe8.jpg
Объясняю. Есть контрагент, при нажатии на него открывается справочник контрагентов, на одной из вкладок расположены договора контрагентов( справочник договоры контрагентов) |
|||
20
Singenor
18.07.12
✎
11:47
|
http://s43.radikal.ru/i100/1207/1a/f52eb121654c.jpg
пи открытии договора контрагентов, видим его данные, по реквизиту: Видвзаиморасчетов мыи определяем, что куда пишется, коды ваиморасчетов расположены справа на скиншоте |
|||
21
Maxus43
18.07.12
✎
11:47
|
тебе надо чтоб по всем договорам контрагента запрос был?
|
|||
22
Singenor
18.07.12
✎
11:49
|
(21) у контрагента имеется 1 договор ИТС(000003) , 1 договор по услугам(00001), нужно чтобы в графу справочная информация(справа в углу на форме) писались данные по соответствующим договорам, то есть в первую строчку писался договор, у кторого код взаиморасчетов 00003, во вторую (где "надпись подписка ИТС") писался договор с кодом 00001
|
|||
23
Singenor
18.07.12
✎
11:49
|
точнее наоборот:
ИТС - 0000003 услуги -0000001 |
|||
24
hhhh
18.07.12
✎
11:50
|
(19) так у тебя один контрагент? Так у него по-любому один основной договор. И у него один код. Не может быть у контрагента два основных договора.
|
|||
25
Alex S D
18.07.12
✎
11:50
|
(23) так ты ж 1 основной договор выбираешь..%
|
|||
26
Singenor
18.07.12
✎
11:51
|
(24) а если у меня 2 договора? один науслги, друго на ИТС?
|
|||
27
Singenor
18.07.12
✎
11:53
|
яведь ищу по коду взаимрасчетов, который в самих документах, так что мжно веь как-нибуь найти? тока не понимаю как(
|
|||
28
hhhh
18.07.12
✎
11:53
|
(26) стоп. У тебя здесь
УЮ_Сервис.Контрагент.ОсновнойДоговорКонтрагента основной договор контрагента. |
|||
29
Singenor
18.07.12
✎
11:56
|
(28) в запросе по другому не вытащить, там следующая хроноголия:
мне ведь нужно получить договор контрагента, то есть в запросе я иду в контрагент, и там ищу про договор, и ОсновнойДоговрконтрагента единственое, что есть пор договор( |
|||
30
salvator
18.07.12
✎
11:58
|
(29) Соедини Контрагент и Договор по Владельцу
|
|||
31
Singenor
18.07.12
✎
11:58
|
мм, блин точно, основно догоор жирный, и идет поиск только по нему, отсотй, как бы сделать поиск по всем договорам?(
|
|||
32
Maxus43
18.07.12
✎
11:58
|
ВЫБРАТЬ
ДоговорыКонтрагентов.Код, ДоговорыКонтрагентов.ВидВзаиморасчетов ИЗ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов ГДЕ ДоговорыКонтрагентов.Владелец = &Контрагент И (НЕ ДоговорыКонтрагентов.ПометкаУдаления) |
|||
33
salvator
18.07.12
✎
11:59
|
+(32) И НЕ ДоговорыКонтрагентов.ЭтоГруппа
|
|||
34
Singenor
18.07.12
✎
12:09
|
Запрос = Новый Запрос("ВЫБРАТЬ
| ДоговорыКонтрагентов.Наименование КАК Наименование, | ДоговорыКонтрагентов.Дата как ДатаНач, | ДоговорыКонтрагентов.СрокДействия как ДатаКон, | ДоговорыКонтрагентов.Код как Код, | ДоговорыКонтрагентов.ВидВзаиморасчетов |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов |ГДЕ | ДоговорыКонтрагентов.Владелец = &Контрагент | И (НЕ ДоговорыКонтрагентов.ПометкаУдаления)"); что не так? |
|||
35
Singenor
18.07.12
✎
12:10
|
параметр блин(
|
|||
36
salvator
18.07.12
✎
12:13
|
(34) Добавь (33)
|
|||
37
Singenor
18.07.12
✎
12:15
|
Запрос.УстановитьПараметр("владелец", ЭтотОбъект);
почему не правильно параметр задан? |
|||
38
salvator
18.07.12
✎
12:16
|
(37) Ты что куришь? Посмотри внимательно на имя параметра в запросе.
|
|||
39
Singenor
18.07.12
✎
12:16
|
Запрос = Новый Запрос("ВЫБРАТЬ
| ДоговорыКонтрагентов.Наименование КАК Наименование, | ДоговорыКонтрагентов.Дата как ДатаНач, | ДоговорыКонтрагентов.СрокДействия как ДатаКон, | ДоговорыКонтрагентов.Код как Код, | ДоговорыКонтрагентов.ВидВзаиморасчетов |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов |ГДЕ | ДоговорыКонтрагентов.Владелец = &Контрагент | И НЕ ДоговорыКонтрагентов.ПометкаУдаления | И НЕ ДоговорыКонтрагентов.ЭтоГруппа"); Запрос.УстановитьПараметр("Владелец", Контрагент); |
|||
40
zladenuw
18.07.12
✎
12:17
|
Справочники.ДоговорыКонтрагентов.НайтиПоКоду(пКод,,,пКонтрагент);
|
|||
41
Singenor
18.07.12
✎
12:17
|
Запрос.УстановитьПараметр("контрагент", этотОбъект);
|
|||
42
Singenor
18.07.12
✎
12:18
|
(41)
{БизнесПроцесс.УЮ_Сервис.Форма.ФормаБизнесПроцесса.Форма(321)}: Ошибка при вызове метода контекста (Выполнить) Выборка = Запрос.Выполнить().Выбрать(); по причине: {(10, 32)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. ДоговорыКонтрагентов.Владелец <<?>>= &Контрагент |
|||
43
Singenor
18.07.12
✎
12:19
|
(38) ну имя параметра контрагент, и потом мы его выводит для ЭтотОбъект так веь7
|
|||
44
zladenuw
18.07.12
✎
12:19
|
Дог1 = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("000000001",,,пКонтрагент);
Если Дог1.ДатаКон > Дата Тогда ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.ЦветТекста = WebЦвета.Зеленый; ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.Заголовок= "Долга нет " + СокрЛП(Дог1.Наименование); Иначе ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.ЦветТекста = WebЦвета.Красный; ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.Заголовок= "У вас долг" + СокрЛП(Дог1.Наименование); КонецЕсли; Дог2 = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("000000003",,,пКонтрагент); Если Дог2.ДатаКон > Дата Тогда ЭлементыФормы.НадписьПодпискаИТС.ЦветТекста = WebЦвета.Зеленый; ЭлементыФормы.НадписьПодпискаИТС.Заголовок= "Долга нет" + СокрЛП(Дог2.Наименование); Иначе ЭлементыФормы.НадписьПодпискаИТС.ЦветТекста = WebЦвета.Красный; ЭлементыФормы.НадписьПодпискаИТС.Заголовок= "Долга нет " + СокрЛП(Дог2.Наименование); КонецЕсли; |
|||
45
salvator
18.07.12
✎
12:19
|
(42) Телепатирую: в ЭтотОбъект у тебя переменная не с типом Справочник.Контрагенты
|
|||
46
zladenuw
18.07.12
✎
12:20
|
(45) 100500 %)
|
|||
47
Singenor
18.07.12
✎
12:28
|
(45) не понимаю, че мне в параметр передать9
|
|||
48
salvator
18.07.12
✎
12:29
|
(47) Контрагента, вестимо.
|
|||
49
Singenor
18.07.12
✎
12:31
|
(48) Запрос.УстановитьПараметр("контрагент", этотОбъект);
а вмесот этотОбхект что мы должны подставиьт? |
|||
50
zladenuw
18.07.12
✎
12:32
|
Вопрос. где ты выводишь информацию под долгу. явно не в форме контрагента и его договора, а в документе. тогда у тебя должен быть реквизит с типом СправочникСсылка.Контрагент
|
|||
51
Singenor
18.07.12
✎
12:35
|
так ладно, вроде выводятся сторчки, а как теперь при нажатии на гиперссылку открывался нужный документ?
до этого я в запросе указывал просто Основной договор КАК формадоговор, и затем в переменной, к примеру: текДог = формаДоговор и в процедуре открытия при нажатии писал так: ОткрытьЗначение(ТекДог); |
|||
52
Singenor
18.07.12
✎
12:37
|
все, разобрался, всем спасибо
|
|||
53
zladenuw
18.07.12
✎
12:37
|
неужели :)
|
|||
54
Singenor
18.07.12
✎
12:39
|
хотя появился ещенебольшой вопорс, как сдеаьт, чтобы информация в окне с гиперссылками менялась при выборе контрагета?
|
|||
55
Singenor
18.07.12
✎
12:39
|
я такпонимаю в при изменении контрагета в модуле?
|
|||
56
Singenor
18.07.12
✎
12:43
|
правильно пнимаю)
|
|||
57
zladenuw
18.07.12
✎
12:47
|
почему контрагента. у тебя форма документа ? в реквизит контрагента в событие при изменение
|
|||
58
Singenor
18.07.12
✎
12:54
|
(57) ну да, я это и имел ввиду, просто думал о друом)
|
|||
59
Singenor
18.07.12
✎
12:58
|
а как на ПФ вытащить данные из гиперссылки?оО
|
|||
60
Singenor
18.07.12
✎
13:13
|
И при нажатии на кнопку ОК, данные в этих гиперссылках не схраняются(
|
|||
61
zladenuw
18.07.12
✎
13:19
|
ну так блин обновить отображает и вызывай свою функцию по отображению долга. и выводи не наименование на гипер ссылку а саму ссылку договора. тогда проблем не должно быть
|
|||
62
Singenor
18.07.12
✎
13:22
|
(61) пишу функцию, в которой идет появление этой надписи, и птом ее при изменнии контрагента вызываю тк ведь?
|
|||
63
Singenor
18.07.12
✎
13:24
|
(61)
1. как выдать ссылку сразунадокумент? 2. как сохранять полученный результат? |
|||
64
zladenuw
18.07.12
✎
13:43
|
на какой документ ? долга ?
|
|||
65
zladenuw
18.07.12
✎
13:43
|
зачем сохранять при открытии будет запрос и будет тебе сразу ссылка
|
|||
66
Singenor
18.07.12
✎
13:59
|
(64) на документ договор контрагетов, в котором и долг порписывается
|
|||
67
Singenor
18.07.12
✎
14:04
|
ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.Заголовок= "Долга нет " + Дог1.Ссылка;
так пердаю ссылку, но он не сохраняется се равно |
|||
68
zladenuw
18.07.12
✎
14:05
|
то есть не сохраняет ?
|
|||
69
Singenor
18.07.12
✎
14:06
|
(68) нажимаю ОК, документ закрывается, открываю документ заного, и гиперссылокопяьт нет, щас скрин да
|
|||
70
Singenor
18.07.12
✎
14:06
|
м
|
|||
71
zladenuw
18.07.12
✎
14:06
|
при открытии вызывай свою функцию
|
|||
72
zladenuw
18.07.12
✎
14:06
|
в (65) я писал тебе об этом
|
|||
73
Singenor
18.07.12
✎
14:09
|
http://s017.radikal.ru/i415/1207/1a/b072b9dce12f.jpg
вот это при выборе контрагента, пишутся зеленыйего договора, ри нажатии на ОК зкрываетсяформа, потом открываем эту же фрму опять: http://s001.radikal.ru/i193/1207/ff/c874b3d9db26.jpg зеленые гиперссыки исчезли |
|||
74
Singenor
18.07.12
✎
14:10
|
(71) так мне нужно, чтобы ссылки появлялись пи изменеии контрагета, чем они заполнятся, если я открываю, к примеру новый документ, а контрагента ещ не выбрал
|
|||
75
zladenuw
18.07.12
✎
14:10
|
Процедура ПриОткрытии()
ЭлементыФормы.Надпись1.Значение = Справочники.Контрагенты.НайтиПоКоду("000003300").Ссылка; КонецПроцедуры Процедура Надпись1Нажатие(Элемент) Справочники.Контрагенты.НайтиПоНаименованию(Элемент.Значение).ПолучитьФорму().Открыть(); КонецПроцедуры |
|||
76
zladenuw
18.07.12
✎
14:11
|
(74) чмд. проверки пишешь. у тебя 1 функция которая вызывается при открытие если это не новый документ, и при изменение контрагента и все. Включай мозг.
|
|||
77
Singenor
18.07.12
✎
14:14
|
одна функция которую я пмещаю в приоткрытии и пи изменении так веь7
|
|||
78
Singenor
18.07.12
✎
14:22
|
да,работает, только теперь если я ставлю договор на удаление, то зееная гиперссыкатак и остаетсявисеть, пока я не перезайду в документ
|
|||
79
zladenuw
18.07.12
✎
15:31
|
ну так добавь проверку. что если с пометкой удаление что бы не выбирался он вот и все
|
|||
80
Singenor
18.07.12
✎
15:36
|
(79)
Дог1 = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("000000001"); Если НЕ Дог1.ПометкаУдаления Тогда Если Дог1.СрокДействия > Дата Тогда ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.ЦветТекста = WebЦвета.Зеленый; ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.Заголовок= "Долга нет " + Дог1.Ссылка; Иначе ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.ЦветТекста = WebЦвета.Красный; ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.Заголовок= "У вас долг" + Дог1.Ссылка; КонецЕсли; КонецЕсли; |
|||
81
Singenor
18.07.12
✎
15:37
|
если пометка удаления, то тогда невыирается, но он все раво выбирается :)
|
|||
82
zladenuw
18.07.12
✎
15:37
|
можно и так
|
|||
83
Singenor
18.07.12
✎
15:40
|
(82)
1. есть 2 договора, при выборе контрагента они записываются зеленым цветом 2. если один из них зайти, и пометить на удаление, и перевыбрать контрагента, он все равно будет висеть зеленым. 3. Если же нажать на ОК, и открыть документ заного, тот договор, который помечен на удаление отображен не будет. Я хочу, чтобы он не отображался, когда я перевыбираю контрагента, то есть ПРИизменении в форме я вызываю свою процедуру, часть которой я привел выше |
|||
84
zladenuw
18.07.12
✎
15:40
|
ну так реализуй проверку.
|
|||
85
Singenor
18.07.12
✎
15:41
|
дополнитеьно в приизменении на форме контрагента?
|
|||
86
salvator
18.07.12
✎
15:41
|
(83) Позовите специалиста.
|
|||
87
zladenuw
18.07.12
✎
15:42
|
Дог1 = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("000000001");
Если НЕ Дог1.ПометкаУдаления Тогда Если Дог1.СрокДействия > Дата Тогда ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.ЦветТекста = WebЦвета.Зеленый; ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.Заголовок= "Долга нет " + Дог1.Ссылка; Иначе ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.ЦветТекста = WebЦвета.Красный; ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.Заголовок= "У вас долг" + Дог1.Ссылка; КонецЕсли; иначе ЭлементыФормы.ГиперСсылкаДоговорНаУслуги.Заголовок = ""; КонецЕсли; |
|||
88
Singenor
18.07.12
✎
15:47
|
(87), бл это ведь элеметарно, жесть, туплю очень(
|
|||
89
zladenuw
18.07.12
✎
15:50
|
расслабь мозг.. пока учишься старайся не больше 4 часов кодить. а читать больше.
|
|||
90
Singenor
18.07.12
✎
15:53
|
(89) спасибо за помощь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |