Как установить postgresql на centos 8 2021

Установка pgAdmin

Установить публичный ключ

sudo curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add

Создать файл конфигурации репозитория

sudo sh -c ‘echo «deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main» > /etc/apt/sources.list.d/pgadmin4.list && apt update’

Установить и десктопную и веб версии:

sudo apt install pgadmin4

Установить только десктопную версию

sudo apt install pgadmin4-desktop

Установить только веб версию

sudo apt install pgadmin4-web

Настроить веб сервер для веб версию

sudo /usr/pgadmin4/bin/setup-web.sh

Веб версию можно открыть в браузере

Создание и удаление таблиц

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

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

Базовый синтаксис этой команды выглядит следующим образом:

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

Чтобы продемонстрировать процесс, создайте простую таблицу:

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

Для двух из столбцов ( и ) команда не указывает длину поля. Это объясняется тем, что некоторые типы столбцов не требуют указания длины, поскольку длина подразумевается в зависимости от типа значения.

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

Вы можете просмотреть вашу новую таблицу, введя следующую команду:

В результате мы получаем следующий вывод:

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

Если вы хотите только просмотреть таблицу без последовательности, можете ввести следующую команду:

В результате вы получите следующее:

На этом шаге мы создали образец таблицы. На следующем шаге мы попробуем добавить, запросить и удалить элементы в таблице.

Установка сервера 1С

Для установки сервера 1С необходимо сначала установить вспомогательные пакеты, затем сам сервис. Дистрибутив необходимо скачать с сайта 1С — личного кабинета, доступного по подписке. 

И так, выполним установку следующих пакетов:

apt-get install imagemagick unixodbc ttf-mscorefonts-installer

* где:

  • imagemagick — набор программ для чтения и редактирования графических файлов.
  • unixodbc — диспетчер драйверов для ODBC.
  • ttf-mscorefonts-installer — набор шрифтов Microsoft.

В процессе установки система запросит принять лицензионное соглашение — выбираем Yes.

Копируем на сервер архив с дистрибутивом для 1С, который был загружен с сайта 1С или получен от поставщика. Распаковываем архив командой:

tar zxvf 8.3.16.1148_deb64.tar.gz

* где 8.3.16.1148_deb64.tar.gz — имя архива с 1С версии 8.3.16. В архиве пакеты deb (для Linux на основе Debian) для 64-х разрядной системы.

Устанавливаем все пакеты, которые находились в архиве командой:

dpkg -i 1c-enterprise*.deb

Разрешаем автозапуск сервиса 1С и стартуем его:

systemctl enable srv1cv83

systemctl start srv1cv83

Необходимо убедиться, что сервис запустился:

systemctl status srv1cv83

Если мы получим ошибку «srv1cv83.service not found», находим исполняемый файл srv1cv83:

find /opt -name srv1cv83

В моем случае он был по пути:

/opt/1cv8/x86_64/8.3.16.1148/srv1cv83

Делаем симлинк в каталоге /etc/init.d на найденный файл:

ln -s /opt/1cv8/x86_64/8.3.16.1148/srv1cv83 /etc/init.d/srv1cv83

Снова запускаем сервис:

systemctl start srv1cv83

Включить удаленный доступ к серверу PostgreSQL

По умолчанию сервер PostgreSQL прослушивает только локальный интерфейс .

Чтобы включить удаленный доступ к вашему серверу PostgreSQL, откройте файл конфигурации:

Прокрутите вниз до раздела и добавьте / отредактируйте следующую строку:

Сохраните файл и перезапустите сервис PostgreSQL с помощью:

Проверьте изменения с помощью утилиты :

Вывод выше показывает, что сервер PostgreSQL прослушивает порт по умолчанию на всех интерфейсах (0.0.0.0).

Последний шаг — настроить сервер на прием удаленных подключений, отредактировав файл .

Ниже приведены примеры, показывающие различные варианты использования:

Second Method – Install PostgreSQL on CentOS 7 using the PostgreSQL repository

With this method, you can download any latest version of PostgreSQL from the official website. You can select the PostgreSQL version from the PostgreSQL yum repositories. Currently, this shows PostgreSQL version 9.6 as the latest version.

2. Download PostgreSQL Using Wget

Now we will download PostgreSQL version 9.6.3. Similarly, you can download any version. This can be done using the wget command.

wget https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

This also requires RPM or RedHat Package manager along with EPEL (Extra Packages Enterprise Linux) repositories. This is required for additional PostgreSQL dependencies.

This can be installed using the below command:

sudo yum install pgdg-centos96-9.6-3.noarch.rpm epel-release

Update yum so that your changes get reflected. Use the below command for this:

sudo yum update

5. Complete the PostgreSQL Install Process for CentOS 7

This completes our prerequisites for PostgreSQL installation. Next, we can install this using the below command:

sudo yum install postgresql96-server postgresql96-contrib

This completes our PostgreSQL installation.

Next, you can initialize the database using:

sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb

You can restart PostgreSQL using:

sudo systemctl start postgresql-9.6

8. (Optional) Enable PostgreSQL Launch on Reboot

In case you want PostgreSQL to start at system reboot automatically then you can optionally use the below command:

sudo systemctl enable postgresql-9.6

Шаг 9 — Добавление и удаление столбцов из таблицы

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

Если вы снова просмотрите данные таблицы, то увидите, что новый столбец был добавлен (но не были добавлены данные):

Вы увидите следующее:

Удаление столбца является таким же простым. Если вы обнаружите, что ваши работники используют отдельный инструмент для отслеживания истории обслуживания, то можете удалить столбец, введя следующую команду:

Эта команда удаляет столбец и любые значения внутри него, но оставляет все другие данные нетронутыми.

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

Проверка бэкапов postgresql баз

То, что вы настроили дамп баз 1С, еще не значит, что у вас успешно работает бэкап. Дампы надо обязательно проверять. Я для этого использую еще один подобный сервер. Обычно просто клонирую виртуальную машину после того, как полностью её настрою. Тут встает вопрос лицензионности. Сервер 1С на Linux не просит на себя лицензию до какого-то числа пользователей. Точно не помню сколько их может быть, так как в проде всегда покупается лицензия. А вот клон запускается без лицензии только для проверки бэкапов. Пользователи к нему не подключаются. Не уверен, что такая схема эксплуатации допускается без приобретения лицензии, так что используйте её на свой страх и риск.

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

# rsync -av --progress --files-from=<(ssh [email protected] '/usr/bin/find /var/lib/pgpro/backup -type f -mtime -1 -exec basename {} \; | egrep -v timestamp') [email protected]:/var/lib/pgpro/backup/ /data/backup/

Тут немного замороченная конструкция получилась. Смысл её в том, что нам надо забрать дампы только за последние сутки, поэтому список для копирования мы формируем на исходном сервере с помощью подключения туда по ssh. Подробно эту схему описал в отдельной заметке на канале. В моем примере timestamp это имя файла, который нам не надо копировать.

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

#!/bin/bash

BASES=("buh30" "zup31")
#BASES=`sudo -u postgres /usr/bin/psql -U postgres -l | grep "_buh\|_zup" | awk '{print $1}'`
BACKUP_DIR="/data/backup"

for i in ${BASES};
    do
    echo "`date +"%Y-%m-%d_%H-%M-%S"` Drop database ${i}"
    sudo -u postgres /usr/bin/dropdb -U postgres ${i}
    echo "`date +"%Y-%m-%d_%H-%M-%S"` Create database ${i}"
    sudo -u postgres /usr/bin/createdb -U postgres -T template0 ${i}
    echo "`date +"%Y-%m-%d_%H-%M-%S"` Start extract $i"
    /usr/bin/find /data/backup -type f -name *${i}* -exec /usr/bin/unpigz '{}' \;
    echo "`date +"%Y-%m-%d_%H-%M-%S"` End extract $i"
    echo "`date +"%Y-%m-%d_%H-%M-%S"` Start restore $i"
    sudo -u postgres /usr/bin/psql -U postgres ${i} < ${BACKUP_DIR}/`ls ${BACKUP_DIR} | grep ${i}` 1>/dev/null
    echo "`date +"%Y-%m-%d_%H-%M-%S"` End restore $i"
    echo "`date +"%Y-%m-%d_%H-%M-%S"` rm dump ${i}"
    /usr/bin/rm ${BACKUP_DIR}/`ls ${BACKUP_DIR} | grep ${i}`
    done

Для каждой базы 1C в postgresql последовательно выполняются следующие действия:

  1. Удаление базы — dropdb.
  2. Создание базы — createdb.
  3. Распаковка дампа — unpigz.
  4. Восстановление базы из дампа.
  5. Удаление дампа.

Я не делаю тут никаких проверок на ошибки, так как далее у меня будет автоматическая выгрузка этих баз в dt и там я уже буду смотреть, всё ли в порядке. Если вы этого не будете делать, то обязательно следите за результатами работы этого скрипта, чтобы увидеть какие-то проблемы в процессе. Если с дампами всё в порядке, то восстановление пройдет штатно и никаких ошибок не будет.

Установка 1С сервера на CentOS 8

Шаг 1. Установка пакетов 1С

Сперва установим пакеты сервера полученные вами от компании 1С. Перейдем под пользователя root:

Затем перейдем в папку, где у вас расположены установочные пакеты 1С сервера и выполняем групповую установку пакетов следующей командой:

Этой командой мы выполняем одновременную установку всех пакетов сервера платформы 1С Предприятие находящихся в папке. Вывод команды:

Установка пакетов происходит в директорию /opt/1C/v8.3/x86_64.

Шаг 2. Установка шрифтов для 1С

Далее установим шрифты Microsoft Core Fonts необходимые для корректной работы платформы 1С Linux. Они необходимы в том случае, если вы будете пользоваться платформой 1С Предприятие на вашем CentOS 8 сервере. Если вы планируете только удаленное подключение к базе на сервере 1С Предприятие, то установку шрифтов можно пропустить.

После того, как шрифты были скачаны переименовываем поочередно exe файлы меняя им расширение с exe на zip и распаковываем их удаляя в получившихся папках все файлы кроме файлов *.ttf (файлы шрифтов).

Затем переносим все файлы шрифтов в одну папку по пути /usr/share/fonts/Core_Fonts и обновляем кэш шрифтов следующей командой:

Данная команда обновит кэш шрифтов и система увидит необходимые шрифты.

Шаг 3. Установка зависимостей

Теперь перейдем к установке дополнительных библиотек необходимых для корректной работы сервера 1С Предприятие. Установка выполняется следующей командой:

Шаг 4. Запуск службы

Теперь сервер 1С CentOS почти установлен. После установки пакетов запускаем службу сервера 1С Предприятие следующей командой:

После этого вы можете проверить запустилась ли служба сервера или нет выполнив команду:

Шаг 5. Установка драйвера HASP

После запуска сервера 1С Предприятие необходимо установить драйвер программной и аппаратной защиты HASP. Производим установку пакета haspd-7.90-eter2centos.x86_64.rpm следующей командой:

Затем устанавливаем второй пакет драйвера защиты командой:

Шаг 6. Установка PostgreSQL

Теперь мы можем перейти к установке специализированной базы данных postgreSQL предназначенной для работы с сервером 1С Предприятие. Установка postgresql 1С CentOS выполняется из стороннего репозиториях. Сперва импортируем ключ GPG репозитория postgreSQL командой:

Затем создадим файл репозитория postgrespro-1c с помощью следующей команды:

Затем пропишем имя репозитория командой:

Далее прописываем базовый URL:

После включаем проверку GPG подписи пакетов:

и включаем репозиторий:

Теперь нам необходимо обновить кэш пакетов с включенным репозиторием postgreSQL. Выполняется это действие следующей командой:

После производим установку пакетов postgreSQL:

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

Вывод команды представлен на рисунке ниже.

По выполнении установки необходимо инициализировать базу данных следующей командой:

А так же добавить базу данных в автозагрузку. Для этого наберите:

Шаг 7. Настройка PostgreSQL

Запускаем сервер базы данных postgreSQL:

Перейдем под пользователя postgres командой:

Затем перейдем в каталог установки SQL сервера. Для этого введите команду:

Теперь войдем в базу данных:

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

Настройка 1С CentOS завершена, осталось создать базу или импортировать уже существующую.

Шаг 8. Подключение к серверу 1С

После того, как был задан пароль пользователя postgres запускаем на windows машине консоль администрирования серверов 1С Предприятия. В консоли выбираем пункт меню Создать — Новый центральный сервер

Заполняем поля имя и IP порт:

Далее переходим в созданный нами центральный сервер и создаем новый кластер. Для этого находясь в новом центральном сервере выбираем пункт меню Создать — Новый кластер:

Заполняем поля: имя кластер, компьютер, IP порт. Порт ставим по умолчанию 1541.

Теперь создаем информационную базу. Переходим в созданный кластер в пункт Информационные базы. Находясь в пункте Информационные базы заходим в меню Создать — Новая информационная база.

Заполняем поля имя, сервер баз данных, тип СУБД указываем postgreSQL. В поле база данных указываем имя создаваемой базы, в поле пользователь сервера БД указываем имя пользователя postgres и пароль заданный ранее. Устанавливаем галочку в чекбоксе Создать базу данных в случае ее отсутствия и нажимаем кнопку ОК. Таким образом мы создали базу данных на сервере 1С.

PostgreSQL Basic Setup

In Linux by default, a user named postgres is created once PostgreSQL is installed. You can change the user’s password with the following command:

sudo passwd postgres

You will be prompted to enter the new password twice.

Next, you can switch to the PostgreSQL prompt and change the password for the PostgreSQL postgres user using:

su - postgres

If you receive an error, you can set a valid shell on the user with the following command:

su --shell /bin/bash postgres

Afterwards, perform the same command:

su - postgres

To change the password, use the below command where you add your new password instead of the NewPassword:

psql -d template1 -c "ALTER USER postgres WITH PASSWORD 'NewPassword';"

You can switch to the PostgreSQL client shell using:

psql postgres

Here you can check the list of available commands by typing \h. You can use \h followed by the command for which you need more information. To exit the environment you can type \q.

The createdb command lets you create new databases. Suppose we want to create a new database named testDB using the postgres Linux user. The command we would use would look like this:

createdb testDB

You can create a new role using the createuser command. Below is an example where we are creating a role named samplerole using the postgres Linux user.

createuser samplerole –pwprompt

Here you will be prompted to set a password for the user.

Optionally you can assign the ownership of our newly created database to a specific postgres user or role. This can be done with a command like this one:

createdb testDB -O samplerole

In the above command, replace samplerole with the role you want to use.

You can connect to this new database using the command bellow:

psql testDB

In case you want to use a specific user or role to log in, use the command as shown below:

psql testDB -U samplerole

This will prompt you to enter the password.

You can use \l or \list commands to show all the databases. To know the current database you’re using, you can use \c. In case you want more information about connections such as the socket, port, etc.  then you can use \conninfo.

You can also drop or delete a database using the dropdb command. However, remember to verify what you’re deleting before doing it. Deleted databases cannot be retrieved.

To delete a database, you can use:

dropdb testDB

PostgreSQL similar to other databases allows:

  • Table creation
  • Table deletion
  • Table Updates
  • Column Addition
  • Drop column
  • Query a table
  • Alter commands
  • Grant Privileges

The syntax for all of these commands is similar to most database commands. You can list all the tables by using the \dt command. To list all roles, you use the \du command. To learn more, we encourage you to read the official documentation!

Настройка Postgresql CentOS 7

Теперь сервер баз данных Postgresql установлен и запущен. Нам осталось проверить как все работает, настроить пользователей и свою первую базу данных. Настройка Postgresql CentOS 7 изначально выполняется только от пользователя postgres поэтому переключаемся на этого пользователя с помощью команды su:

Команда выполняется от имени администратора, потому что иначе у вас спросят пароль, а вы его не знаете. Для доступа к консоли Postgresql будем применять команду psql:

Смотрим информацию о подключении:

Первое что здесь можно сделать, это создать пароль для postgres:

Дальше закройте оболочку командой:

Пользователь postgres — это аналог суперпользователя для Postgresql. Но не всегда безопасно использовать вход от имени суперпользователя. Нам нужно создать обычного пользователя, который может только управлять базами данных. Для этого выполните в консоли от имени postgres:

Дальше нужно ввести имя роли и ответить на несколько вопросов, а также повторить процедуру задания пароля как для postgres. Чтобы вы могли использовать postgresql через терминал от имени этого пользователя добавьте пользователя UNIX:

Нам осталось только создать новую базу данных:

Теперь у вас есть все необходимое для полноценной работы с программой.

Установите PostgreSQL из репозиториев PostgreSQL

Выполните следующие действия, чтобы установить последнюю версию PostgreSQL на свой сервер CentOS:

  1. Включение репозитория PostgreSQL

    Чтобы включить репозиторий PostgreSQL, просто установите файл репозитория:

  2. Установка PostgreSQL

    После включения репозитория установите сервер PostgreSQL и пакеты Contrib PostgreSQL с помощью:

  3. Инициализация базы данных

    Чтобы инициализировать тип базы данных PostgreSQL:

  4. Запуск PostgreSQL

    Чтобы запустить службу PostgreSQL и разрешить ей запускаться при загрузке, введите:

  5. Проверка установки PostgreSQL

    Чтобы проверить установку, мы попытаемся подключиться к серверу базы данных PostgreSQL с помощью инструмента и распечатать версию сервера:

Create a Postgres Table

We can create tables in postgres by using the following syntax:

<pre>
CREATE TABLE <span class=“highlight”>newtablename</span> (
<span class=“highlight”>tablecolumntitle TYPEOFDATA columnconstraints</span>,
<span class=“highlight”>nextcolumntitle TYPEOFDATA columnconstraints</span>,
<span class=“highlight”>tableconstraint</span>
<span class=“highlight”>tableconstraint</span>
) INHERITS <span class=“highlight”>existingtabletoinheritfrom</span>;
</pre>

We will make a table called “popsicles” to store our popsicle varieties and some information about them.

Now we can use the command to see the table:

To see the columns and data structure we just defined, we can type this command:

Добавление и удаление столбцов таблицы

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

Если вы снова просмотрите данные таблицы, то увидите, что новый столбец был добавлен, но в него не были введены данные:

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

Эта команда удаляет столбец  и любые значения внутри него, но оставляет все другие данные нетронутыми.

Установка RedHat Codeready Studio на ОС RedHat Enterprise Linux 8.4 (RHEL 8.4)

Red Hat CodeReady Studio — это бесплатная для участников программы RedHat Developer open source интегрированная среда (IDE), предоставляет широкий набор функционала разработки для нескольких платформ Red Hat, которые включают контейнеры CodeReady (развертывание через OpenShift4), Quarkus, JAX-RS, внедрение зависимостей контекстов (CDI) и инструменты Red Hat Fuse. Студия включает последние версии Eclipse и Web Tools Project (WTP), предоставляет инструменты для JEE и веб-разработки, такие как: инструменты Java EE, JSF и JSP; инструменты JPA; серверные инструменты; веб-сервисы и инструменты WSDL; инструменты HTML , CSS и JavaScript; инструменты XML , XML Schema и DTD. Студия Code Ready Studio также поддерживает популярные технологии, такие как Enterprise Application Platform (EAP 7.3) — платформа корпоративных приложений Red Hat, Hibernate и Wildfly 21, и обеспечивает встроенное усиление для Kubernetes, OpenShift (включая S2i), docker и клиента REST для микропрофайлов.

Status: Deprecated

This article covers a version of CentOS that is no longer supported. If you are currently operating a server running CentOS 6, we highly recommend upgrading or migrating to a supported version of CentOS.

Reason:
CentOS 6 reached end of life (EOL) on November 30th, 2020 and no longer receives security patches or updates. For this reason, this guide is no longer maintained.

See Instead:
This guide might still be useful as a reference, but may not work on other CentOS releases. If available, we strongly recommend using a guide written for the version of CentOS you are using.

The following DigitalOcean tutorial may be of interest, as it outlines installing PostgreSQL on a CentOS 7 server:

How To Install and Use PostgreSQL on CentOS 7

Администрирование конфигураций 1С (недокументированные особенности работы)

Многие мои коллеги по работе и по профессии, уверен, сталкиваются с аналогичными ситуациями, когда программа 1С при работе с конфигурацией, мягко говоря, работает «странно». Как говорит один хороший знакомый (к слову, один из авторов УТ 11):
— «вот, ну согласись, нанять пару серьезных методистов — реальных дядечек с реального производства, до начала разработки — единственная ЭЛЕМЕНТАРНАЯ политика, как можно было этого не сделать???? там их НЕТ. Причем это 0 в плане затрат на разработку, там нет ограничений бюджета, это просто самый тупой прокол.»
В этой статье приведу способы лечения пресловутых проколов (за последний месяц).

Настройка hostname и DNS

Hostname в Centos меняется следующей командой:

hostnamectl set-hostname pgsql_1c

Для нормальной работы сервера 1С необходим правильно настроенный DNS сервер, но его настройка выходит за рамки данной статьи. Поэтому для сохранения функциональности сервера мы будем использовать файлы hosts на используемых системах.

На Centos необходимо прописать адрес сервера в файле /etc/hosts :

127.0.0.1 pgsql_1c

Также необходимо прописать на машине, на которой будут установлены платформа и консоль управления сервером 1С в файле hosts (для Windows это C:\Windows\System32\Drivers\etc\hosts) адрес сервера 1С:Предприятие. 
Например:

192.168.1.5 pgsql_1c

Добавление, запрос и удаление данных в таблице

Вставим в таблицу данные, например, slide и swing. Для этого нужно вызвать желаемую таблицу, присвоить имена столбцам и задать данные для каждого столбца следующим образом:

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

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

Получите добавленную вами информацию, введя следующую команду:

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

Если же строка slide в таблице разрывается, вы можете удалить строку из таблицы, использовав следующую команду:

Запросите таблицу еще раз:

Обратите внимание, что строка  уже не является частью таблицы

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: