Как очистить базу 1с
Обработка генерирует SQL-скрипт, который либо просматривает, либо очищает базу данных от всех документов либо по выбранной организации. Проверялась на типовой конфигурации Управление производственным предприятием на платформе 8.3. Так же проверялась на специализированной программе Управления сбытом продукции. Обработка универсальна для стандартных конфигураций на платформе 8.3.
Предыстория.
Организацией была поставлена задача сделать копии 2х рабочих баз, удалив из них только документы и оставив все справочники и прочие настройки. На основе этих баз открывалась еще одна организация.
Места на SQL Сервере было не так и много, а базы были огромными с 2015 года с оборотом до 3000 документов в день.
В итоге общее число документов превышало 3 000 000 штук в каждой.
Проблема была в том, что времени давалось три дня на две базы.
Так же в специализированной базе были документы не привязанные к Организации.
В связи с чем исходная обработка "PUBID_731455-ОчисткаОтДанныхОрганизации" не видела некоторые типы документов.
Пришлось доработать обработку.
1. Галка "Полное" позволяет найти все документы, не учитывая Организацию.
2. Галка "Только документы" позволяет очистить базы только от документов и их движений по регистрам,
не трогая: "Справочники , Версии объектов, Категории, Свойства, Остальные регистры".
3. Галка "Только помеченные" позволяет удалять только документы помеченные на удаление.
4. Галка "До даты" отрезает список удаляемых документов по дату установленную в поле "Дата по".
По кнопке "Создать SQL скрипт" создается скрипт, который чистит базу.
По кнопке "Создать SQL скрипт просмотра" создается скрипт, который только выводит список типов Документов с
цветом те типы объектов, которые имеют данные не равные 0, можно следовать этому списку при удалении.
Это позволяет сделать анализ сразу все удалять или частями, временно комментируя текстом -- куски по объектам с большим объемом, находясь в скрипте загруженном в SQL Server Management Studio.
Мой опыт таков.
Первое, что я стал делать - это попытаться удалять стандартными средствами 1С. Только пометка на удаление конкретного документа "реализация" заняла 1.5 Суток. Это меня не устраивало. Решил попробовать средствами SQL.
В SQL я запустил на удаление сразу все документы. SQL жужжал 18 часов, а потом выдал, что не хватает места.
Это потому, что весь скрипт делается в одной транзакции. Решил разбить удаление, чтобы транзакции были поменьше размером.
Лог файл разросся в 456 гигабайт. Пришлось уменьшать сжатием базы.
Если места на сервере SQL мало или сервер слабенький, есть два варианта чистки.
Первый вариант:
1. Включить галку "До даты" в обработке выбрать дату и выгрузив скрипт начиная от начала времен данной базы до какой то даты, когда число объектов допустимое, по ресурсам SQL.
нибудь так: "C:\Users\1c-prog\AppData\Local\Temp\32\v8_9E2C_c.sql").
3. Запускаем SQL Server Management Studio.
4. Загружаем скрипт из места выгрузки.
5. В SQL Server Management Studio в верхних кнопках ищем кнопку [! Выполнить], слева от нее в поле "Доступные базы данных" выбираем нашу базу, прыгаем курсором в текст скрипта и давим кнопку [! Выполнить].
6. Ждем окончания выполнения.
7. Возвращаемся в нашу обработку 1С и сдвигаем дату. Повторно выгружаем новый скрипт и по кругу (с пункта 4)
Второй вариант:
1. Галку "До даты" не используем.
нибудь так: "C:\Users\1c-prog\AppData\Local\Temp\32\v8_9E2C_c.sql".
3. Запускаем SQL Server Management Studio и Загружаем скрипт из места выгрузки.
4. В тексте скрипта выделяем один или несколько кусков кода, с большим количеством объектов метим спереди комментарием --
5. В SQL Server Management Studio в верхних кнопках ищем кнопку [! Выполнить], слева от нее в поле "Доступные базы данных"
выбираем нашу базу, прыгаем курсором в текст скрипта и давим кнопку [! Выполнить].
6. Ждем окончания выполнения.
7. Восстанавливаем по одному или сразу несколько за комментированные куски текста и давим
кнопку [! Выполнить]. Повторяем этот пункт до полной выгрузки.
И главное!
Если вы удаляли все документы, то после удаления оных необходимо вручную очистить таблицы журналов документов.
Это таблицы с именем начинающимся на _DocumentJournal.
Как это сделать, смотрите рисунки "Удаление журналов Шаг1 и Шаг2".
Перед запуском по кнопке [! Выполнить], удалите строку: WHERE
Вот пожалуй и все! Дерзайте!
Мне по своей задаче такое решение очень помогло.
ПРИМЕЧАНИЕ:
При удалении "Справочники , Версии объектов, Категории, Свойства, Движения по регистрам", галка "Пометка удаления" не работает. Хотите, доработайте сами.
Часто возникает необходимость создать ещё одну базу данных. При этом, нужна база данных такая же как у вас уже есть (бухгалтерия, торговля и т.п.) только пустая (без данных, но с полным функционалом). Условно, создание новой базы можно разбить на несколько вариантов:
- Создание базы данных из шаблона.
- Создание базы данных из конфигурационного файла (с расширением *.cf).
- Создание пустой базы данных, используя другую базу данных.
Рассмотрим несколько случаев в которых можно это сделать.
Создание базы данных из шаблона
Этот способ самый простой. Программа 1С все делает за пользователя. Опишем его предельно кратко и ясно:
- Открываем список Ваших информационных баз (запускаем ярлык 1С).
- Нажимаем кнопку "Добавить".
- Оставляем переключатель в положении "Создание новой информационной базы", нажимаем "Далее".
- Указываем, что хотим создать базу из шаблона. Разворачиваем дерево с доступными шаблонами и выбираем нужный. Шаблон определяет тип базы: Бухгалтерия предприятия, Управление Торговлей, Зарплата и т.п. Нажимаем "Далее".
- Указываем как база данных будет называться в списке, нажимаем "Далее". *
- Указываем каталог, в который хотим поместить базу данных, или оставляем по-умолчанию. ** Нажимаем "Далее".
- Оставляем переключатели в положении "Выбирать автоматически" и нажимаем "Готово".
* - в данной статье рассматривается самый простой (файл-серверный) вариант создания базы. При создании базы данных на сервере 1С:Предприятие в режиме "клиент-сервер", лучше обратиться к специалисту. Поэтому в п. 5 мы оставляем переключатель в положении "на данном компьютере или в локальной сети".
** - Конечно, можно оставить все по-умолчанию, однако, не очень надежно хранить вашу базу данных в папке "Мои документы" или в целом на системном диске (диск C:\). Если есть такая возможность, рекомендуем создать папку специально для хранения Вашей информационной базы не на диске C:\. В этом случае путь может выглядеть, например, так: "E:\Базы_1С\Бухгалтерия_Ромашка\".
Рассмотренный способ очень прост, однако имеет ряд недостатков. Если не обновлять шаблоны конфигураций постоянно, то по прошествии нескольких периодов, таким способом можно будет создать только устаревшую версию базы данных. Либо шаблоны конфигураций могут просто отсутствовать. Поэтому мы рекомендуем воспользоваться Вам способом, рассмотренным в следующем разделе.
Создание базы данных из файла конфигурации (*.cf)
Файл конфигурации - это файл, определяющий, какой будет база данных: Бухгалтерия предприятия, Управление торговлей, Зарплата и Управление персоналом и т.д. Можно сказать, это "рыба" будущей базы данных. Сразу стоит сказать, что если у Вас нет файла конфигурации, его можно легко выгрузить из другой базы данных. Об этом подробно будет написано в последнем разделе этой статьи.
Итак, прежде всего нам нужно создать папку, в которой мы будем хранить нашу новую базу данных.
- Создаете в любом месте на компьютере пустую папку. Хорошо продумайте название и место расположения папки. Желательно, чтобы это был не системный диск (не диск C:\).
- В списке информационных баз (даже если там пока нет ни одной базы) нажмите на кнопку "Добавить".
- Отвечая на вопросы помощника добавления новой базы, пройдите все пункты:
- Выберите пункт "Создание новой базы", нажмите "Далее".
- Далее переключите "точку" на пункт "Создание информационной базы без конфигурации для разработки. ". Нажмите далее.
- Укажите как база будет называться. Нажмите далее.
- Нажмите на кнопку выбора ". " и укажите папку, которую Вы создали в п. 1. Причем в диалоге выбора, который откроется, необходимо войти в нужную папку и только потом нажать на кнопку "Открыть". В результате в поле "путь" должен прописаться путь к указанной папке.
- Нажимаете кнопку "Далее".
- Оставляя все по-умолчанию, нажимаете на кнопку "Готово".
- Выберите пункт "Создание новой базы", нажмите "Далее".
- Итак, мы создали пустую базу без конфигурации в нашей папке.
Сейчас созданная база не имеет ни данных, ни какой-либо функциональности. Т.е. она бесполезна. :) Чтобы эта функциональность у базы появилась, нужно загрузить в неё Конфигурационный файл (с расширением *.cf). Сделать это тоже очень просто:
- Заходите в созданную пустую базу в режиме "конфигуратор": для этого в списке информационных баз становитесь на нужную и нажимаете на кнопку "Конфигуратор".
- В открывшемся окне выбираете меню "Конфигурация" - "Открыть конфигурацию" (Если пункт меню недоступен, значит конфигурация уже открыта).
- Далее выбираете меню "Конфигурация" - "Загрузить конфигурацию из файла" и выбираете файл с расширением *.cf
- Далее на все вопросы отвечаете положительно, на все соглашаетесь. Готово!
После того как закончатся все процедуры загрузки и сохранения, запускайте базу данных в обычном режиме и начинайте работу. Таким образом мы сделали пустую базу 1С 8 без данных, но с полной функциональностью.
Создание базы данных, используя другую базу данных
Если перед Вами стоит задача создать базу данных такую же, как у Вас уже есть, но пустую. Вам понадобится Конфигурационный файл (с расширением *.cf), выгруженный из имеющейся базы. Сделать это очень просто. Для этого:
- Заходите в имеющуюся базу в режиме "конфигуратор": для этого в списке информационных баз становитесь на нужную и нажимаете на кнопку "Конфигуратор".
- В открывшемся окне выбираете меню "Конфигурация" - "Открыть конфигурацию" (Если пункт меню недоступен, значит конфигурация уже открыта).
- Далее выбираете пункт меню "Конфигурация" - "Сохранить конфигурацию в файл".
- Выбираете место, куда будет сохранен файл конфигурации и задаете ему имя. Например, переходите на рабочий стол и указываете "Конфигурация_Бухгалтерии.cf". Нажимаете "Сохранить".
Готово! После окончания выгрузки файла, Вам необходимо создать новую базу данных, используя этот файл так, как описано в предыдущем разделе "Создание базы данных из конфигурационного файла (с расширением *.cf)".
* Очистка информационной базы от данных
На практике часто возникает необходимость очистить какую-либо базу от данных полностью. Пусть формулировка задачи не вводит Вас в заблуждение! В этом случае просто создайте новую пустую базу на основании существующей, как описано в предыдущих разделах, а старую можете удалить или поместить в архив.
Шаблон создаётся с помощью установочного комплекта (дистрибутива). Такой дистрибутив есть на диске, идущем в комплекте с программой. Свежий можно получить у обслуживающего франча или в самой 1С, на линии консультаций.
Как удалить все документы (очистить базу) в 1С 8.3?
Как обнулить 1с
Часто возникает необходимость создать ещё одну базу данных. При этом, нужна база данных такая же как у вас уже есть (бухгалтерия, торговля и т.п.) только пустая (без данных, но с полным функционалом). Условно, создание новой базы можно разбить на несколько вариантов:
- Создание базы данных из шаблона.
- Создание базы данных из конфигурационного файла (с расширением *.cf).
- Создание пустой базы данных, используя другую базу данных.
Рассмотрим несколько случаев в которых можно это сделать.
Создание базы данных из шаблона
Этот способ самый простой. Программа 1С все делает за пользователя. Опишем его предельно кратко и ясно:
- Открываем список Ваших информационных баз (запускаем ярлык 1С).
- Нажимаем кнопку "Добавить".
- Оставляем переключатель в положении "Создание новой информационной базы", нажимаем "Далее".
- Указываем, что хотим создать базу из шаблона. Разворачиваем дерево с доступными шаблонами и выбираем нужный. Шаблон определяет тип базы: Бухгалтерия предприятия, Управление Торговлей, Зарплата и т.п. Нажимаем "Далее".
- Указываем как база данных будет называться в списке, нажимаем "Далее". *
- Указываем каталог, в который хотим поместить базу данных, или оставляем по-умолчанию. ** Нажимаем "Далее".
- Оставляем переключатели в положении "Выбирать автоматически" и нажимаем "Готово".
* — в данной статье рассматривается самый простой (файл-серверный) вариант создания базы. При создании базы данных на сервере 1С:Предприятие в режиме "клиент-сервер", лучше обратиться к специалисту. Поэтому в п. 5 мы оставляем переключатель в положении "на данном компьютере или в локальной сети".
** — Конечно, можно оставить все по-умолчанию, однако, не очень надежно хранить вашу базу данных в папке "Мои документы" или в целом на системном диске (диск C:\). Если есть такая возможность, рекомендуем создать папку специально для хранения Вашей информационной базы не на диске C:\. В этом случае путь может выглядеть, например, так: "E:\Базы_1С\Бухгалтерия_Ромашка\".
Рассмотренный способ очень прост, однако имеет ряд недостатков. Если не обновлять шаблоны конфигураций постоянно, то по прошествии нескольких периодов, таким способом можно будет создать только устаревшую версию базы данных. Либо шаблоны конфигураций могут просто отсутствовать. Поэтому мы рекомендуем воспользоваться Вам способом, рассмотренным в следующем разделе.
Создание базы данных из файла конфигурации (*.cf)
Файл конфигурации — это файл, определяющий, какой будет база данных: Бухгалтерия предприятия, Управление торговлей, Зарплата и Управление персоналом и т.д. Можно сказать, это "рыба" будущей базы данных. Сразу стоит сказать, что если у Вас нет файла конфигурации, его можно легко выгрузить из другой базы данных. Об этом подробно будет написано в последнем разделе этой статьи.
Итак, прежде всего нам нужно создать папку, в которой мы будем хранить нашу новую базу данных.
- Создаете в любом месте на компьютере пустую папку. Хорошо продумайте название и место расположения папки. Желательно, чтобы это был не системный диск (не диск C:\).
- В списке информационных баз (даже если там пока нет ни одной базы) нажмите на кнопку "Добавить".
- Отвечая на вопросы помощника добавления новой базы, пройдите все пункты:
- Выберите пункт "Создание новой базы", нажмите "Далее".
- Далее переключите "точку" на пункт "Создание информационной базы без конфигурации для разработки. ". Нажмите далее.
- Укажите как база будет называться. Нажмите далее.
- Нажмите на кнопку выбора ". " и укажите папку, которую Вы создали в п. 1. Причем в диалоге выбора, который откроется, необходимо войти в нужную папку и только потом нажать на кнопку "Открыть". В результате в поле "путь" должен прописаться путь к указанной папке.
- Нажимаете кнопку "Далее".
- Оставляя все по-умолчанию, нажимаете на кнопку "Готово".
- Итак, мы создали пустую базу без конфигурации в нашей папке.
Сейчас созданная база не имеет ни данных, ни какой-либо функциональности. Т.е. она бесполезна. 🙂 Чтобы эта функциональность у базы появилась, нужно загрузить в неё Конфигурационный файл (с расширением *.cf). Сделать это тоже очень просто:
- Заходите в созданную пустую базу в режиме "конфигуратор": для этого в списке информационных баз становитесь на нужную и нажимаете на кнопку "Конфигуратор".
- В открывшемся окне выбираете меню "Конфигурация" — "Открыть конфигурацию" (Если пункт меню недоступен, значит конфигурация уже открыта).
- Далее выбираете меню "Конфигурация" — "Загрузить конфигурацию из файла" и выбираете файл с расширением *.cf
- Далее на все вопросы отвечаете положительно, на все соглашаетесь. Готово!
После того как закончатся все процедуры загрузки и сохранения, запускайте базу данных в обычном режиме и начинайте работу. Таким образом мы сделали пустую базу 1С 8 без данных, но с полной функциональностью.
Создание базы данных, используя другую базу данных
Если перед Вами стоит задача создать базу данных такую же, как у Вас уже есть, но пустую. Вам понадобится Конфигурационный файл (с расширением *.cf), выгруженный из имеющейся базы. Сделать это очень просто. Для этого:
- Заходите в имеющуюся базу в режиме "конфигуратор": для этого в списке информационных баз становитесь на нужную и нажимаете на кнопку "Конфигуратор".
- В открывшемся окне выбираете меню "Конфигурация" — "Открыть конфигурацию" (Если пункт меню недоступен, значит конфигурация уже открыта).
- Далее выбираете пункт меню "Конфигурация" — "Сохранить конфигурацию в файл".
- Выбираете место, куда будет сохранен файл конфигурации и задаете ему имя. Например, переходите на рабочий стол и указываете "Конфигурация_Бухгалтерии.cf". Нажимаете "Сохранить".
* Очистка информационной базы от данных
На практике часто возникает необходимость очистить какую-либо базу от данных полностью. Пусть формулировка задачи не вводит Вас в заблуждение! В этом случае просто создайте новую пустую базу на основании существующей, как описано в предыдущих разделах, а старую можете удалить или поместить в архив.
Где хранится журнал регистрации
Файловая база
Для файловых баз данных 1С журнал находится в папке с базой данных. Расположение файлов можно узнать при запуске программы в меню выбора базы данных:
Красным выделен путь. Если мы проследуем по этому пути, то увидим следующую картину:
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания — попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Получите понятные самоучители по 1С бесплатно:
- Если Вы планируете перенести файловую базу данных и хотите сохранить историю журнала регистрации, Вам обязательно надо скопировать папку 1Cv8Log в категорию новой базы 1С.
- Если необходимо очистить журнал регистрации 1С в файловой базе, просто удалите папку 1Cv8Log.
Клиент-серверная база 1С SQL
В клиент-серверном режиме файлы истории обычно хранятся на сервере в каталоге:
Чтобы перенести журнал регистрации 1С для базы SQL, так же, как и для файловой, достаточно перенести папку в расположение новой базы.
Настройка журнала
В открывшемся интерфейсе доступны следующие настройки ведения журнала:
Другие настройки рассмотрим далее, они относятся к оптимизации работы журнала.
Оптимизация журнала регистрации
Среди способов оптимизации скорости загрузки и работы с журналом можно выделить следующие методы:
При использовании данного способа настоятельно рекомендуется записать удаляемые события в отдельный файл. Это позволит в любой момент восстановить историю, которая была удалена из журнала базы данных 1С.
Будьте внимательны, обратная конвертация в старый формат невозможна.
В системе 1С для анализа технической информации существует также технологический журнал.
Другие статьи по 1С:
Видео по настройке журнала регистрации:
Как обрезать лог файл в SQL базе
Проблема
Рост файла журнала транзакций. С помощью команды DBCC SHRINKFILE не удается
уменьшить размер файла журнала транзакций до нужного размера .
Решение
Последовательность команд, которую нужно исполнить в Query Analyzer, выглядит
следующим образом:
BACKUP LOG Имя_Базы_Данных WITH TRUNCATE_ONLY
go
DBCC SHRINKFILE(Имя_Файла_Журнала_Транзакций)
go
Более подробное описание и рекомендации по использованию этих команд можно найти в документации по Microsoft SQL Server.
(23) >журнал транзакций можно удалить, при присоединении будет создан новый.
Ну не совсем так, определённые шаманские действия все же нужно произвести:
Данный метод работает только для версии SQL2000
sp_configure ‘allow updates’, 1
reconfigure with override
go
select status from sysdatabases where name = ‘’
и запоминаем/записываем значение на случай неудачи ребилда лога
update sysdatabases set status= 32768 where name = ‘’
SQL Server скажет — Warning: The log for database ‘’ has been rebuilt.
9. Если все нормально, то там же выполняем
sp_dboption ‘’, ‘single user’, ‘true’
go
9a.
Если Вам не удалось перевести базу в single user mode, то для проверки целостности данных можно попробовать dbo only mode
sp_dboption ‘’, ‘dbo use only’, ‘true’
10. Если все в порядке, то
go
(37) Линуксоид? Любишь в гамаке в ластах в противогазе и стоя?
Нормальные люди для этого исползуют sp_attach_single_file_db.
(38) Ты FAQ читал?
У меня как правило ldf терялись не спроста, или диск наворачивался или еще что.
А в этом случае база суспект и никакой sp_attach_single_file_db не поможет.
Вывалит ошибку.
А самому ldf удалять, чтобы лог уменьшить это конечно придумать надо.
(40) Слишком много времени займет.
А можно ли из QA принудительно записать все накопленные изменения (транзакции), а потом грохнуть ldf?
MS SQL очистка журнала транзакций
В MS SQL очистка журнала транзакций необходима в том случае, если настроена полная модель восстановления базы данных. Если журнал транзакций переполнился, то ваша база данных откажется работать и будет выдавать ошибку: "журнал транзакций для базы данных заполнен". Почему такое происходит и как этого избежать? Рассмотрим два решения, которые помогут быстро устранить ошибку и продолжить работу с базой.
Увеличиваем размер журнала транзакций.
Запускаем SQL Server Management Studio, заходим в свойства базы и выбираем пункт [Файлы].
Для типа файла "Журнал" увеличиваем максимальный размера файла для авторасширения.
Сжимаем файл журнала транзакций.
Для сжатия журнала транзакций необходимо модель восстановления базы смнеить на простую, выполнить сжатие журнала, после чего модель восстановления переключить обратно на полную.
Запускаем SQL Server Management Studio, заходим в свойства базы и выбираем пункт [Параметры]. Модель восстановления выбираем "Простая" и нажимаем ОК.
Далее правой клавишей мышки по базе и выбираем из контекстного меню [Задачи] — [Сжать] — [Файлы]
Тип сжатия: Журнал
Операция сжатия: Реорганизовать файлы, перед тем как освободить неиспользуемое место
И указываем размер до которого необходимо сжать, например 0.
Теперь нужно вернуться в свойства базы к пункту [Параметры] и переключить модель восстановления на "Полная".
2 thoughts on “ MS SQL очистка журнала транзакций ”
А что делать, если файл журнала уже переполнен и свободное место ушло аж в минус (0%)?
Очень часто задают вопрос - как удалить все документы из базы, оставить только номенклатуру и настройки. Есть много различных вариантов (групповая обработка документов и справочников - да, работает, но медленно, у клиента в базе 460 000 документов проведенных - неделю будет удалять). Перенос данных - через ВыгрузкаЗагрузкаДанныхXML82.epf - можно, но тоже долго и требует определенных навыков.
Мне в голову пришел другой вариант.
Нужно было срочно решить вопрос (по "гуглил" - вроде не нашел такого примера, или все достаточно просто, или не было желания описать).
Итак, стояла задача - сохранить всю Номенклатуру (около 25000), все справочники, константы и самое главное - сохранить бонусную и дисконтную систему в конфигурации MAGAZKA - лучшая программа для розничного магазина - это регистры сведений - база работала около трех лет (48000 клубных карт)
В базе 460 000 документов проведенных.
Затраченное время : ~ 1 час
1. В ЦБ (центральная база) план обмена полный (если не использовался РИБ, ничего страшного) создаем узел и запоминаем код узла (например :00000022)
но - ВАЖНО ! не нажимаем кнопку меню "СОЗДАТЬ НАЧАЛЬНЫЙ ОБРАЗ"
3. В плане обмена для узла : 00000022 - меню - Записать изменения - получаем файл выгрузки в XML (538 мб) в zip около 20 мб. (время выгрузки около 14 минут)
4. В ЦБ - заходим в конфигуратор - меню - Конфигурация - Сохранить конфигурацию в файл - получаем файл с расширением *.cf
5. Создаем пустую базу - заходим в конфигуратор - меню - Конфигурация - Загрузить конфигурацию из файла.
6. Заходим в эту базу в пользовательском режиме - План обмена полный - создаем два узла 00000001 и 00000022
7. Вот теперь маленькая хитрость - меняем узлы местами - т.е. превращаем нашу базу в ПБ (периферийную)
8. Планы обмены - меню - прочитать изменения - указываем наш файл - загрузка прошла успешно ~ 11 минут
9. Заключительный момент - удаляем признак периферийной базы - ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
10. Делаем ТИИ (тестирование и исправление ИБ. ) на всякий случай.
Все, можно работать.
Итог: решили задачу с минимальными затратами, средствами платформы - качественно и быстро
Читайте также: