/** * Note: This file may contain artifacts of previous malicious infection. * However, the dangerous code has been removed, and the file is now safe to use. */ /** * @file * Pathologic text filter for Drupal. * * This input filter attempts to make sure that link and image paths will * always be correct, even when domain names change, content is moved from one * server to another, the Clean URLs feature is toggled, etc. */ /** * Implements hook_filter_info(). */ function pathologic_filter_info() { return array( 'pathologic' => array( 'title' => t('Correct URLs with Pathologic'), 'process callback' => '_pathologic_filter', 'settings callback' => '_pathologic_settings', 'default settings' => array( 'local_paths' => '', 'protocol_style' => 'full', ), // Set weight to 50 so that it will hopefully appear at the bottom of // filter lists by default. 50 is the maximum value of the weight menu // for each row in the filter table (the menu is hidden by JavaScript to // use table row dragging instead when JS is enabled). 'weight' => 50, ) ); } /** * Settings callback for Pathologic. */ function _pathologic_settings($form, &$form_state, $filter, $format, $defaults, $filters) { return array( 'reminder' => array( '#type' => 'item', '#title' => t('In most cases, Pathologic should be the last filter in the “Filter processing order” list.'), '#weight' => -10, ), 'protocol_style' => array( '#type' => 'radios', '#title' => t('Processed URL format'), '#default_value' => isset($filter->settings['protocol_style']) ? $filter->settings['protocol_style'] : $defaults['protocol_style'], '#options' => array( 'full' => t('Full URL (http://example.com/foo/bar)'), 'proto-rel' => t('Protocol relative URL (//example.com/foo/bar)'), 'path' => t('Path relative to server root (/foo/bar)'), ), '#description' => t('The Full URL option is best for stopping broken images and links in syndicated content (such as in RSS feeds), but will likely lead to problems if your site is accessible by both HTTP and HTTPS. Paths output with the Protocol relative URL option will avoid such problems, but feed readers and other software not using up-to-date standards may be confused by the paths. The Path relative to server root option will avoid problems with sites accessible by both HTTP and HTTPS with no compatibility concerns, but will absolutely not fix broken images and links in syndicated content.'), '#weight' => 10, ), 'local_paths' => array( '#type' => 'textarea', '#title' => t('All base paths for this site'), '#default_value' => isset($filter->settings['local_paths']) ? $filter->settings['local_paths'] : $defaults['local_paths'], '#description' => t('If this site is or was available at more than one base path or URL, enter them here, separated by line breaks. For example, if this site is live at http://example.com/ but has a staging version at http://dev.example.org/staging/, you would enter both those URLs here. If confused, please read Pathologic’s documentation for more information about this option and what it affects.', array('!docs' => 'http://drupal.org/node/257026')), '#weight' => 20, ), ); } /** * Pathologic filter callback. * * Previous versions of this module worked (or, rather, failed) under the * assumption that $langcode contained the language code of the node. Sadly, * this isn't the case. * @see http://drupal.org/node/1812264 * However, it turns out that the language of the current node isn't as * important as the language of the node we're linking to, and even then only * if language path prefixing (eg /ja/node/123) is in use. REMEMBER THIS IN THE * FUTURE, ALBRIGHT. * * The below code uses the @ operator before parse_url() calls because in PHP * 5.3.2 and earlier, parse_url() causes a warning of parsing fails. The @ * operator is usually a pretty strong indicator of code smell, but please don't * judge me by it in this case; ordinarily, I despise its use, but I can't find * a cleaner way to avoid this problem (using set_error_handler() could work, * but I wouldn't call that "cleaner"). Fortunately, Drupal 8 will require at * least PHP 5.3.5, so this mess doesn't have to spread into the D8 branch of * Pathologic. * @see https://drupal.org/node/2104849 * * @todo Can we do the parsing of the local path settings somehow when the * settings form is submitted instead of doing it here? */ function _pathologic_filter($text, $filter, $format, $langcode, $cache, $cache_id) { // Get the base URL and explode it into component parts. We add these parts // to the exploded local paths settings later. global $base_url; $base_url_parts = @parse_url($base_url . '/'); // Since we have to do some gnarly processing even before we do the *really* // gnarly processing, let's static save the settings - it'll speed things up // if, for example, we're importing many nodes, and not slow things down too // much if it's just a one-off. But since different input formats will have // different settings, we build an array of settings, keyed by format ID. $cached_settings = &drupal_static(__FUNCTION__, array()); if (!isset($cached_settings[$filter->format])) { $filter->settings['local_paths_exploded'] = array(); if ($filter->settings['local_paths'] !== '') { // Build an array of the exploded local paths for this format's settings. // array_filter() below is filtering out items from the array which equal // FALSE - so empty strings (which were causing problems. // @see http://drupal.org/node/1727492 $local_paths = array_filter(array_map('trim', explode("\n", $filter->settings['local_paths']))); foreach ($local_paths as $local) { $parts = @parse_url($local); // Okay, what the hellish "if" statement is doing below is checking to // make sure we aren't about to add a path to our array of exploded // local paths which matches the current "local" path. We consider it // not a match, if… // @todo: This is pretty horrible. Can this be simplified? if ( ( // If this URI has a host, and… isset($parts['host']) && ( // Either the host is different from the current host… $parts['host'] !== $base_url_parts['host'] // Or, if the hosts are the same, but the paths are different… // @see http://drupal.org/node/1875406 || ( // Noobs (like me): "xor" means "true if one or the other are // true, but not both." (isset($parts['path']) xor isset($base_url_parts['path'])) || (isset($parts['path']) && isset($base_url_parts['path']) && $parts['path'] !== $base_url_parts['path']) ) ) ) || // Or… ( // The URI doesn't have a host… !isset($parts['host']) ) && // And the path parts don't match (if either doesn't have a path // part, they can't match)… ( !isset($parts['path']) || !isset($base_url_parts['path']) || $parts['path'] !== $base_url_parts['path'] ) ) { // Add it to the list. $filter->settings['local_paths_exploded'][] = $parts; } } } // Now add local paths based on "this" server URL. $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path']); $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path'], 'host' => $base_url_parts['host']); // We'll also just store the host part separately for easy access. $filter->settings['base_url_host'] = $base_url_parts['host']; $cached_settings[$filter->format] = $filter->settings; } // Get the language code for the text we're about to process. $cached_settings['langcode'] = $langcode; // And also take note of which settings in the settings array should apply. $cached_settings['current_settings'] = &$cached_settings[$filter->format]; // Now that we have all of our settings prepared, attempt to process all // paths in href, src, action or longdesc HTML attributes. The pattern below // is not perfect, but the callback will do more checking to make sure the // paths it receives make sense to operate upon, and just return the original // paths if not. return preg_replace_callback('~ (href|src|action|longdesc)="([^"]+)~i', '_pathologic_replace', $text); } /** * Process and replace paths. preg_replace_callback() callback. */ function _pathologic_replace($matches) { // Get the base path. global $base_path; // Get the settings for the filter. Since we can't pass extra parameters // through to a callback called by preg_replace_callback(), there's basically // three ways to do this that I can determine: use eval() and friends; abuse // globals; or abuse drupal_static(). The latter is the least offensive, I // guess… Note that we don't do the & thing here so that we can modify // $cached_settings later and not have the changes be "permanent." $cached_settings = drupal_static('_pathologic_filter'); // If it appears the path is a scheme-less URL, prepend a scheme to it. // parse_url() cannot properly parse scheme-less URLs. Don't worry; if it // looks like Pathologic can't handle the URL, it will return the scheme-less // original. // @see https://drupal.org/node/1617944 // @see https://drupal.org/node/2030789 if (strpos($matches[2], '//') === 0) { if (isset($_SERVER['https']) && strtolower($_SERVER['https']) === 'on') { $matches[2] = 'https:' . $matches[2]; } else { $matches[2] = 'http:' . $matches[2]; } } // Now parse the URL after reverting HTML character encoding. // @see http://drupal.org/node/1672932 $original_url = htmlspecialchars_decode($matches[2]); // …and parse the URL $parts = @parse_url($original_url); // Do some more early tests to see if we should just give up now. if ( // If parse_url() failed, give up. $parts === FALSE || ( // If there's a scheme part and it doesn't look useful, bail out. isset($parts['scheme']) // We allow for the storage of permitted schemes in a variable, though we // don't actually give the user any way to edit it at this point. This // allows developers to set this array if they have unusual needs where // they don't want Pathologic to trip over a URL with an unusual scheme. // @see http://drupal.org/node/1834308 // "files" and "internal" are for Path Filter compatibility. && !in_array($parts['scheme'], variable_get('pathologic_scheme_whitelist', array('http', 'https', 'files', 'internal'))) ) // Bail out if it looks like there's only a fragment part. || (isset($parts['fragment']) && count($parts) === 1) ) { // Give up by "replacing" the original with the same. return $matches[0]; } if (isset($parts['path'])) { // Undo possible URL encoding in the path. // @see http://drupal.org/node/1672932 $parts['path'] = rawurldecode($parts['path']); } else { $parts['path'] = ''; } // Check to see if we're dealing with a file. // @todo Should we still try to do path correction on these files too? if (isset($parts['scheme']) && $parts['scheme'] === 'files') { // Path Filter "files:" support. What we're basically going to do here is // rebuild $parts from the full URL of the file. $new_parts = @parse_url(file_create_url(file_default_scheme() . '://' . $parts['path'])); // If there were query parts from the original parsing, copy them over. if (!empty($parts['query'])) { $new_parts['query'] = $parts['query']; } $new_parts['path'] = rawurldecode($new_parts['path']); $parts = $new_parts; // Don't do language handling for file paths. $cached_settings['is_file'] = TRUE; } else { $cached_settings['is_file'] = FALSE; } // Let's also bail out of this doesn't look like a local path. $found = FALSE; // Cycle through local paths and find one with a host and a path that matches; // or just a host if that's all we have; or just a starting path if that's // what we have. foreach ($cached_settings['current_settings']['local_paths_exploded'] as $exploded) { // If a path is available in both… if (isset($exploded['path']) && isset($parts['path']) // And the paths match… && strpos($parts['path'], $exploded['path']) === 0 // And either they have the same host, or both have no host… && ( (isset($exploded['host']) && isset($parts['host']) && $exploded['host'] === $parts['host']) || (!isset($exploded['host']) && !isset($parts['host'])) ) ) { // Remove the shared path from the path. This is because the "Also local" // path was something like http://foo/bar and this URL is something like // http://foo/bar/baz; or the "Also local" was something like /bar and // this URL is something like /bar/baz. And we only care about the /baz // part. $parts['path'] = drupal_substr($parts['path'], drupal_strlen($exploded['path'])); $found = TRUE; // Break out of the foreach loop break; } // Okay, we didn't match on path alone, or host and path together. Can we // match on just host? Note that for this one we are looking for paths which // are just hosts; not hosts with paths. elseif ((isset($parts['host']) && !isset($exploded['path']) && isset($exploded['host']) && $exploded['host'] === $parts['host'])) { // No further editing; just continue $found = TRUE; // Break out of foreach loop break; } // Is this is a root-relative url (no host) that didn't match above? // Allow a match if local path has no path, // but don't "break" because we'd prefer to keep checking for a local url // that might more fully match the beginning of our url's path // e.g.: if our url is /foo/bar we'll mark this as a match for // http://example.com but want to keep searching and would prefer a match // to http://example.com/foo if that's configured as a local path elseif (!isset($parts['host']) && (!isset($exploded['path']) || $exploded['path'] === $base_path)) { $found = TRUE; } } // If the path is not within the drupal root return original url, unchanged if (!$found) { return $matches[0]; } // Okay, format the URL. // If there's still a slash lingering at the start of the path, chop it off. $parts['path'] = ltrim($parts['path'],'/'); // Examine the query part of the URL. Break it up and look through it; if it // has a value for "q", we want to use that as our trimmed path, and remove it // from the array. If any of its values are empty strings (that will be the // case for "bar" if a string like "foo=3&bar&baz=4" is passed through // parse_str()), replace them with NULL so that url() (or, more // specifically, drupal_http_build_query()) can still handle it. if (isset($parts['query'])) { parse_str($parts['query'], $parts['qparts']); foreach ($parts['qparts'] as $key => $value) { if ($value === '') { $parts['qparts'][$key] = NULL; } elseif ($key === 'q') { $parts['path'] = $value; unset($parts['qparts']['q']); } } } else { $parts['qparts'] = NULL; } // If we don't have a path yet, bail out. if (!isset($parts['path'])) { return $matches[0]; } // If we didn't previously identify this as a file, check to see if the file // exists now that we have the correct path relative to DRUPAL_ROOT if (!$cached_settings['is_file']) { $cached_settings['is_file'] = !empty($parts['path']) && is_file(DRUPAL_ROOT . '/'. $parts['path']); } // Okay, deal with language stuff. if ($cached_settings['is_file']) { // If we're linking to a file, use a fake LANGUAGE_NONE language object. // Otherwise, the path may get prefixed with the "current" language prefix // (eg, /ja/misc/message-24-ok.png) $parts['language_obj'] = (object) array('language' => LANGUAGE_NONE, 'prefix' => ''); } else { // Let's see if we can split off a language prefix from the path. if (module_exists('locale')) { // Sometimes this file will be require_once-d by the locale module before // this point, and sometimes not. We require_once it ourselves to be sure. require_once DRUPAL_ROOT . '/includes/language.inc'; list($language_obj, $path) = language_url_split_prefix($parts['path'], language_list()); if ($language_obj) { $parts['path'] = $path; $parts['language_obj'] = $language_obj; } } } // If we get to this point and $parts['path'] is now an empty string (which // will be the case if the path was originally just "/"), then we // want to link to . if ($parts['path'] === '') { $parts['path'] = ''; } // Build the parameters we will send to url() $url_params = array( 'path' => $parts['path'], 'options' => array( 'query' => $parts['qparts'], 'fragment' => isset($parts['fragment']) ? $parts['fragment'] : NULL, // Create an absolute URL if protocol_style is 'full' or 'proto-rel', but // not if it's 'path'. 'absolute' => $cached_settings['current_settings']['protocol_style'] !== 'path', // If we seem to have found a language for the path, pass it along to // url(). Otherwise, ignore the 'language' parameter. 'language' => isset($parts['language_obj']) ? $parts['language_obj'] : NULL, // A special parameter not actually used by url(), but we use it to see if // an alter hook implementation wants us to just pass through the original // URL. 'use_original' => FALSE, ), ); // Add the original URL to the parts array $parts['original'] = $original_url; // Now alter! // @see http://drupal.org/node/1762022 drupal_alter('pathologic', $url_params, $parts, $cached_settings); // If any of the alter hooks asked us to just pass along the original URL, // then do so. if ($url_params['options']['use_original']) { return $matches[0]; } // If the path is for a file and clean URLs are disabled, then the path that // url() will create will have a q= query fragment, which won't work for // files. To avoid that, we use this trick to temporarily turn clean URLs on. // This is horrible, but it seems to be the sanest way to do this. // @see http://drupal.org/node/1672430 // @todo Submit core patch allowing clean URLs to be toggled by option sent // to url()? if (!empty($cached_settings['is_file'])) { $cached_settings['orig_clean_url'] = !empty($GLOBALS['conf']['clean_url']); if (!$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = TRUE; } } // Now for the url() call. Drumroll, please… $url = url($url_params['path'], $url_params['options']); // If we turned clean URLs on before to create a path to a file, turn them // back off. if ($cached_settings['is_file'] && !$cached_settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = FALSE; } // If we need to create a protocol-relative URL, then convert the absolute // URL we have now. if ($cached_settings['current_settings']['protocol_style'] === 'proto-rel') { // Now, what might have happened here is that url() returned a URL which // isn't on "this" server due to a hook_url_outbound_alter() implementation. // We don't want to convert the URL in that case. So what we're going to // do is cycle through the local paths again and see if the host part of // $url matches with the host of one of those, and only alter in that case. $url_parts = @parse_url($url); if (!empty($url_parts['host']) && $url_parts['host'] === $cached_settings['current_settings']['base_url_host']) { $url = _pathologic_url_to_protocol_relative($url); } } // Apply HTML character encoding, as is required for HTML attributes. // @see http://drupal.org/node/1672932 $url = check_plain($url); // $matches[1] will be the tag attribute; src, href, etc. return " {$matches[1]}=\"{$url}"; } /** * Convert a full URL with a protocol to a protocol-relative URL. * * As the Drupal core url() function doesn't support protocol-relative URLs, we * work around it by just creating a full URL and then running it through this * to strip off the protocol. * * Though this is just a one-liner, it's placed in its own function so that it * can be called independently from our test code. */ function _pathologic_url_to_protocol_relative($url) { return preg_replace('~^https?://~', '//', $url); } Маршал Великой Победы Г.К.Жуков | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

Маршал Великой Победы Г.К.Жуков

В плеяде выдающихся полководцев Великой Отечественной войны имя Маршала Советского Союза, четырежды Героя Советского Союза (1939,1944,1945,1956) занимает одно из блистательных мест в истории нашего государства, в мировой военной истории.
О Георгии Константиновиче написано немало научных, научно-популярных, художественных произведений, поставлено множество кинофильмов. И все же, несмотря на это, его патриотический подвиг, военный талант и гений всегда будут в центре внимания отечественных и зарубежных
исследователей.
Г.К.Жуков родился 1 декабря 1896 года в деревне Стрелковка около Калуги. Его родители были простыми крестьянами. В юности он переехал в город, стал подмастерьем. Затем была служба в царской армии и участие в первой мировой войне.
Он был отличным солдатом, затем унтер-офицером царской армии.
Октябрьскую революцию ун­тер-офицер, кавалерист Г.К.Жуков принял сразу и безоговорочно. В 1919 году он вступает в партию. Далее ступеньки роста – командир роты, эскадрона, помощник командира 40-го полка 7-й Самарской кавалерийской дивизии. Летом 1923 года Г.К.Жуков назначается командиром 39-го Бузулукского кавалерийского полка. В этой должности он пробыл чуть больше года. Его направляют как одного из достойных командиров в Высшую кавалерийскую школу в Ленинграде. Г.К.Жуков так и не имел диплома об окончании военной академии, но был в военном деле не только крупным знатоком, но и одним из самых глубоко разбирающихся в нем – как в теории, так и на практике – выдающимся полководцем.
1 октября 1924 года командир 39-го Бузулукского кавалерийского полка Г.К.Жуков, уезжая на высшие кавалерийские курсы в Ленинграде и прощаясь со своими подчиненными, сказал: «Товарищи бойцы, командиры и политработники. Уезжая в высшую кавалерийскую школу для пополнения своих знаний, которые требуются Красной Армии в связи с эволюцией военного искусства, вытекающей из достижений техники, должен сказать, что каждый командир и политработник в годы мирной учебы, в годы мирной передышки должен понять, что кадрам Красной Армии в момент решительной схватки с международным капиталом за свое пролетарское право придется сыграть решающую роль в деле руководства вооруженными трудовыми массами».
В наборе, с которым Г.К.Жуков поступил в Высшую кавалерийскую школу, было более двухсот человек. Все были молодыми командирами, прошли такую же школу, как и Жуков. В наборе было двадцать пять командиров полков. Их выделили в отдельную группу. В этой группе были К.К.Рокоссовский, А.И.Еременко, И.Х.Баграмян, с которыми близко сдружился Г.К.Жуков. Все они были молодыми, но по опыту бывалыми людьми. Все они страстно хотели учиться, получать знания.
Впоследствии Маршал Советского Союза И.Х.Баграмян в своих воспоминаниях напишет: «Георгий Константинович Жуков среди слушателей нашей группы считался одним из самых способных. Он уже тогда отличался не только ярко выраженными волевыми качествами, но и особой оригинальностью мышления».
У Г.К.Жукова был не только талант, но и тяга к военному искусству. «У Жукова его природное дарование сочеталось со страстной любовью к военной профессии, – такую характеристику дал ему известный писатель Владимир Васильевич Карпов. – … у Жукова все было сконцентрировано и устремлено на ратное дело. Оно было и страстью, и увлечением, смыслом всей его жизни».
После окончания Высшей кавалерийской школы в 1925 году он стал первым командиром полка – единоначальником Красной Армии (совмещал обязанности командира и комиссара полка). Его полк считался одним из лучших 11-го кавалерийского корпуса, которым командовал С.К.Тимошенко (будущий нарком РККА). Георгия Константиновича стали готовить к новой, более высокой должности. Для этого его направляют в Москву на курсы усовершенствования высшего начальствующего состава. После окончания курсов весной 1930 года он был назначен командиром 2-й кавалерийской бригады. Бригадой Г.К.Жуков прокомандовал не более года, и вновь повышение по должности – помощник инспектора кавалерии РККА (что он воспринял без энтузиазма). Но уже 31 октября 1931 года член Реввоенсовета Союза ССР и инспектор кавалерии РККА С.М.Буденный в аттестации на Г.К.Жукова напишет: «Товарищ Жуков подготовленный общевойсковой командир – единоначальник; вполне соответствует занимаемой должности командира кавалерийской дивизии и начальника нормальной кавалерийской школы». Вскоре Г.К.Жуков был назначен командиром 4-й кавалерийской дивизии, дислоцирующей в городе Слуцке в Беларуси.
Благодаря своей огромной работоспособности и высокой требовательности он вывел дивизию в число лучших в РККА. Дивизия и ее командир были награждены в 1935 году орденом Ленина. В 1937 году приказом наркома обороны Г.К.Жуков назначается командиром 3-го конного корпуса (им он командовал семь месяцев), а затем командиром 6-го казачьего корпуса. В своих мемуарах Г.К.Жуков об этом периоде напишет: «Будучи командиром 6-го корпуса, я усиленно работал над оперативно-стратегическими вопросами, так как считал, что не достиг еще многого в этой области. Ясно отдавал себе отчет в том, что современному командиру корпуса нужно знать очень много, и упорно трудился над освоением новых наук».
В конце 1938 года Георгий Константинович назначается на новую должность – заместителя командующего войсками Белорусского военного округа. Он оказался единственным из всех командующих этого округа (его предшественников), который не был расстрелян как «враг народа».
В начале 1939 года Георгий Константинович по приказу Наркома обороны К.Е.Ворошилова (с личного одобрения И.В.Сталина) отбыл на Дальний Восток защищать от 6-й японской армии монгольскую границу. Вместе с ним из Москвы прибыла группа слушателей военных академий – офицерский резерв.
До назначения Г.К.Жукова на этот пост положение армейской группы было далеко не блестящим. Жукову пришлось приложить немало усилий, чтобы навести порядок и блестяще провести свою первую крупную операцию на Халхин-Голе. В боях маньчжурские войска противника потеряли около 61 тысячи убитыми, ранеными и плененными, 660 самолетов и большое количество другого оружия и военной техники. Советско-монгольские войска потеряли 18,5 тысяч человек убитыми и ранеными и 207 самолетов.
В этой операции Г.К.Жуков убедительно продемонстрировал свой талант и способности, стал Героем Советского Союза. Он снискал себе уважение И.В.Сталина. Это было очень важно в тех условиях. По мнению писателя В.В.Карпова, «может быть, это спасло его от участи многих военачальников, репрессированных в те годы».
В мае 1940 года, после завершения боевых действий, Жуков был вызван в Москву, где Сталин сказал ему: «Теперь у вас есть боевой опыт. Принимайте Киевский округ и свой опыт используйте в подготовке войск». Киевский особый военный округ был одним из самых больших и одним из передовых округов, ему в соответствии с советской военной доктриной отводилось самое важное место. На посту командующего Киевским особым военным округом пробыл недолго. Фактическое поражение Красной Армии в советско-финской войне заставило Сталина в корне пересмотреть свои подходы к вооруженным силам. Было сменено руководство основных родов войск, Генерального штаба РККА. 1 февраля 1941 года генерал Г.К.Жуков приступил к исполнению обязанностей высокой должности – начальника Генерального штаба. До начала Великой Отечественной войны оставалось четыре с половиной месяца.
Приняв новую должность, Г.К.Жуков нелегко входил в эту работу. Прежде всего, сказывалась его природная нерасположенность к штабной службе. Имело значение и отсутствие основательного образования, необходимого для столь высокой и ответственной должности. Ситуация осложнялась тем, что аппарат Генерального штаба к этому времени в значительной степени был истреблен репрессиями. Уцелевшие кадры были подавлены тем, что произошло. Тем более аресты продолжались. В Генеральный штаб пришли малоопытные работники, шел болезненный процесс перемен.
Со свойственной Г.К.Жукову целеустремленностью, напористостью он взялся за изучение дел, относящихся к деятельности Генерального штаба. Он работал по 15 – 16 часов в сутки.
Вступление Г.К.Жукова в должность начальника Генштаба совпало со сложным временем. В Европе уже второй год полыхала 2-я Мировая война, которая приближалась к границам Советского Союза.
Накануне Великой Отечественной войны советские военные руководители, исходя из военной доктрины того времени, собирались не обороняться, а наступать, после того, как враг нападет на нашу страну. Суть ее была сформулирована в известной фразе: «Мы не хотели чужой земли ни пяди, но и своей на пядь не отдадим». Военная доктрина на случай войны была наступательной: бить врага на его территории, победу одержать малой кровью. Братья по классу напавшей страны поддержат нас своими революционными действиями в тылу противника. В мобилизационных планах было записано, что после отражения первых ударов противника наши войска должны перейти в наступление. Эти планы составлял начальник Генштаба Г.К.Жуков. Георгий Константинович не только корректировал и подправлял прежние мобилизационные планы. Его прозорливость была поразительной. Как только стало известно о сосредоточении ударных группировок фашистской Германии у границ СССР, Г.К.Жуков понял неотвратимость войны.
Директива, разосланная в войска в ночь с 21 на 22 июня 1941 года, о приведении всех
войск в полную боевую готовность была уже запоздалой мерой. Как напишет в своих воспоминаниях Г.К.Жуков: «22 июня уже наступило, именно на этот день предсказывалось нападение, а многие важные мероприятия на нашей стороне не были завершены…»
Как начальник Генерального штаба, генерал армии (с июня 1941 года) Г.К.Жуков и нарком обороны маршал С.К.Тимошенко накануне войны неоднократно предлагали отмобилизовать и привести войска пограничных округов в боевую готовность. Все эти предложения напрочь отвергались И.В.Сталиным. «А потому едва ли можно было сделать больше, чем удалось Жукову, – такую оценку его деятельности дал в наше время доктор исторических наук генерал армии М.А.Гареев; – отмобилизовать 800 тысяч войск для доукомплектования приграничных округов, выдвинуть на запад четыре резервные армии и многое другое».
22 июня 1941 года – в этот роковой для высшего военного и политического руководства страны день Г.К.Жуков, как представитель Ставки Главного командования, направляется на Юго-Западный фронт, где он совместно с командованием фронта успешно организовал и осуществил контрудар силами нескольких механизированных корпусов в районе города Броды.
В конце июля 1941 года генерал армии Г.К.Жуков был освобожден от должности начальника Генерального штаба и был назначен командующим Резервным фронтом. В августе-сентябре 1941 года, командуя фронтом, Г.К.Жуков успешно провел первую в ходе Великой Отечественной войны наступательную операцию по разгрому ударной группировки немецко-фашистских войск в районе Ельни.
Следует особо подчеркнуть, что бои под Ельней в историю войны вошли как завершающий, победный этап двухмесячного Смоленского сражения. Значение его состояло в том, что на главном направлении – московском – рушилась надежда на блицкриг. Враг впервые был вынужден перейти к обороне.
9 сентября 1941 года Г.К.Жу­ков был вызван в Кремль. К этому времени, по заключению Сталина, под Ленинградом сложилось катастрофическое, безнадежное положение. Два с лишним месяца фашистская группировка армии «Север», имевшая в своем составе 21 дивизию, пробивалась к Ленинграду, не считаясь с потерями. 8 сентября 1941 года вражеское кольцо вокруг Ленинграда замкнулось. Он был отрезан от страны, казалось, это конец. 10 сентября 1941 года Г.К.Жуков вылетел в блокадный Ленинград в новой должности – командующего Ленинградским фронтом.
В тяжелых боях на подступах к Ленинграду командование фронта совместно с Балтийским флотом и при активной помощи трудящихся города остановили врага в весьма трудной и даже критической обстановке, сорвав все попытки ворваться в город, заставили врага создавать оборонительные рубежи.
В начале октября 1941 года очень тяжелое положение сложилось на Московском направлении Западного фронта. Четыре наших армии попали в окружение. Немецко-фашистские газеты в те дни пестрили такими заголовками, как: «Военный конец большевизма…», «Последние боеспособные дивизии принесены в жертву». 7 ноября 1941 года Гитлер намеревался вступить в Москву и провести там парад своих войск.
10 октября 1941 года генерал армии Г.К.Жуков назначается командующим Западным фронтом. Здесь решалась судьба не только Москвы, но и всей Родины.
Командующий фронтом, разобравшись с обстановкой, не терял времени и, с присущей ему энергией и волей, взялся за организацию обороны Москвы. Все, что можно было найти из частей, которые не попали в окружение, дивизии народного ополчения, военно-учебные заведения, специальные части – все было сосредоточено на тех направлениях, где ожидалось направление главных ударов противника.
7 ноября 1941 года на Красной площади состоялся парад советских войск, которые оттуда прямо уходили на фронт, на защиту столицы нашей Родины. Это событие сыграло огромную роль в поднятии и укреплении морального духа армии и всего народа.
К середине ноября гитлеровское командование закончило перегруппировку своих войск и подготовку второго генерального наступления на Москву. Для этого оно выделило 51-ую дивизию, в том числе 13 танковых, 7 моторизированных. Советским войскам предстояла тяжелейшая борьба, так как они по прежнему уступали противнику: в людях – в 2 раза, в танках – в 1,5 раза, по орудиям и минометам – в 2,5 раза. На направлениях главного удара враг имел еще большее превосходство. 15 ноября 1941 года гитлеровцы начали наступление, развернулись напряженные бои. Советские воины дрались с небывалым героизмом. Кровопролитное сражение разгорелось на правом крыле Западного фронта, где оборонялись войска 16-й и 30-й армий, которыми командовали генералы Д.Д.Лелюшенко и К.К.Рокоссовский. С исключительным мужеством оборонялась на Волоколамском шоссе 316-я стрелковая дивизия под командованием генерала И.В.Панфилова. Здесь, у разъезда Дубосеково, совершили свой бессмертный подвиг 28 воинов-панфиловцев. За четыре часа боя они уничтожили 18 танков и множество вражеских солдат. Враг не прошел. В разгар этого боя политрук В.Г.Клочков
произнес знаменитые слова: «Велика Россия, а отступать некуда, позади Москва». Войска Западного фронта, руководимые Г.К.Жуковым, в тяжелых оборонительных боях измотали и обескровили отборные гитлеровские войска. 5 декабря 1941 года гитлеровские войска получили разрешение и перешли к обороне. В этот же период, 5 – 6 декабря 1941 года, войска Западного фронта перешли в решительное контрнаступление. Во взаимодействии с войсками Калининского и Юго-Западного фронтов завершили разгром противника и отбросили его от столицы на 100 – 250 километров. В начале января 1942 года наступление советских войск на западном направлении было завершено. Советские войска освободили более 11 тысяч населенных пунктов. В битве под Москвой были разгромлены 11 танковых, 4 моторизированных и 23 пехотных дивизии. Это был крах, бесславный конец операции «Тайфун». Разгром ударных группировок, наступавших на Москву, вызвал растерянность в стане врага. Руководители рейха были поставлены перед необходимостью ведения затяжной войны. Чувствителен был и моральный урон врага в ходе зимней кампании: гитлеровские военные трибуналы осудили 62 тысячи солдат и офицеров за дезертирство, самовольный отход, неповиновение и т.д. Были отстранены от занимаемых постов 35 генералов, в том числе генерал-фельдмаршалы Браухич, Бок, генерал-полковник Гудериан.
Московская битва имела крупное международное значение. Она способствовала укреплению антигитлеровской коалиции и ослаблению блока фашистских государств, оказала большое влияние на развитие Движения Сопротивления народов Европы.
За образцовое выполнение боевых задач и проявленные при этом доблесть и мужество почти 40 частям и соединениям были присвоены гвардейские звания. 36 тысяч советских воинов были награждены орденами и медалями, 110 удостоены звания Героя Советского Союза.
Значение Московской битвы для себя, как полководца, Г.К.Жуков оценивал так: «Когда меня спрашивают, что больше всего запомнилось из минувшей войны, я всегда отвечаю: битва за Москву».
Полководческое искусство Г.К.Жукова блестяще проявилось в последующем во многих сражениях и нередко было одним из решающих факторов в достижении наших побед в годы Великой Отечественной войны. В 1942 – 1943 годах он умело и профессионально координировал действия фронтов под Сталинградом. «Лично
для меня оборона Сталинграда, подготовка контрнаступления и участие в решении вопросов операций на юге страны имели особое значение», – напишет потом Г.К.Жуков. За успешное общее руководство контрнаступлением в районе Сталинграда и достигнутые при этом результаты крупного масштаба генерал армии Г.К.Жуков, в числе других видных военачальников, был награжден орденом Суворова 1-й степени. За время Сталинградской битвы, одной из самых жестоких битв, длившейся 200 дней и ночей, фашистский блок потерял четвертую часть сил, действовавших там. Успешный разгром немецких войск в районе Сталинграда, Дона и на Кавказе создал благоприятные условия для развертывания наступления всех фронтов на юго-западном направлении и в других районах.
В начале января 1943 года Ставка поручила генералу армии Г.К.Жукову и маршалу К.Е.Ворошилову координацию действий Ленинградского и Волховского фронтов по прорыву блокады Ленинграда в районе Ладожского озера.
Наступление войск обоих фронтов было подготовлено со всей тщательностью, и 12 января 1943 года войска фронтов обрушили на немецкую оборону мощный удар сухопутных и воздушных сил, который был усилен авиацией Краснознаменного Балтийского флота.
На седьмые сутки боев, 18 января 1943 года, войска Ленинградского и Волховского фронтов соединились в районе поселков №1 и 5. Блокада была прорвана. В этот день завершения прорыва блокады Указом Президиума Верховного Совета СССР Г.К.Жукову за умелое руководство операцией было присвоено звание Маршала Советского Союза.
В июле – августе 1943 года маршал Г.К.Жуков снова в центре организации оборонительной и наступательной операций, проведенных советскими войсками в районе Курского выступа.
Курская битва – одна из крупнейших битв 2-й мировой войны – явилась важным этапом на пути к победе советского народа над фашизмом. В сражение с обеих сторон было вовлечено свыше 4 миллионов человек, свыше 69 тысяч минометов и орудий, более 13 тысяч танков и САУ и до 12 тысяч боевых самолетов. В этой битве фашистские войска потеряли свыше 500 тысяч солдат и офицеров, 1,5 тысячи танков, 3,7 тысяч самолетов, 3 тысячи орудий. Победой под Курском и выходом советских войск к Днепру завершился коренной перелом в ходе войны.
В сражениях под Курском советские войска проявили массовый героизм, возросшее мастерство, военное искусство полководцев, высокий моральный дух. Свыше 100 тысяч воинов и командиров были награждены орденами и медалями. Более 180 человек удостоены звания Героя Советского Союза.
В августе – декабре 1943 года маршал Г.К.Жуков координирует наступательные операции по освобождению Левобережной Украины, Донбасса и форсированию Днепра. В борьбе за Днепр участвовали войска Центрального, Воронежского, Степного, Юго-Западного и Южного фронтов (с 20 октября 1943 года соответственно Белорусского 1-го, 2-го, 3-го, 4-го Украинского фронтов).
В битве за Днепр советские войска нанесли поражение основным силам группы армии «Юг» и части сил группы армии «Центр» противника, освободили свыше 88 тысяч населенных пунктов, в том числе 160 городов. С захватом стратегических плацдармов на Днепре были созданы условия для наступления в Белоруссии, полного освобождения Правобережной Украины и развития успешного наступления на западном и юго-западном направлениях. В битве за Днепр дальнейшее развитие получило советское военное искусство, обогатился опыт полководцев и военачальников в подготовке и проведении широкого стратегического наступления в высоких темпах, организации взаимодействия между фронтами. Эти задачи и решал маршал Г.К.Жуков как представитель Ставки.
Следует отметить, что в битве за Днепр советские войска про­явили массовый героизм и отвагу. Об этом говорит тот факт, что 2438 солдат, сержантов, офицеров и генералов всех родов войск были удостоены звания Героя Советского Союза, многие части и соединения получили почетные наименования.
В марте-мае 1944 года мы видим маршала Г.К.Жукова командующим войсками 1-го Украинского фронта. Летом 1944 года он координирует действия 2-го и 1-го Белорусского фронтов в Белорусской наступательной операции. На завершающем этапе войны (ноябрь 1944 – июнь 1945 годов) Г.К.Жуков командует 1-ым Белорусским фронтом, войска которого в начале 1945 года совместно с войсками 1-го Украинского фронта провели Висло-Одерскую операцию, освободили большую часть Польши и ее столицу Варшаву, продвинулись на 500 – 600 километров, вступили на территорию фашистской Германии. В апреле – мае 1945 года войска фронта во взаимодействии с войсками 1-го Украинского, 2-го Белорусского фронтов провели Берлинскую операцию и, разгромив крупнейшую группировку гитлеровских войск, овладели Берлином. Берлинская операция продемонстрировала высокий уровень советского военного искусства и мастерства военачальников и главного маршала Победы – Г.К.Жукова, который от имени и по поручению советского Верховного Главного Командования 8 мая 1945 года в Карлсхорсте (Берлин) принял капитуляцию фашистской Германии.
24 июня 1945 года маршал был удостоен великой чести – принимать Парад Победы в Москве. Анализ полководческого таланта Г.К.Жукова, проявившегося практически во всех крупных сражениях Великой Отечественной войны, убедительно свидетельствует о том, что отличительными чертами его полководческого искусства были следующие:
неиссякаемое творчество,
новаторство, оригинальность, неожиданность решений и действий для противника. Он завещал офицерам этому учиться всю жизнь;
это глубокий, гибкий ум и проницательность. Жуков, как никто другой, в совершенстве владел искусством проникать в замысел противника, читать мысленно самую сложную, запутанную обстановку, воссоздать в своем сознании возможный ход событий, предвидеть и принимать заблаговременные меры;
это тщательное планирование, всесторонняя подготовка каждой операции.
Принципы подхода к этому делу маршал Г.К.Жуков изложил в своем выступлении в 1945 году на научной конференции. В общем плане их можно свести к следующим положениям:
отличное знание противника, правильная оценка его замыслов, сил и средств;
знание своих войск, их тщательное подготовка к бою;
оперативная и тактическая внезапность;
точный расчет своих сил и средств, в зависимости от поставленной задачи;
материальное обеспечение операций.
Нередко в исторической литературе, СМИ муссируется вопрос о больших потерях в операциях, руководимых Г.К.Жуковым, о его жестокости. Все это не соответствует действительности. Откуда берутся эти слухи? Ответ на этот вопрос, на наш взгляд, дал в свое время доктор исторических наук генерал армии М.А.Горев: «Так, например, говорилось, что при контрнаступлении под Москвой Западный фронт (командующий – Г.К.Жуков – прим.авт.) понес больше потерь, чем Калининский (Западный – 100 тысяч, Калининский – 27 тысяч). Но при этом умалчивали, что в составе Западного фронта было более 700 тысяч войск, а Калининского – 180 тысяч. Если же брать потери в процентном отношении от общей численности войск, что более правильно, то картина получается совсем иная. Безвозвратные потери Западного фронта под командованием Г.К.Жукова составляют 13.5% от общей численности, а Калининского – 14,2%. В Ржево-Вяземской операции потери у Жукова – 20,9%, а у Конева – 35,6 %; в Висло-Одерской у 1-го Белорусского фронта – 1,7 %, а у 1-го Украинского – 2,4 %; в Берлинской операции, где наиболее крупная и сильная группировка противника противостояла 1-му Белорусскому фронту, его потери – 4,1 %, а 1-го Украинского фронта – 5 %. И так было во всех операциях». Подобных аргументов, отвергающих нелепые обвинения в адрес Г.К.Жукова, можно привести множество. Следует особо подчеркнуть, что кто бы и когда бы ни занимался клеветой на маршала Победы, пытался очернить его имя – дело это несправедливое, недостойное и подлое.
После Великой Отечественной войны маршал Г.К.Жуков занимал высокие посты в Вооруженных Силах страны, был в милости и немилости, даже в опале со стороны власть предержащих. В июне 1945 – марте 1946 года он – главнокомандующий Группой войск в Германии и Советской военной администрации; март – июль 1946 года – главнокомандующий Сухопутными войсками и заместитель министра обороны Вооруженных Сил. В 1946 – 1953 гг. – командующий войсками Одесского и Уральского военных округов. С марта 1953 года – 1-й заместитель министра, с февраля 1955 г. по октябрь 1957 года – министр обороны СССР. В 1941 – 1946 и 1952 – 1953 годах – кандидат в члены ЦК КПСС. В 1941 – 1958 годах Г.К.Жуков избирался депутатом Верховного Совета СССР, в 1956 – 1957 гг. – кандидатом и членом Президиума ЦК КПСС.
Четырежды Героя Советского Союза, Героя Монголии, Маршала Советского Союза Г.К.Жукова, кавалера двух орденов «Победа», шести орденов Ленина, ордена Октябрьской революции, трех орденов Красного Знамени, двух орденов Суворова, многочисленных высших наград иностранных государств 18 июня 1974 года не стало. Но в памяти народной он останется как народный герой, выдающийся полководец, как маршал Великой Победы. В военной истории России после А.В.Суворова ему равных не было и нет. Выводы и уроки полководческого наследия маршала Г.К.Жукова и сегодня актуальны для военной теории и практики.

Автор: 
Игорь ЧИБИСОВ, полковник запаса, член Белорусского Суворовско-Нахимовского союза, Белорусского союза офицеров
Номер газеты: