/** * 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); } Сталинская экономика: от каждого по способностям, каждому по труду | КОММУНИСТИЧЕСКАЯ ПАРТИЯ БЕЛАРУСИ

Сталинская экономика: от каждого по способностям, каждому по труду

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

Политическая составляющая реформ заключалась в том, что после пятнадцатилетнего перерыва возвращалась власть партийному аппарату на всех уровнях, начиная от парткомов предприятий и кончая ЦК КПСС.  В 1959—1960 годах был ликвидирован негосударственный сектор экономики (предприятия промысловой кооперации и приусадебные участки колхозников), обеспечивавший производство значительной части промышленных товаров (одежда, обувь, мебель, посуда, игрушки и т.д.), продовольствия (овощи, продукты животноводства и птицеводства, рыбная продукция), а также бытовых услуг. В 1957 году был ликвидирован Госплан и отраслевые министерства (кроме оборонных). Таким образом, вместо эффективной комбинации плановой и рыночной экономики не стало ни той, ни другой. В 1965 году после удаления Хрущева из власти Госплан и министерства были восстановлены, но с существенно урезанными правами.
В 1956 году была полностью ликвидирована система материальных и моральных стимулов повышения эффективности производства, внедренная еще в 1939 году во все отрасли народного хозяйства и обеспечившая в послевоенный период рост производительности труда и национального дохода существенно выше, чем в других странах, включая США, исключительно за счет собственных финансовых и материальных ресурсов. В результате ликвидации этой системы появилась уравниловка в оплате труда, исчезла заинтересованность в конечном результате труда и качестве производимой продукции. Уникальность хрущевской революции заключалась в том, что изменения растянулись на несколько лет и прошли совершенно незаметно для населения.
Уровень жизни населения СССР в послевоенный период ежегодно повышался и достиг максимума в год смерти Сталина в 1953 году. В 1956 году доходы людей, занятых в сфере производства и науки, снижаются в результате ликвидации выплат, стимулирующих эффективность труда. В 1959 году резко сокращаются доходы колхозников в связи с урезанием приусадебных участков и ограничениями на содержание скота в частной собственности. Цены на продукцию, продаваемую на рынках, поднимаются в 2-3 раза. C 1960 года началась эпоха тотального дефицита промышленных и продовольственных товаров. Именно в этом году открылись валютные магазины «Березка» и спецраспределители для номенклатуры, в которых ранее не было необходимости. В 1962 году поднимаются государственные цены на основные продукты питания примерно в 1,5 раза. В целом жизнь населения опустилась до уровня конца 40-х годов.
До 1960 года в таких областях как здравоохранение, образование, наука и инновационные области промышленности (атомная промышленность, ракетостроение, электроника, вычислительная техника, автоматизированные производства) СССР занимал ведущие позиции в мире. Если брать экономику в целом, то СССР уступал лишь США, но значительно опережал любые другие страны. При этом СССР до 1960 года активно догонял США и так же активно уходил вперед от остальных стран. После 1960 года темпы роста экономики неуклонно снижаются, ведущие позиции в мире утрачиваются.

Эх, хорошо в стране советской жить!
Сразу после окончания войны жизнь населения СССР начинает резко улучшаться. В 1946 году на 20% повышается зарплата рабочих и инженерно-технических работников (ИТР), работающих на предприятиях и стройках Урала, Сибири и Дальнего Востока. В том же году на 20%  повышаются должностные оклады людей, имеющих высшее и среднее специальное образование (ИТР, работники науки, образования и медицины). Поднимается значимость ученых степеней и званий. Зарплата профессора, доктора наук повышается с 1600 до 5000 рублей, доцента, кандидата наук - с 1200 до 3200 рублей, ректора вуза с 2500 до 8000 рублей. В научно-исследовательских институтах ученая степень кандидата наук стала добавлять к должностному окладу 1000 рублей, а доктора наук – 2500 рублей. В это же время зарплата союзного министра составляла 5000 рублей, а секретаря райкома партии – 1500 рублей. Сталин, как Председатель Совета Министров СССР, имел оклад 10 тысяч рублей. Ученые в СССР того  времени имели и дополнительные доходы, иногда превышающие зарплату в несколько раз. Поэтому они являлись наиболее богатой и одновременно наиболее уважаемой частью советского общества.
В декабре 1947 года происходит событие, которое по эмоциональному воздействию на людей было соизмеримо с окончанием войны. Как было сказано в Постановлении Совета Министров СССР и ЦК ВКП(б) № 4004 от 14 декабря 1947 года «… с 16 декабря 1947 года отменяется карточная система снабжения продовольственными и промышленными товарами, отменяются высокие цены по коммерческой торговле и вводятся единые сниженные государственные розничные цены на продовольствие и промтовары…».
Карточная система, позволившая во время войны спасти от голодной смерти множество людей, после войны вызывала сильный психологический дискомфорт. Ассортимент продовольственных товаров, которые продавались по карточкам, был крайне беден. Например, в булочных было лишь 2 сорта хлеба (ржаной и пшеничный), которые продавались на развес в соответствии с нормой, указанной в отрезном талоне. Выбор других продовольственных товаров также был невелик. В то же время в коммерческих магазинах было такое изобилие продуктов, которому могли бы позавидовать любые современные супермаркеты. Но цены в этих магазинах были недоступны для большинства населения, и продукты там приобретались лишь для праздничного стола. После отмены карточной системы все это изобилие оказалось в обычных гастрономах по вполне приемлемым ценам. Например, цена на пирожные, которые ранее продавались только в коммерческих магазинах, снизилась с 30 до 3 рублей. Более чем в 3 раза упали рыночные цены на продукты. Промышленные товары до отмены карточной системы продавались по специальным ордерам, наличие которых еще не означало доступность соответствующих товаров. После отмены карточек некоторое время сохранялся определенный дефицит промышленных товаров, но, насколько я помню, в 1951 году в Ленинграде этого дефицита уже не было.
1 марта 1949-1951 годов происходят дальнейшие снижения цен, в среднем на 20% в год. Каждое снижение воспринималось как всенародный праздник. Когда 1 марта 1952 года очередного снижения цен не произошло, у  людей возникло чувство разочарования. Однако 1 апреля того же года снижение цен все же состоялось. Последнее снижение цен произошло уже после смерти Сталина 1 апреля 1953 года. За послевоенный период цены на продовольствие и наиболее ходовые промышленные товары снизились в среднем более чем в 2 раза. Итак, восемь послевоенных лет жизнь советского народа ежегодно заметно улучшалась. За всю известную историю человечества ни в одной стране похожих прецедентов не наблюдалась.
Уровень жизни населения СССР в середине 50-х годов можно оценить, изучая материалы исследований бюджетов семей рабочих, служащих и колхозников, которые проводило Центральное Статистическое Управление (ЦСУ) СССР с 1935 по 1958 год (эти материалы, которые в СССР имели гриф «секретно», опубликованы на сайте istmat.info).  Бюджеты изучались у семей, относящихся к 9 группам населения: колхозники, рабочие совхозов, рабочие промышленности, ИТР промышленности, служащие промышленности, учителя начальной школы, учителя средней школы, врачи и средний медперсонал. Наиболее обеспеченная часть населения, к которой относились работники предприятий оборонной промышленности, проектных организаций, научных учреждений, преподаватели вузов, работники артелей и военные, к сожалению, не попала в поле зрения ЦСУ.
Из перечисленных выше исследуемых групп наибольший доход был у врачей. На каждого члена их семей приходилось 800 рублей ежемесячного дохода. Из городского населения наименьший доход был у служащих промышленности – 525 рублей в месяц приходилось на каждого члена семьи. У сельского населения душевой ежемесячный доход составлял 350 рублей.  При этом, если у рабочих совхозов этот доход был в явной денежной форме, то у колхозников он получался при расчете по государственным ценам стоимости собственных продуктов, потребляемых в семье.
Потребление продуктов находилось у всех групп населения, включая сельское, примерно на одном уровне - 200-210 рублей в месяц на члена семьи. Лишь в семьях врачей стоимость продуктовой корзины достигала 250 рублей за счет большего потребления сливочного масла, мясных продуктов, яиц, рыбы и фруктов при сокращении хлеба и картофеля. Сельские жители потребляли больше всех хлеба, картофеля, яиц и молока, но значительно меньше сливочного масла, рыбы, сахара и кондитерских изделий.
Ситуация с продовольствием кардинально ухудшается, начиная с 1960 года.
Обеспеченность населения промышленными товарами в середине 50-х годов была достаточно высокой. Например, в рабочих семьях на каждого человека ежегодно приобреталось более 3 пар обуви. Качество и разнообразие потребительских товаров исключительно отечественного производства (одежда, обувь, посуда, игрушки, мебель и другие бытовые товары) было намного выше, чем в последующие годы. Дело в том, что основная часть этих товаров выпускалась не государственными предприятиями, а артелями. Причем продавалась продукция артелей в обычных государственных магазинах. Как только появлялись новые тенденции в моде, они мгновенно отслеживались, и уже через несколько месяцев модные товары появлялись в изобилии на полках магазинов.
С 1956 по 1960 годы проходил процесс ликвидации промысловой кооперации. Основная часть артелей стала государственными предприятиями, а остальные были закрыты или перешли на нелегальное положение. Индивидуальное производство по патентам также было запрещено. Резко сократилось производство практически всех товаров широкого потребления, как по объему, так и по ассортименту. Именно тогда появляются импортные  потребительские товары, которые сразу становятся дефицитными, несмотря на более высокую цену при ограниченном ассортименте.
Попытаемся оценить жизненный уровень населения СССР в 1955 году путем сравнения семейных бюджетов советских и американских семей, состоящих из четырех человек (двое взрослых и двое детей). В качестве примера приведем 3 американские семьи: среднестатистическая американская семья в 1955 году по данным Бюро Переписи Населения США, среднестатистическая американская семья в 2010 году по данным министерства труда США и конкретная американская семья из штата Вирджиния, согласившаяся рассказать о своем бюджете 2011 года.
С советской стороны рассмотрим бюджеты сельской и городской среднестатистических семей 1955 года из четырех человек по материалам ЦСУ СССР и мою собственную семью 1966 года, когда я вел ежедневные записи семейных доходов и расходов.
Поскольку двум странам и трем периодам времени соответствуют различные денежные единицы, при рассмотрении всех бюджетов будем использовать сталинский рубль 1947 года. В 1955 году этот рубль по покупательной способности был примерно равен современному доллару или 30 нынешним российским рублям. Американский доллар 1955 года соответствовал 6 сталинским рублям (по золотому курсу – 4 рублям). В 1961 году в результате хрущевской денежной реформы произошла деноминация рубля в 10 раз. Однако к 1966 году повышение государственных и рыночных цен привело к снижению покупательной способности рубля примерно в 1,6 раза, так что хрущевский рубль стал эквивалентен не 10, а 6 сталинским рублям (по золотому курсу 1961 года 1 доллар = 90 копеек).
Несколько слов о платности образования в сталинское время. В 1940 году была введена плата за обучение в старших классах средней школы, в вузах и техникумах. В Москве, Ленинграде и столицах союзных республик стоимость обучения в старших классах составляла 200 рублей в год, а в вузах и техникумах – 400 рублей в год. В остальных городах – соответственно 150 и 300 рублей в год. В сельских школах обучение было бесплатным. Из анализа семейных бюджетов видно, что указанные суммы носили символический характер. В 1956 году оплата обучения была отменена.
По официальной статистике, жизненный уровень населения СССР непрерывно рос вплоть до момента его распада. Однако реальная жизнь ничего общего с этой статистикой не имела. Например, цена типового обеда (лагман, плов, лепешка, зеленый чай) в моем любимом московском ресторане «Узбекистан», в котором я бывал при любом посещении Москвы, составляла в хрущевских рублях: 1955 г. - 1, 1963 г. – 2, 1971 г. – 5, 1976 – 7, 1988 г. – 10. Цена автомобиля Москвич: 1955 г. – 900, 1963 г. – 2500,1971 г. – 4900, 1976 г. – 6300, 1988 г. – 9000. За четверть века реальные цены выросли в 10 раз, а доходы, в частности, ИТР и ученых уменьшились. Самыми богатыми людьми в СССР уже с середины 60-х годов стали не ученые, как было ранее, а работники торговли и номенклатура.

От каждого по способностям, каждому по труду
В конце 30-х годов приведенный выше лозунг, характеризующий экономическую суть социализма, приобрел конструктивные, лишенные субъективизма черты и стал широко внедряться во всех сферах народного хозяйства СССР, обеспечив в послевоенный период невиданные ранее темпы развития страны. Инициатором разработки метода повышения эффективности труда, который я назвал МПЭ, скорее всего, был Л.П. Берия, который, будучи в 30-х годах партийным руководителем Грузии, превратил ее всего за несколько лет из весьма отсталой в одну из самых экономически развитых и процветающих республик СССР. Для реализации этого лозунга не надо было обладать никакими экономическими знаниями, а следовало руководствоваться лишь обычным здравым смыслом.
Суть предложенного метода заключалась в разделении любой коллективной деятельности на плановую и сверхплановую. Плановая деятельность заключается в выполнении определенного объема работ в заданные сроки. За плановую деятельность работник получает ежемесячную или еженедельную зарплату, величина которой зависит от его квалификации и стажа работы по специальности. Часть зарплаты выдается в виде квартальных и годовых премий, что обеспечивает заинтересованность сотрудников в выполнении плана (при невыполнении плана весь коллектив лишается премии). У руководства обычно имеется возможность
варьировать величину премии, поощряя трудолюбивых и наказывая нерадивых, но на эффективности работы коллектива это сказывается мало. Во всем мире наемные работники занимаются исключительно плановой деятельностью. Но в этом случае у работника нет возможности проявить свои способности. Лишь иногда умный начальник может случайно заметить эти способности и продвинуть работника по служебной лестнице. Но чаще любой выход за пределы определенной планом работы не поощряется, а наказывается.
Гениальность разработчиков МПЭ заключалась в том, что они сумели регламентировать понятие сверхплановой работы для большинства видов коллективной деятельности и разработать лишенную субъективности систему материального и морального поощрения за эту работу. МПЭ позволял каждому работнику реализовать свой творческий потенциал (от каждого по способностям), получить соответствующее вознаграждение (каждому по труду) и вообще почувствовать себя личностью, уважаемым человеком. Другие члены коллектива также получали свою долю вознаграждения, что исключало зависть и трудовые конфликты, которые были характерны для стахановского движения.
Для того, чтобы МПЭ начал работать в промышленности, был использован оригинальный подход. В плановые показатели предприятий ежегодно включался пункт о снижении себестоимости производимой продукции на определенное число процентов за счет совершенствования технологии. Для стимулирования этих работ создавался специальный премиальный фонд, аналогичный двухпроцентному фонду проектных организаций. А далее применялась та же схема. Создавались временные коллективы с такими же баллами, задачей которых было снижение себестоимости определенной продукции. Одновременно члены этих коллективов выполняли и основную работу. Итоги подводились в конце года и тогда же выплачивались премии. Предприятию давалось право, по меньшей мере, год продавать продукцию с более низкой себестоимостью по старой цене и из этих денег формировать сверхплановый премиальный фонд. В результате производительность труда в СССР в те годы росла быстрее, чем в любых других странах. Эффективность применения МПЭ на производственных предприятиях иллюстрирует следующая таблица, показывающая, как снижалась себестоимость вооружений, производимых во время войны, когда, казалось бы, не было возможностей помимо напряженного производства заниматься еще и совершенствованием технологических процессов (данные взяты из книги А.Б. Мартиросяна «200 мифов о Сталине»).
В целом себестоимость различных видов вооружений за 4 военных года снизилась более, чем в 2 раза. А ведь большинство образцов было принято на вооружение за несколько лет до начала войны, а винтовка Мосина выпускалась еще с 1891 года.
В научной деятельности отсутствуют количественные критерии оценки эффективности выполняемых исследований. Поэтому сверхплановой работой, выполняемой в НИИ, считались  дополнительные НИР, выполняемые по заказам различных предприятий или собственного ведомства. В этих дополнительных НИР, в отличие от основных,  всегда присутствовал фонд зарплаты. Этим фондом распоряжался руководитель НИР, назначенный администрацией института. Как и в предыдущих случаях, для выполнения НИР создавался временный коллектив и назначались баллы, которые руководитель НИР мог увеличивать отдельным исполнителям по ходу работы. В соответствии с баллами из соответствующего фонда НИР ежемесячно выплачивались деньги членам коллектива. Эти выплаты оформлялись как надбавка к основной зарплате. Но очень часто оказывалось, что надбавка существенно превышала основную зарплату, тем более, что все члены коллектива кроме руководителя НИР и его заместителя, изначально получали одинаковые баллы независимо от занимаемых должностей, ученых степеней и званий. При этом возникал интересный психологический эффект. Для тех сотрудников, которые длительное время не входили ни в один временный коллектив, было невыносимо видеть, что их коллеги ежемесячно получают существенно больше, чем они. В результате они, как правило, увольнялись, улучшая тем самым качественный уровень сотрудников НИИ.
В вузах педагогическая деятельность считалась основной, а научная рассматривалась как сверхплановая. Все НИР в вузах выполнялись по таким же правилам МПЭ, как дополнительные НИР в научно-исследовательских или академических институтах.
Для учителей и медицинских работников применить МПЭ не удалось, скорее всего, потому, что их деятельность не является коллективной. Однако понятие сверхплановой работы оказалось применимо и к этим категориям. Оклад учителей устанавливался исходя из 18-часовой нагрузки в неделю. Но при большом количестве учеников допускалась нагрузка 24 часа или даже 30 часов в неделю с соответствующим увеличением зарплаты. Кроме того, были предусмотрены надбавки за дополнительные работы, например, классное руководство. Врачи и медперсонал могли работать дополнительное количество часов на полторы или даже на две ставки. Поэтому, как следует из исследований ЦСУ, доход в семьях врачей был в полтора раза выше, чем в семьях рабочих, а учителя средней школы имели доход такой же, как у инженерно-технических работников промышленности.
Для ликвидации МПЭ, которое произошло в 1956 году, не пришлось прикладывать особых усилий. Просто при финансировании ОКР и НИР были отменены любые фонды оплаты труда, как премиальные, так и обычные. И сразу теряли смысл премиальные шкалы, временные коллективы и баллы. А у производственных предприятий из плановых показателей было исключено снижение себестоимости, и соответственно исчезала возможность создания премиального фонда для совершенствования технологий, да и никакого стимула для этого совершенствования уже не было. Одновременно были введены лимиты на величину вознаграждений за рационализаторские предложения и изобретения.
Главной особенностью МПЭ являлось то, что при его использовании не только повышалась творческая активность большого числа людей, и выявлялись таланты,  но также  изменялась психология всех членов коллектива, а также взаимоотношения в коллективе. Любой член коллектива осознавал свою значимость для общего процесса и с готовностью выполнял любую часть работы, даже в том случае, если эта работа не соответствовала его статусу. Взаимная доброжелательность, стремление оказать помощь друг другу были совершенно типичными чертами. По сути, каждый член коллектива считал себя личностью, а не винтиком сложного механизма. Изменялись и взаимоотношения начальников с подчиненными. Вместо приказов и указаний начальник стремился разъяснить каждому подчиненному, какую роль в общем деле играет та работа, которая ему поручается. По мере становления коллективов и формирования новой психологии сами материальные стимулы отходили на задний план и уже не являлись главной движущей силой. Полагаю, что разработчики МПЭ рассчитывали именно на такой эффект.
Ситуация с ликвидацией эффективных предприятий оборонной промышленности в эти годы была не редкой. Осенью 1960 года было ликвидировано ОКБ-23 одного из ведущих советских авиаконструкторов В.М. Мясищева, который, между прочим, успешно разрабатывал стратегический бомбардировщик с атомным двигателем. Мясищева назначили руководителем ЦАГИ, а коллектив ОКБ-23 переподчинили В.Н. Чаломею, занимавшемуся созданием ракетной техники. Заместителем Чаломея в то время работал недавний выпускник института Сергей Хрущев.
Говорят, что все гениальное должно быть простым. МПЭ являлся ярким примером такой гениальной простоты. Временные коллективы, баллы, объективно определяющие трудовое участие каждого работника в работе коллектива и относительно небольшой премиальный фонд – вот и вся суть МПЭ. А каков был эффект! Пожалуй, главным результатом МПЭ следует считать превращение большого числа обычных людей в ярких творческих личностей, способных принимать самостоятельные решения. Именно благодаря этим людям страна продолжала развиваться и после отмены МПЭ вплоть до начала 60-х годов. А дальше их способности оказались невостребованными в удушливой атмосфере, сложившейся к тому времени, главным девизом которого было «не высовывайся».

В одну телегу впрячь возможно коня и трепетную лань
В 1959 году резко сокращаются размеры приусадебных участков. Колхозников заставляют продать свой скот колхозам, где он массово гибнет из-за отсутствия как кормов, так и кадров, обеспечивающих соответствующий уход за животными. В результате уменьшаются объемы производство мяса и особенно молока. В 1960 году начинается массовая национализация предприятий промкооперации, в том числе и в пищевой промышленности. Вся собственность артелей, включая помещения, оборудование, товарные и денежные запасы, безвозмездно передается государству. Выбранное трудовым коллективом руководство артелей заменяется партийными назначенцами. Доход работников теперь, как и на других государственных предприятиях, определяется окладом или тарифными ставками и дополняется квартальными и годовыми премиями. В артелях же, помимо обычного фонда оплаты труда, существовал премиальный фонд, на формирование которого выделялось 20% прибыли. Этот фонд распределялся между артельщиками, так же как и в случае МПЭ, в соответствии с баллами трудового участия. Величины этих баллов определялись по рекомендации председателя артели на общих собраниях всех пайщиков. Ежемесячный доход членов артели даже при минимальном трудовом участии, как правило, в 1,5-2 раза превышал основной оклад. Но при этом все артельщики, включая выбранного начальника, также участвующего в конкретном производстве, работали с максимальной интенсивностью и с ненормированной продолжительностью рабочего дня. Доход каждого артельщика зависел не только от количества произведенной продукции, но также от качества и от разнообразия ассортимента. Кстати, я помню, что в Ленинграде некоторые хлебопекарни не только поставляли свою продукцию в государственные булочные, но и доставляли горячий хлеб, разнообразные булки и выпечку непосредственно в квартиры жителей города с небольшой наценкой.
После национализации продолжительность рабочего дня бывших артельщиков сократилась до 8 часов в соответствии с трудовым законодательством. К тому же появились абсолютно бесполезные для производства люди с относительно большой зарплатой в лице вновь назначенных начальников. Исчезла материальная заинтересованность в качестве продукции, и сразу вырос процент брака. В результате резко сократился объем производимой продукции при том же числе предприятий и количестве работников. И мукомольные предприятия уже не могли производить прежние объемы муки при  достаточных запасах зерна. Единственным выходом из сложившейся ситуации было увеличение численного состава работников на предприятиях пищевой промышленности. Необходимые для этого дополнительные финансовые средства были получены за счет повышения цен на продовольственные товары в среднем в 1.5 раза, что автоматически привело к снижению жизненного уровня населения. Цены на промышленные товары поднимались еще в большей степени, но без явных деклараций. Ну а доход бывших артельщиков упал более, чем в 2 раза. Ликвидация промкооперации неизбежно привела к сокращению ассортимента и снижению качества выпускаемой продукции в национализированных предприятиях. Намного проще выпускать один тип изделия вместо десяти, тем более, если в плановых показателях указываются абстрактные штуки или килограммы.
Предприятия промкооперации работали в условиях намного более льготных, чем современные малые предприятия. Кредитование артелей осуществлялось не банками, а районными, межрайонными или отраслевыми союзами промкооперации (СПК) из специальных кредитных фондов с процентной ставкой не более 3% . В некоторых случаях кредит выдавался под нулевой процент. Для получения кредита вновь образуемой артелью не требовалось никакого обеспечения – весь риск банкротства артели ложился на СПК.  Оборудование и материалы, необходимые для производства, артели получали от СПК по государственным ценам. Заявки от СПК поступали в Госплан СССР, который и выделял соответствующие фонды, в том числе и на материалы, закупаемые за валюту. Реализация продукции, выпускаемой артелями, также осуществлялась через СПК. При этом цена продукции предприятий промкооперации могла превышать государственные цены не более, чем на 10%. Для небольших артелей СПК мог за соответствующую плату брать на себя бухгалтерию, расчетно-кассовое и транспортное обслуживание... Руководящие сотрудники СПК любого уровня выбирались, как правило, из артельщиков или сотрудников СПК более низких уровней. Оплата труда этих сотрудников выполнялась так же, как и артелях. Наряду с обычными окладами существовал премиальный фонд, распределявшийся в соответствии с баллами трудового участия. Чем выше была прибыль артелей, значительная часть которой перечислялась в СПК, тем больше был премиальный фонд для сотрудников СПК. Это был весомый стимул для всемерной поддержки деятельности артелей и повышения их числа.
СПК активно вели жилищное строительство. Готовые индивидуальные дома артельщики выкупали с помощью 15-летнего кредита, полученного от СПК под 3% годовых без первоначального взноса. Многоквартирные дома являлись собственностью СПК. Квартиры в этих домах выкупались артельщиками, так же как и в обычных жилищно-строительных кооперативах, но без первоначального взноса.
Промкооперация имела свою сеть санаториев и домов отдыха с бесплатными путевками для артельщиков. У промкооперации была своя пенсионная система, не заменяющая, а дополняющая государственные пенсии. Конечно, за 50 лет я мог забыть какие-то детали, да и мой знакомый мог приукрасить действительность, рассказывая о промкооперации, «которую мы потеряли». Но в целом, я полагаю, изложенная картина недалека от истины.

А напоследок я скажу
Подавляющее большинство граждан современной России, от либералов до коммунистов, убеждено, что население СССР всегда жило значительно хуже, чем в западных странах. Никто не подозревает, что именно при Сталине и только благодаря Сталину советские люди в середине прошлого века жили намного лучше в материальном и моральном плане, чем в любой другой стране того времени и лучше, чем в современных США, не говоря уже о современной России. А затем пришел злой Хрущев и все испортил. И после 1960 года жители СССР незаметно для себя оказались совсем в другой стране и через некоторое время забыли, как они жили раньше. Именно в этой новой стране и появились все те негативные черты, которые считаются органически присущими социалистической системе. Именно эта псевдосоциалистическая страна, совершенно непохожая на прежний Советский Союз, рухнула под тяжестью накопившихся проблем в 1991 году, а Горбачев лишь ускорил этот процесс, действуя в стиле Хрущева.

Автор: 
Валерий Антонович ТОРГАШЕВ, д.т.н., профессор (по материалам блога Николая Старикова)
Номер газеты: 

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

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