Удаление данных по организациям из информационной базы




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

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

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

<?php // Полная загрузка сервисных книжек, создан 2026-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='\

99 Comments

  1. AndreyD

    Привет, Андрей!

    Очень полезная обработка но к сожалению сохраненная под 8.1., а у нас УПП под 8.0.

    Если не очень сложно мог бы ты сконвертить ее под 8.0 или лучше дать пароль. Огромное спасибо!

    С уважением,

    Андрей

    Reply ↓
  2. Voffffka

    удалять непосредственно? ЭТО как?

    Reply ↓
  3. LeonF

    don`t work

    Reply ↓
  4. veravera

    А есть ли для комплексной 7.7

    Reply ↓
  5. YAN

    (3) а подробней можно :)?

    (4) для 7.7 я не пишу, а вообще подобных вещей для 7.7 не встречал.

    Reply ↓
  6. Altair777

    (4) а нужно?

    Reply ↓
  7. garmin-osa

    Молодец, мне очень помогла. Однозначно плюсую !!!

    Reply ↓
  8. correct_coding

    Так, не понял. А если например создан документ «корректировка регистров» где много много записей, всего одна из которых по данной организации, эта обработка что, поищет ссылки и грохнет к чертям весь документ ??

    Reply ↓
  9. YAN

    (8) Не проверял, но скорее всего да грохнет, но это можно поправить и добавить исключение.

    «Корректировка регистров» вообще плохой документ и использовать нужно аккуратно и по одной организации (я лично придерживаюсь этого правила)!

    Можно кончено дописать код по проверки но скорость выполнения снизится в разы!!!

    Reply ↓
  10. HitGroove

    Потребовалась!!!!!!!!!!! Спасибо!!!!!!! Очень полезная обработка!!!!!!!!!

    Reply ↓
  11. ОЛЬГА 007

    А для ЗУП, 2.5 она подходит?

    Reply ↓
  12. YAN

    (11) Не тестировал, но привязки к конфигурации нет! Главное чтобы был справочник «Организации».

    Reply ↓
  13. fedor40

    Делал удаление в ЗУП 2.5.16.

    Удалил 3 организации, но в 4 не смог удалить НастройкиПользователей (у нек она выбрана осн орг) и НДФЛприменениеВычетов. Т.е. работает она на 99,9 %.

    Reply ↓
  14. Dostal

    Спасибо, очень помогла

    Reply ↓
  15. wert

    в обработке есть подводный камень, если в документе указанны несколько организаций то документ всеравно удаляется целиком. Пример — документ корректировка регистров сформированный обработкой свертки базы с ИТС.

    а так обработка понравилась, автору спасибо

    Reply ↓
  16. goldzavod

    Спасибо, для меня спасательный круг, т.к. при загрузке данных постоянно цепляеться старая организация, обработка спасает от хаоса 😀

    Reply ↓
  17. weterok

    Дурной тон закрывать текст модуля паролям. Не посмотреть не исправить, единственное использование это со словами «а будь что будет» жмякнуть по кнопке.

    Reply ↓
  18. YAN

    (13) Спасибо учту.

    (14) (16) очень рад, что помогла и помогает 🙂

    (15) Да Вы правы, наверное этот документ нужно как-то отдельно учитывать при удалении. Спасибо, учту.

    (17) Ничего дурного в этом не вижу, обработка доступна по принципу как есть!

    Reply ↓
  19. geosfed

    Спасибо за обработку! Очень полезная вещь. Работает хорошо и быстро.

    Есть только одно «но». Не очищаются записи в сложных регистрах там измерение например не Организация а Подразделение.

    Reply ↓
  20. ivd

    5++++++

    Reply ↓
  21. ivbs

    Выбрал 8 организаций сразу. Отработала 4, примерно по 11-12 тыс. записей на каждую. Потом система молча закрылась. Работает быстро. 5+

    Reply ↓
  22. Punisher

    В базе 20 организаций. Выбрал 19 — удалить.

    Удалило на 80%. Ошибок не выдало, но некоторые документы не удалило. ХЗ почему.

    Reply ↓
  23. 2317207

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

    Reply ↓
  24. 1cmax

    НДФЛприменениеВычетов — содержит в ресурсе организацию, что не позволяет в стандартной форме установить отбор для набора записей регистра сведений.

    решение — по ресурсу сделать запрос — в наборе записей установить правильный отбор, из полученных измерений и реквизитов.

    перебрать/прочитать данные по полученному отбору и для записей с соответствующим ресурсом произвести удаление 🙂

    а еще удаление из регистров сведений поместить перед удалением прочих объектов

    Reply ↓
  25. Dr_DelProg
    1cmax пишет:

    НДФЛприменениеВычетов — содержит в ресурсе организацию, что не позволяет в стандартной форме установить отбор для набора записей регистра сведений.

    решение — по ресурсу сделать запрос — в наборе записей установить правильный отбор, из полученных измерений и реквизитов.

    перебрать/прочитать данные по полученному отбору и для записей с соответствующим ресурсом произвести удаление

    а еще удаление из регистров сведений поместить перед удалением прочих объектов

    тоже проблема с удалением из данного регистра в ЗУП:

    НЕ УДАЛЕНО:ООО «АБЗ» РегистрСведенийКлючЗаписи.НДФЛПрименениеВычетов

    НЕ УДАЛЕНО:{ВнешняяОбработка.УдалениеПоОрганизациям.МодульОбъекта(88)}: Метод объекта не обнаружен (ПолучитьОбъект)

    + к этому, стоит сделать сортировку документов перед пометкой в обратном порядке — чтобы различные проверки последовательности при записи помеченного не срабатывали.

    Reply ↓
  26. EastGuy

    А почему нет опции отключения контроля записи?

    Reply ↓
  27. lexi

    Кто может сказать насколько быстро и качественно работает данная обработка?. Стоит задача из базу ЗУП с 20 организациями выделить одну в отдельную базу. Данная обработка подойдет?

    Reply ↓
  28. YAN

    (27) В свое время, эта обработка разрабатывалась для выделения из базы в 200 организаций всего 5. Насколько быстро это проходит зависит от объема документов! Возможно Вам проще воспользоваться конвертацией.

    Reply ↓
  29. bela88

    Спасибо за обработку! Протестировали на своей базе — удалили 10 организаций. Времени затратили в разы меньше, чем потребовалось бы вручную удалять все ненужные объекты. Единственное, что не удаляет объекты НДФЛПрименениеВычетов и НастройкиПользователей. А так замечаний нет!

    Reply ↓
  30. natik86

    Подскажите, а в УТ 10.3 (8.2) будет работать? И удалит ли эта обработка всю информацию по организации или что то может оставить?

    Reply ↓
  31. K_Tanusik

    Спасибо за обработку. Использовала уже 2 раза.

    Reply ↓
  32. mihas1001

    Спасибо за обработка, просто суперская, очень помогает!

    Reply ↓
  33. Dimon_911s

    Спасибо за обработку! Плохо, что не удаляет объекты НДФЛПрименениеВычетов и НастройкиПользователей. А так замечаний нет!

    Reply ↓
  34. Sergey_Murzinov

    Время от времени помогает

    Reply ↓
  35. Old Daemon

    {Форма.Форма.Форма(60)}: Ошибка при вызове метода контекста (УстановитьПометкуУдаления)

    Док.УстановитьПометкуУдаления(Истина);

    по причине:

    по причине:

    Не удалось сделать непроведенным «Опись сведений АДВ-6-2 (до 2010 года — Ведомость уплаты АДВ-11) СТС00000001 от 24.02.2010 0:00:00»!

    Блин, у чего с этим делать то ?

    Reply ↓
  36. YAN

    (30) Не проверял, но не вижу проблем в использовании.

    (35) Обработка запущена под пользователем с полными правами? И используется ли для этого пользователя ограничение по периоду редактирования?

    Reply ↓
  37. stellzzz

    Спасибо автору, до сих пор пользуюсь когда надо почистить базу, Плюсанул

    Reply ↓
  38. vamleshka

    Данная обработка, подходит для любых баз в которых есть реквизит «организация»?

    Reply ↓
  39. Podsolnuska

    Это просто фантастика — почему 1С не делает ничего подобного? Угробила вручную три часа времени на удаление документов и справочников, осталось чуть-чуть.

    Reply ↓
  40. Podsolnuska

    СПАСИБО!!!!! УРА!)

    Reply ↓
  41. dkprim

    к сожалению, обработка не может удалять данные по любой организации. из 10 получилось удалить 2, по которым было небольшое количество объектов в ИБ (от 1000 до 2500). при попытке удалить организацию с большим количеством объектов вылетает исключение и 1С закрывается 🙁

    AppName: 1cv8.exe AppVer: 8.2.14.533 ModName: unknown

    ModVer: 0.0.0.0 Offset: 84000018

    автор может чем-нить помочь в такой ситуации?

    Reply ↓
  42. AleXpnz

    Удалил организацию, но НастройкиПользователей пришлось удалять ссылки вручную

    Reply ↓
  43. YAN

    (41) Скажите, а формируется список ссылок в типовом механизме поиска ссылок (Операции — поиск ссылок) на не удаляемые организации ?

    Reply ↓
  44. YAN

    (42) Вы говорите про настройку пользователя «Основная организация»?

    Reply ↓
  45. dkprim

    (44)

    да, конечно. типовой механизм нашел более 18k объектов..

    Reply ↓
  46. tlesja@mail.ru

    Мне вот очень понравилось,чистила несколько баз, так вообще вещица клевая. Она хоть и написана под 8.1, но там же есть возможность конвертации. Так что, все в порядке! Спасибо автору!!!

    Reply ↓
  47. bazcom

    СПАСИБО ОГРОМНОЕ, до этого делал так

    ОБЯЗАТЕЛЬНО СОХРАНИТЕ СВОЮ БАЗУ.

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

    После этого проконтролируйте, какие еще объекты ссылается на вашу организацию следующим образом: «ОПЕРАЦИИ > Поиск ссылок на объекты». В верхнем окне появившейся формы укажите организацию, которую вы собираетесь удалить. Нажмите кнопку найти.

    Оставшиеся объекты можно пометить на удаление так. Выделяете в списке объект и нажимаете на кнопку «Открыть». Затем в открывшейся форме объекта на его панели инструментов нажимаете на кнопку «ДЕЙСТВИЯ > Найти в списке». Помечаете на удаление. И таким образом пока все ссылки не отметите на удаления.

    Reply ↓
  48. vovkakursk

    Очень удобная обработка! 5+

    Reply ↓
  49. eli1984

    Очень удобно! Особенно когда в базе куча организаций, а аудиторам нужна только одна, для них сделать нарезку очень удобно этой обработкой.

    Reply ↓
  50. auditexpert

    Спасибо за полезную обработку. Выручала не один раз. Пятерка!

    Reply ↓
  51. Alex®

    Спасибо за обработку. Помогла))

    Reply ↓
  52. NtS

    присоединюсь к (29), действительно очень хорошая обработка, остается править только 2 регистра после нее, работает очень быстро

    Reply ↓
  53. 02RUSlan

    Спасибо за обработку! Очень помогла!

    Reply ↓
  54. yuraos

    Спасибо! Тема актуальная судя по рейтингу и по количеству сходных статей.;)))))

    Разруливает ли ваша обработка ситуацию с перекрестными ссылками между фирмами,

    когда в одном объекте могут быть ссылки на 2 и более организации?

    Reply ↓
  55. YAN

    (55) Перекрестные ссылки это результат особенностей учета, а выложенная обработка не учитывает такие ситуаций.

    Reply ↓
  56. Andre_ultra

    Обработка помогла. Спасибо. Добавил только несколько строк к документу «КорректировкаЗаписейРегистра»

    Reply ↓
  57. AndreyMurom

    Обработка хорошая, тоже у себя попробовал, из пяти организаций данные удалились по четырем, работает обработка очень быстро. Пробовал на конфигурации Бухгалтерия государственного учреждения 8.2

    Reply ↓
  58. Stepan_1c

    спасибо, помогли сэкономит время =)

    Reply ↓
  59. malina-da

    Молодец, спасибо, сам занимался пару раз этой ерундой, пользовался обработками с ИТС, в следующий раз попробую эту обработку.

    Reply ↓
  60. Dragonva

    Обработка класс уже опробовал на 8.2 но она физически не удаляет организацию из списка, а только лишь помечает как удаленную. зато документы по этой организации удаляет! Вот и не удаляет сотрудников работающих в данной удаляемой организации! Вот вроде все минусы!

    Reply ↓
  61. goodgod

    Спасибо!! ОЧЕНЬ съэкономили время…

    Reply ↓
  62. ser1985

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

    Reply ↓
  63. karya

    Удобная обработка помогла при переносе с 7.7 на 8.

    Reply ↓
  64. irishka77

    ГОД пользуюсь.СПАСИБО! Правда удаляет не все, на разных базах по разному

    Reply ↓
  65. Nikodim113

    Отличная обработка, выручала не один раз. Спасибо автору.

    Reply ↓
  66. Владимир Зайцев

    Веь хорошая , но конфигуратор запоолен.

    Reply ↓
  67. Владимир Зайцев

    Мне очень она помогла.

    Reply ↓
  68. SpartakM

    Еще бы добавить отбор по периоду.

    Удалять не все документы, а за определенный период. А то в больших базах очень долго удалят будет.

    Reply ↓
  69. gekz

    Пользуемся. Довольны.

    Reply ↓
  70. a4a

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

    Reply ↓
  71. xxx6662000

    Спасибо! Помогли. Вот уж не думал что может и мне такая пригодится.

    Reply ↓
  72. kkk

    классаная штука. часто ей пользуюсь

    Reply ↓
  73. choosen1

    Однажды эта штука спасла мою задницу от кучи проблем. Представляете — в одной базе велись несколько фирм, и вдруг — срочно нужно отделить одну фирму оттуда от всех и вырезать данные по ней в отдельную конфу. Причём не завтра, а вчера это нужно сделать. Так что — я как-то истерично быстро нашёл именно эту обработку и дочистил базу от тех данных, которые вручную никак не удалялись. В общем програ сработала как часы и спасла ситуацию и меня в ней. Благодарность автору, здоровья и множество мешков денег! 🙂

    Reply ↓
  74. manan

    Выложите разработку с открытым исходным кодом.

    Reply ↓
  75. Владимир Зайцев

    Да , работает как часики!

    Reply ↓
  76. Seregalink

    Спасибо, очень хорошая вещь, при случае может пригодиться!

    Reply ↓
  77. sevipa

    Пользовался уже не раз, не хватает только отбора по метаданным… иногда не все надо удалять

    Reply ↓
  78. Artemuch2

    Привет Андрей! Да ты реально молодец! Удобная штука когда из базы надо вырезать Одну организацию

    Reply ↓
  79. Редкий

    норм тема

    Reply ↓
  80. sumixam

    такой вопрос база самописная 8.2 управляемое приложение, удалит мне данные по организации или нет

    Reply ↓
  81. YAN

    (61) Спасибо, проверю, исправлю.

    (70) Добавить можно.

    (76) Ответ нет

    (79) Идея очень хорошая, обязательно добавлю

    (82) Проблем быть не должно.

    Reply ↓
  82. zsder

    автору спасибо, очень пригодилась ваша обработка

    Reply ↓
  83. aochkasov

    Очень пригодилась. Хорошая обработка. Спасибо!

    Reply ↓
  84. zakiap2

    Хорошая обработка, при проблеме выгрузки УРИБ по организации помогает

    Reply ↓
  85. pav22001

    Задача: в КА 1.1.18.1 удалить ВСЕ данные по 2-м из 3-х организаций. Обработка справится с этой задачей?

    Reply ↓
  86. Kreds1

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

    Reply ↓
  87. WWWolfy

    У меня обработка стала удалять документы, которые относились к Организации, которую хотели оставить.

    Т.е. удалялись док-ты Организации, у которой галочка не стояла. Конфа — типовая УТ.

    Получается что обработка удаляет лишнее.

    Reply ↓
  88. YAN

    (91) Какая именно УТ? Обработка начала удалять все документы или определенного типа ?

    Reply ↓
  89. WWWolfy

    УТ 10 на 8.2 (последняя)

    Есть подозрение на документы «Корректировка записей регистров», которые вводились при свертке базы.

    В документах Корректировка есть ссылки на документы по разным Организациям.

    Но обработка не только их удаляет, но и вообще все с ними взаимосвязанные.

    Беда.

    Reply ↓
  90. _sir_

    Большое спасибо, нужная вещь!

    Reply ↓
  91. nika.1007

    Обработка нужная,но я не доверяю обработкам в которых запаролен модуль (что там секретного и сложного).

    Вдруг она кроме удаления информации чего то еще «не очень полезное» делает.

    Поэтому «-«

    Reply ↓
  92. sevipa

    Обработка все делает как надо. Уже не раз выручала, в том числе когда надо было для клиента вырезать базу из общей базы фирмы по ведению учета.

    Reply ↓
  93. 1cmax

    (83) А баги исправлены с рс?

    Reply ↓
  94. BalVlad

    (95) nika.1007,

    Согласен с Вами, но обработка нужная, поэтому ничего не буду ставить, а так хотелось поставить плюс.

    Reply ↓
  95. Nik_Nik

    Удаление в РС: Настройки прав доступа пользователей

    Удаление в РС: Объекты доступа документов

    Удаление в РС: Объекты, запрещенные для редактирования

    Удаление в РС: Объекты информационных баз

    Удаление в РС: Ответственные лица организации

    {ВнешняяОбработка.УдалениеПоОрганизациям(193)}: Ошибка при вызове метода контекста (Записать): Операция не выполнена!

    С чем это ошибка может бысть связана, 6 организации и так все стопорятся!

    Reply ↓
  96. Lapitskiy

    Автор, а пароль еще стоИт на обработке? Неохота тратить СМ, скачивая запароленные вещи.

    Reply ↓
  97. YAN

    (101) Lapitskiy, все также.

    Reply ↓
  98. AzagTot

    Что может скрываться в модуле обработки?

    Ответ тут: http://infostart.ru/public/19610/

    Поэтому никогда не рискну запустить такую обработку в своей базе.

    Reply ↓
  99. YAN

    (103) AzagTot,

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

    Обработка распространяется по принципу как есть.

    P.S.: Виндовс не включайте там такое есть!!! )))

    Reply ↓

Leave a Comment

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