Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Знатоки помогите! Что это - глюк платформы или что??

Знатоки помогите! Что это - глюк платформы или что??
Я
   Vade_kirza
 
07.02.20 - 18:51
Всем веселой пятницы! задача была перенести строки с определенной номенклатурой из одной т.ч. в другую. казалось бы все просто но не тут то было. В общем обработку я написал, но она почему то не отрабатывала, я полез в отладчик и с удивлением заметил, что все работает! но как только я убрал точки останова, снова все перестало работать. т.е. те документы которые я прошел в отладке изменились, а дальше нет. В общем путем испытаний я понял, что как только я перестаю идти по отладке он перестает "видеть" нужную мне номенклатуру при сравнении. Вначале было простое сравнение на первые 5 букв имени, затем переделал на массив с номенклатурой, но результат одинаковый. Пока рвал волосы на себе заметил, что он делает сам 1 строку, а потом все. Так как задача разовая, сделал так, чтобы если хоть раз он нашел то что мне нужно он запускал всю процедуру заново. Так сработало, но я понять не могу что за фигня? пробовал на 8.3.16.1030, на 8.3.15.1830, конфа БП 3.0.75.70. Ниже прикладываю код обработки, за запрос в цикле не пинайте)) это вынужденная мера))
 
 
   Vade_kirza
 
1 - 07.02.20 - 18:53
&НаСервере
Процедура ВыполнитьНаСервере()
    
        Массив = Новый Массив;
    ЗапросНоменклатура = Новый Запрос;
    ЗапросНоменклатура.Текст = "ВЫБРАТЬ
                               |    Номенклатура.Ссылка КАК Ссылка
                               |ИЗ
                               |    Справочник.Номенклатура КАК Номенклатура
                               |ГДЕ
                               |    Номенклатура.Наименование ПОДОБНО ""Полис%""";
    ЗапросНоменклатура.УстановитьПараметр("Полис", "Полис");
    ВыборкаНоменклатура = ЗапросНоменклатура.Выполнить().Выбрать();
    Пока ВыборкаНоменклатура.Следующий() Цикл
         Массив.Добавить(ВыборкаНоменклатура.Ссылка);
    КонецЦикла;
    Заново = Истина;
    Пока Заново Цикл
        Заново = Ложь;
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ОтчетОРозничныхПродажах.Ссылка КАК Ссылка
        |ИЗ
        |    Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
        |ГДЕ
        |    ОтчетОРозничныхПродажах.Дата МЕЖДУ &ДатаНач И &ДатаКон";
    
    Запрос.УстановитьПараметр("ДатаКон", КонецДня(Объект.ДатаОкончания));
    Запрос.УстановитьПараметр("ДатаНач", НачалоДня(Объект.ДатаНачала));
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    НадоЗаписать = Ложь;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        НачатьТранзакцию();
        ДокОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
        Если ДокОбъект.РучнаяКорректировка Тогда
            ЗафиксироватьТранзакцию();
            Продолжить;
        КонецЕсли;
        Для каждого стр из ДокОбъект.Товары Цикл
//ТУТ вначале было просто сравнение Если ВРЕГ(Лев(стр.номенклатура, 5)) = "ПОЛИС" Тогда, потом переделал так как тут

            Индекс = Массив.Найти(стр.Номенклатура);
            Если Индекс <> Неопределено Тогда
                Заново = Истина;
                НовСтрока = ДокОбъект.АгентскиеУслуги.Добавить();
                ЗаполнитьЗначенияСвойств(НовСтрока, стр);
                НовСтрока.СчетРасчетов = ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами;
                НовСтрока.Контрагент = Справочники.Контрагенты.НайтиПоКоду("00-000322");
                НовСтрока.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("00-000413");
                ДокОбъект.Товары.Удалить(стр);
                НадоЗаписать = Истина;
            КонецЕсли;
        КонецЦикла;
        Если НадоЗаписать Тогда
        Попытка
            ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
//пробовал тут вставить 3 секунды задержки, не помогло

            НадоЗаписать = Ложь;
    Исключение
        ОтменитьТранзакцию();
        КонецПопытки;
        КонецЕсли;
        ЗафиксироватьТранзакцию();
    КонецЦикла;
    КонецЦикла;
    
КонецПроцедуры
   lodger
 
2 - 07.02.20 - 18:58
и тут такой же

Один и тот же код выполняется по-разному в зависимости от скорости работы. Глюки? )

у вас одна пятница на двоих?
опять наблюдение Отладчиком нарушает квантовую неопределенность копрокода?
   Надо работать
 
3 - 07.02.20 - 18:58
кеш почисть
   Vade_kirza
 
4 - 07.02.20 - 19:02
(3) кеш чистый, я ж базу только загрузил себе
   Vade_kirza
 
5 - 07.02.20 - 19:03
(2) ссылка не открывается( 404 not found
   lubitelxml
 
6 - 07.02.20 - 19:03
   AlvlSpb
 
7 - 07.02.20 - 19:41
(0) Убери везде НачатьТранзакцию(), Отменить и Зафиксировать.
   Лефмихалыч
 
8 - 07.02.20 - 20:27
за такой код в приличных местах могут кодилище начистить до блеска
   Vade_kirza
 
9 - 07.02.20 - 21:09
(7) я это добавил потом, после того как понял, что происходит, это была просто проверка
   Vade_kirza
 
10 - 07.02.20 - 21:10
(8) простите за мой код, но тут вопрос не в этом, а почему такое происходит. Можете дать мне свой вариант кода, я его проверю и отпишусь тут
   Vade_kirza
 
11 - 07.02.20 - 21:15
(8) давайте проще скажу - вот строчка кода: "Если ВРЕГ(Лев(стр.номенклатура, 5)) = "ПОЛИС" Тогда", в ДокОбъект.Товары 5 строк, в каждой одна и та же номенклатура, я 2 раза прохожу отладкой - он удаляет эти 2 строки и переносит в таб часть Агентские услуги. далее я убираю точку остановки и ставлю ее на ДокОбъект.Записать(РежимЗаписиДокумента.Проведение) и нажимаю F5, когда он встает туда, я вижу что в ДокОбъект.товары - 3 строки. Почему? т.е. после того как я перестал идти отладчиком он перестал видеть что ВРЕГ(Лев(стр.номенклатура, 5)) = "ПОЛИС" = Истина
   Vade_kirza
 
12 - 07.02.20 - 21:15
(8) Вопрос именно в этом, а не в том, какой у меня код
   Vade_kirza
 
13 - 07.02.20 - 21:17
(8) далее я подумал, что возможно глюк платформы на сравнение строк и переделал, как в моем коде - на проверку есть ли данная номенклатура в массиве, но результат оказался тот же
   Доминошник
 
14 - 07.02.20 - 21:19
(11)
1. в ДокОбъект.Товары 5 строк
2. он удаляет эти 2 строки
3. я вижу что в ДокОбъект.товары - 3 строки

Вроде всё норм (5-2=3)? Или я чего-то не понимаю..
   Vade_kirza
 
15 - 07.02.20 - 21:19
(14) он должен был дальше удалить эти 3 строки так же как удалил первые 2
   Доминошник
 
16 - 07.02.20 - 21:23
(15) А зачем, обходя в цикле табличную часть, пытаться удалять строки?
На сколько я понимаю, не так это делается (или надо обходить "с конца")....
   Vade_kirza
 
17 - 07.02.20 - 21:24
(16) есть 10 строк в т.ч. Товары, из них 5 туда попали ошибочно при загрузке откуда то, нужно их из Товары удалить и перенести их в Агентские услуги
   Доминошник
 
18 - 07.02.20 - 21:28
(17)
https://helpf.pro/faq/view/515.html
v8: Удаление строк табличной части справочника по условию

Сначала отбери, что нужно удалить, потом это "только нужное" удаляй.
   AlvlSpb
 
19 - 07.02.20 - 21:31
(13) Твоя ошибка в том, что ты удаляешь строки в ТЧ сразу в цикле
Смотри: Удалил строку с индексом 0, на ее место встала строка с инд 1 и стала с инд 0. Цикл переходит к след строке (изначально она с инд 2, но стала с инд 1) В итоге каждая четная строка НЕ удаляется. Поэтому у тебя переносится только три строки. Сделай 7 строк и перенесется 4 строки и т.д.
   Vade_kirza
 
20 - 07.02.20 - 21:35
(19) 1)почему тогда в отладке все работает?
   Vade_kirza
 
21 - 07.02.20 - 21:38
(19) давай по другому, я прошел отладкой 5 документов - все ок, как только выключил - перестало работать.
   AlvlSpb
 
22 - 07.02.20 - 22:17
(20) Да не работает и в отладке, не может работать. Тебе выше дали ссылки как делать.
   Borteg
 
23 - 07.02.20 - 22:40
Для каждого стр из ДокОбъект.Товары Цикл
//ТУТ вначале было просто сравнение Если ВРЕГ(Лев(стр.номенклатура, 5)) = "ПОЛИС" Тогда, потом переделал так как тут


            Индекс = Массив.Найти(стр.Номенклатура);
            Если Индекс <> Неопределено Тогда
                Заново = Истина;
                НовСтрока = ДокОбъект.АгентскиеУслуги.Добавить();
                ЗаполнитьЗначенияСвойств(НовСтрока, стр);
                НовСтрока.СчетРасчетов = ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами;
                НовСтрока.Контрагент = Справочники.Контрагенты.НайтиПоКоду("00-000322");
                НовСтрока.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("00-000413");
                ДокОбъект.Товары.Удалить(стр);
                НадоЗаписать = Истина;
            КонецЕсли;
        КонецЦикла;

Ты в одном цикле и перебираешь и удаляешь???
   dmpl
 
24 - 07.02.20 - 22:54
(0) Какие выражения вычисляются в Табло?
   Лефмихалыч
 
25 - 08.02.20 - 09:39
(10) потому и происходит, что код так написан. В нем нечего чинить, его надо написать с нуля правильно. Запрос должен быть только ОДИН. В цикле не должно быть запросов. Вечный цикл не нужен. Трюки с транзакцией - в пень выкинуть. Циклы по строкам ТЧ - убрать. НайтиПоКоду - убрать.
Если после этого всего чудеса продолжатся, тогда приходи. А до тех пор обсуждать нечего: код - говнище, а говнище правильно работать не может.
   Конструктор1С
 
26 - 08.02.20 - 13:26
Омайгадбл, Данила! Ты что, крэйзи? (с)

Код под просто ужасен
   Конструктор1С
 
27 - 08.02.20 - 13:34
Чувак, у тебя в коде мёд, говно и пчёлы. Декомпозиция просто ужасная. За раз ты пытаешься делать несколько дел - сидеть на стуле, жонглировать, танцевать и петь песню. Удивительно ли, что при такой "многозадачности" постоянно что-то отваливается... Разложи задачу на составные части и решай их последовательно
   Vade_kirza
 
28 - 08.02.20 - 15:33
(25) 1) трюки с транзакцией мне просто посоветовали попробовать, уберу так как не помогло. 2) запросов у меня 2, хорошо переделаю в один но так как разовая задача это не имеет значения. 3) вечного цикла нет.4) без найти по коду никак, так как в ТЧ агентские услуги есть поля которых нет в Товары, их надо заполнить определенными значениями. Единственное, я не знаю как избавится от цикла по строкам ТЧ, если подскажете как сделать правильно буду благодарен.
   Vade_kirza
 
29 - 08.02.20 - 15:39
(25) про НайтиПоКоду понял, Вы имеете в виду то, что надо заранее найти их, а потом только вставлять значение.
   craxx
 
30 - 08.02.20 - 15:42
(29) тебе нельзя программировать. Освой другую профессию.
 
 Рекламное место пустует
   Vade_kirza
 
31 - 08.02.20 - 15:44
(30) спасибо
   Vade_kirza
 
32 - 08.02.20 - 15:47
(30) именно для этого я и создал эту ветку, чтобы понять это мои ошибки или нет. Если мои, то я был бы рад узнать в чем они, и в будущем не повторять их
   Vade_kirza
 
33 - 08.02.20 - 15:48
(30) на данный момент, из того что написал Лефмихалыч, я понял что ошибка в обходе в цикле ТЧ и удалением строк, теперь хочу понять как сделать правильно
   rphosts
 
34 - 08.02.20 - 15:55
(1) ёкарный бабай!!!
   Vade_kirza
 
35 - 08.02.20 - 17:40
Все, спасибо всем (7) (8) (14) (19) (22) (23) (27) да это говнокод, но благодаря Вам я понял что это не глюк а именно говнокод) переделал все как писали выше и заработало. Всех обнимаю, благодаря Вам я узнаю новое, не пинайте пожалуйста.
   Vade_kirza
 
36 - 08.02.20 - 17:41
&НаСервере
Процедура ВыполнитьНаСервере()
    Массив = Новый Массив;
    ЗапросНоменклатура = Новый Запрос;
    ЗапросНоменклатура.Текст = "ВЫБРАТЬ
    |    Номенклатура.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |    Номенклатура.Наименование ПОДОБНО ""Полис%""";
    ЗапросНоменклатура.УстановитьПараметр("Полис", "Полис");
    ВыборкаНоменклатура = ЗапросНоменклатура.Выполнить().Выбрать();
    Пока ВыборкаНоменклатура.Следующий() Цикл
        Массив.Добавить(ВыборкаНоменклатура.Ссылка);
    КонецЦикла;
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |    ОтчетОРозничныхПродажах.Ссылка КАК Ссылка
    |ИЗ
    |    Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
    |ГДЕ
    |    ОтчетОРозничныхПродажах.Дата МЕЖДУ &ДатаНач И &ДатаКон";    
    Запрос.УстановитьПараметр("ДатаКон", КонецДня(Объект.ДатаОкончания));
    Запрос.УстановитьПараметр("ДатаНач", НачалоДня(Объект.ДатаНачала));    
    РезультатЗапроса = Запрос.Выполнить();    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    НадоЗаписать = Ложь;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ДокОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
        СтруктураДляПоиска = Новый Структура("Номенклатура", Массив);
        Если ДокОбъект.РучнаяКорректировка Тогда
            Продолжить;
        КонецЕсли;
        Для каждого стр из ДокОбъект.Товары Цикл
            Индекс = Массив.Найти(стр.Номенклатура);
            Если Индекс <> Неопределено Тогда        
                НовСтрока = ДокОбъект.АгентскиеУслуги.Добавить();
                ЗаполнитьЗначенияСвойств(НовСтрока, стр);
                НовСтрока.СчетРасчетов = ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами;
                НовСтрока.Контрагент = Справочники.Контрагенты.НайтиПоКоду("00-000322");
                НовСтрока.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("00-000413");
                НадоЗаписать = Истина;
            КонецЕсли;
        КонецЦикла;
        КолВо = ДокОбъект.Товары.Количество()-1;        
        ИндексСтроки = КолВо;        
        Для счетчик = 0 по КолВо Цикл            
            Запись = ДокОбъект.Товары.Получить(ИндексСтроки);
            Индекс = Массив.Найти(стр.Номенклатура);
            Если Индекс <> Неопределено Тогда
                НадоУдалить = Истина;
            Иначе
                НадоУдалить = Ложь;
            КонецЕсли;            
            если НадоУдалить тогда                
                ДокОбъект.Товары.Удалить(Запись);                
            КонецЕсли;            
            ИндексСтроки = ИндексСтроки - 1;            
        КонецЦикла;   
        Если НадоЗаписать Тогда
            МассивПустыхСтрок = ДокОбъект.Товары.НайтиСтроки(СтруктураДляПоиска);             
            Для каждого Строка Из МассивПустыхСтрок Цикл                 
                ДокОбъект.Товары.Удалить(Строка);             
            КонецЦикла;
            ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
            НадоЗаписать = Ложь;
        КонецЕсли;
    КонецЦикла;    
КонецПроцедуры
   Vade_kirza
 
37 - 08.02.20 - 17:43
Если и тут есть то, "за что в приличных местах могут кодилище начистить" (c) Лефмихалыч,  укажите - исправлю
   Vade_kirza
 
38 - 08.02.20 - 18:02
Извиняюсь, не тот код выложил (36)
   Vade_kirza
 
39 - 08.02.20 - 18:02
Процедура ВыполнитьНаСервере()
    Массив = Новый Массив;
    ЗапросНоменклатура = Новый Запрос;
    ЗапросНоменклатура.Текст = "ВЫБРАТЬ
    |    Номенклатура.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |    Номенклатура.Наименование ПОДОБНО ""Полис%""";
    ЗапросНоменклатура.УстановитьПараметр("Полис", "Полис");
    ВыборкаНоменклатура = ЗапросНоменклатура.Выполнить().Выбрать();
    Пока ВыборкаНоменклатура.Следующий() Цикл
        Массив.Добавить(ВыборкаНоменклатура.Ссылка);
    КонецЦикла;
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |    ОтчетОРозничныхПродажах.Ссылка КАК Ссылка
    |ИЗ
    |    Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
    |ГДЕ
    |    ОтчетОРозничныхПродажах.Дата МЕЖДУ &ДатаНач И &ДатаКон";    
    Запрос.УстановитьПараметр("ДатаНач", НачалоДня(Объект.ДатаНачала));
    Запрос.УстановитьПараметр("ДатаКон", КонецДня(Объект.ДатаОкончания));
    РезультатЗапроса = Запрос.Выполнить();    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    НадоЗаписать = Ложь;
    Контрагент = Справочники.Контрагенты.НайтиПоКоду("00-000322");
    Договор = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("00-000413");
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ДокОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
        Если ДокОбъект.РучнаяКорректировка Тогда
            Продолжить;
        КонецЕсли;
        Для каждого стр из ДокОбъект.Товары Цикл
            Индекс = Массив.Найти(стр.Номенклатура);
            Если Индекс <> Неопределено Тогда        
                НовСтрока = ДокОбъект.АгентскиеУслуги.Добавить();
                ЗаполнитьЗначенияСвойств(НовСтрока, стр);
                НовСтрока.СчетРасчетов = ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами;
                НовСтрока.Контрагент = Контрагент;
                НовСтрока.ДоговорКонтрагента = Договор;
                НадоЗаписать = Истина;
            КонецЕсли;
        КонецЦикла;
        КолВо = ДокОбъект.Товары.Количество()-1;        
        ИндексСтроки = КолВо;        
        Для счетчик = 0 по КолВо Цикл            
            Запись = ДокОбъект.Товары.Получить(ИндексСтроки);
            Индекс = Массив.Найти(стр.Номенклатура);
            Если Индекс <> Неопределено Тогда
                НадоУдалить = Истина;
            Иначе
                НадоУдалить = Ложь;
            КонецЕсли;            
            если НадоУдалить тогда                
                ДокОбъект.Товары.Удалить(Запись);                
            КонецЕсли;            
            ИндексСтроки = ИндексСтроки - 1;            
        КонецЦикла;   
        Если НадоЗаписать Тогда
            ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
            НадоЗаписать = Ложь;
        КонецЕсли;
    КонецЦикла;    
КонецПроцедуры
   Ёпрст
 
40 - 08.02.20 - 18:20
(39) всё как бэ в топку
   Vade_kirza
 
41 - 08.02.20 - 18:23
(40) Ваш ник полностью отражает мою реакцию на Ваш ответ((
   Ёпрст
 
42 - 08.02.20 - 18:23
Написать ОДИН запрос, в котором будут ССылки на ОтчетОРозничныхПродажах и нужные строки для удаления.
И всякие условия типа ДокОбъект.РучнаяКорректировка воткнуть в сам текст запроса, Выкинуть из кода вот это -  Контрагент = Справочники.Контрагенты.НайтиПоКоду("00-000322");
    Договор = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("00-000413");

и задать это через реквизиты формы с типом клиентос и договор.
   Ёпрст
 
43 - 08.02.20 - 18:27
И если че.. то вот так удалять

  Для счетчик = 0 по КолВо Цикл            
            Запись = ДокОбъект.Товары.Получить(ИндексСтроки);
      ДокОбъект.Товары.Удалить(Запись); 



Не верно, удаляют с конца коллекции
  Для счетчик = - ДокОбъект.Товары.Количество() по -1 Цикл            
            Запись = ДокОбъект.Товары[-счетчик+1];
            ДокОбъект.Товары.Удалить(Запись); 

   Vade_kirza
 
44 - 08.02.20 - 18:33
(43) Спасибо! по поводу того, что должен быть один запрос - да, я согласен, но если это разовая задача и мне так проще и это не влияет на конечный результат? согласен, нужно учиться делать так, чтобы ПРОЩЕ было сделать ПРАВИЛЬНО, но на данный момент, к сожалению, мне не хватает опыта
   Vade_kirza
 
45 - 08.02.20 - 18:34
(43) Для счетчик = 0 по КолВо Цикл            
            Запись = ДокОбъект.Товары.Получить(ИндексСтроки);
      ДокОбъект.Товары.Удалить(Запись); 

Это гугл подсказал...
   Лефмихалыч
 
46 - 08.02.20 - 18:38
(39) гораздо лучше, но все равно хрень.
Запросом выбери номера строк, которые надо перенести, с сортирвкой по убыванию номера строки. В запросе сделай итоги по документу. При обходе группировке по документу получаешь объект документа, потом при обходе детальных записей добавляешь строку копированием во вторую ТЧ и удаляешь строку из первой. Всё это - просто по номеру строки. После обхода детальных записей просто записываешь документ.
   acht
 
47 - 08.02.20 - 18:49
(46) > Запросом выбери номера строк

А потом в промежутке между выполнением запроса и обработкой объекта внезапно выполняется давно ждущая своего часа транзакция второго сеанса, которая измененяет документ вместе с его номерами строк. И ты тут же начининаешь раздавать советы о важности блокировок и заставляешь накручивать безумные конструкции кода (:

Здесь как раз ссылками лучше оперировать. Выбрать верхним уровнем документы-кандидаты на обработку, в нижней группировке - номенклатуру. При проходе по объекту прописать вариант, что если номенклатуры нет, то пропускаешь весь документ.
   Лефмихалыч
 
48 - 08.02.20 - 19:02
(47) тупое бесполезное умствование и попытка самоутвердиться за чужой счет
   acht
 
49 - 08.02.20 - 19:07
(48) Явная обида и демонстрация комплексов?
   Лефмихалыч
 
50 - 08.02.20 - 19:25
(49) констатация факта


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