|   |   | 
| 
 | учет рабочего времени по данным пропускной системы | ☑ | ||
|---|---|---|---|---|
| 0
    
        Abba 28.01.20✎ 15:57 | 
        TimeVal                  HozOrgan              Remar                                       Mode
 09.12.2019 9:26:38 58 6: Выход 4-й этаж служебный, Считыватель 2, Пр 2 09.01.2020 9:06:40 103 2: Вход дверь 2-й этаж служебный, Считыватель 1 20.01.2020 16:10:50 77 2: Вход дверь 2-й этаж служебный, Считыватель 1 21.01.2020 10:32:51 47 3: Выход 3-й этаж главный вход, Считыватель 2, 2 02.12.2019 17:00:41 56 6: Вход 4-й этаж служебный, Считыватель 1, При 1 23.01.2020 9:32:52 16 3: Вход 3-й этаж главный вход, Считыватель 1, 1 24.01.2020 14:24:22 54 4: Вход 3-й этаж служебный, Считыватель 1, При 1 17.01.2020 10:41:14 37 2: Выход дверь 2-й этаж служебный, Считыватель 2 27.01.2020 9:53:30 69 6: Выход 4-й этаж служебный, Считыватель 2, Пр 2 27.12.2019 13:47:58 64 2: Выход дверь 2-й этаж служебный, Считыватель 2 16.01.2020 8:07:03 89 6: Вход 4-й этаж служебный, Считыватель 1, При 1 30.12.2019 14:26:43 58 6: Выход 4-й этаж служебный, Считыватель 2, Пр 2 14.01.2020 8:56:27 36 1: Вход 2-й этаж гл.вход, Считыватель 1, Прибо 1 16.12.2019 17:34:00 4 5: Выход 4-й этаж главный вход, Считыватель 2, 2 23.12.2019 18:19:25 26 3: Выход 3-й этаж главный вход, Считыватель 2, 2 03.12.2019 16:22:59 48 2: Вход дверь 2-й этаж служебный, Считыватель 1 HozOrgan - ID сотрудника Mode - 1-вход 2- выход есть такая таблица,как по ней написать отчет о том,какие сотрудники в течении рабочего дня отлучались больше чем на 20 минут | |||
| 1
    
        olegves 28.01.20✎ 15:58 | 
        (0) запросом     | |||
| 2
    
        Solitar 28.01.20✎ 15:58 | 
        Интеграция с Орионом ?)     | |||
| 3
    
        XLife 28.01.20✎ 16:00 | 
        кто таких на работу берёт...     | |||
| 4
    
        shuhard 28.01.20✎ 16:00 | 
        (2) +100500
 и как всегда вышел 3 раза, а зашёл 1 | |||
| 5
    
        Дмитрий 28.01.20✎ 16:09 | 
        опубликуй ссылку на этот форум в чате предприятия и иди к директору за премией по случаю резкого скачка дисциплины )     | |||
| 6
    
        Йохохо 28.01.20✎ 16:09 | 
        (4) а некурящие 2/2     | |||
| 7
    
        Deon 28.01.20✎ 16:10 | 
        (0) Время работы каждого сотрудника есть где брать? А то вот я работаю до 18:00, а ушел в 17:35. Это отсутствие в 25 минуто тоже должно попасть в отчет )     | |||
| 8
    
        Йохохо 28.01.20✎ 16:11 | 
        и по этому отчету никак, нет Зоны, надо раб зону и внешний мир     | |||
| 9
    
        ZDenis 28.01.20✎ 16:13 | 
        (0) А если он вышел через 1 дверь, а вошел через другую (при этом дверь была открыта кем-то ранее и он не прикладывал карточку к считывателю). А так тут перец #58 два раза вышел. Первый раз в канун нового года, а второй уже девятого числа))     | |||
| 10
    
        Deon 28.01.20✎ 16:16 | 
        (9) Я в таких случаях считал, что если первая запись в дне Выход, то он пришел на работу точно вовремя. Хорошо, что все были 5-дневщиками     | |||
| 11
    
        Garikk 28.01.20✎ 16:19 | 
        (9) это быстро лечится - включением контроля прохода в помещение, что нельзя выйти из помещения не войдя туда, моментально все научатся карточки прикладывать, даже штрафовать никого не придется     | |||
| 12
    
        Йохохо 28.01.20✎ 16:21 | 
        (11) а проходная типа тамбур и денег стоит и место занимает. и 100 носов на смену за час пройдут еле еле)     | |||
| 13
    
        8 bit 28.01.20✎ 16:21 | 
        (0) пиши вручную     | |||
| 14
    
        olegves 28.01.20✎ 16:25 | 
        (8) есть событие вход и выход     | |||
| 15
    
        Garikk 28.01.20✎ 16:25 | 
        (12) нормально пройдут, я работал в двух конторах где уровень безопасности обязывает держать тамбур-шлюз...за 15 минут 400 человек в здание заходят без огромных очередей     | |||
| 16
    
        Йохохо 28.01.20✎ 16:28 | 
        (14) это не события покинул рабочее место     | |||
| 17
    
        rphosts 28.01.20✎ 16:29 | 
        (0) не перко случаем?
 Собирали в 1С по регламенту минут в 5 раз, со всех филиалов (на самом деле с 1 сервера перко), были допформочки где челы регили причину отсутствия(заблаговременно, ну кроме выйти покурить но покурить это только менее 5 мин отсутствия)... ну и отчёты были (по недоработке/переработке, оператиынеы сведения о присутствии/отсутствии/командировках/...) | |||
| 18
    
        Garikk 28.01.20✎ 16:31 | 
        <челы регили причину отсутствия>
 господи как я счастлив что в ит работаю... такое впечатление что в других профессиях какойто ужас и эксплуатация крепостных крестьян | |||
| 19
    
        olegves 28.01.20✎ 16:32 | 
        (17) имхо, считать жопочасы - последнее дело, и показывает "качество" среднего менеджерского звена     | |||
| 20
    
        Abba 29.01.20✎ 13:49 | 
        (1) каким? как найти интервал между выходом и входом более 20 минут?     | |||
| 21
    
        Abba 29.01.20✎ 13:50 | 
        почти все замечания не по делу,просто потрындеть зашли?     | |||
| 22
    
        TopProger 29.01.20✎ 13:55 | 
        (21) ну просто готовое решение долго набирать, а свои наработки вы не представили     | |||
| 23
    
        TopProger 29.01.20✎ 13:56 | 
        (20) Ну наверно надо как то подобрать чтобы в одной строке таблицы был выход и ближайший вход, скорее всего путем соединения таблицы с собой. А затем заюзать РазностьДат и по результату наложить отбор.     | |||
| 24
    
        Abba 29.01.20✎ 14:05 | 
        (23) вот ближайший вход как организовать?     | |||
| 25
    
        TopProger 29.01.20✎ 14:05 | 
        (24) путем соединения в запросе таблицы данных с собой и наложение условий на поля этой таблицы     | |||
| 26
    
        Масянька 29.01.20✎ 14:09 | 
        (19) Мечта любого безопасника.     | |||
| 27
    
        Abba 29.01.20✎ 14:09 | 
        (25) это понятно,какие условия поставить?     | |||
| 28
    
        Йохохо 29.01.20✎ 14:10 | 
        (21) вообще то а) в болиде есть готовый отчет б) задача для десятиклассника     | |||
| 29
    
        TopProger 29.01.20✎ 14:13 | 
        (27) а какие условия вы пробовали? Готовое решение никто не даст, уже понятно по постав выше. Надо пробовать самому     | |||
| 30
    
        Abba 29.01.20✎ 14:15 | 
        (29) ВЫБРАТЬ ПЕРВЫЕ 100
 dbo_pList.ID КАК ID, dbo_pList.Name КАК Name, dbo_pList.FirstName КАК FirstName, dbo_pList.MidName КАК MidName, dbo_pLogData.TimeVal КАК TimeVal, dbo_pLogData.Mode КАК Mode ИЗ ВнешнийИсточникДанных.ПроходнаяSQL.Таблица.dbo_pList КАК dbo_pList ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.ПроходнаяSQL.Таблица.dbo_pLogData КАК dbo_pLogData ПО (dbo_pList.ID = dbo_pLogData.HozOrgan) СГРУППИРОВАТЬ ПО dbo_pList.ID, dbo_pList.Name, dbo_pList.FirstName, dbo_pList.MidName, dbo_pLogData.TimeVal, dbo_pLogData.Mode | |||
| 31
    
        Abba 29.01.20✎ 14:16 | 
        (28) ну дак опишите решение?или вы в 9 классе?     | |||
| 32
    
        TopProger 29.01.20✎ 14:19 | 
        (30) ну очевидно, что вы ничего не пробовали     | |||
| 33
    
        Abba 29.01.20✎ 14:24 | 
        (32) вон же написано выше,мой запрос.но там еще другие таблицы привязаны,на них не обращайте внимание     | |||
| 34
    
        VladZ 29.01.20✎ 14:25 | 
        (7) Это другая задача. :)     | |||
| 35
    
        Abba 29.01.20✎ 14:28 | 
        (32) не то скопировала.вот
 ВЫБРАТЬ dbo_pLogData.HozOrgan КАК HozOrgan, dbo_pLogData.TimeVal КАК времяВхода ПОМЕСТИТЬ ВнешнийИсточникДанных.ПроходнаяSQL.ВременнаяТаблица.ВременнаяТаблица ИЗ ВнешнийИсточникДанных.ПроходнаяSQL.Таблица.dbo_pLogData КАК dbo_pLogData ГДЕ dbo_pLogData.Mode = 1 СГРУППИРОВАТЬ ПО dbo_pLogData.HozOrgan, dbo_pLogData.TimeVal ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ dbo_pLogData.HozOrgan КАК HozOrgan, dbo_pLogData.TimeVal КАК времявыхода ПОМЕСТИТЬ ВнешнийИсточникДанных.ПроходнаяSQL.ВременнаяТаблица.ВременнаяТаблицаВыход ИЗ ВнешнийИсточникДанных.ПроходнаяSQL.Таблица.dbo_pLogData КАК dbo_pLogData ГДЕ dbo_pLogData.Mode = 2 СГРУППИРОВАТЬ ПО dbo_pLogData.HozOrgan, dbo_pLogData.TimeVal ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПроходнаяSQLВременнаяТаблицаВременнаяТаблица.HozOrgan КАК HozOrgan, ВЫБОР КОГДА РАЗНОСТЬДАТ(ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаВыход.времявыхода, ПроходнаяSQLВременнаяТаблицаВременнаяТаблица.времяВхода, МИНУТА) > 20 И РАЗНОСТЬДАТ(ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаВыход.времявыхода, ПроходнаяSQLВременнаяТаблицаВременнаяТаблица.времяВхода, МИНУТА) < 900 ТОГДА РАЗНОСТЬДАТ(ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаВыход.времявыхода, ПроходнаяSQLВременнаяТаблицаВременнаяТаблица.времяВхода, МИНУТА) КОНЕЦ КАК Поле1, ПроходнаяSQLВременнаяТаблицаВременнаяТаблица.времяВхода КАК времяВхода, ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаВыход.времявыхода КАК времявыхода ПОМЕСТИТЬ ВнешнийИсточникДанных.ПроходнаяSQL.ВременнаяТаблица.ВременнаяТаблицаИнтервал ИЗ ВнешнийИсточникДанных.ПроходнаяSQL.ВременнаяТаблица.ВременнаяТаблица КАК ПроходнаяSQLВременнаяТаблицаВременнаяТаблица ПОЛНОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.ПроходнаяSQL.ВременнаяТаблица.ВременнаяТаблицаВыход КАК ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаВыход ПО ПроходнаяSQLВременнаяТаблицаВременнаяТаблица.HozOrgan = ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаВыход.HozOrgan И (НАЧАЛОПЕРИОДА(ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаВыход.времявыхода, ДЕНЬ) = НАЧАЛОПЕРИОДА(ПроходнаяSQLВременнаяТаблицаВременнаяТаблица.времяВхода, ДЕНЬ)) И (ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаВыход.времявыхода < ПроходнаяSQLВременнаяТаблицаВременнаяТаблица.времяВхода) СГРУППИРОВАТЬ ПО ПроходнаяSQLВременнаяТаблицаВременнаяТаблица.HozOrgan, ВЫБОР КОГДА РАЗНОСТЬДАТ(ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаВыход.времявыхода, ПроходнаяSQLВременнаяТаблицаВременнаяТаблица.времяВхода, МИНУТА) > 20 И РАЗНОСТЬДАТ(ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаВыход.времявыхода, ПроходнаяSQLВременнаяТаблицаВременнаяТаблица.времяВхода, МИНУТА) < 900 ТОГДА РАЗНОСТЬДАТ(ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаВыход.времявыхода, ПроходнаяSQLВременнаяТаблицаВременнаяТаблица.времяВхода, МИНУТА) КОНЕЦ, ПроходнаяSQLВременнаяТаблицаВременнаяТаблица.времяВхода, ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаВыход.времявыхода ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ dbo_pList.ID КАК ID, dbo_pList.FirstName КАК FirstName, dbo_pList.MidName КАК MidName, dbo_pList.Name КАК Name ПОМЕСТИТЬ ВнешнийИсточникДанных.ПроходнаяSQL.ВременнаяТаблица.ВременнаяТаблица_ФИО ИЗ ВнешнийИсточникДанных.ПроходнаяSQL.Таблица.dbo_pList КАК dbo_pList СГРУППИРОВАТЬ ПО dbo_pList.ID, dbo_pList.FirstName, dbo_pList.MidName, dbo_pList.Name ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПЕРВЫЕ 100 ПроходнаяSQLВременнаяТаблицаВременнаяТаблица_ФИО.FirstName КАК FirstName, ПроходнаяSQLВременнаяТаблицаВременнаяТаблица_ФИО.MidName КАК MidName, ПроходнаяSQLВременнаяТаблицаВременнаяТаблица_ФИО.Name КАК Name, ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаИнтервал.Поле1 КАК ВремяОтсутствия, ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаИнтервал.времявыхода КАК времявыхода, ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаИнтервал.времяВхода КАК времяВхода, ПроходнаяSQLВременнаяТаблицаВременнаяТаблица_ФИО.ID КАК ID1 ИЗ ВнешнийИсточникДанных.ПроходнаяSQL.ВременнаяТаблица.ВременнаяТаблицаИнтервал КАК ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаИнтервал ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.ПроходнаяSQL.ВременнаяТаблица.ВременнаяТаблица_ФИО КАК ПроходнаяSQLВременнаяТаблицаВременнаяТаблица_ФИО ПО (ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаИнтервал.HozOrgan = ПроходнаяSQLВременнаяТаблицаВременнаяТаблица_ФИО.ID) ГДЕ НЕ ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаИнтервал.Поле1 = "" И НЕ ПроходнаяSQLВременнаяТаблицаВременнаяТаблица_ФИО.ID = "" И НЕ ПроходнаяSQLВременнаяТаблицаВременнаяТаблица_ФИО.FirstName = "-123" И НЕ ПроходнаяSQLВременнаяТаблицаВременнаяТаблица_ФИО.MidName = "-" И НЕ ПроходнаяSQLВременнаяТаблицаВременнаяТаблица_ФИО.Name = "-" И ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаИнтервал.времяВхода МЕЖДУ &времяВхода И &времяВыхода И ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаИнтервал.времявыхода МЕЖДУ &времяВхода И &времяВыхода СГРУППИРОВАТЬ ПО ПроходнаяSQLВременнаяТаблицаВременнаяТаблица_ФИО.FirstName, ПроходнаяSQLВременнаяТаблицаВременнаяТаблица_ФИО.MidName, ПроходнаяSQLВременнаяТаблицаВременнаяТаблица_ФИО.Name, ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаИнтервал.Поле1, ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаИнтервал.времявыхода, ПроходнаяSQLВременнаяТаблицаВременнаяТаблицаИнтервал.времяВхода, ПроходнаяSQLВременнаяТаблицаВременнаяТаблица_ФИО.ID | |||
| 36
    
        TopProger 29.01.20✎ 14:34 | 
        всеже в рамках задачи можно было и обрезать все лишнее и обратить внимание на нужные таблицы. Зачем полное соединение оно должно быть левым. А может даже изначально сделать две выборки, в одной будут входы в другой выходы.     | |||
| 37
    
        Abba 29.01.20✎ 14:40 | 
        (36) там только фио лишнее.оно не влияет на суть. если даже две выборки,как найти интервал (более 20мин) в течении дня? мой запрос работает,но некорректно(     | |||
| 38
    
        Homer 29.01.20✎ 14:50 | 
        предлагаю тебе ВнешнийИсточникДанных.ПроходнаяSQL.ВременнаяТаблица.ВременнаяТаблицаИнтервал сгруппировать по Минимум(времявыхода)     | |||
| 39
    
        TopProger 29.01.20✎ 14:53 | 
        Получаешь таблицу входов, затем получаешь таблицу выходов, затем соединяешь таблицу входов с таблицей выходов, там чтобы дата выхода была меньше даты входа, Затем для каждого сотрудника получаешь минимальные значения для даты входа, далее считаешь разницу между входом и выходом     | |||
| 40
    
        3achem 29.01.20✎ 14:58 | 
        (39) Сейчас тебя попросят код написать     | |||
| 41
    
        Abba 29.01.20✎ 15:24 | 
        (39) спасибо.так и делала. я поняла почему некорректно работает.просто сам регистр некорректен, то несколько выходов подряд,то несколько входов((
 придется в коде писать | |||
| 42
    
        MyNick 29.01.20✎ 15:27 | 
        (0) надо начать с того, что реализация данной задачи НИКАК не повысит мотивацию сотрудников и не увеличит прибыль компании.     | |||
| 43
    
        MyNick 29.01.20✎ 15:30 | 
        Я бы даже сказал, что у более-менее ответственных мотивация только пострадает, а у расп..яев нововведения вызовут улыбку.     | |||
| 44
    
        Abba 29.01.20✎ 15:49 | 
        (43) это отношение к делу не имеет     | |||
| 45
    
        Xapac 29.01.20✎ 15:58 | 
        а системы распознавания лиц (вход/выход) интересно ставят уже где либо.     | |||
| 46
    
        fisher 29.01.20✎ 16:08 | 
        Тех, кто советует запросом - гони ссаными тряпками. Замучаешься краевые случаи обрабатывать.
 Сортируешь и проходишься конечным автоматом. | |||
| 47
    
        fisher 29.01.20✎ 16:11 | 
        Хотя оно и так должно быть по времени отсортировано. Этого достаточно.     | |||
| 48
    
        El_Duke гуру 29.01.20✎ 16:13 | 
        (45) Знаю один франч где внедрено такое     | |||
| 49
    
        Xapac 29.01.20✎ 16:25 | 
        (46)+     | |||
| 50
    
        almar 29.01.20✎ 16:27 | 
        Еще перед подсчетом времени нужно определять ошибки - первое событие дня выход, два подряд входа, два подряд выхода, последнее событие дня вход     | |||
| 51
    
        Abba 29.01.20✎ 16:28 | 
        (45) у нас только по пальцу было)) и то замучались     | |||
| 52
    
        Abba 29.01.20✎ 16:29 | 
        (46) это как? по выборке пройтись? я просто новичек совсем,уж извините))     | |||
| 53
    
        fisher 29.01.20✎ 16:30 | 
        (50) Естественно. Только почему "перед", а не "при"? Сразу при подсчете принимать решение по проблемным ситуациям, просто помечать этот отрезок как проблемный и даже ставить категорию проблемы для последующего анализа.     | |||
| 54
    
        Abba 29.01.20✎ 16:33 | 
        (50) в запросе так не сделаешь     | |||
| 55
    
        fisher 29.01.20✎ 16:52 | 
        (52) Да. Смотри. У тебя задача из потока событий получить таблицу посещений вида "сотр / вход / выход / время пребывания". Плюс еще категорию проблемы при определении времени пребывания можно добавить. Потом уже делай с ней что хочешь в зависимости от задачи. Для сабжевой задачи отсортируешь по убыванию времени пребывания и возьмешь верхние записи за пределами 20 минут.
 Теперь как получить таблицу посещений. Делаешь машину состояний. Ну, т.е. для каждого сотрудника надо где-то хранить, какое его текущее состояние анализа. Вошедший он на текущий момент или вышедший. Плюс время последнего события запоминаем. Для скорости, лучше всего это в соответствие пихать где ключами сотрудники, а значения - структуры с нужными полями. Т.е. начинаем анализировать таблицу событий, берем строку. Берем состояние сотра из соответствия. Нету - создаем. Есть - сравниваем состояние сотрудника с текущим событием. Был вышедший, а событие вход? Ага - добавляем строку в таблицу посещений, проставляем там время входа и запоминаем ссылку на строку в структуре состояния сотрудника. Был вошедший, а событие выход? Ага - берем ссылку на строку из структуры состояний где уже проставлен вход, пишем туда время выхода и рассчитываем время пребывания. Был никакой, а событие выход? Хм... Я бы добавил строку в таблицу посещений со временем, равным началу анализа и поставил признак, что была такая-то проблема при расчете этого отрезка. Был вошедший, а событие вход? Хм... Можно проанализировать время предыдущего входа и если оно рядом, то принять первое срабатывание как ложное (изменить время входа на второе событие). Стоит ли отдельно анализировать ложные срабатывания - вопрос. Если два входа разнесены по времени, а выхода между ними нет (либо пикнул и ушел, либо вышел по чужой карточке либо еще что) - то нужно принять решение каким временем закрыть прошлый вход и обязательно пометить эту проблему отдельной категорией. Если такие инциденты по сотруднику будут регулярными - значит он мухлюет. Ну и так далее. Еще нужно будет решить, что делать если вошел вечером, а вышел утром и т.п. Но это уже дело техники. Новые правила внедряются несложно. | |||
| 56
    
        fisher 29.01.20✎ 16:57 | 
        А, стоп. У тебя время отсутствия надо считать, а не время пребывания. Тогда можно отсортировать полученную таблицу посещений по сотрам и за один проход собрать тех, у которых время начала очередного рабочего отрезка отличается от времени завершения предыдущего более чем на 20 минут в рабочее время. А таблица посещений все равно пригодится для очередных анализов.     | |||
| 57
    
        ManyakRus 29.01.20✎ 17:01 | 
        я как раз то же самое делал недавно в 1С Документооборот :)
 Интеграция с Орионом :) | |||
| 58
    
        Йохохо 29.01.20✎ 17:02 | 
        (56) 16:52 - 16:57 =)     | |||
| 59
    
        fisher 29.01.20✎ 17:04 | 
        (58) Не понял шутки юмора. Но в конце дня я могу тормозить больше обычного :)     | |||
| 60
    
        Йохохо 29.01.20✎ 17:05 | 
        (59) решение за 5 минут если вчитаться     | |||
| 61
    
        fisher 29.01.20✎ 17:11 | 
        (60) Не-не-не. У меня уже вышел дневной лимит распознавания намеков. Выдай мысль полным связным предложением :)     | |||
| 62
    
        rphosts 29.01.20✎ 17:13 | 
        (19) я от туточки ушёл     | |||
| 63
    
        Abba 31.01.20✎ 14:43 | 
        (2)да     | |||
| 64
    
        Abba 31.01.20✎ 14:44 | 
        (13) как?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |