|
Запись движений документа в режиме Загрузка = Ложь | ☑ | ||
---|---|---|---|---|
0
MonteCarlo
24.04.18
✎
14:58
|
Уважаемые форумчане. Помогите разобраться с вопросом. Суть задачи такая. Из одной базы ERP, в которой ведется учет зарплаты, выгружается документ в другую базу ERP, в которой бух учет. Документ Отражение зарплаты в финансовом учете. Выгружается сводный документ. Есть проводка Дт 76.09 Кт 68.01. По 76.09 3 субконто, но в сводном режиме документа субконто не пишутся. При по правилам субконто не выгружаются, т.к. в базе они с типом Неопределено. В базе приемника при записи движений, если учет по субконто ведется, но при этом субконто не заполнено, то в случае режима Загрузки в таблицу Значения субконто ничего не пишется. А если режим ОбменДанными.Загрузка = Ложь, тогда в таблицу субконто пишутся запись с типом неопределено. В этом проблема. Обмен всегда записывает в режиме Загрузка. Как ее отключить для регистра бухгалтерии только для этого документа не понимаю. Пробовал в обработчике ПослеЗагрузки в ПКО, но он срабатывает перед записью объекта в ИБ. Да и перед записью в механизме обмена жестко выставляется ОбменДанными.Загрука в Истину. Есть идея записывать в обработчике эти движения, но хотелось бы сделать все аккуратно. Подскажите, кто сталкивался?
|
|||
1
cw014
24.04.18
✎
15:03
|
Я не очень понял о чем речь, но я не думаю, что проблема именно в Загрузка = Ложь
|
|||
2
MonteCarlo
24.04.18
✎
15:06
|
Проблема точно в Загрузка ложь. Ставил точку останова Перед записью НАбора записей Хозрасчетный, менял программно этот флаг. В случае когда запись происходит не в режиме Загрузки, то в субконто пишутся запись с типом Неопределено, а в режиме Загрузки ничего не пишется и в дальнейшем в виртуальных таблицах появляются null
|
|||
3
MonteCarlo
24.04.18
✎
15:53
|
Ни у кого что-ли не было случаев, когда проводки перегружались с пустым субконто?
|
|||
4
cw014
24.04.18
✎
15:54
|
Что в наборе записей перед записью регистра, и что в наборе записей после записи регистра
|
|||
5
cw014
24.04.18
✎
15:55
|
Повангую. В наборе записей до записи лежит то, что в итоге у тебя получается с Загрузка = Истина.
При этом если "Загрузка = Истина" - оно так и остается Если "Загрузка = Ложь" - там чудом что-то появляется. Так? |
|||
6
Buster007
24.04.18
✎
15:58
|
допили выгрузку в режиме сводно, чтобы субконто выгружалось со значением неопределено
|
|||
7
MonteCarlo
24.04.18
✎
16:00
|
Не не совсем. В модуле набора записей есть события ПередЗаписью и ПриЗаписи. Перед записью и при записи набор записей одинаковый. Есть Таблицы СубконтоДТ и СубконтоКТ. Вот СубконтоДТ пустая, хотя у этого счета определены 3 субконто (КА, Договоры, Расчетные документы). Всё происходит в момент записи в таблицу ЗначенияСубконто. Но не могу найти этот момент в коде. Когда происходит эта запись? Сдается мне, что это платформенный механизм. В режиме Загрузка = Истина в таком случае в эту таблицу ничего не пишется, а в режиме Загрузка = Ложь пишется 3 строки с типом неопределено.
|
|||
8
MonteCarlo
24.04.18
✎
16:01
|
(6) Собственно этим сейчас и занимаюсь. Но хотелось бы понять, где происходит запись в таблицы Субконто и можно ли как-то повлиять на этот процесс?
|
|||
9
Cyberhawk
24.04.18
✎
16:02
|
Много букв
|
|||
10
MonteCarlo
24.04.18
✎
16:03
|
(6) Еще была идея писать движения этого документа в режиме Загрузка = Ложь. Но не соображу как это сделать. Ведь механизм обмена жестко ставит Режим = Истина перед записью объект в ИБ.
|
|||
11
cw014
24.04.18
✎
16:03
|
"Вот СубконтоДТ пустая" - о чем и речь. У тебя событие "ПередЗаписью" срабатывает и что-то дозаполняет. Не срабатывает только, если "ОбменДанными.Загрузка = Истина"
|
|||
12
MonteCarlo
24.04.18
✎
16:04
|
(9) Если пишешь мало букв, то люди начинают писать сообщения типа "мы не телепаты, опиши подробно"...
|
|||
13
MonteCarlo
24.04.18
✎
16:05
|
(11) Нет. Я проверил все процедуры, которые выполняются после этой отсечки. Я же написал выше, что состояние набора записей в событии ПриЗаписи не меняется. Таблица СубконтоДТ такая же пустая.
|
|||
14
Cyberhawk
24.04.18
✎
16:05
|
(12) Писать много букв в этом случае недостаточно. Нужно еще и порядок в голове иметь, чтобы вылить это на бумагу, а не сплошняков за который тебе разве что только плюнуть в лицо можно захотеть
|
|||
15
cw014
24.04.18
✎
16:06
|
"состояние набора записей в событии ПриЗаписи не меняется" - значит ищи заполнение в событии "ПриЗаписи"
|
|||
16
MonteCarlo
24.04.18
✎
16:06
|
(14) Что непонятного я написал в посте?
|
|||
17
cw014
24.04.18
✎
16:07
|
НА худой конец смотри подписки, где фигурирует этот регистр
|
|||
18
MonteCarlo
24.04.18
✎
16:10
|
(17) В событии перед записью есть функция обработки проводок, но там приводится тип в случае мультитипового субконто. Там обходится коллекция. Но у меня коллекция пустая, так что в ней с моим набором ничего не происходит. Делал замер производительности, чтобы понять, что еще происходит с набором после записи. Но во-первых ничего не нашел, во-вторых, запись уже произошла, если бы что-то делалось с набором записей его же потом снова нужно было бы записать и я бы опять отловил бы события перед записью и при записи.
|
|||
19
piter3
24.04.18
✎
16:12
|
(16) Все
|
|||
20
cw014
24.04.18
✎
16:14
|
(18) Ну вот прям не верится. Давай скриншотами закидай, что у тебя "до", а что "после". Желательно примером, что в таблице
|
|||
21
Buster007
24.04.18
✎
16:19
|
у тебя есть ПКО набора записей РБ. Вот именно туда тебе и надо
|
|||
22
Buster007
24.04.18
✎
16:21
|
вообще непонятно зачем смотреть в код, который выполняется после загрузка = истина, если у тебя выполняется загрузка? Это говорит о том, что все твои записи уже были записаны ранее и они корректные, и никакие дальнейшие обработки с ними не требуются. Если они у тебя кривые приходят, значит выгрузка записей работает криво и здесь 2 варианта: допилить выгрузку; допилить данные после чтение их из файла.
|
|||
23
cw014
24.04.18
✎
16:22
|
(22) Ну вот ты так в лоб прямо. Надо же подвести человека к этому умозаключению. А то сейчас он будет охать и ахать, чем же их заполнять
|
|||
24
MonteCarlo
24.04.18
✎
16:26
|
(22) То что нужно допилить правила обмена, чтобы выгружались записи с НЕопределено я понимаю. Я хотел узнать, почему в одном режиме ничего не пишется в таблицу ЗначенияСубконто, а в другом режиме пишутся записи с типом неопределено, в случае если Субконто пустые.
|
|||
25
MonteCarlo
24.04.18
✎
16:27
|
(23) Вы наверное действительно не поняли суть вопроса в моем обращении, раз так считаете.
|
|||
26
MonteCarlo
24.04.18
✎
16:30
|
http://forums.kuban.ru/f1040/1c_bp_8_2_pustye_subkonto_po_70_ne_vzaimozakryvayutsya_kak_zakryt--7152902.html
Вот тут похожая на мою проблема и там в 14 сообщении человек написал про режимы записи в РБ. |
|||
27
MonteCarlo
24.04.18
✎
16:31
|
(26) Так я вот хочу понять где можно увидеть момент записи в таблицу ЗначенияСубконто
|
|||
28
cw014
24.04.18
✎
16:32
|
(25) Как раз таки понял. Детали ты рассказываешь конечно многобуквенно, но туманно. У тебя два события "ПередЗаписью" и "ПриЗаписи". У событий есть начало процедуры и конец процедуры. В обоих случаях (ОбменДанными.Загрузка = [Истина|Ложь]) в обоих обработчиках поставить "зарубки" на начало процедуры и конец процедуры тебе лень. Что бы проверить, что твои доводы действительно такие. Так же тебе лень проверить, какие есть подписки на события
|
|||
29
cw014
24.04.18
✎
16:32
|
Таблица "ЗначенияСубконто" - это что за таблица?
|
|||
30
Cyberhawk
24.04.18
✎
16:33
|
(16) Хз, Я ведь не читал его, т.к. много букв сплошняком все - УГ
|
|||
31
unregistered
24.04.18
✎
16:34
|
(24) >> почему в одном режиме ничего не пишется в таблицу ЗначенияСубконто, а в другом режиме пишутся записи с типом неопределено, в случае если Субконто пустые
Потому что в режиме ОБменДанными.Загрузка = Ложь при выполнении обработчика события ПередЗаписью выполняется процедурка ПривестиПустыеЗначенияСубконтоСоставногоТипа(ЭтотОбъект). В этой процедурке выполняется код для Дт и Кт проводки: Для Каждого Субконто Из Проводка.СубконтоДт Цикл Если НЕ ЗначениеЗаполнено(Субконто.Значение) И Субконто.Значение <> Неопределено И СоставнойТипСубконто(Субконто.Ключ, КэшВидыСоставныхСубконто) Тогда Проводка.СубконтоДт.Вставить(Субконто.Ключ, Неопределено); КонецЕсли; КонецЦикла; |
|||
32
cw014
24.04.18
✎
16:34
|
"Вот СубконтоДТ пустая, хотя у этого счета определены 3 субконто" - ты посмотри, что такое "СубконтоДТ" и "СубконтоКТ", как с ними работать. Платформа на самом деле нифига не знает, что туда писать
|
|||
33
unregistered
24.04.18
✎
16:35
|
(29) Физическая таблица, куда пишутся значения субконто из проводки. В физической таблице самих движений регистра бухгалтерии субконто не пишутся - там только счета, измерения и ресурсы (как у регистров накопления).
|
|||
34
MonteCarlo
24.04.18
✎
16:36
|
(32) Основная таблица хранит проводки (движения регистра бухгалтерии) без данных аналитического учета. Для хранения данных аналитического учета предназначена вторая реальная таблица регистра бухгалтерии – таблица значений субконто. Эта таблица не содержит числовых характеристик и вряд ли может использоваться самостоятельно. В таблице хранится информация о виде и значении каждого субконто проводки. Для получения полной информации о проводке (включая данные аналитического учета) система соединяет данные таблицы движений и таблицы значений субконто по периоду, регистратору и виду движения. Субконто хранятся платформой компактно, и количество полей этой таблицы не зависит от количества субконто на счете. Чем больше субконто описано в проводке, тем больше записей будет содержать таблица значений субконто. Одной проводке из основной таблицы может соответствовать несколько записей таблицы значений субконто. Обращение к таблице значений субконто в нашем случае будет выглядеть так (листинг 4.23).
|
|||
35
MonteCarlo
24.04.18
✎
16:36
|
(31) Почитай пожалуйста выше
|
|||
36
MonteCarlo
24.04.18
✎
16:37
|
(28) Я же русскими буквами написал, что ставил точки останова и в начале процедуры и в конце. И через замер производительности искал, что еще выполняется после этих процедур.
|
|||
37
unregistered
24.04.18
✎
16:37
|
(32) Я всё внимательно прочитал. Я не понимаю чего ты хочешь и что тебя смущает. Всё работает правильно и корректно.
|
|||
38
cw014
24.04.18
✎
16:37
|
(33) Я просто конкретно данного идентификатора "ЗначениеСубконто" не нашел в СП. То есть смею предположить, что это какая-то табличная часть или таблица значений
|
|||
39
unregistered
24.04.18
✎
16:37
|
* (37) к (35)
|
|||
40
MonteCarlo
24.04.18
✎
16:37
|
(33) Хоть один человек знает и на том спасибо.
|
|||
41
cw014
24.04.18
✎
16:38
|
(36) Я умываю руки. Видит Павел Дуров, я тебе пытался помочь во имя телеграмма
|
|||
42
unregistered
24.04.18
✎
16:38
|
(38) См. справку к таблицам регистра бухгалтерии.
Это не таблица значений и не табличная часть. PS Такое впечатление, что ты регистр бухгалтерии вчера увидел впервые. |
|||
43
cw014
24.04.18
✎
16:38
|
(36) + замер производительности с пробегом по таблице из трех строк мало чего тебе даст
|
|||
44
MonteCarlo
24.04.18
✎
16:39
|
(31) Ты привел кусок кода, который выполняется в процедуры ПередЗаписью, который приводит тип. Но ты же видишь свой же код, который ты пишешь? В нем идет обход по коллекция, а у меня коллекция пустая.
|
|||
45
cw014
24.04.18
✎
16:39
|
(42) Дык смотрю, и в упор не вижу. Вижу "СубконтоДт" и "СубконтоКт". Имеют тип "РегистрБухгалтерииСубконто.<Имя регистра бухгалтерии>"
|
|||
46
MonteCarlo
24.04.18
✎
16:40
|
(41) Чем ты мне пытался помочь? НАзвав меня дураком, который не может точку останова поставить и посмотреть что у него в наборе записей? Спасибо, помощник.
|
|||
47
MonteCarlo
24.04.18
✎
16:42
|
https://www.forum.mista.ru/topic.php?id=803359
Вот еще ситуация похожая, только там не обменом набор приходит, а после добавления нового субконто, по старым записям в этой таблице нет записей и поэтому null имеем. |
|||
48
unregistered
24.04.18
✎
16:42
|
(44) >> у меня коллекция пустая
С чего ты это взял? Что такое СубконтоДт? Это соответствие. В этой коллекции количество элементов соответствует количеству видов субконто. В типовой БП 3.0 их около 60 штук. |
|||
49
cw014
24.04.18
✎
16:42
|
(46) Где тебя дураком то обозвали?
|
|||
50
MonteCarlo
24.04.18
✎
16:43
|
(30) Если лень читать мог бы просто пройти мимо молча. Или не мог?
|
|||
51
unregistered
24.04.18
✎
16:43
|
(44) >> В нем идет обход по коллекция
Ты понимаешь, что при обмене данными этот код вообще не выполняется и не должен выполняться?... |
|||
52
MonteCarlo
24.04.18
✎
16:44
|
(48) Коллекция пустая, потому что я ставил точку останова и в момент обмена смотрел что там внутри. Она пустая.
|
|||
53
MonteCarlo
24.04.18
✎
16:45
|
(51) А почему не выполняется? Потому что Загрузка = Истина. Мне и не нужно его выполнять, мне нужно, чтобы платформа записывая мою пустую таблицу субконто сама создала записи с типом Неопределено, как это просиходит, если загружаешь в Режиме Загрузка = Ложь.
|
|||
54
unregistered
24.04.18
✎
16:47
|
(45) Еще раз: смотри не СП, а справку!
В конфигураторе, в главном меню "Справка" - "Справка". Там "Содержание". Потом находишь Встроенный язык - Работа с запросами - Таблицы запросов - Таблицы регистра бухгалтерии (с поддержкой корреспонденции) - Таблица значений субконто. |
|||
55
MonteCarlo
24.04.18
✎
16:48
|
Еще раз подробненько.
В базе Источника документ пишет сводно, без аналитики. Создается проводка в которой субконто с типом НЕопределено. При выгрузке этот тип не выгружается, так как в КД при написании ПКС в соответствии описывается очень много типов источника и приемника, но типа НЕопределено там нет. В итоге при загрузке в Приемник эта балица пустая, то есть Количество() = 0, если кому непонятно. |
|||
56
cw014
24.04.18
✎
17:06
|
(54) Посмотрел. Почитал. Подумал что сам дебил. Но вот незадача. Раздел посвящен "РегистрБухгалтерии.<Имя регистра бухгалтерии>.Субконто".
Поля: Вид ВидДвижения Значение МоментВремени НомерСтроки Период Регистратор УточнениеПериода ТС оперирует понятием "Таблица "ЗначенияСубконто"". Вот такого ИДЕНТИФИКАТОРА (а написано оно, как именно идентификатор) в справке нет. В СП его тоже нет. Помнится такое когда то существовало в 7.7 Если вы физические абстрактные таблицы так называете - проф может быть и поймет о чем речь, но он и не будет задавать таких вопросов. А новичек будет оперировать данным термином (читай идентфикатором), как абстрактным понятием, не понимая конкретно что это. А вот если оперировать именно типами и идентификаторами виртуальных таблиц - может чего то и возможно будет добиться |
|||
57
cw014
24.04.18
✎
17:07
|
(54) К вышесказанному добавлю, что это может быть ИДЕНТИФИКАТОРОМ метаданных
|
|||
58
MonteCarlo
24.04.18
✎
17:10
|
(56) Я же тебе в (34) цитату с ИТС вставил. Они её так называют. Таблица значений субконто.
|
|||
59
MonteCarlo
24.04.18
✎
17:10
|
"Наверное, я не открою тайну, сказав что регистр бухгалтерии это несколько таблиц, а виртуальные таблицы запросов в 1С - суть результат соединений нескольких наборов данных в СУБД?
Соответственно, при записи в БД набора затрагиваются несколько таблиц. Так вот, при записи в БД набора в режиме загрузки в таблицу значений субконто (при отсутствующем субконто) не будет записано ничего, и последующие выборки вернут NULL; при записи же не в режиме загрузки платформа запишет в эту таблицу приведённое к допустимому типу пустое значение и последующие выборки NULL уже не вернут" Это цитата с форума, где люди обсуждают похожую проблему. |
|||
60
MonteCarlo
24.04.18
✎
17:12
|
Я понимаю, что платформа отрабатывает правильно. Я просто пытаюсь понять, можно ли вообще отловить это событие записи в эту таблицу субконто. И можно ли при загрузке через обмен записать в режиме Загрузка = Ложь, чтобы платформа отработала по другому сценарию и записала строки с типом НЕопределено.
|
|||
61
cw014
24.04.18
✎
17:12
|
(58) Коллега, таблица значений субконто <> таблица "ЗначенияСубконто"
|
|||
62
MonteCarlo
24.04.18
✎
17:14
|
СЕйчас тестировал выгрузку. В обработчике ПКС ПередВыгрузкой и ПослеВыгрузки у свойства НАборДвижений РБ.Хозрасчетный натыкал Сообщить() и увидел, что пустые записи то с типом Неопределено там есть. Но вот в файле обмена xml их уже нет. Где они могу очищаться, не подскажете?
|
|||
63
MonteCarlo
24.04.18
✎
17:16
|
(61) Тем не менее unregistered понял о чем речь, а ты к сожалению нет. Прости, это моя вина. В дальнейшем постараюсь писать точно термины.
|
|||
64
cw014
24.04.18
✎
17:19
|
(63) Дело в том, что я приблизительно тоже. Но все же простая характеристика таблицы в виде идентификатора объекта метаданных или внутреннего идентификатора поставила в тупик
(54) Разобрался с физическими таблицами. Правда путь к справке ты неверный написал. Данное перечисление (хотя и строковое) есть только у таблицы, полученной функцией "ПолучитьСтруктуруХраненияДанных" в колонке "Назначение". |
|||
65
Сияющий в темноте
24.04.18
✎
17:27
|
А задать пустые субконто явно религия не позволяет?
|
|||
66
MonteCarlo
24.04.18
✎
17:28
|
(65) Где задать?
|
|||
67
MonteCarlo
24.04.18
✎
17:28
|
(65) (62)
|
|||
68
cw014
24.04.18
✎
17:34
|
(62) Есть обработчики какие нибудь у ПКО или ПКС?
|
|||
69
MonteCarlo
24.04.18
✎
17:42
|
(68) У ПКО документа Отражение зарплаты в финансовом учете есть обработчики ПередВыгрузкой, тут пишется РежимЗаписи и фильтр, чтобы выгружались только документы с флагом Сводно. Есть ПередЗагрузкой, тут выполняется код РежимЗаписи = "Запись";. Есть обработчик ПослеЗагрузки, тут выполняется код: Объект.Движения.ПрочиеРасходы.Записывать = Истина;
Объект.Проведен = Истина;. Всё. Есть ПКС Набор движений РБ. У него нет никаких обработчиков и отдельного правила конвертации тоже нет, просто проведено соответствие его свойств. |
|||
70
MonteCarlo
24.04.18
✎
17:44
|
Я думал что не выгружается из-за того, что в соответствии свойства СубконтоДТ нет типа НЕопределено. Но по факту обнаружил, что в обработчике ПередВыгрузкой и ПослеВыгрузки (я их сам добавил для тестирования) в переменной ОбъектКоллекции, есть нужные мне записи с типом Неопределено. Но в файл не попадают (
|
|||
71
Сияющий в темноте
24.04.18
✎
20:15
|
Неопределено,это пустое значение,а пустые значения в файл писать не принято,вот они туда и не попадают
вопрос же не в том,что в файл попало,а в том,как из пустых значений получить субконто,а это уже обработчик загрузки должен делать |
|||
72
Cyberhawk
25.04.18
✎
11:10
|
(50) Так Я в ветку уже зашел, смысл мимо проходить? Покритиковать хоть
|
|||
73
MonteCarlo
25.04.18
✎
11:36
|
(72) Критиковать можно, когда с материалом обсуждения ознакомился, а Вы судя по всему поленились даже прочитать. Так что иначе как толстый троллинг я это назвать не могу. И вообще замечаю, что на этом ресурсе очень много людей, которые считают, что они самые умные и позволяют себе троллить других. Вам вопрос, а Вы собственно зачем на этом ресурсе?
|
|||
74
cw014
25.04.18
✎
11:44
|
(73) Возьми обработчик "После загрузки". Пропиши туда все, что тебе нужно и перепроведи документ
|
|||
75
MonteCarlo
25.04.18
✎
12:02
|
(74) Как добраться до набора записей РБ в обработчике ПослеВыгрузки?
|
|||
76
Cyberhawk
25.04.18
✎
12:03
|
(73) Куда-то тебя понесло. Посыл простой - не пиши "сплошняковое УГ", структурируй излагаемый на форум текст
|
|||
77
cw014
25.04.18
✎
12:04
|
(75) Копай в сторону СП "ДокументОбъект.Движения"
|
|||
78
MonteCarlo
25.04.18
✎
12:06
|
(77) У меня выгружается документ. В его свойствах есть Хозрасчетный, это набор записей регистра бухгалтерии. В обработчике ПослеВыгрузки в ПКО к документу мне нужно добраться до этого самого набора, которые приехал вместе с документом. Объект.Движения есть, только если этот объект был найден в базе приемник. Если едет новый документ, то Объект.Движения.Хозрасчетный.Количество() = 0. Хотя в базе истоника есть проводка. И в файле выгрузке я ее вижу.
|
|||
79
cw014
25.04.18
✎
12:09
|
(78) в (74) прочитай внимательно каждое слово
|
|||
80
MonteCarlo
25.04.18
✎
12:13
|
(77) Предлагаете записать новый документ (он выгружается в режиме = "Запись"), а потом скорректировать движения и снова записать?
|
|||
81
hhhh
25.04.18
✎
12:13
|
(78) сделай Объект.Записать();
и потом Объект.Движения.Прочитать(); |
|||
82
hhhh
25.04.18
✎
12:14
|
(80) объект можно второй раз не записывать.
|
|||
83
MonteCarlo
25.04.18
✎
12:15
|
(82) Как отказаться от повторной записи? ОТказ = Истина?
|
|||
84
MonteCarlo
25.04.18
✎
12:35
|
(82) Пишу после всех действий в обработчике Отказ = НЕ ОбъектНайден. Проверил через трассировку, что объект на этот момент действительно не найден, значит Отказ = Истина. Документ все равно второй раз записывается.
|
|||
85
MonteCarlo
25.04.18
✎
13:01
|
Ребята, подскажите, как отказаться от второй записи объекта в базу? Отказ = Истина, ОбъектМодифицирован = Ложь. Всё равно пишет после всех манипуляций.
|
|||
86
cw014
25.04.18
✎
13:11
|
(85) После загрузки у тебя в Объект.Движения уже должны лежать движения. Правишь их. Никаких повторных перезаписей ненужно
|
|||
87
Buster007
25.04.18
✎
13:12
|
у набора записей установить Записывать = Ложь.
|
|||
88
MonteCarlo
25.04.18
✎
14:08
|
(86) Если объект не найден в базе приемника, то движения Объекта пустые
|
|||
89
MonteCarlo
25.04.18
✎
14:08
|
(87) У меня сам документ второй раз записывается.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |