веб клиент что это такое

Про веб-клиент 1С

Одной из приятных особенностей технологии 1С:Предприятие является то, что прикладное решение, разработанное по технологии управляемых форм, может запускаться как в тонком (исполняемом) клиенте под Windows, Linux, MacOS X, так и как веб-клиент под 5 браузеров – Chrome, Internet Explorer, Firefox, Safari, Edge, и все это – без изменения исходного кода приложения. Более того – внешне приложение в тонком клиенте и в браузере функционирует и выглядит практически идентично.
Найдите 10 отличий (под катом 2 картинки):

Окно тонкого клиента на Linux:

веб клиент что это такое. Смотреть фото веб клиент что это такое. Смотреть картинку веб клиент что это такое. Картинка про веб клиент что это такое. Фото веб клиент что это такое

То же окно в веб клиенте (в браузере Chrome):

веб клиент что это такое. Смотреть фото веб клиент что это такое. Смотреть картинку веб клиент что это такое. Картинка про веб клиент что это такое. Фото веб клиент что это такое

Зачем мы сделали веб-клиент? Говоря несколько пафосно, такую задачу перед нами поставило время. Уже давно работа через Интернет стала необходимым условием для бизнес-приложений. Вначале мы добавили возможность работы через Интернет для нашего тонкого клиента (некоторые наши конкуренты, кстати, на этом и остановились; другие, напротив, отказались от тонкого клиента и ограничились реализацией веб-клиента). Мы же решили дать нашим пользователям возможность выбрать тот вариант клиента, который им подходит больше.

веб клиент что это такое. Смотреть фото веб клиент что это такое. Смотреть картинку веб клиент что это такое. Картинка про веб клиент что это такое. Фото веб клиент что это такое

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

Постановка задачи

Итак, требования к проекту: веб-клиент должен делать то же самое, что и тонкий клиент, а именно:

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

И тонкий клиент (при работе через веб), и веб-клиент пользуются одним и тем же набором веб-сервисов для общения с сервером приложений 1С. Реализация у клиентов, конечно, разная – тонкий клиент написан на С++, веб-клиент – на JavaScript.

Немного истории

Проект создания веб-клиента стартовал в 2006 году, в нем (в среднем) участвовала команда из 5 человек. На отдельных этапах проекта привлекались разработчики для реализации специфической функциональности (табличного документа, диаграмм и т.д.); как правило, это были те же разработчики, что делали эту функциональность в тонком клиенте. Т.е. разработчики заново писали на JavaScript компоненты, ранее созданные ими на C++.

С самого начала мы отвергли идею какой-либо автоматической (хотя бы частичной) конверсии C++ кода тонкого клиента в JavaScript веб-клиента ввиду сильных концептуальных различий этих двух языков; веб-клиент писался на JavaScript с чистого листа.

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

Первая версия платформы 1С:Предприятие с поддержкой веб-клиента вышла в 2009 году. Веб-клиент на тот момент поддерживал 2 браузера – Internet Explorer и Firefox. В первоначальных планах была поддержка Opera, но из-за непреодолимых на тот момент проблем с обработчиками закрытия приложения в Opera (не удавалось со 100%-ной уверенностью отследить, что приложение закрывается, и в этот момент произвести процедуру отключения от сервера приложений 1С) от этих планов пришлось отказаться.

Структура проекта

Всего в платформе 1С:Предприятие есть 4 проекта, написанных на JavaScript:

Структурно веб-клиент по-крупному разделяется на следующие подсистемы:

Особенности разработки

Реализация всего вышеописанного на JavaScript – дело непростое. Возможно, веб-клиент 1С – одно из самых больших client-side приложений, написанных на JavaScript – около 450.000 строк. Мы активно используем в коде веб-клиента объектно-ориентированный подход, упрощающий работу с таким большим проектом.

Для минимизации размера клиентского кода мы вначале использовали свой собственный обфускатор, а начиная с версии платформы 8.3.6 (октябрь 2014) стали использовать Google Closure Compiler. Эффект использования в цифрах – размер фреймворка веб-клиента после обфускации:

Google Closure Compiler очень хорошо работает с объектно-ориентированным кодом, поэтому его эффективность именно для веб-клиента максимально высокая. Closure Compiler делает для нас несколько хороших вещей:

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

веб клиент что это такое. Смотреть фото веб клиент что это такое. Смотреть картинку веб клиент что это такое. Картинка про веб клиент что это такое. Фото веб клиент что это такое

Какие задачи решали/решаем

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

Обмен данными с сервером и между окнами

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

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

We used Virtual DOM before it became mainstream)

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

Оптимизация работы веб-клиента

Чтобы наш веб-клиент работал быстрее, мы по максимуму стараемся задействовать штатные возможности браузера (CSS и т.п.). Так, командная панель формы (расположенная практически на каждой форме приложения) отрисовывается исключительно средствами браузера, динамической версткой на базе CSS.

веб клиент что это такое. Смотреть фото веб клиент что это такое. Смотреть картинку веб клиент что это такое. Картинка про веб клиент что это такое. Фото веб клиент что это такое

Тестирование

Для функционального тестирования и тестирования производительности мы используем инструмент собственного производства (написанный на Java и C++), а также набор тестов, построенных на базе Selenium.

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

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

веб клиент что это такое. Смотреть фото веб клиент что это такое. Смотреть картинку веб клиент что это такое. Картинка про веб клиент что это такое. Фото веб клиент что это такое
Наш инструмент тестирования и тестируемое приложение

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

Тесты на обоих инструментах (нашем и Selenium) запускают типовые сценарии работы из наших прикладных решений. Тесты автоматически запускаются после ежедневной сборки платформы «1С:Предприятие». В случае замедления работы сценариев (по сравнению с предыдущей сборкой) мы проводим расследование и устраняем причину замедления. Критерий у нас простой – новая сборка должна работать не медленнее предыдущей.

Для расследования инцидентов замедления работы разработчики используют разные инструменты; в основном используется Dynatrace AJAX Edition производства компании DynaTrace. Проводится запись логов выполнения проблемной операции на предыдущей и на новой сборке, затем логи анализируются. При этом время выполнения единичных операций (в миллисекундах) может не быть решающим фактором – в браузере периодически запускаются служебные процессы типа уборки мусора, они могут наложиться на время выполнения функций и исказить картину. Более релевантными параметрами в этом случае будет количество выполненных инструкций JavaScript, количество атомарных операций над DOM и т.п. Если количество инструкций/операций в одном и том же сценарии в новой версии увеличилось – это почти всегда означает падение быстродействия, которое нужно исправлять.

Также одной из причин падения производительности может быть то, что Google Closure Compiler по какой-то причине не смог сделать inline-подстановку функции (например, потому что функция рекурсивная или виртуальная). В этом случае мы стараемся исправить ситуацию, переписав исходный код.

Расширения браузеров

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

При работе в Safari наши расширения используют NPAPI, при работе в Internet Explorer — технологию ActiveX. Microsoft Edge пока не поддерживает расширения, поэтому веб-клиент в нем работает с ограничениями.

Дальнейшее развитие

Одна из групп задач для команды разработки веб-клиента – это дальнейшее развитие функциональности. Функциональность веб-клиента должна быть идентична функциональности тонкого клиента, вся новая функциональность реализуется одновременно и в тонком, и в веб-клиенте.

Другие задачи — развитие архитектуры, рефакторинг, повышение производительности и надежности. Например, одно из направлений – дальнейшее движение в сторону асинхронной модели работы. Часть функциональности веб-клиента на настоящий момент построена на синхронной модели взаимодействия с сервером. Асинхронная модель сейчас становится в браузерах (и не только в браузерах) более актуальной, и это заставляет нас модифицировать веб-клиент путем замены синхронных вызовов на асинхронные (и соответствующего рефакторинга кода). Постепенный переход к асинхронной модели объясняется необходимостью поддержки выпущенных решений и постепенной их адаптации.

Источник

Веб-клиент

Тонкий клиент (англ. thin client ) в компьютерных технологиях — компьютер или программа-клиент в сетях с клиент-серверной или терминальной архитектурой, который переносит все или большую часть задач по обработке информации на сервер. Примером тонкого клиента может служить компьютер с браузером, использующийся для работы с веб-приложениями. Данным термином может также называться P2P-клиент, использующий в качестве сервера другие узлы сети.

Содержание

Web-клиенты

Web-клиент (англ. Web client ) как программа — браузер. Web-клиент как устройство — устройство, основным приложением которого (с точки зрения разработчика устройства или маркетолога) является браузер.

Тонкие клиенты, работающие в терминальном режиме

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

веб клиент что это такое. Смотреть фото веб клиент что это такое. Смотреть картинку веб клиент что это такое. Картинка про веб клиент что это такое. Фото веб клиент что это такое

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

Тонкий клиент в большинстве случаев обладает минимальной аппаратной конфигурацией, вместо жёсткого диска для загрузки локальной специализированной ОС используется DOM (DiskOnModule) [модуль с разъёмом IDE, флэш-памятью и микросхемой, реализующей логику обычного жёсткого диска — в BIOS определяется как обычный жёсткий диск, только размер его обычно в 2-3 раза меньше]. В некоторых конфигурациях системы тонкий клиент загружает операционную систему по сети с сервера, используя протоколы PXE, BOOTP, DHCP, TFTP и Remote Installation Services (RIS).

Источник

Web-клиент

Полное описание платформы

Web-клиент – полнофункциональное рабочее место пользователя Docsvision, которое предоставляет доступ к системе через любую ОС (Windows, Linux, Mac OS, iOS, Android) и любой интернет-браузер (Google Chrome, Apple Safari, Яндекс.Браузер, Microsoft Edge, Internet Explorer), без необходимости установки на устройство пользователя приложения или дополнительного ПО.

Интерфейс web-клиента позволяет выполнять в системе все необходимые функции: работать с документами и заданиями, запускать процессы согласования и исполнения/ознакомления, осуществлять поиск по реквизитам и тексту документов, формировать и просматривать отчёты.

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

Стартовый дашборд в web-клиенте Docsvision

Стартовый дашборд в web-клиенте Docsvision c мобильного экрана

Web-клиент и возможность online-доступа к системе – базовая функциональность платформы, доступная в любой выбранной редакции Docsvision. Конкурентная пользовательская лицензия для работы посредством web/windows-клиента входит в поставку платформы в числе обязательных модулей.

Работа с документами

В web-клиенте Docsvision реализованы все необходимые функции для работы с электронными документами и со скан-копиями бумажных документов:

Работа с заданиями

В Docsvision встроены инструменты для создания и исполнения заданий, а также для контроля исполнительской дисциплины. Все эти функции доступны в web-клиенте как компьютере, так и на смартфоне:

Поиск

В Docsvision реализованы несколько видов поиска, основные – это атрибутивный поиск по реквизитам и полнотекстовый поиск по тексту файлов. Web-клиент позволяет использовать все эти виды поиска, а также ряд других возможностей:

Профиль пользователя

В web-клиенте пользователь может изменять настройки своего личного профиля:

Источник

Веб-клиент

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

Веб-клиент, в отличие от толстого и тонкого клиентов, исполняется не в среде операционной системы компьютера, а в среде интернет-браузера (Windows Internet Explorer, Mozilla Firefox, Google Chrome или Safari). Поэтому любому пользователю достаточно всего лишь запустить свой браузер, ввести адрес веб-сервера, на котором опубликована информационная база, — и веб-клиент сам «приедет» к нему на компьютер и начнет исполняться.

Веб-клиент использует технологии DHTML и HTTPRequest. При работе веб-клиента клиентские модули, разработанные в конфигурации, компилируются автоматически из встроенного языка «1С:Предприятия 8» и непосредственно исполняются на стороне веб-клиента.

Таким образом, независимо от клиентского приложения (толстый, тонкий, веб-клиент), вся разработка прикладного решения ведется полностью в конфигураторе 1С:Предприятия, серверный и клиентский код пишется на встроенном языке «1С:Предприятия 8».

Работа в интернет-браузере без установки системы на компьютер пользователя

Для работы в режиме веб-клиента требуется веб-сервер, настроенный на работу с «1С:Предприятием 8». Браузер клиента взаимодействует с веб-сервером по протоколу HTTP или HTTPS. Веб-сервер, в свою очередь, взаимодействует с «1С:Предприятием 8» в файловом или клиент-серверном варианте работы.

В качестве веб-сервера используется Apache или IIS.

веб клиент что это такое. Смотреть фото веб клиент что это такое. Смотреть картинку веб клиент что это такое. Картинка про веб клиент что это такое. Фото веб клиент что это такое

Progressive Web Apps

В веб-клиенте реализована поддержка технологии PWA (Progressive Web Apps). Эта технология поддерживается браузерами (как настольными, так и мобильными). Она позволяет создавать веб-приложения, которые выглядят как нативные приложения и работают почти так же быстро, как нативные приложения.

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

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

Аутентификация OpenID Connect

В веб-клиенте реализована поддержка провайдеров OpenID Connect. Для аутентификации в «1С:Предприятии 8», дополнительно к имеющимся способам, пользователи могут использовать свои учётные данные на других сайтах, поддерживающих OpenID Connect аутентификацию.

Веб-клиент на мобильных устройствах

Реализована ограниченная поддержка работы веб-клиента на мобильных устройствах — в браузере Google Chrome под ОС Android и в браузере Safari на iPhone/iPad. Доступны только основные функции веб-клиента.

Источник

Тонкий и Web клиент

Различные режимы и варианты работы с 1С:Предприятие 8

У потенциальных пользователей программных продуктов на платформе 1С:Предприятие часто возникают вопросы: достаточно ли будет производительности работающих в данный момент на рабочих местах компьютеров для работы с новой программой? Не потребуется ли затратить дополнительные средства на их апгрейд? Возможна ли работа удаленных пользователей через Интернет?

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

1. Работа через терминал-сервер. Возможна при любой платформе 1С:Предприятие.

веб клиент что это такое. Смотреть фото веб клиент что это такое. Смотреть картинку веб клиент что это такое. Картинка про веб клиент что это такое. Фото веб клиент что это такое

Повышение производительности работы.

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

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

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

Терминал-сервер обеспечивает доступ к 1С удаленно через интернет

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

Терминальный сервер позволит сэкономить на пользовательских компьютерах

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

Попробовать работу в режиме терминала можно на нашем сервере, предварительно заполнив заявку.

2. Работа в режиме тонкого клиента и веб-клиента

Тонкий клиент и веб-клиент – это два новых клиентских приложения платформы 1С:Предприятие 8. Кроме привычного файлового доступа и подключения к серверу по локальной сети они позволяют подключаться к информационной базе по протоколу HTTP через специально настроенный веб-сервер. Тонкий клиент и веб-клиент обеспечивают работу пользователей в новом режиме – режиме управляемого приложения.

веб клиент что это такое. Смотреть фото веб клиент что это такое. Смотреть картинку веб клиент что это такое. Картинка про веб клиент что это такое. Фото веб клиент что это такое

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

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

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

Подключение через Интернет

Тонкий клиент позволяет работать с интерфейсом 1С:Предприятия через Интернет. Для этого используется веб-сервер, настроенный для работы с 1С:Предприятием 8.

Тонкий клиент взаимодействует с веб-сервером по протоколу HTTP. Веб-сервер, в свою очередь, взаимодействует с 1С:Предприятием 8 в файловом или клиент-серверном варианте работы.

В качестве веб-сервера используется Apache или IIS.

Веб-клиент не требует предварительной установки. Он исполняется не в среде операционной системы, а в среде интернет-браузера (Microsoft Internet Explorer или Mozilla Firefox). Пользователю достаточно запустить свой браузер, ввести адрес веб-сервера, на котором опубликована информационная база, и веб-клиент «сам приедет» к нему на компьютер и начнет исполняться.

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

Веб-клиент, в отличие от толстого и тонкого клиентов, исполняется не в среде операционной системы компьютера, а в среде интернет-браузера (Windows Internet Explorer или Mozilla Firefox). Поэтому любому пользователю достаточно всего лишь запустить свой браузер, ввести адрес веб-сервера, на котором опубликована информационная база, – и веб-клиент сам «приедет» к нему на компьютер и начнет исполняться.

Веб-клиент использует DHTML, HTTPRequest и элементы технологии AJAХ (Asynchronous JavaScript and XML — «асинхронный JavaScript и XML»). Вся функциональность клиента в этом режиме исполняется системой автоматически с помощью языка JavaScript.

При работе веб-клиента клиентские модули, разработанные в конфигурации, транслируются автоматически из встроенного языка 1С:Предприятия 8 в JavaScript. Таким образом, независимо от клиентского приложения (толстый, тонкий, веб-клиент), вся разработка прикладного решения ведется полностью в конфигураторе 1С:Предприятия, серверный и клиентский код пишется на встроенном языке 1С:Предприятия.

Работа пользователей через Интернет, в том числе по низкоскоростным каналам связи

Тонкий клиент и веб-клиент позволяют работать с информационной базой через Интернет в реальном режиме времени. Подключение осуществляется через специально настроенный веб-сервер (Apache или IIS).

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

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *