1c обновить конфигурацию базы данных на автомате

Обновлено: 03.07.2024

В этой статье речь пойдет о том, как обновить 1С через конфигуратор самостоятельно. Для примера возьмем 1С:Бухгалтерия, версия 3.0. Способ, описанный в данной статье, подойдет и для других конфигураций 1С (1С:Зарплата, 1C:Управление торговлей, 1C:Розница и так далее). Способ обновления через конфигуратор является более сложным, чем, например, обновление в пользовательском режиме, но является более надежным и значительно снижает риск потери данных.

Для чего нужно обновлять конфигурации 1С?

В нашем законодательстве регулярно появляются какие-то новшества и изменения: появляются новые формы документов, вводятся новые виды отчетов, устанавливаются новые сроки и алгоритмы подачи для проверки различной документации. Пользователям 1С необходимо всегда соответствовать этим актуальным изменениям. Поэтому компания "1С" постоянно следит за любыми изменениями в законодательстве и регулярно вносит изменения в свои конфигурации, чтобы пользователи могли использовать только актуальные версии.

Как часто необходимо выполнять обновление конфигураций 1С?

По этому вопросу существует много разных мнений. Кто-то считает, что делать это необходимо с выходом каждого обновления. Кто-то считает, что достаточно обновляться раз в месяц. А кто-то, вообще, обновляется только тогда, когда перестанут сдаваться отчеты. Разумно сказать, что чем чаще обновлять конфигурацию, тем лучше, но самым оптимальным периодом будет обновление раз в квартал, как раз перед сдачей квартальных отчетов, это как раз то время, когда необходимость соответствовать последним изменениям в законодательстве максимально важна, поэтому актуальная версия поможет избежать множества трудностей.

Процесс обновления конфигурации 1С

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

  • Запускаем программу. Обязательно в режиме "Конфигуратор";

Обновление конфигурации 1С через конфигуратор

  • В верхнем меню, во вкладке "Администрирование" выбираем пункт "Выгрузить информационную базу";



  • В открывшемся окне указываем место, в которое необходимо сохранить файл с резервными данными (лучше выбрать удобное место, чтобы, в случае чего, было легко его отыскать). Там же лучше указать его имя (можно воспользоваться названием, которое предлагает программа, но лучше назвать файл так, как это будет легко и понятно для Вас, если будет необходимость его отыскать.);



  • Далее программа приступит к формированию файла резервной копии. Это может занять длительное время, зависит от объема данных и технических характеристик компьютера. когда файл будет сохранен, появится уведомление:
  • Чтобы выполнить обновление корректно, необходимо точно знать какая конфигурация и какой версии установлена на данный момент. Для этого в верхнем меню выбираем вкладку "Справка" и жмем на пункт "О программе";



  • В открывшимся окне мы видим подробный отчет о версии. В нашем случае конфигурация Бухгалтерия предприятия, редакция 3.0, версия 3.0.64.42;



Далее необходимо получить сам файл, который содержит последние обновления. Существует два способа сделать это: можно взять его с диска "1С: ИТС", или скачать его с сайта поддержки пользователей. Лучше обратиться к сайту, во-первых диск имеется не у всех пользователей, а во-вторых именно на сайте можно найти самые свежие обновления (диск может быть не самой актуально версии или просто не включать в себя последние новшества, так как диски выпускаются примерно раз в месяц). На пользовательском сайте вся информация обновляется каждый день и является самой актуальной.

  • Заходим на сайт поддержки: https://portal.1c.ru/, в верхнем меню, справа кликаем "Войти";

Обновление конфигурации 1С через конфигуратор

  • Заполняем форуму своими данными для входа и снова кликаем "Войти";



  • На открывшейся странице выбираем пункт "Обновление программ";



  • В левом меню выбираем "Cкачать обновление программ";



  • Откроется таблица всех обновлений. Переходим в раздел "Конфигурации для России" и там выбираем необходимый пункт, в нашем случае "Бухгалтерия предприятия, редакция 3.0";



  • Оказываемся в таблице всех обновлений конкретно для нашей конфигурации. В правом столбике мы видим, с какими редакциями совместимо обновление. Выбираем самое свежее обновление, из тех, которые совместимы с нашей редакцией (мы ее узнавали в первом этапе);



  • Далее нам представлена некоторая информация о выбранном обновлении, кликаем "Дистрибутив обновления";

Обновление конфигурации 1С через конфигуратор





  • Файл с обновлением будет в виде архива. Создаем папку, называем ее соответственно номеру обновления и переносим в нее сам архив;



  • Открываем архив двойным кликом мыши и нажимаем "Извлечь";



  • После извлечения, в открывшихся файлах архива находим и запускаем файл "setup.exe", тем самым начинаем установку обновлений;

Обновление конфигурации 1С через конфигуратор



  • Выбираем каталог шаблонов, рекомендуется оставить таким, каким предлагает программа установки автоматически;



  • После установки шаблона обновления программа предложит ознакомиться с его описанием, чтобы не тратить на это время - снимаем галочку с пункта "Открыть описание поставки" и жмем "Готово";



Шаблон обновления успешно установлен на компьютере и мы можем переходить к следующему этапу.

Начинаем непосредственно само обновление:

  • Возвращаемся в конфигуратор, который мы отрыли еще на первом этапе. Если у нас не открыто дерево конфигурации - открываем его. Вкладка "Конфигурация" в верхнем меню, пункт "Открыть конфигурацию";



  • В верхнем меню снова выбираем "Конфигурация", пункт "Поддержка" и подпункт "Обновить конфигурацию";

Обновление конфигурации 1С через конфигуратор

  • Откроется окно, в нем выбираем пункт "Поиск доступных обновлений (рекомендуется)" и кликаем "Далее";



  • В открывшемся окне ставим галочку на пункт "Искать в текущих каталогах шаблонов и обновлений". Жмем "Далее";



  • Место хранения этого каталога можно изменить при желании. Для этого при запуске 1С выбираем пункт "Настройки", затем выбираем "Каталоги шаблонов конфигураций и обновлений" и устанавливаем место, которое нам необходимо для хранения. Но это делать не рекомендуется, лучше использовать стандартный путь;

Обновление конфигурации 1С через конфигуратор

  • Возвращаемся к установке обновлений, после того как мы выбрали каталог, начнется поиск обновлений. Если имеются доступные обновления, появится окно в котором мы видим, что программа нашла обновление (то, которое мы устанавливали во втором этапе). Кликаем по нему один раз и жмем "Готово";



  • Далее появится окно с информацией по обновлению. Нажимаем "Продолжить обновление";

Обновление конфигурации 1С через конфигуратор

  • Появится окно, где будет информация о нашей текущей версии и о версии, которую мы устанавливаем. Нажимаем "ОК". После чего запускается сам процесс обновления;



  • Откроется окно, где можно отслеживать ход обновления. За процессом можно наблюдать в нижнем левом углу окна. Первый шаг процесса - обновление конфигурации поставщика;



  • После завершения первого шага, программа предложит обновить конфигурацию базы данных. Жмем "Да", после чего начнется процесс обновления базы;



  • Когда обновление будет завершено, откроется окно, где можно ознакомиться с изменениями в конфигурации. Можно почитать. Затем кликаем "Принять";



  • В некоторых случаях может появиться уведомление с предупреждением. Жмем "Да";

Обновление конфигурации 1С через конфигуратор

  • Запускаем программу в пользовательском режиме, можно сделать это из режима конфигуратора: в верхнем меню выбираем вкладку "Сервис", в ней пункт "1С: Предприятие". Также это можно сделать быстрой командой, нажав на клавиатуре Ctrl+f5;



  • В открывшемся окне выбираем пункт, которые подтверждает, что обновление производилось легально. Жмем "Продолжить";



  • Начнется обновление программы в пользовательском режиме;

Обновление конфигурации 1С через конфигуратор

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



Откроется такое же окно с информацией, как мы видели на первом этапе, только данные уже будут соответствовать обновленной версии.

В свойствах баз обновлятора появилась вот такая замечательная опция:

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

Когда она может быть полезна

Например, вы регулярно обновляете одну и ту же дописанную конфигурацию и хотите облегчить себе работу.

При этом все дописки вы знаете и они у вас задокументированы.

В таком случае может быть проще и быстрее:

  1. Сначала обновить конфигурацию обновлятором (установив соотв. галку в свойствах базы)
  2. Затем посмотреть отчёт обновления в обновляторе (там будут указаны свойства,измененные дважды)
  3. И только после этого проверить, что все доработки на месте и вернуть те, что были утеряны (об этом смотрите ниже, где я рассказываю как работает автоматическое обновление доработанных конфигураций)

При таком способе работы вам не нужно:

  1. Скачивать необходимые обновления
  2. Открывать конфигуратор и применять эти обновления
  3. Ожидать пока выполнится обновление конфигурации
  4. Ожидать пока выполнится обновление базы данных

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

И если доработки конфигурации небольшие, то в большинстве случаев вам после обновления вообще не придётся ничего делать.

Ваше вмешательство будет нужно тогда, когда в обновлении будет изменен тот же самый объект, что изменен у вас (это и называется "измененные дважды"). И вы можете легко находить такие объекты, просматривая отчёт обновлятора:


Как работает автоматическое обновление доработанных конфигураций

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

Обновление происходит с приоритетом новой конфигурации, при этом:

  1. Если вы добавляли в конфигурацию новый объект - обновление его не затронет.
  2. Если вы добавляли в конфигурацию новый реквизит в уже существующий объект типовой (от поставщика) - обновление его также не затронет.
  3. Если вы меняли в конфигурации объект поставщика, но он не изменился в этом обновлении, то он останется как есть.
  4. Но, если вы меняли в конфигурации объект поставщика, и он изменился в этом обновлении, то возьмётся версия из обновления. При этом в отчёте обновлятора этот объект будет отмечен как "дважды измененный".

При этом, при настройке по умолчанию.

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

Я очень надеюсь, что эта возможность позволит высвободить ещё немного часов от ручного, монотонного труда.

Как настроить режим объединения конкретных объектов (для опытных пользователей)

Общий случай (c1)

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

Если вы опытный пользователь (программист или администратор, имеющий навыки обновления доработанных конфигураций), то при необходимости сможете настроить режим объединения для объектов, которые дорабатывались, чтобы, например, происходило не замещение, а объединение с необходимым приоритетом. Это позволит вам уменьшить объём возможных доработок конфигурации после обновления.

Рассмотрим такую настройку на примере конфигурации БухгалтерияПредприятия, в которую я внёс следующие изменения:

  • В общий модуль "РегламентированнаяОтчётность" добавил новую процедуру с именем "Тест".
  • Доработал форму элемента справочника "Валюты".

Заходим в конфигуратор и из меню выбираем "Конфигурация"-"Поддержка"-"Настройка поддержки. ":

В открывшемся окне нажимаем кнопку "Сравнить, объединить" (внимание, наша задача только сравнить и сохранить настройки, реального объединения мы выполнять не будем):

В окне сравнения должны появится наши доработки (при условии, что конфигурация до этого обновлялась корректно и версия основной конфигурации соответствует версии конфигурации поставщика):

Теперь отмечаем галками нужные нам объекты и настраиваем справа режим их объединения:

Внимание. Если среди предложенных вариантов нет нужного режиме объединения - прочитайте про специальный случай ниже.

После этого на панели выбираем "Действия"-"Сохранить настройки в файл как. ":

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

Открываем получившийся файл с настройками, нас интересует секция, которая начинается с тега <Objects> и заканчивается </Objects>. Это и есть нужные нам настройки объединения для выбранных нами объектов.

Копируем эту секцию в буфер обмена:

Далее заходим в свойства базы в обновляторе, закладка "Обновление", раздел "Сам процесс".

Устанавливаем здесь опцию "необходимо выполнять обновление с приоритетом новой конфигурации. " и тут же нажимаем ссылку "Настройки объединения. ":

В открывшемся окне вставляем содержимое буфера обмена (секцию Objects из файла с настройками):

Сохраняем все настройки и выполняем обновление конфигурации на 1 релиз:

Видим, что в этом обновлении был изменен общий модуль РегламентированнаяОтчетность, в который у нас добавлена процедура Тест.

Но благодаря нашим настройкам произошло не замещение, а именно объединение модулей, поэтому процедура Тест будет на месте после обновления:

Специальный случай (c2)

Но что если мы изменили объекты конфигурации, для которых операция объединения не имеет смысла.

Например, мы увеличили длину номера документа:


В этом случае, как вы видите, есть только один вариант объединения: "Взять из конфигурации поставщика".

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

В таких случаях нужно выбрать "Взять из конфигурации поставщика", а затем в настройках.


. изменить правило объединения GetFromSecondConfiguration на DoNotMerge вот так:


Тогда наш измененный реквизит вообще не будет никак меняться при объединении.

Как настроить финальное объединение с эталонной конфигурацией

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

У него 40 бухгалтерских баз. Все они содержат одну и ту же доработанную конфигурацию.

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

Алгоритм работы до автоматизации у него был такой:

"В ручном режиме обновляю до последнего релиза одну базу; в последнем релизе тестирую, добавляю все изменения, которые были потеряны, в модулях форм документов, общих модулях. Затем обновляю остальные базы до последнего релиза и в конце объединяю с подготовленным cf файлом из первой базы."

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

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

И я доработал эту возможность.

Чтобы заставить обновлятор после применения обновления следом выполнить ещё и объединение с конфигурацией из файла - необходимо расположить файл с конфигурацией для объединения в папку обновления под именем MergeThisFileAfterUpdate.cf

В рассмотренном выше примере предположим, что требуется обновить все 40 конфигураций на следующие релизы (и пусть они для упрощения задачи будут ключевыми, то есть их нельзя перескакивать): 2.0.60.1, 2.0.60.2 и 2.0.60.3.

Алгоритм наших действий с учётом автоматизации обновлятором будет следующим:

  1. Обновить при помощи обновлятора одну из конфигураций до версии 2.0.60.3
  2. Добавить все изменения, которые были потеряны. проверить работоспособность обновлённой конфигурации.
  3. Выгрузить эту конфигурацию в папку с обновлением 2.0.60.3 под именем MergeThisFileAfterUpdate.cf
  4. Запустить обновление (с включенной возможностью обновления доработанных конфигураций) оставшихся 39 баз.
  5. Обновлятор в этом случае для каждой из 39 баз:
    1. выполнит пакетное обновление на 2.0.60.1
    2. выполнит обработчики обновления
    3. выполнит пакетное обновление на 2.0.60.2
    4. выполнит обработчики обновления
    5. выполнит пакетное обновление на 2.0.60.3
    6. обнаружит, что в папке с обновлением 2.0.60.3 лежит файл MergeThisFileAfterUpdate.cf
    7. выполнит пакетное объединение нашей конфигурации с конфигурацией из файла MergeThisFileAfterUpdate.cf (о настройках такого объединения смотрите ниже)
    8. выполнит обработчики обновления

    При этом пакетное объединение выполняется через пакетный ключик конфигуратора mergecfg и следующий файл настроек (передаётся через ключ settings):

    Такие настройки объединения позволяют нам привести нашу конфигурацию (которая всё ещё на поддержке) к конфигурации в файле MergeThisFileAfterUpdate.cf, в которую мы внесли и исправили все наши доработки.

    Объединение с эталонной конфигурацией как отдельная операция

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

    Эта возможность доступна на закладке "Скрипты" в главном окне программы.

    Тип скрипта "Пакетный". Из меню следует выбрать пункт "Обновлятор"->"Методы"->"Объединить с конфигурацией из файла":

    В скрипт вставится вот такой текст:

    Путь к файлу, с которым нужно выполнить автоматическое объединение, у вас, конечно, будет свой.

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

    Получается, что в начале мы выполняем объединение конфигураций при помощи команды обновлятора merge_cfg, а затем выполняем обновление конфигураций баз данных при помощи пакетного ключика конфигуратора UpdateDBCfg.

    Вторую команду можно вставить в скрипт из меню шаблонов:

    С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

    Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

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

    Рассмотрим объединение конфигураций на примере конфигурации «1С:Управление торговлей, ред. 10.3» на платформе 8.1. Данную инструкцию вы сможете использовать для любых конфигураций на платформах 8.0, 8.1 и 8.2.

    Шаг 1. Открыть конфигуратор базы

    Любые действия с конфигурацией базы можно производить в конфигураторе. Запустим «1С:Предприятие», выберем в списке нужную базу и нажмем кнопку «Конфигуратор».


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

    Откроется конфигуратор базы данных:


    Шаг 2. Открыть конфигурацию

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

    Меню: Конфигурация – Открыть конфигурацию

    Открытие конфигурации может занять некоторое время, после чего конфигурация откроется на экране:


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

    Шаг 3. Объединить конфигурации

    Для объединения конфигураций используйте

    Меню: Конфигурация – Сравнить, объединить с конфигурацией из файла

    В открывшемся окне укажите путь к файлу конфигурации, с которым вы хотите объединить вашу базу и нажмите «Открыть».


    Далее программа выполнит сравнение вашей конфигурации с файлом, сравнение может занять некоторое время.

    Программа покажет на экране окно сравнения конфигураций и укажет все различия между вашей конфигурацией и файлом. Анализировать различия вам не нужно, специалист заранее все подготовил и проанализировал.



    Шаг 4. Обновить конфигурацию базы данных

    После объединения конфигураций вам нужно перенести все изменения в базу данных. Для этого выполняется обновление конфигурации базы данных.

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

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

    Меню: Конфигурация – Обновить конфигурацию базы данных

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

    Во втором случае программа выведет на экран информацию о важных изменениях:


    Вам нужно нажать кнопку «Принять» и программа продолжит обновление дальше.

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

    1. Настройка внешней базы для осуществления автоматического обновления конфигурации БД

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

    1.1. Настройка параметров обновляемой базы

    Заходим в главном меню в «Справочники», «Базы данных» (см. Рисунок 1).

    Рисунок 1. Справочник баз данных

    Рисунок 1. Справочник баз данных

    В списке баз нажимаем «Добавить», либо заходим в уже существующую базу данных (см. Рисунок 2).

    Рисунок 2. Добавление новой базы данных

    Рисунок 2. Добавление новой базы данных

    Настраиваем базу: указываем параметры подключения, список выполняемых действий (см. Рисунок 3). Обрабатываться будут только базы, у которых стоит признак «Активна». Имя сервера указывается вместе с портом подключения. Для центральной базы настраиваем действия: обновиться из хранилища, проверить необходимость обновления, установить блокировку соединений, отключить сеансы пользователей, обновить конфигурацию БД, снять блокировку. Для периферийных баз настраиваем действия: проверить необходимость обновления, установить блокировку соединений, отключить сеансы пользователей, обновить конфигурацию БД, снять блокировку. Последовательность выполнения операций определяется расписанием (см. Настройка расписания).

    Рисунок 3. Параметры базы

    Рисунок 3. Параметры базы

    Необходимо указать пароли для подключения к базе (должны быть права на администрирование), для подключения к кластеру серверов, для подключения к хранилищу (если это необходимо). См. Рисунок 4.

    Рисунок 4. Указание пароля для подключения к базе

    Рисунок 4. Указание пароля для подключения к базе

    Указание имени и пароля пользователя для подключения к БД (см. Рисунок 5). Внимание! Не используйте «своих» паролей (и своих учетных записей), т.к. они могут быть видны другим администраторам, имеющим доступ к управляющей базе. Используйте отдельные пароли, специально для автообновления.

    Рисунок 5. Указание пароля

    Рисунок 5. Указание пароля

    Указание имени и пароля для подключения к кластеру, а также адреса кластера включая порт см. Рисунок 6

    Рисунок 6. Настройка подключения к кластеру

    Рисунок 6. Настройка подключения к кластеру

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

    Рисунок 7. Настройка подключения к хранилищу

    Рисунок 7. Настройка подключения к хранилищу

    1.2. Настройка расписания

    Также необходимо настроить расписание для запуска задач. Расписание настраивается индивидуально для каждого действия (см. Рисунок 8). Чтобы открыть действие – нужно в списке два раза кликнуть по нему.

    Рисунок 8. Вызов расписания действия

    Рисунок 8. Вызов расписания действия

    Настраиваем расписание (аналогично расписанию обмена в УПП) (см. Рисунок 9). Для рабочих баз следует указывать однократное выполнение действий утром раз в день по будним дням.

    Рисунок 9. Настройка расписания

    Рисунок 9. Настройка расписания

    1.3. Возможные ошибки

    Наиболее частая ошибка – «Версия компоненты 'comcntr' отличается от версии корневого модуля 'core82'». Ошибка устраняется полной переустановкой 1С на сервере.

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

    При разработке использовалась методика отключения пользователей, изложенная в

    Достоинства

    Снижаем трудозатраты на обслуживание серверных баз - для обновление базы теперь нет необходимости ночью заходить на сервер или с утра по-раньше не давать пользователям работать.

    Читайте также: