Setting96.ru

Строительный журнал
19 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Возможности интеграции с 1С-Битрикс: Управление сайтом

Возможности интеграции с 1С-Битрикс: Управление сайтом

Подключение 1С-Битрикс: Управление сайтом позволит осуществлять следующие действия (Как подключить 1С-Битрикс) :

1. Получать данные из 1C-Битрикс

Триггер Новый заказ и Триггер Заказ обновлен

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

Оба триггера передают данные:

Данные о заказе:

  • ID заказа;
  • Дата и время добавления;
  • Цена заказа;
  • Валюта заказа;
  • Статус заказа;
  • Комментарий к заказу.

Данные о покупателе:

  • ФИО;
  • Телефон;
  • Адрес;
  • Созданные вами поля, например email.

Данные о позициях заказа:

  • Товар — ID;
  • Товар — XML ID;
  • Товар — Внешний ID;
  • Товар — Цена;
  • Товар — Количество;
  • Товар — Финальная цена;
  • Товар — Имя.

Триггер Новый товар

Триггер отправляет информацию о новых товарах, созданных в 1С-Битрикс.

В момент создания товара будут передаваться данные:

Данные о категории и подкатегории:

  • Инфоблок — ID
  • Инфоблок — Символьный код
  • Инфоблок — Имя
  • Инфоблок — Внешний ID
  • Инфоблок — Название раздела
  • Инфоблок — ID раздела
  • Инфоблок — XML ID раздела
  • Инфоблок — Символьный код раздела

Данные о товаре:

  • ID
  • XML ID
  • Внешний ID
  • URL страницы детального просмотра
  • URL списка элементов
  • Символьный код
  • Имя
  • URL изображения товара

Свойства торгового предложения

  • ID
  • Артикул
  • Цена
  • Количество
  • Свойства, созданные вами или системой, например: артикул, бренд, производитель, цвет, материал и т.д.

2. Передавать и обновлять данные в 1C-Битрикс

Экшн: Обновить заказ

Экшн позволит внести изменения или обновить существующий заказ. Например, изменить его статус или обновить позиции заказа.

Можно изменить или обновить следующие данные о заказе:

  • Статус заказа
  • Данные о покупателе
  • Данные об адресе доставки
  • Внести или изменить комментарий к заказу
  • Отредактировать состав заказа

Экшн: Новый товар

Экшн позволит автоматически создавать новые товары в 1С-Битрикс.

При создании можно указать следующие данные:

Примеры использования

Передача заказов сделанных на сайте 1С-Битрикс в retailCRM

При поступлении нового заказа в 1С-Битрикс, Albato передаст данные в retailCRM, создаст нового покупателя и привяжет новый заказ к нему. В заказе сохраниться ID заказа из 1С-Битрикс, что позволит в дальнейшем синхронизировать статусы и данные между двумя системами.

Создание документа отгрузки в системе МойСклад при изменении заказа в 1С-Битрикс

Albato автоматически создаст покупателя и документ отгрузки в системе МойСклад, при переводе заказа определенный статус в 1С-Битрикс.

Изменение статуса заказа в 1С-Битрикс при изменении его статуса в МойСклад

При изменении статуса заказа в МойСклад, Albato изменит его статус в 1С-Битрикс

Создание нового товара в системе МойСклад при появлении нового товара в 1С-Битрикс

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

Все связки приведенные в примерах можно создать воспользовавшись “Шаблонами”

Инструкция по установке Сайта ЖКХ

Установка 1С: Сайт ЖКХ включает несколько этапов:

Установка платформы Битрикс

При помощи протоколов ftp, ssh или другого доступного вам способа загрузите скрипт bitrixsetup.php в корневую директорию web-сервера на удаленном хостинге. Скрипт можно скачать на сайте.

Затем в адресной строке браузера наберите: //www.ваш_сайт/bitrixsetup.php. Откроется окно выбора дистрибутива, в котором необходимо выбрать загруженный файл с дистрибутивом продукта.

Выбор дистрибутива

После распаковки дистрибутива начнется процесс установки 1С-Битрикс. Нажмите кнопку «Далее».

Начало установки продукта 1С-Битрикс: Управление сайтом

Ознакомьтесь с лицензионным соглашением, отметьте галочкой «Я принимаю лицензионное соглашение» и нажмите кнопку «Далее».

Принять лицензионное соглашение 1С-Битрикс: Управление сайтом

Укажите данные, необходимые для регистрации продукта и нажмите кнопку «Далее».

Зарегистрировать 1С-Битрикс: Управление сайтом

Убедитесь, что ваша система удовлетворяет минимальным системным требованиям и нажмите кнопку «Далее».

Предварительная проверка параметров системы

На 5-м шаге необходимо указать реквизиты доступа к базе данных сайта.

Создание базы данных: параметры, дополнительные параметры

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

Процесс установки 1С-Битрикс: Управление сайтом

После завершения установки продукта будет предложено создать учетную запись администратора сайта. Укажите необходимые данные и нажмите кнопку «Далее».

Параметры администратора сайта

Из списка «Выберите решение для установки» выберите «Демо-сайт для разработчиков» и нажмите кнопку «Далее».

Загрузить Демо-сайт для разработчиков

Следующие шаги можно пропустить, поэтому здесь нажмите кнопку «Отмена»:

Пропуск мастера настройки

Активация лицензии на платформу Битрикс

Для активации лицензии на платформу Битрикс:

Перейдите в административный раздел сайта, далее в раздел «Marketplace – Обновление платформы» для активации лицензионного ключа по кнопке «Открыть лицензионное соглашение»:

Принятие лицензионного соглашения

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

Активация ключа

После активации ключа установите рекомендуемые обновления платформы на ваш сайт:

Обновление платформы

Активация лицензии на 1С:Сайт ЖКХ

После активации и обновления платформы активируйте ключ на решение в разделе «Рабочий стол – Marketplace – Обновление решений – Активация купона»:

Активация купона

Купон активирован

После успешной активации купона автоматически откроется страница списка обновлений для загрузки решения Сайта ЖКХ. Необходимо загрузить его:

Загрузка обновлений для сайта ЖКХ

После загрузки решения следует установить обновления решения:

Установка для Сайта ЖКХ

Обновления Сайта ЖКХ установлены

Установка 1С:Сайт ЖКХ

После того, как установили все обновления платформы Битрикс и решения «Сайт ЖКХ» запустим мастер установки сайта в разделе «Настройки – Настройки продукта – Список мастеров»:

Запуск мастера установки сайта

На первом шаге настроек выберите существующий сайт и нажмите кнопку «Далее»:

Выбор сайта в мастере настройки

Далее следуйте инструкциям мастера создания Сайта ТСЖ / ЖКХ.

Выберите шаблон для сайта:

Выбор шаблона Сайта ЖКХ

Цветовую тему оформления шаблона:

Цветовая тема Сайта ЖКХ

Укажите название организации, адрес, телефон и e-mail, эта информация будет опубликована на сайте в разделе «Контакты» или загрузите заполненный файл шаблона.

Информация о сайте и организации

Данные, введенные на шаге «Информация об объекте управления», будут использоваться при печати квитанций на оплату:

Информация об организации

На следующем шаге введите e-mail для взаимодействия с платежной системой:

Читать еще:  Регулировать коэффициент усиления операционного усилителя

Настройка приема платежей через сайт

Шаг «Прочие настройки» позволяет выбрать формат квитанции, а также настроить рассылки уведомлений:

Как настроить работу сайта в связке с 1С

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

В данной статье описана работа сайта в связке «1С: Управление торговлей», «1С Управление нашей фирмой», «1С: EPR».

Как настроить работу сайта в связке с 1С

На InSales можно настроить синхронизацию и реализовать:

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

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

Обмен данными происходит в формате commerceML – это единый стандарт обмена коммерческой информацией, разработанный 1С.

Синхронизация с 1С: Управление торговлей 10

«1С: Управление торговлей» предназначен для автоматизации работы организаций, занимающихся всеми видами торговой деятельности.

Для настройки синхронизации 1С Управление торговлей с интернет-магазином на InSales установите приложение «Синхронизация с 1С», осуществив вход в бэк-офис InSales и перейдя в раздел «Приложения» — «Центр приложений». В магазине приложений в разделе «Учет» выбираем интересующее приложение и нажимаем кнопку «Установить».

Система направит нас в бэк-офис интернет-магазина. После входа в приложение необходимо войти в установленное приложение и настроить синхронизацию с 1С.

На сайте InSales есть рекомендации по настройке синхронизации, зависящие от программного продукта 1С и от наличия товаров в интернет-магазине.

Если каталог товаров в InSales отсутствует и используется продукт «1С Управление торговлей 11 » или «1С Управление торговлей 10» , обратитесь к инструкции «Синхронизация 1С Управление торговлей 11 с магазином без товаров» , «Синхронизация 1С Управление торговлей 10 с магазином без товаров» соответственно.

Рекомендуем начинать процесс заполнения каталога товаров именно с заведения их в 1С, и только потом настраивать синхронизацию с интернет-магазином. Дело в том, что изменения, внесенные в каталог товаров на стороне InSales, не отображаются в 1C. При этом корректировки на стороне 1С влияют на товары в магазине. Выгрузить товары из 1С несложно, а вот сопоставить товары, уже существующие в магазине с товарами, существующими в 1С – более трудная задача.

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

Если каталог товаров в InSales заведен и используется продукт 1С , то нужно создать связку между товарами в 1С и товарами в магазине.

Синхронизация с 1С: Управление нашей фирмой

«1С: Управление нашей фирмой» помогает систематизировать и автоматизировать предприятия малого бизнеса, наладить процесс учета, контроля, анализа и планирования.

Принцип настройки синхронизации схож с «1С Управление торговлей 10», «1С Управление торговлей 11». Подробная информация в разделе «Синхронизация 1С: Управление нашей фирмой с магазином без товаров» .

Синхронизация 1С: EPR

«1С: EPR» — это решение для автоматизации крупного и среднего бизнеса.

Процесс синхронизация «1С: EPR» с магазином, в котором отсутствует каталог товаров аналогичен предыдущим, и включает в себя такие этапы:

  • установка приложения «Синхронизация с 1С»;
  • настройка соединения с web;
  • настройка выгрузки товаров;
  • настройка обмена заказами;
  • первый обмен данными;
  • работа с выгруженными товарами в приложении;

Подробная информация по настройке синхронизации в разделе «Синхронизация 1С: EPR с магазином без товаров» .

Что делать, если товары не создаются из 1С? Бывает, что при реализации синхронизации с «1С» товары не создаются или не отображаются в интернет- магазине. Факторов может быть несколько, например, в «1С» могут быть не указаны цены, а для магазина указание стоимости является обязательным. Мы сделали подборку с указанием основных причин, связанных с отсутствием товаров из 1С и разместили ее здесь . В случае, если вы столкнетесь с подобными сложностями внимательно изучите ее.

Почему не обновляются статусы заказов из 1С? Так бывает, если вы не включили в приложении по синхронизации соответствующую настройку. Каким образом обновить статусы заказов описано в статье «Обновление статусов заказов из 1С» .

Заключение

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

Как работает обмен Битрикс с 1С. Часть 1

Эта вводная часть об устройстве обмена между 1С-Битрикс и 1С, настройке, ошибках и отладке. Всего планируется несколько частей, т.к. объем материала достаточно большой.

Как работает обмен Битрикс с 1С. Часть 1

Эта вводная часть об устройстве обмена между 1С-Битрикс и 1С, настройке, ошибках и отладке. Всего планируется несколько частей, т.к. объем материала достаточно большой.

Читать еще:  Программа для синхронизации alcatel one touch с компьютером

Эта вводная часть об устройстве обмена между 1С-Битрикс и 1С, настройке, ошибках и отладке. Информация взята из онлайн-вебинара, автор которого Гелейшев Павел. Всего планируется несколько частей, т.к. объем материала достаточно большой.

Существует 5 типов обмена:

  1. Импорт каталога (в т.ч. остатки и цены) из 1С в Битрикс
  2. Экспорт каталога из Битрикс в 1С
  3. Обмен документами (заказы, оплаты, отгрузки)
  4. Обмен пользовательскими справочниками
  5. Обмен контрагентами

Импорт товаров из Битрикс в 1С используется единоразово, когда к уже существующему сайту подключают пустую 1С. Так же редко используются обмен справочниками и контрагентами, поэтому для начала рассмотрим импорт каталога и обмен документами.

Версии модулей

Старые версии обмена. (ниже 4.x)

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

Новые версии обмена. (4.x, 5.x, 6.x, 7.x)

  • устанавливаются отдельно в 1С;
  • умеют автоматически обновляться;
  • под каждую версию 1С необходим свой модуль обмена.

Инициализация обмена

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

По умолчанию, если ничего не кастомизировано, все свои запросы 1С отправляет именно по этому адресу.

Рассмотрим по шагам как происходит обмен информацией (на примере обмена каталогом).

Шаг 1: авторизация

Для начала 1Ске необходимо авторизоваться на сайте, для этого она отправляет get запрос на страницу:

Где параметр type зависит от типа обмена: catalog — для обмена товарами, sale — для обмена документами. Параметр mode равный checkauth это как раз и есть попытка авторизоваться.

Вместе с этим, методом post 1Cка отправляет логин и пароль пользователя сайта под которым она авторизуется. Этого пользователя специально добавляют на сайте для 1С. Чаще всего его делают администратором с полными правами. Но будет правильнее ограничивать данного пользователя в правах и помещать его в отдельную группу, предоставляя только те права, которые необходимы для обмена. Логин и пароль пользователя вносится в 1С, в настройки модуля обмена.

На запрос авторизации, сайт отвечает строкой вида:

success PHPSESSID kLv28pH4X0XpW91T4wg28YeY7DwZZXnz
sessid=7f8ec88162e001fdccabfdd202653fc6 timestamp=1614319624

Где success означает что авторизация прошла успешно. Если вместо success будет fail, либо что-то еще, то 1С выдаст ошибку и обмен прекратится. Параметр sessid это идентификатор сессии, значение которого 1C будет добавлять в каждый следующий запрос обмена. Так сайт понимает, что полученные запросы именно от этой 1Ски и запоминает последнюю операцию обмена.

Шаг 2: инициализация

На этом шаге 1С делает запрос на страницу

Где в параметре mode передаётся init, а в sessid передаётся значение идентификатора сессии, полученное на прошлом шаге. Помимо этого в параметре version указывается версия схемы обмена. На данный момент самая последняя версия это 2.10. Версия передаётся из-за того, что в разных модулях для 1С, схема обмена реализована с отличиями, поэтому сайту необходимо понимать по какой схеме будет происходить обмен.

Получив запрос на инициализацию, сайт очищает все папки с файлами от предыдущего обмена и отвечает 1Ске строкой с настройками обмена:

Параметр zip равный yes, что означает у сайта есть библиотека для работы с zip архивом. 1С в данном случае будет отправлять файлы в zip архивах. Это экономит время для передачи файлов. В противном случае (zip=no) 1С будет отправлять XML файлы в открытом виде.

В параметре file_limit сайт указывает максимальный размер одного файла. Значение этого параметра задаётся в настройках обмена на сайте. В случае если файл будет большего размера, то 1С разобьёт его на несколько частей и будет передавать его, соответственно, за несколько запросов. Это необходимо для того что бы не сработало ограничение по размеру файлов загружаемых на сервер сайта.

Шаг 3: отправка файла

1С методом post отправляет тело файла по адресу:

Параметр mode устанавливается в значение file, а в параметре filename передаётся имя файла. Сайт сохраняет загружаемые файлы в папку /upload/1c_catalog/ (для обмена товарами), либо /upload/1c_exchange/ (для обмена заказами). Имя файла берется из параметра filename, т.е. именно 1С задает название файла обмена под которым сайт сохраняет его у себя.

Запрос на отправку файлов может повторяться несколько раз, например в случае если файл был разбит 1Ской на несколько частей. На каждый запрос сайт отвечает строкой:

Если в ответе будет что-то другое, то обмен прервётся с ошибкой.

После того как файл будет получен полностью, начинается сам процесс импорта.

Шаг 4: начало обмена

Для этого 1С отправляет запрос на страницу:

Где для параметра mode указывает значение import и повторно в параметре filename указывает имя файла.

В это время сайт находит нужный файл с указанным именем у себя в папке обмена и начинает импорт. Импорт выполняется в несколько шагов. На процесс импорта 1С уже никак не влияет, они лишь отправляет запросы повторно с mode=import до тех пока пока операция импорта не завершится. В ответ на каждый запрос она получает строку вида:

progress Временные таблицы созданы.
progress Файл импорта прочитан.
progress Обработано 1 из 1 элементов.

Если в строке есть значение progress, то 1С повторяет запрос и будет повторять до тех пор пока не получит ответ:

success Импорт успешно завершен.

Читать еще:  Huawei синхронизация контактов с outlook

Сам процесс импорта несколько необычен в 1С-Битрикс. Скрипт импорта не работает с xml напрямую (с помощью стандартных библиотек php), а создает в базе данных пустую таблицу b_xml_tree (предварительно очистив) и построчно считывая xml файл импорта заносит данные в созданную таблицу. После того как файл будет полностью перенесён во временную таблицу скрипт импорта начинает обрабатывать данные из таблицы и уже вносить изменения в данные сайта (например создаёт группы, товары и т.п.)

После того как импорт файла будет завершён запускается процесс деактивации разделов и элементов каталога.

Шаг 5: деактивация

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

Процесс деактивации отличается в разных версиях модуля обмена:

в старых версиях деактивация происходила на 4-ем шаге (в момент импорта xml, настройки хранились на сайте),

настройки деактивации на сайте

в последних версиях деактивация происходит на отдельном шаге (настройки уже хранятся в 1С)

Деактивация происходит только при полном обмене. Для деактивации 1С отправляет запрос на страницу:

Где параметр mode равен deactivate, а так же указывается timestamp, значение которого 1С получала на первом шаге. timestamp это время начала обмена, по нему сайт ищет все товары, у которых время модификации меньше чем значение в timestamp и деактивирует их. Логика такая: все товары, которые были изменены после времени начала обмена — считаются что они были в xml импорта, а все остальные — нет.

Тут есть особенность, если в момент импорта каталога какие-либо товары были изменены (администратором, скриптом выполняющимся на cron и т.п.), то 1С-Битрикс не поймет, были они в импорте или нет. Такие товары не будут деактивированы, даже если их не было в обмене. Это особенно актуально для больших сайтов, где обмен выполняется очень долго.

При использовании нового модуля обмена, деактивация зависит только от настроек в 1С, настройки в 1С-Битрикс не работают.

Обмен заказами

Обмен заказами (выгрузка из 1С на сайт) идёт по той же самой схеме. Только в параметр mode передаётся значение sale, а сохранение файла происходит в папку /upload/1c_exchange/.

Для экспорта заказов в 1С используется запрос:

В ответ сайт отдаёт XML с заказами, которые были как-либо изменены с даты последнего обмена. Для этого сайт записывает дату и время последнего обмена. Время сохраняется в таблицу b_option, строка last_export_time_committed_/bitrix/admin/1c_excha.
При последующих запросах сайт отдаёт все заказы, в которых дата и время изменения новей, чем дата последнего обмена.

Например, если по какой-либо причине не выгрузился определённый заказ, то достаточно зайти в редактирование этого заказа и нажать «Сохранить». Тогда у заказа изменится дата редактирования и при следующем обмене он попадёт в выгрузку.

Так же можно сбросить время в last_export_time_committed, тогда в xml попадут все заказы. Пример кода для сброса:

Если обмен завершается с ошибкой

Например при запросе:

1C ожидает получить строку, например:

progress Файл импорта прочитан.

А получает: «DB query error»

настройки деактивации в 1С

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

настройки деактивации в 1С

Так же есть галочка «Выгружать лог на сайт», в этом случае, после окончания обмена, 1С отправит логи на сайт. Но проблема в том, что если сайт при обмене падает с ошибкой, то логи 1С отправить не сможет.

Пример лога обмена 1С

настройки деактивации в 1С

В лог записываются, как действия самой 1С (например «Формирование пакета для общих данных для товаров»), так и то, что возвращает сайт (например «Процесс выполнения обмена: Временные таблицы удалены»). Для того, чтобы сайт возвращал более полные данные по ошибке, а не заглушку «DB query error», необходимо включить режим вывода расширенных ошибок:

После этого необходимо повторить обмен. В логах уже будет описана конкретная ошибка, например:

Table ‘sv22.b_xml_tree’ doesn’t exist
.
Сan’t create table ‘b_xml_tree’ (errno: -1)
.
MySQL Query Error: create table b_xml_tree_import_1c

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

Очень часто это возникает из-за того, что подключают дополнительно тестовую 1С и забывают в ней отключить периодический обмен. И две 1С (боевая и тестовая) одновременно шлют запросы на обмен.
Так же случается, если настроен автоматический обмен по расписанию и примерно в это же время запускается ручной обмен.

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

Бонус для дочитавших

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

Для решения этой задачи есть волшебная константа:

После её установки битрикс перестаёт удалять файлы обмена и сохраняет их в папки
/upload/1c_catalog0/
/upload/1c_catalog1/
.
/upluad/1c_catalogNNN/

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

0 0 голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты