![]() |
![]() |
![]() |
|
v7: Помогите с прямым запросом, плиз ламеру | ☑ | ||
---|---|---|---|---|
0
Злопчинский
21.01.14
✎
14:31
|
delete
from ra1410 as Рег where Рег.sp1418 in (select Жур.iddoc from 1sjourn as Жур inner join dh196 as Счет on Cчет.iddoc = Жур.iddoc and Счет.sp1472 = 1 where Жур.iddocdef = ' 5G' and dtos(Жур.date)+Жур.time+Жур.iddoc between dtos({d '1980-01-01'})+' '+' ' and dtos({d '2013-03-31'})+'ZZZZZZ'+'ZZZZZZZZZ' ) Запрос.ВыполнитьИнструкцию(ТекстЗапроса); {D:\BASES\ДОРАБОТКИ\КОПИЯ СПЕЦОДЕЖДА3\EXTFORMS\ОЧИСТКАРЕГИСТРЗАЯВКИ.ERT(28)}: FAILED! ICommandText::Execute(): Syntax error. . где ошибка |
|||
1
МихаилМ
21.01.14
✎
14:37
|
неужели нужны данные ранее 1980-01-01 ?
|
|||
2
Злопчинский
21.01.14
✎
14:38
|
данные в диапазоне с начала времен до ВыбДата
Проблем все равно не в этом, а в синтаксисе |
|||
3
Злопчинский
21.01.14
✎
14:40
|
ааа блин пропадаю... рятуйте хлопцы...
|
|||
4
dk
21.01.14
✎
14:41
|
шо как маленький - комментишь построчно пока не найдешь нехорошую строчку
|
|||
5
МихаилМ
21.01.14
✎
14:41
|
зачем
join c dh ? нет условия в between |
|||
6
Ёпрст
гуру
21.01.14
✎
14:42
|
fkbzcs e,thb c ltktnt b ghbdtn//
|
|||
7
Ёпрст
гуру
21.01.14
✎
14:42
|
я ж на коленке пишу, мне проверять не на чем.
|
|||
8
Ёпрст
гуру
21.01.14
✎
14:44
|
delete
from ra1410 where sp1418 in (select Жур.iddoc from 1sjourn as Жур inner join dh196 as Счет on Cчет.iddoc = Жур.iddoc and Счет.sp1472 = 1 where Жур.iddocdef = ' 5G' and dtos(Жур.date)+Жур.time+Жур.iddoc between dtos({d '1980-01-01'})+' '+' ' and dtos({d '2013-03-31'})+'ZZZZZZ'+'ZZZZZZZZZ' ) |
|||
9
trad
21.01.14
✎
14:44
|
либо так
delete ra1410 from ra1410 as Рег where Рег.sp1418 ... либо так delete from ra1410 where ra1410.sp1418 ... |
|||
10
Злопчинский
21.01.14
✎
14:44
|
ща попытаем
|
|||
11
Ёпрст
гуру
21.01.14
✎
14:46
|
(9) ага, типа того
delete Рег from ra1410 as Рег where Рег.sp1418 .. |
|||
12
Ёпрст
гуру
21.01.14
✎
14:46
|
:)
|
|||
13
Злопчинский
21.01.14
✎
14:50
|
не фурычит блин никак...
|
|||
14
МихаилМ
21.01.14
✎
14:51
|
помнится в журнале
iddocdef имеет тип "число" |
|||
15
Ёпрст
гуру
21.01.14
✎
14:52
|
(13) ты хоть не монопольно запущаешь ?
|
|||
16
Ёпрст
гуру
21.01.14
✎
14:52
|
(14) дбф
|
|||
17
Ёпрст
гуру
21.01.14
✎
14:54
|
Чебур, заменяешь delete на select и в консоли за 5 минут находишь решение..
|
|||
18
Злопчинский
21.01.14
✎
14:54
|
Задача:
. структура регистра, измерения - реквизиты от "ДатаПоставки" до "Склад" . Измерение "Счет" - Документ.Счет Есть реквизит Документ.Счет.Отключен = Число(1,0) . Требуется удалить все записи движенйи регистра по условию дата счета в диапазоне 01.01.1980 до ВыбДата и где Счет.Отключен=1 . На регистре стоит галка БыстраОбработкаДвиженйи = 1 . #=============================================================================== #==TABLE no 375 : Регистр Заявки # Name |Descr |Type[A/S/U]|DBTableName|ReUsable T=RG1410 |Регистр Заявки |A |RG1410 |1 #-----Fields------- # Name |Descr |Type|Length|Precision F=PERIOD |Period Registr |D |8 |0 F=SP1411 |(P)ДатаПоставки |D |8 |0 F=SP1418 |(P)Счет |C |9 |0 F=SP1412 |(P)Поставщик |C |9 |0 F=SP1414 |(P)Товар |C |9 |0 F=SP1413 |(P)Клиент |C |13 |0 F=SP1432 |(P)Склад |C |9 |0 F=SP1415 |(P)Количество |N |12 |3 F=SP1416 |(P)Сумма |N |20 |2 F=SP1434 |(P)КоличествоЗаказан|N |12 |3 F=SP1435 |(P)СуммаЗаказано |N |20 |2 F=SP1469 |(P)КоличествоПоставл|N |12 |3 F=SP1470 |(P)СуммаПоставлено |N |20 |2 #----Indexes------ # Name |Descr |Unique|Indexed fields |DBName I=PROP |PERIOD+PROP |0 |PERIOD,SP1411,SP1418,SP1412,SP1414,SP1413,SP1432 |PROP I=VIA1414 |VIA1414 |0 |PERIOD,SP1414 |VIA1414 # #=============================================================================== #==TABLE no 376 : Регистр (Дв.) Заявки # Name |Descr |Type[A/S/U]|DBTableName|ReUsable T=RA1410 |Регистр (Дв.) Заявки |A |RA1410 |1 #-----Fields------- # Name |Descr |Type|Length|Precision F=IDDOC |ID Document's |C |9 |0 F=LINENO |LineNo |N |4 |0 F=ACTNO |Action No |N |6 |0 F=DEBKRED |Flag Debet/Kredit |N |1 |0 F=IDDOCDEF |ID Def Document |C |4 |0 F=DATE |date |D |8 |0 F=TIME |Time |C |6 |0 F=SP1411 |(P)ДатаПоставки |D |8 |0 F=SP1418 |(P)Счет |C |9 |0 F=SP1412 |(P)Поставщик |C |9 |0 F=SP1414 |(P)Товар |C |9 |0 F=SP1413 |(P)Клиент |C |13 |0 F=SP1432 |(P)Склад |C |9 |0 F=SP1415 |(P)Количество |N |12 |3 F=SP1416 |(P)Сумма |N |20 |2 F=SP1434 |(P)КоличествоЗаказан|N |12 |3 F=SP1435 |(P)СуммаЗаказано |N |20 |2 F=SP1469 |(P)КоличествоПоставл|N |12 |3 F=SP1470 |(P)СуммаПоставлено |N |20 |2 F=SP1417 |(P)ВидОперации |N |11 |0 #----Indexes------ # Name |Descr |Unique|Indexed fields |DBName I=IDLINE |of IDDOC+LineN|0 |IDDOC,LINENO,ACTNO |IDLINE I=DATETIME |Date+Time+ID+L|0 |DATE,TIME,IDDOC,LINENO,ACTNO |DATETIME I=VIA1414 |VIA1414 |0 |SP1414,DATE,TIME,IDDOC,LINENO,ACTNO |VIA1414 # |
|||
19
Злопчинский
21.01.14
✎
14:55
|
Епрст - я тут бли почту текстовки таскаяю через три шлюза под чужими именами - пока я буду ставить консоль и ее качать - это уже завтра утро будет.
|
|||
20
Злопчинский
21.01.14
✎
14:56
|
исходный текст запроса
. ТекстЗапроса =" |delete |from $Регистр.Заявки as Рег |where $Рег.Счет in | (select Жур.iddoc from 1sjourn as Жур | inner join $Документ.Счет as Счет on Cчет.iddoc = Жур.iddoc and $Счет.Отключен = 1 | where Жур.iddocdef = $ВидДокумента.Счет and | dtos(Жур.date)+Жур.time+Жур.iddoc | between dtos(:НачДата~~)+' '+' ' | and dtos(:КонДата~~)+'ZZZZZZ'+'ZZZZZZZZZ' | ) |"; Запрос.УстановитьТекстовыйПараметр("НачДата", '01.01.80'); Запрос.УстановитьТекстовыйПараметр("КонДата", ВыбДата); Запрос.ВыполнитьИнструкцию(ТекстЗапроса); |
|||
21
Злопчинский
21.01.14
✎
14:56
|
дает ошибку
. delete from ra1410 as Рег where Рег.sp1418 in (select Жур.iddoc from 1sjourn as Жур inner join dh196 as Счет on Cчет.iddoc = Жур.iddoc and Счет.sp1472 = 1 where Жур.iddocdef = ' 5G' and dtos(Жур.date)+Жур.time+Жур.iddoc between dtos({d '1980-01-01'})+' '+' ' and dtos({d '2013-03-31'})+'ZZZZZZ'+'ZZZZZZZZZ' ) Запрос.ВыполнитьИнструкцию(ТекстЗапроса); {D:\BASES\ДОРАБОТКИ\КОПИЯ СПЕЦОДЕЖДА3\EXTFORMS\ОЧИСТКАРЕГИСТРЗАЯВКИ.ERT(28)}: FAILED! ICommandText::Execute(): Syntax error. |
|||
22
Ёпрст
гуру
21.01.14
✎
14:57
|
убери табуляцию всю из текста запроса + условие на вид документа выкинь..
+ ты именно мой код запущаешь, с моим соединением ? + не монопольно, надеюсь ? |
|||
23
Злопчинский
21.01.14
✎
14:58
|
(17) да и как я наййду в консоли решение если там будет та же самя ошибка...?
|
|||
24
Ёпрст
гуру
21.01.14
✎
14:58
|
ТекстЗапроса ="
|delete |from $Регистр.Заявки |where sp1418 in |(select Жур.iddoc from 1sjourn as Жур |inner join $Документ.Счет as Счет on Cчет.iddoc = Жур.iddoc and $Счет.Отключен = 1 |where Жур.iddocdef = $ВидДокумента.Счет and |dtos(Жур.date)+Жур.time+Жур.iddoc |between dtos(:НачДата~~)+' '+' ' |and dtos(:КонДата~~)+'ZZZZZZ'+'ZZZZZZZZZ' |) |"; так, че пишет ? |
|||
25
Злопчинский
21.01.14
✎
14:59
|
(22)да, именно твой вариант - описан выше
ща пробую с табуляциям убрать и почему на вид убрать условие - лишнее? |
|||
26
Злопчинский
21.01.14
✎
14:59
|
не так быстро - метаюсь между компами и шлюзами
|
|||
27
Ёпрст
гуру
21.01.14
✎
15:01
|
условие не лишнее, у меня теперь комплекс из-за trad, я всегда теперь путаю, как писать
$ВидДокумента.Счет и $ВидДокумента36.Счет :))))))))))))))))))))))) |
|||
28
Злопчинский
21.01.14
✎
15:08
|
delete
from ra1410 where sp1418 in (select Жур.iddoc from 1sjourn as Жур inner join dh196 as Счет on Cчет.iddoc = Жур.iddoc and Счет.sp1472 = 1 where Жур.iddocdef = ' 5G' and dtos(Жур.date)+Жур.time+Жур.iddoc between dtos({d '1980-01-01'})+' '+' ' and dtos({d '2010-01-01'})+'ZZZZZZ'+'ZZZZZZZZZ' ) Запрос.ВыполнитьИнструкцию(ТекстЗапроса); {D:\BASES\ДОРАБОТКИ\КОПИЯ СПЕЦОДЕЖДА3\EXTFORMS\ОЧИСТКАРЕГИСТРЗАЯВКИ.ERT(31)}: FAILED! ICommandText::Execute(): SQL: Column ' ' is not found. |
|||
29
Ёпрст
гуру
21.01.14
✎
15:12
|
это, а ты через что этот запрос выполняешь хоть ?
Через oledb ? |
|||
30
Ёпрст
гуру
21.01.14
✎
15:14
|
Даже не знаю.. а так ?
ТекстЗапроса =" |delete рег |from $Регистр.Заявки as Рег |where $Рег.Счет in |(select Жур.iddoc from 1sjourn as Жур |inner join $Документ.Счет as Счет on Cчет.iddoc = Жур.iddoc and $Счет.Отключен = 1 |where |dtos(Жур.date)+Жур.time+Жур.iddoc |between dtos(:НачДата~~)+' '+' ' |and dtos(:КонДата~~)+'ZZZZZZ'+'ZZZZZZZZZ' |) |"; |
|||
31
Ёпрст
гуру
21.01.14
✎
15:16
|
Соединение у тя такое хоть ?
Соединение = "Provider=VFPOLEDB.1;Data Source=" + КаталогИБ() + ";Exclusive=Yes;Mode=ReadWrite;Collating Sequence=MACHINE"; ДБ = СоздатьОбъект("OLEDBData"); Рез = ДБ.Соединение(Соединение); Запрос = ДБ.СоздатьКоманду(); Запрос.Выполнить("EXECSCRIPT('SET ANSI OFF')"); Запрос.Выполнить("EXECSCRIPT('SET REFRESH TO 0,-1')"); Запрос.Выполнить("Exec('SET TABLEVALIDATE TO 0')"); |
|||
32
Ёпрст
гуру
21.01.14
✎
15:31
|
Чебур, я нашел ошибку.. она в синтаксисе-где-то рус/лат буква была
:) |
|||
33
Ёпрст
гуру
21.01.14
✎
15:32
|
в присоединении таблиц
|
|||
34
Злопчинский
21.01.14
✎
15:36
|
В итоге-то какой текст запроса..?
|
|||
35
Злопчинский
21.01.14
✎
15:37
|
Запрос четко как ты написал копипастом первоначальный
|
|||
36
Злопчинский
21.01.14
✎
15:42
|
перебил в первоначальном запросе после inner join - пофиг анрекогназ кейворд... буду перебивать вообще весь запрос
|
|||
37
Ёпрст
гуру
21.01.14
✎
15:43
|
ТекстЗапроса ="
|delete Рег |from $Регистр.Заявки as Рег |where $Рег.Счет in |(select Жур.iddoc from 1sjourn as Жур |inner join $Документ.Счет as Док on Док.iddoc = Жур.iddoc and $Док.Отключен = 1 |where |dtos(Жур.date)+Жур.time+Жур.iddoc |between dtos(:НачДата~~)+' '+' ' |and dtos(:КонДата~~)+'ZZZZZZ'+'ZZZZZZZZZ' |) |"; |
|||
38
trad
21.01.14
✎
15:45
|
(27)
применительно к iddocdef в sql - $ВидДокумента.Счет в dbf - $ВидДокумента36.Счет |
|||
39
Ёпрст
гуру
21.01.14
✎
15:47
|
вот, в консоли работает в типовой
|delete Рег |from $Регистр.Заявки as Рег |where $Рег.ЗаявкаПокупателя in |(select Жур.iddoc from 1sjourn as Жур |inner join $Документ.ЗаявкаПокупателя as Док on Док.iddoc = Жур.iddoc |where |dtos(Жур.date)+Жур.time+Жур.iddoc |between dtos(:НачДата~~)+' '+' ' |and dtos(:КонДата~~)+'ZZZZZZ'+'ZZZZZZZZZ') | |
|||
40
Ёпрст
гуру
21.01.14
✎
15:48
|
(38) на самом, деле , в дбф нет разницы с 36..в данном случае :)
|
|||
41
Злопчинский
21.01.14
✎
15:49
|
беру (37) сейчас прорверю
|
|||
42
Ёпрст
гуру
21.01.14
✎
15:50
|
+40 а может и есть..блин
%) |
|||
43
Ёпрст
гуру
21.01.14
✎
15:51
|
посмотрел, точно нет разницы для дбф..
! :) |
|||
44
Злопчинский
21.01.14
✎
15:52
|
(37) вроде пошел, буду смотреть ща аккуратно
|
|||
45
Злопчинский
21.01.14
✎
15:53
|
ты блин скажи в каком слове ошибка была, а тоя до половину запрос побуквенно перебил - и никак... ;-)
|
|||
46
trad
21.01.14
✎
15:54
|
(43)
в дбф $ВидДокумента.Счет = $ВидДокумента36.Счет ? не знал |
|||
47
Ёпрст
гуру
21.01.14
✎
16:02
|
(46) ага..
|
|||
48
Ёпрст
гуру
21.01.14
✎
16:02
|
(45) в on
|
|||
49
Ёпрст
гуру
21.01.14
✎
16:02
|
хотя, пришлось консоль открыть и слепить аналог в демке тиса
|
|||
50
Злопчинский
21.01.14
✎
16:07
|
(49) хз... я вроде перебил on - все равно ругалось на нераспознанное ключевое слово.
. в консоли показывает ошибку более адресно? . сумму за запрос озвучь на почту. |
|||
51
Ёпрст
гуру
21.01.14
✎
16:13
|
(50) не показывает
ничего не надо |
|||
52
Злопчинский
21.01.14
✎
17:41
|
(51) ну как это так ничего не надоююю
. проверил, работает нормально период подчистила, НО ОСТАЛИСЬ ЗАПСИ за последний месяц заданного периода... . ьт.е задавал период выборки счетов Кондата - 31.03.2013 0 все предыдущие месяц убила, а движения за 03 месяц - осталисьюю . ??? |
|||
53
Ёпрст
гуру
21.01.14
✎
17:44
|
(52) ^))
|
|||
54
Ёпрст
гуру
21.01.14
✎
17:46
|
Ты же сам сказал, удаляем не по дате записей регистра, а по дате Документа-измерения..
Разве нет ? Если нужно было бы по дате движения регистра, там запрос другой был бы. |
|||
55
Ёпрст
гуру
21.01.14
✎
17:47
|
сейчас у тебя запрос выкашивает записи, где измерение счет имеет такой то реквизит и дата этого счета из диапазона такого то..
|
|||
56
Злопчинский
21.01.14
✎
17:48
|
(54) удаляем все движени и все итоги относящиеся к счету, находящемуся в определенном периодею
то есть удалить все записи в регистре пор счетам, находящимся в периоде с НачДата по КонДата |
|||
57
Злопчинский
21.01.14
✎
17:48
|
(55) угу так и должно быть по идее
|
|||
58
Злопчинский
21.01.14
✎
17:49
|
в принципе ок, модет там флажок не 1 а 2 или три - подправлю сам, это некритично...
|
|||
59
Ёпрст
гуру
21.01.14
✎
17:50
|
(57) и ?
хочешь сказать, что у тебя сейчас в регистре остались записи со счетами, которые в этом диапазоне дат ? Не верю :) |
|||
60
Ёпрст
гуру
21.01.14
✎
17:52
|
(58) а...
ты селект натрави, т.е выполни вложенный подзапрос - увидишь все записи (документы твои), которые будут "удаляться" |
|||
61
Злопчинский
21.01.14
✎
21:03
|
(59) предварительно - да.
(60) которые будут удаляться - они и удалятся.. проблема (предварительно) в том, что какие-то хвосты остались... . вменяемо ответить не могу, бо доступа нет, на месте - жуткий цейтнот, заадменено так что жпс, права имхо кривые, никакого инструментария нет - регпринт пришлось самому запросом ваять - на исследование времени не остается.. . удастся выяснить - ок, не удастся - пока что клинч по размеру файла ликвидирован, разборки потом. Обрезать сегодня хотели - оттренернул уже, все ок. но перенесли на четверг - бо толком никто сказать не может где скажется обрезка - на каких отчетах/документах - бо конфа - изумительный утконос-ехидна, развивавшийся в полной изоляции лет наверное 12-15... никто не имеет представления как оно работает что с чем и почему куда зависит ... аудировать и восстанавливать схему учета - пока что нет никакой возможности.. пока что огромными дозами "антибиотиков" пытаюсь оперативно купировать метастазы... - бо файл вплотную подобрался к 2гигам, открытие февраля обрушит все гарантированно.. вдобавок движок не подправлен под проблему 1гига.. но судя по первому диагнозу - отчетами по этому регистру не пользуются.. отчет вообще тотально незакрыт. удаление нулевых итогов по первоначальному варианту ВООБЩЕ ни ужало ни на 1 байт... жпс полный короче |
|||
62
Злопчинский
21.01.14
✎
21:10
|
..предел файла для ДБФной версии = ровно 2 гига? кратно 1024 (степень двойки), то есть 2.147.483.648 байт? или какой-то другой размер?
|
|||
63
Ёпрст
гуру
22.01.14
✎
08:24
|
(62) дасистак!
|
|||
64
Ёпрст
гуру
22.01.14
✎
08:26
|
Если заявками не пользуются, то проще выкосить его в конфе... насовсем.
|
|||
65
Ёпрст
гуру
22.01.14
✎
08:26
|
%)
|
|||
66
DrZombi
гуру
22.01.14
✎
08:47
|
(0) Прямые запросы лучше всего отлаживать в QA на сервере SQL.
А не в 1С :) |
|||
67
trad
22.01.14
✎
09:07
|
(66) даже к dbf?
|
|||
68
Злопчинский
22.01.14
✎
22:31
|
(63) фантастиш практиш гут ;-)
|
|||
69
Злопчинский
22.01.14
✎
22:37
|
(64). пользуются или нет по документам (по крайней мере на запись в регистр) - это можно сказать выяснено
. но вот в каких отчетах что-то берется из регистра и в где в других местах читается что-то из этого регистра - уже проблематичней: . реально ща никто не представляет в каких отчетах это юзается и юзается ли вообще (по моим телепатиям - как верно написано выше - большое подозрение что можно "снести" нафиг). . как искать - где используется этот регистр? - пока ничего вголову кроме как тупым поиском по всем текстам строки ".Заявки" - не приходит... Вдобавок наблюдается картинка, что обработки/отчеты могут лежать вне каталога базы - где именно и какие - на данный момент однозначно сказать никто не может. . вот акой вот зоопарк... . какие мысли еще есть как поискать где регистр используется на чтение..? |
|||
70
Ёпрст
гуру
23.01.14
✎
10:37
|
(69) поиск во всех текстах ищет в любой папке на диске.. можешь хоть весь комп прошерстить.. это не долго.
А проще, turbomd, выкашивание регистра. Ждешь.. если всплывет сообщение от пользователей - правишь. Хотя 100% - никто этим не пользуется....вообще. |
|||
71
Злопчинский
23.01.14
✎
22:10
|
(70) ваще пипец.. база в запущенном сотяонии ужас на... но как-то все работают - кучей галочек в документах и прочем...
. поковырял по моей "претензии" что не все подчистило.. все работает как надо - ясен пень было в запросе ограничивающее условие, которое должно срабатывать на доках - а не срабатывало, потому как если флажок не взведен в документе - то хоть уссыся..;-) . вдобавок база вдребезги покурочена судя по всему прямыми запросами - в бешеных колиечтсвах присутсвуют движеняи в помеченных на удаление доках и прчего еще всякого... судя по всему система выродилась в "подокументный" учет с флажками, кнопочками, кучей вводов на основаниях, а регистры где-то как-то вспомогательно.. никто толком не знает что как и почему... общую идею примерно по крупицам собрать можно, но в частностях - жпс ;-) не смертельно, конечно, но удовольствия мало ковырятьс ов всем этом - имеет смысл только если реинжиниринг БП для перехода... . все - как обычно.. спрашивается - в большой (?) конторе - кто должен досконально знать идею постороения учета и как это преломляется в имеющемся конфигураци-фейсах для юзверей - 1сник и все..? |
|||
72
Z1
23.01.14
✎
22:27
|
(71)
>>>вдобавок база вдребезги покурочена судя по всему прямыми >>>запросами - в бешеных колиечтсвах присутсвуют движеняи в >>>помеченных на удаление доках и прчего еще всякого... Переводи базу на sql. Как бы если не захотят покупать sql сервер ( железо софт ) то и не стоит начинать разбираться (ИХМО ) В sql гораздо комфортней выявишь целостность базы данных. |
|||
73
Злопчинский
23.01.14
✎
22:34
|
(72) не те объемы чтобы в скуль пихать.
а насчет удобства - я всеми этими скульями и прямыми владею слабо - так, простенькие выборки накатать да какое-нить одно соединение - так что мне комфортность - пофиг.. посавлю если что - консоль запросов на ДБФ и все |
|||
74
Z1
23.01.14
✎
22:41
|
(73) знание дело наживное.
как бы на реальном сложном примере освоишь sql. ну и как бы второй скрытый смысл если большая контора не захочет купить софт и железо под сервер то и тебе вряд ли адекватно заплатят за работу. |
|||
75
Злопчинский
23.01.14
✎
22:44
|
(74) да я особо не парюсь - работа неинтересная и временно-разовая...
. а "большая контора" - понятие растяжимое... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |