/** * 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); } «Мы оборонцы с 25 октября 1917 года…» | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

«Мы оборонцы с 25 октября 1917 года…»

Исключительно трудные испытания в борьбе с внутренними и внешними контрреволюционными силами выпали на долю Советской страны – первого в мире социалистического государства. Одним из ярких, героических этапов в борьбе Коммунистической партии и всех трудящихся Республики Советов за сохранение завоеваний Октябрьской революции и построение социализма является разгром в 1918-1920 годах иностранных интервентов и белогвардейцев.

Вождем, вдохновителем и организатором победы Советской республики и ее Красной Армии на фронтах Гражданской войны была Коммунистическая партия во главе с В. И. Лениным. Будучи партией правящей, она в эти годы стала партией воюющей и всю свою деятельность подчинила созданию и укреплению Красной Армии, мобилизации всех материальных и духовных сил для разгрома врага. Этот опыт военной деятельности Коммунистической партии был использован на последующий этапах социалистического строительства, особенно в период Великой Отечественной войны. Он имеет большое значение и в современных условиях.
Мирная передышка, завоеванная большевистской партией, была непродолжительной. Заключенный Советской республикой мир с Германией и ее союзниками меньше всего устраивал империалистов Антанты. Он сохранял Советскую власть в России и срывал замыслы уничтожения ее руками германских милитаристов. Поэтому, хотя руководители Антанты не добились еще победы над германским блоком, они решили начать открытую интервенцию в Страну Советов. Целью интервенции было помочь внутренним контрреволюционным силам свергнуть Советскую власть, захватить часть территории России с природными богатствами и заставить ее продолжать империалистическую войну в интересах англо-французско и американского капитала, уничтожить Россию как базу мировой революции.
Вторжение интервентов началось на Севере (вспоминается ленинское «…Мы оборонцы с 25 октября 1917 года…»). 2 марта 1918 года англо-французское командование заключило с меньшевистско-эсеровским исполкомом Совета в Мурманске так называемое «словесное соглашение». Под предлогом обороны от угрозы вторжения немцев оно обеспечило своим войскам возможность фактической оккупации Мурманского края. 6 марта английский крейсер «Глори» высадил десант. 13 марта президент США В. Вильсон заявил, что желает оказать России помощь против Германии, и в Мурманск был отправлен американский крейсер «Олимпия». 18 марта сюда же прибыл французский крейсер «Адмирал Об». В поведении мурманских руководителей известную роль сыграла телеграмма Троцкого, занимавшего в то время пост народного комиссара иностранных дел. В этой телеграмме, посланной 1 марта, местным советским властям предписывалось: «принять всякое содействие союзных миссий». Такое указание не соответствовало политической линии большевистской партии. Вопрос о принятии помощи Англии и Франции для отпора германскому империализму обсуждался в Центральном Комитете партии 22 февраля. Ленин не присутствовал на заседании, но прислал заявление, в котором говорилось: «Прошу присоединить мой голос за взятие картошки и оружия у разбойников англо-французского империализма». В принятой резолюции ЦК признавал возможным для вооружения и снаряжения революционной армии необходимыми средствами приобретать их у капиталистических правительств, сохраняя при этом полную независимость советской внешней политики. В заявлении Ленина и в решении ЦК речь шла о возможности приобретения у бывших союзников России лишь оружия, предметов снаряжения и продовольствия, а не о том, чтобы принимать «всякое содействие».
Как только Советскому правительству стало известно о заключении интервентами «словесного соглашения» в Мурманске, оно потребовало от председателя местного Совета Юрьева добиться письменной гарантии от англичан и французов, что оккупация ими Мурманского района не будет допущена. Но интервенты считали вопрос решенным, а эсеры и меньшевики, в руках которых оказался исполком Совета, не хотели мешать интервентам.
15 марта, в день, когда в Москве был ратифицирован мирный договор с Германией, в Лондоне собралась конференция премьер-министров и министров иностранных дел Англии, Франции и Италии, на которой была признана необходимость «союзной интервенции в Восточной России» с привлечением Японии. Японские империалисты не замедлили воспользоваться этим. Они уже давно вынашивали планы захвата советского Дальневосточного края. Воспользовавшись провокационным убийством двух японцев во Владивостоке, японское командование 5 апреля 1918 года высадило там свои войска. Вслед за ними в тот же день высадилась английская морская пехота.
Накануне высадки член французской военной миссии в России Ж. Пишон составил для своего правительства доклад, в котором писал о необходимости указать в официальной декларации при вступлении в Сибирь, что интервенция направлена «исключительно против большевиков». Пишон предлагал также объединить антибольшевистские партии и политические группировки в России, чтобы создать из них коалиционное временное правительство, приемлемое для интервентов.
Большевистская партия считала своей задачей разоблачать замыслы интервентов и готовить страну к отпору иностранным захватчикам. Центральный Комитет и Советское правительство дали конкретные указания партийным организациям и местным Советам об их действиях в связи с интервенцией.
Тем временем внутренние враги организовали мятежи в различных районах страны. Самым крупным был мятеж чехословацкого корпуса. Но не все солдаты поддались враждебной агитации: из 200 000 военнопленных вместе с русскими белогвардейцами оказалось не более 50 000 человек. Остальные отказались выступить против русских рабочих и крестьян. Некоторые чехи и словаки вступили в ряды Красной Армии. Среди них был Ярослав Гашек, ставший позднее крупнейшим чешским писателем.
Внутренние враги организовали также мятежи в Москве и Ярославле, Муроме, Рыбинске, в Тамбовской губернии, в Поволжье, на Дону и других местах.
Контрреволюционеры широко применяли террор против деятелей партии и государства, советских активистов. Стремясь обезглавить революцию, они организовали несколько покушений на В. И. Ленина. 30 августа 1918 года он был тяжело ранен эсеркой Каплан. В тот же день были убиты комиссар печати В. В. Володарский и председатель Петроградской ЧК М. С. Урицкий. 5 сентября Совет Народных Комиссаров для обеспечения тыла Советской республики в ответ на белый террор принял постановление о «красном терроре».
В захваченных районах интервенты и белогвардейцы разгоняли Советы, создавали свои правительства, устанавливали режим насилия и массового террора. Наиболее известными из этих зверств являются расстрел 26 комиссаров Бакинской коммуны в сентябре 1918 года в районе г. Красноводска, массовые расстрелы и казни рабочих и коммунистов в Донбассе, Сибири, на Дальнем Востоке, севере страны.К этому следует добавить разруху, в стране не хватало хлеба; начались эпидемии болезней, особенно сыпного тифа. Это еще больше усугубляло страдания и бедствия людей, приводило к большим жертвам.
Страна была отрезана от своих основных продовольственных, сырьевых и топливных ресурсов. Кроме того, она лишилась половины золотого запаса – 652 млн. рублей (51 тонна слитков). Его захватили в г. Казани восставшие контрреволюционеры и отправили в г. Омск (См. О «золотом эшелоне».
У. Черчилль в речи на партийном съезде консерваторов хвастался о начале похода 14-ти государств на Россию. Прочитав телеграмму РОСТА о речи Черчилля, В. И. Ленин сделал на телеграмме перечень следующих 14-ти государств: «Англия, С. Штаты Америки, Франция, Италия, Япония, Финляндия, Эстландия, Латвия, Литва, Польша, Украина, Грузия, Азербайджан, Армения» и сбоку в скобках: «Колчакия, Деникия». В этой обстановке нашей стране пришлось прервать мирную работу и взяться за оружие. Перед партией, говорил В. И. Ленин, встал на первый план военный вопрос. «Хотим мы этого или нет, – говорил Владимир Ильич, – но вопрос так поставлен: мы находимся в войне, и судьба революции решится исходом этой войны».

Социалистическое отечество в опасности
Коммунистическая партия сознавали всю глубину опасности, нависшей над Родиной. Но она была уверена в победе трудящихся. Эта уверенность строилась на наличии объективных преимуществ самого прогрессивного общественного и государственного строя, политических и экономических предпосылок защиты Советской республики.
Во-первых, рабочий класс и его партия имели значительный опыт борьбы против царизма и буржуазии – политической, идейной, тактической. Это позволяло выработать и применить правильную стратегию и тактику в период войны и обеспечить победу.
Во-вторых, Советская власть является новым типом государственной власти, народовластия. Она выражает коренные интересы широчайших масс рабочих, крестьян, демократической интеллигенции и других слоев трудящихся, тесно связана с ними, пользуется их поддержкой и доверием. Это позволит Советской власти мобилизовать все силы народа на разгром контрреволюции.
В-третьих, экономическая политика государства направлена на удовлетворение наиболее насущных нужд всего трудящегося народа. Это обеспечит Советской власти мощную поддержку миллионных масс, породит в них величайшую энергию для борьбы с врагами нового строя.
В-четвертых, партия была уверена в том, что народная политика Советской власти неизбежно приведет к укреплению союза рабочих с крестьянами, составляющими большинство населения, к отрыву масс от буржуазных и мелкобуржуазных партий. Союз рабочих и крестьян явится неодолимой силой революции.
В-пятых, правильная национальная политика Советской власти, направленная на установление равноправия и укрепление дружбы народов, имела большое значение для объединения усилий трудящихся всех национальностей России в борьбе против контрреволюции.
В-шестых, со стороны Республики Советов это была справедливая, оборонительная война за сохранение и упрочение завоеваний социалистической революции, народной Советской власти. А когда народные массы, – говорил В. И. Ленин, – знают, что они борются за свое кровное дело, за свои интересы, то их победить невозможно.
В. И. Ленин обосновал безусловную законность и справедливость войн в защиту социалистического Отечества. «Если, – говорил он, – войну ведет класс эксплуататоров в целях укрепления своего господства, как класса, это – преступная война… Если войну ведет пролетариат, победивший у себя буржуазию, ведет в интересах укрепления и развития социализма, тогда война законна и «священна». Главным условием успешной защиты социалистического государства В. И. Ленин считал осуществление правильной, научно обоснованной внешней и внутренней политики партии. Сильная своей сплоченностью, дисциплиной, единством воли и действий, пользующаяся безграничным доверием и поддержкой масс, она способна мобилизовать, объединить и направить усилия всего народа на строительство мощной армии, защиту социалистического Отечества и разгром врага.
Государство пролетарской диктатуры, находясь в условиях блокады, в кольце фронтов, чтобы отстоять свое существование, вынуждено было перестраивать свою жизнь применительно к требованиям войны. 29 июля 1918 года объединенное заседание ВЦИК, Московского Совета, фабрично-заводских комитетов и профессиональных союзов Москвы по предложению Ленина приняло решение: «Признать Социалистическое отечество в опасности».
Прежде всего, партия уделила внимание СПЛОЧЕНИЮ СВОИХ РЯДОВ, совершенствованию форм своего организационного строения. Путем индивидуального отбора Коммунистическая партия вовлекала в свои ряды наиболее преданных делу революции трудящихся. В результате число коммунистов в партии выросло с 390 000 в марте 1918 года до 730 000 в конце 1920 года.
В конце апреля 1918 года в стране вводилось всеобщее военное обучение (Всеобуч). В системе Всеобуча каждый трудящийся в возрасте от 18 до 40 лет, не отрываясь от работы, должен был получить определенный минимум военных знаний. Были разработаны программы занятий, выпущены учебные пособия, проводились специальные «Дни Всеобуча», во время которых устраивались смотры рабочих полков и батальонов.
Переход к новой системе комплектования советских вооруженных сил, то есть к созданию массовой регулярной армии, был начат в конце мая и первой половине июня 1918 года. Советское правительство приняло декреты о призыве в Красную Армию рабочих и беднейших крестьян на основе всеобщей воинской повинности трудящихся в ряде губерний, главным образом прифронтовых, а также в Москве и Петрограде. Большое значение для перехода к новому этапу военного строительства имел V Всероссийский съезд Советов, принявший 10 июля специальное постановление «Об организации Красной Армии». В этом постановлении было сказано: «Период случайных формирований, произвольных отрядов, кустарного строительства должен быть оставлен позади. Все формирования должны производиться в строгом соответствии с утверждёнными штатами и согласно развёрстке Всероссийского Главного Штаба».
Но этого было далеко не достаточно. Нужны были командиры не только низших и средних звеньев, но и военные специалисты для руководства штабами и крупными войсковыми соединениями. В своей политике использования военных специалистов высшей квалификации партия исходила из ленинских указаний о необходимости широкого привлечения к строительству нового общества старых специалистов, в том числе военных, даже тех, которые тогда не сочувствовали Советской власти, при условии строгого контроля за ними.
Придя к власти, партия имела некоторое количество военных работников из числа профессиональных революционеров, получивших подготовку в ходе революционной борьбы, таких как В. А. Антонов-Овсеенко, К. Е. Ворошилов, М. С. Кедров, Н. В. Крыленко, Н. И. Подвойский, М. В. Фрунзе, – ставших впоследствии крупными военными руководителями. Другие командиры – большевики, ставшие выдающимися военачальниками, или не имели раньше военной подготовки, или вышли из рядов солдат, матросов, унтер-офицерского состава и младших офицерских чинов старой армии.
Всего в Красную Армию к концу 1918 года было призвано более 22 тысяч бывших генералов и офицеров. Конечно, среди них находились предатели и изменники, ненавидевшие Советскую власть, но случаев измены было не так много. Как правило, они имели место там, где плохо была поставлена партийно-политическая работа и ослаблен политический контроль со стороны военных комиссаров. «Только красные офицеры, – говорил Ленин, – будут иметь среди солдат авторитет и сумеют упрочить в нашей армии социализм». Поэтому с первых же дней строительства Красной Армии была развернута работа по подготовке пролетарского командного состава из рядовых бойцов, бывших солдат и унтер-офицеров старой армии.
Большая заслуга в деле строительства и укрепления Красной Армии принадлежала военным комиссарам. Институт военкомов был введен в армии 8 апреля 1918 года; тогда же было создано Всероссийское бюро военных комиссаров, объединявшее их деятельность. На посты военкомов ставились безупречные революционеры, стойкие борцы за дело рабочего класса. Военные комиссары были носителями духа партии, являлись примером дисциплины и отваги в борьбе с врагами, воспитывая эти качества у красноармейцев. В историю Гражданской войны навсегда вошли имена военных комиссаров: В. А. Барышникова, П. С. Батурина, П. В. Бахтурова, С. П. Воскова, Я. Б. Гамарника, В. В. Куйбышева, Н. Г. Маркина, М. Г. Толмачева, Д. А. Фурманова и других.

Окончание в следующем номере.

Автор: 
В.Е. Егорычев
Номер газеты: 

Добавить комментарий

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
8 + 1 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.