Как я оптимизировал проведение документов в ТиС




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2025-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

68 Comments

  1. Mikeware

    Павел, ты удивляешь 🙂

    Reply
  2. toypaul

    приятно что кого-то еще можешь удивить 🙂

    Reply
  3. CheBurator

    О, блин! Статья — бяковая!!! 😉 так сказать отчет о внедрении…

    Reply
  4. CheBurator

    но все равно — полезное зерно есть…

    Reply
  5. artbear

    Присоединюсь к 1 🙂

    Reply
  6. Altair777

    А в чем, все-таки, суть полученного ускорения? Какая версия SQL Server’а?

    Нечто подобное было и у меня, но решил с помощью 1С++. Методом ReconnectNative().

    Честно говоря, кроме рекламы фирмы 1С и самовосхваления в этой статье я ничего полезного не заметил.

    А эта фраза меня убила просто 🙂

    «Прикинув по своему опыту, предупредил клиента, что в режиме проведения на точку актуальности коим является восстановление последовательности или прочие аналогичные проведения с восстановлением последовательности ускорения большого не бывает — обычно в 1.5 раза».

    На русский ее можно перевести? А то смысл как-то ускользает.

    P.S. Кстати, я в десятки раз ускорил. Все зависит от документов, у меня были по несколько тысяч строк.

    Reply
  7. toypaul

    — СКЛ 2005

    — рыконнектнативе здесь нафик не нужен ибо 2005. да и средства оптимизации, которые я применяю решают ее и без этого на 2000 сервере.

    — не заметил полезного? читать надо не по диагонали и включать серое вещество.

    — ре

    Reply
  8. Altair777

    (7)

    —————————————————————

    Это что угодно, но не «Записки автоматизатора». 🙂

    Ты не указал никаких данных. Ни об версию SQL, ни о размере документов, ни о методе решения

    —————————————————————

    > по-моему богатому опыту, который заключается в переделки нескольких десятков конфигураций ТиС на платформе SQL при среднем размере документа в 10 строк

    При чем тут ТИС это или не ТИС? Все зависит от профиля организации.

    Продавцы мебели до десятка строк в накладую забивают, аптечные фирмы тысячи… или больше 🙂

    —————————————————————

    > — не заметил полезного? читать надо не по диагонали и включать серое вещество.

    Не хами.

    —————————————————————

    > — рекламы фирмы 1С здесь нет

    А ссылочки на сайт 1С, где предлагается КУПИТЬ?

    —————————————————————

    > — самовосхваления тоже нет. если кажется — крестится надо

    А как же про твой «богатый» опыт? 🙂

    —————————————————————

    > — не я начал мерятся членами, но продолжу

    Да нет, парниша, ты и начал 🙂

    —————————————————————

    Ты в 1С когда последний работал? Посмотрел твой профиль на http://www.free-lance.ru. Мда… Какое отношение твоя бурная деятельность имеет к 1С? 🙂

    Reply
  9. support

    А мне понравилось, пиши еще, Паша.

    Reply
  10. Душелов

    (11) > я 1С занимался когда ты еще под стол пешком ходил, и до сих пор занимаюсь.

    Посмотрел, я тоже с 7.5 начал заниматься, а многие тут присутствующие еще с 6-ки и раньше… Эт не повод так волноваться…

    Reply
  11. seermak

    Ребята, извините, но что-то конец года на вас раздражающе действует — все чаще переходите на личности: Не нравится минусуйте, игнорируйте. Скоро стрелку забивать будете и по мордасам 🙂

    Reply
  12. Abadonna

    Чего уж так накинулись?

    Например, «Каково же было мое удивление, когда выяснилось, что примерно 60% времени выполнения кода уходило на получение данных констант и периодических реквизитов.» — совсем не безполезная информация

    Reply
  13. support

    Паша, здесь так не принято общаться.

    Reply
  14. toypaul

    (33) Доржи, учту. Но я вроде вполне корректно отвечал на оскорбления. Да и на вопросы по существу ответил. Кто не понял — сам виноват :). Если подчищать будешь, подчищай все до конца.

    Reply
  15. luns

    Самое интересное, что и в 8 тоже они этим грешат (константы в цикле читать).. сам правил некоторые документы.

    Reply
  16. Altair777

    Доржи, верни, пожалуйста, мой коммент, где я извинился за то, что сказал, что это реклама фирмы 1С. И уточнил, что это реклама ToySQL.

    Что в этом такого крамольного было? 🙂

    Reply
  17. support

    (37) Я конечно понимаю, что ты уже устал объяснять про эффективность ToySQL, но разве это не повод сделать развернутый ответ, думаю никто не сомневается, что это было одним из мотивов написания этой статьи.

    Reply
  18. Abadonna

    off-top. Глючок, однако. Захожу глянуть в комменты, вижу ТОЛЬКО окно для ввода коммента №17 и больше ничего. Ни «назад», ни «вперед», ни других комментариев.

    Reply
  19. support

    (40) Под горячую руку попалась. Да, реклама ToySQL и что? Еще раз говорю, миссия у нас такая.

    Reply
  20. Abadonna

    +(42) Во, ввел 17, ктр. на самом деле оказался 42 — и все появилось

    Reply
  21. Душелов

    Да где же в моих постах оскорбления-то?

    Reply
  22. toypaul

    (41) мотив-то как раз другой был 🙂 и речь совсем не про эффективность ToySQL, а про то, что можно и нужно оптимизировать и типовыми методами. после оптимизации прямыми запросами это более очевидно, так как до оптимизации этого не было видно. а ссылки просто пришлись к месту. у кого-то это вызвало странную реакцию.

    Reply
  23. Altair777

    (43) Да ничего такого. Просто я удивился, что коммент зарезали 🙂

    Reply
  24. Altair777

    (46) О методах оптимизации здесь только одно — «заменили обращение к константами и периодическим реквизитам на обращение к переменным в глобальном модуле».

    > речь совсем не про эффективность ToySQL

    Как Катон Старший все время про Карфаген, так и автор все время про ToySQL?

    🙂

    Reply
  25. support

    (46) верим, отчего же не поверить :). В моей практике был случай, когда надо было ускорить проведение, я даже примерял к этому делу ToySQL, но все разрешилось типовым способом. Запрет работы задним числом, и получение итогов в момент проведения на Точку Актуальности. Глобальное перепроведение тоже со сдвигом ТА.

    Задним числом работали пару человек, хорошо проинструктированные к чему это может привести.

    Необъяснимо, но факт, в базе не было отрицательных остатков. 🙂

    Reply
  26. Altair777

    (49) Отрицательные остатки — это не самое страшное.

    Партионный учет — вот зло 🙂

    Когда нужно перепроводить для восстановления последовательности списания партий.

    Reply
  27. support

    (50) Ну, соответственно с партиями тоже было все в порядке, работали почти в реальном времени.

    Reply
  28. CheBurator

    кста, на головной странице на этот топик вот такая инфа:

    Комментарии (4294967295)

    ..

    + еще: использование при частых обращениях для периодических реквизитов объекта «Периодический» позволяет получить выигрыш до 25%

    Reply
  29. Altair777

    (52) И страницы сбились тоже. Когда кликаешь в http://infostart.ru/comments/ попадаешь на 3-ью которой больше нет. Или пока нет 🙂

    Комментарии (29)

    Страницы: ← Назад 1 3

    Reply
  30. Altair777

    (15), (20), (54)

    (0) > Сказал, чтобы клиент сделал замер производительности в отладчике (до этого также делали замер, который показал что 80% времени уходит на расчет итогов). Сделали замер. Каково же было мое удивление, когда выяснилось, что примерно 60% времени выполнения кода уходило на получение данных констант и периодических реквизитов.

    Вчитайтесь и не тормозите! Исковеркали базу, в которую насовали кучу периодических реквизитов? И мало того, еще и в ОбработкаПроведения() их всунули?

    > 15. Abadonna 16.12.2008 16:12:55

    > Чего уж так накинулись?

    > Например, «Каково же было мое удивление, когда выяснилось, что примерно 60% времени выполнения кода уходило на получение данных констант и периодических реквизитов.» — совсем не безполезная информация

    И чем же это полезно? Для тебя лично и для всех?

    Частный случай в единичной базе.

    Сейчас провел замер в Комплексной для Украины (7.70.023). Типовой ТиС нет по рукой.

    Документ РасходнаяНакладная

    Модуль Строка Кол Время %(Время)

    ——————————————————————-

    Глобальный модуль 8732 ВремРегистры.РассчитатьРегистрыНа(Конт.ТекущийДокумент()); 1 0.32026 84.92

    ——————————————————————-

    Глобальный модуль 4433 Ит.ВыполнитьЗапрос(Конт.ТекущийДокумент(),,спСчета); 1 0.00717 1.90

    ——————————————————————-

    Документ.РасходнаяНакладная.Модуль Документа 510 ДвиженияРегистров(); 1 0.00403 1.07

    ——————————————————————-

    Глобальный модуль 816 Реквизит=Метаданные.Документ(ВидДокумента).РеквизитТабличнойЧасти(ИмяРеквизита); 18 0.00283 0.75

    ——————————————————————-

    Документ.РасходнаяНакладная.Модуль Документа 536 Операция.Записать(); 1 0.00229 0.61

    ——————————————————————-

    Глобальный модуль 805 Реквизит=Метаданные.Документ(ВидДокумента).РеквизитШапки(ИмяРеквизита); 14 0.00213 0.57

    Reply
  31. toypaul

    причем так будет для любой типовой ТиС! коих гораздо больше 50% используется. в каком месте это единичный случай. тоже не ясно.

    Reply
  32. АЛьФ

    Предлагаю автору не отвечать на грубость, а Altair777 покинуть эту тему, если она его так раздражает.

    Reply
  33. Altair777

    (63) Я ее покинул, но тут защитничек пришел, мой коммент минусанул.

    Я считаю, что необоснованно.

    Reply
  34. АЛьФ

    2(65) Разбирайся в личке с такими вопросами.

    Reply
  35. toypaul

    (63) предложение принимается 🙂

    Reply
  36. tango

    «прилюдность» инет-оскорблений весьма условна.

    т.е. никого на самом деле не трогает чужая ругань в чужой адрес.

    а если трогает, то это уже проблема 🙂

    Reply
  37. Altair777

    А теперь элементарная математика

    (0)

    > до этого также делали замер, который показал что 80% времени уходит на расчет итогов

    > Ускорение примерно составило 1.5 раза

    > примерно 60% времени выполнения кода уходило на получение данных констант и периодических реквизитов

    Допустим, раньше проведение выполнялояь за 100 секунд.

    Из них 80 уходило на расчет итогов. Пусть даже на расчет периодики уходило остальные 20.

    После «ускорения», проведение выполняется 100/1,5=67 секунд.

    Допустим, что уменьшение пошло только за счет расчета итогов.

    И на него теперь тратится 80-33=47 сек.

    На периодику — остальные 20.

    И сколько это получается? 30%, а не «примерно 60%», как заявил автор.

    «Поздравляю вас, гражданин, соврамши» 🙂

    Reply
  38. АЛьФ

    2(72) Слушай, ты начинаешь реально раздражать. Подумать и вникнуть не пробовал? Математика-то на уровне второго класса:

    Пусть раньше проводилось за 100 секунд. Ускорили в 1,5 раза, получили время выполнения 67 секунд. Из них (оставшихся!) 60% уходило на чтение констант и периодики. Ускорили этот процесс, получили прирост в 30% и итоговое время выполнения примерно 23 секунды.

    Reply
  39. АЛьФ

    +(74) поправка: «итоговое время выполнения примерно 44 секунды.»

    Reply
  40. Abadonna

    Блин, ну вполне же безобидный топик был… Парад планет, однако (Планет, не про тебя ;))

    Reply
  41. Altair777

    (74) > з них (оставшихся!) 60% уходило на чтение констант и периодики

    Как на них могло уходить 60%, т.е. 40 секунд, если ДО оптимизации на них уходило не более 20 секунд?

    И при чем тут твое раздражение? Я конкретно доказал, что автор подтасовал факты, что бы показать свои выдающиеся успехи в «оптимизации».

    > Ускорили этот процесс, получили прирост в 30% и итоговое время выполнения примерно 23 секунды.

    А это тут причем? Я про дальнейшую оптимизацию не упоминал.

    Reply
  42. O-Planet

    Ржал. Прикольно читать комментарии с вырезкой в 10 шт. Очень напоминает на анекдот, что остались только «в» и «на». Похоже, топик был зачетный. Посмотрел, кто автор… Нет, не ОН… 0_о

    Reply
  43. Altair777

    (78) > Посмотрел, кто автор… Нет, не ОН… 0_о

    А очень похоже 🙂

    Reply
  44. toypaul

    в (72) вроде верно посчитано. почему так вышло мне уже лень объяснять и разбираться. вполне возможно что до оптимизации замер делался только на накладных, а после оптимизации на всех документах. и ускорение в 1.5 раза я со слов клиента сказал.

    написал то, что сам лично в замерах считал. до оптимизации — 80% (примерно) на расчет итогов. после оптимизации в сумме 60% на константы и периодику

    Reply
  45. toypaul

    посмотрел хистори в аське. на константы уходило 50% 🙂

    Reply
  46. Altair777

    (74) АЛьФ > 2(72) Слушай, ты начинаешь реально раздражать.

    (80) toypaul > в (72) вроде верно посчитано.

    АЛьФ, ты ничего не хочешь по этому поводу сказать? Извиниться хотя бы 🙂

    Reply
  47. Altair777

    (81) toypaul > посмотрел хистори в аське. на константы уходило 50% 🙂

    ржунимагу 😀

    Автор, в шапке не забудь поменять.

    Reply
  48. АЛьФ

    2(82) Ты полностью прочитал (80)? Сам извиниться не хочешь?

    Reply
  49. Altair777

    (84) > 2(82) Ты полностью прочитал (80)?

    А ты еще (81) прочитай

    Reply
  50. АЛьФ

    2(85) И что? Это оправдывает твое хамство?

    Reply
  51. Altair777

    И, вообще…

    «мне уже лень объяснять», «вполне возможно», «со слов клиента», «на константы уходило 50%»

    После этих слов как-то не верится во все остальное

    Reply
  52. Altair777

    (86) > 2(85) И что? Это оправдывает твое хамство?

    Мое хамство?

    (7) toypaul > — не заметил полезного? читать надо не по диагонали и включать серое вещество.

    Вот это хамство.

    И я, в отличии от некоторых, включил серое вещество и посчитал. И доказал.

    А если оставить тему хамства — я был прав?

    И при чем тут мое оправдание? АЛьФ по непонятной причине в (74) оторвался на меня, а теперь я же и должен оправдываться? 🙂

    Reply
  53. Altair777

    (89) Я ни на что не напрашиваюсь.

    > кроме рекламы фирмы 1С

    за это я извинился в убитом без причины комменте

    > и самовосхваления

    Я написал конкретные вещи, почему я считаю, что автор исказил информацию, что бы показать себя в лучшем виде. Так оно и оказалось.

    > ничего полезного не заметил

    Тут я был не прав. Я заметил.

    Что былые заслуги информатора часто не дают людям собственными мозгами оценить достоверность той или иной информации, подаваемую им в лучших традициях Канадской Оптовой Кампании

    Reply
  54. vasilykushnir

    А ну брысь в разные углы! Нашли, елы-палы из-за чего копья ломать…

    1-й факт: чтение констант и периодики всегда более затратно, чем прописанные в глобанике псевдоконстанты — так это ежу понятно. Тут автору плюс. НО!!! Зачем глобальник? Вот Альф защищает автора, а по скромности не предложил очевидное решение: дополнительный глобальный модуль с помощью Формекса. В Дгм все переменные переназначаются динамически (юзеру только выйти и снова зайти в 1С или перезагрузить ДГМ).

    2-й факт: Альтаир доказал, да и сам автор признал, что некоторые цифры мягко говоря среднепотолочные. А это уже минус — не трэба дадьку нас дурить.:-))

    Вывод: да нифига страшного! Плюс на минус, как известно дает ноль, но аж никак не прикупом в морду (в смысле оскорблений) — полковник был такая сука, что пасовал на семи тузах… Так что пожали друг другу руки, мысленно хряпнули по рюмочке и перешли к конструктивному диалогу. А то ей-богу, попрошу у Альфа или у Суппорта права и буду сносить все комметы от первого до последнего, если среди них заваляется хоть один матюгальный (шутка, конечно, но в каждой сказке есть доля сказки…).

    Reply
  55. Altair777

    (91) > Альтаир доказал, да и сам автор признал, что некоторые цифры мягко говоря среднепотолочные. А это уже минус

    Я, собственно говоря, поэтому и поставил минус.

    Reply
  56. vasilykushnir

    > АЛьФ : …Предложено тебе уже было уйти из ветки, раз уж тебя так тема раздражает. Или ты на бан напрашиваешься?

    А вот здесь я че-то не допонял — налей еще (:-)) ). На ИС уже цензура? Уже надо спрашивать, в какую ветку заходить, а в какую низзя?

    Я могу, конечно, создать свой сайт якобы об 1С и если кому-то не понравится история моего друга о любовных похождениях, или рассказ моей любовницы о новой моде на бикини, то и забанить его могу!

    Но кому такой сайт будет интересен? И куда мы катимся?

    Reply
  57. tango

    (91) полковник был совершенно прав, кто-то ведь спер у него восьмого туза?!

    Reply
  58. tango

    короче, «Неожиданный опыт оптимизации» 🙂

    Reply
  59. Altair777

    (93) > Но кому такой сайт будет интересен? И куда мы катимся?

    Не знаю… Я, пожалуй, на мисту.

    Там попроще общаться будет. И с Альфом, и с Тем-О-Ком-Нельзя.

    А то угрожают за правду забанить. Или за несоблюдение субординации?

    Мы не в армии 🙂

    Reply
  60. АЛьФ

    2(93) На ИС с самого нача было принято вести конструктивный диалог без перехода на «сам дурак». Нам бы хотелось, чтобы здесь было общество профессионалов, а не склока базарных баб. К сожалению, последнее время (с увеличением числа посетителей портала) наметилась тенденция к переносу на портал привычного им формата общения. Один привычно хамнул, второй привычно ответил и понеслась.

    Так вот иногда приходится напоминать, что не в каждом споре рождается истина и если тебя что-то сильно не устраивает, то лучше отказаться от продолжение разговора. Причем отказаться должен тот, кто комментирует чужой блог, а не автор блога. У комментарора всегда есть возможность создать свою запись в блоге или статью с полным разбором аналогичной ситуации в качестве полноценного ответа и запостить ссылку в комментарии к изначальной статье. Такие «ответы» (а то и целые цепочки взаимых ответов) на портале сплошь и рядом находятся. И именно такой подход будет корректным, профессиональным и правильным в рамках портала.

    Если же есть желание просто посклочничать, то для этого есть куча мест в интернете. В крайнем случае можно использовать личку, т.к. чужие склоки очень мало кому интересно читать.

    Reply
  61. АЛьФ

    2(96) Для Мисты твой стиль общения как раз очень подходящий. Здесь мы стараемся все же такого не допускать.

    Reply
  62. Abadonna

    (98) Леш, а дурной пример заразителен 🙂 Вспомни, когда и откуда началась базарная склока. Вообще на инфостарте…

    Reply
  63. АЛьФ

    2(99)

    Reply
  64. ineoosaki

    Автору — однозначно минус, за статью со «среднепотолочными» цифрами «из асек, со слов …» и т.д.

    Altair777`у — жирный плюс за бдительность, и потраченное время на критику никчемной статейки.

    Reply
  65. Altair777

    (101) спасибо 🙂

    Reply
  66. vasilykushnir

    (101) Абсолютно согласен. Но на категоричный минус статья все-таки не «тянет» — есть в ней зерно истины. Да и считаю, что с минусами надо бы поосторожней, пощетельней как-то… А то на десятелетней давности юморную статью плюса не жалеем, а за не очень красиво поданную статьюю или программу минус влепить — всегда пожалуйста. Тем более считаю — минуса на комметы признаком моветона. Ну высказался человек — это его мнение, а за что минус? Или минусующий свое мнение считает выше рангом?… Странно все в датском королевстве…

    Reply
  67. Altair777

    Забавно, на мисте афтар никак не отреагировал на то, что его статейка — отстой 🙂

    Reply
  68. Altair777

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *