1С или контур бухгалтерия что лучше?

1С или контур бухгалтерия что лучше?

Что лучше, Контур Бухгалтерия или 1С? Или эти продукты подходят каждый для своих задач, и сравнивать их, как минимум, некорректно?

Спрашивают в «Красном уголке бухгалтера».

«Кто сталкивался с Контур Бухгалтерией? Это прям как 1С или нет? Кто-нибудь тут пользуется (пользовался) ей и как она вам?». В комментариях мнения сильно разделились. Кто-то Контур прям ругает: «Абсолютно бесполезна для компании с любым оборотом. Многие операции порой приходилось делать «операции вручную» и оформлять бух. справками. Выписки подгружает из банка. На этом все «прелести»». Кто-то еще добавляет: «Налоговых регистров нет, аналитика слабая». Вот еще: «Восстанавливала в ней баланс. После меня сказали, что я гений в такой программе восстановить. Отличается кардинально. Работать можно. Но неудобно. Для фирм с простым учётом небольшого оборота терпимо. Но 1С намного удобней». А вот и хорошее мнение: 📌 Реклама

«Хорошая программа для ИП или маленькой ООО на упрощенке. Правильные настройки и программа делает все сама:-) Хороший плюс: техподдержка 24 часа, подскажут от проводки до кнопочки, куда нажать, что очень удобно для новичков или директоров, которым пришлось взять учет на себя. А также очень оперативные обновления и изменения в учете, что было очень актуально в карантин».

И:

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

SAP BusinessObjects Design Studio — альтернатива BEx WAD

3735

Ключевое понятие

SAP BusinessObjects Design Studio является альтернативой для BEx Web Application Designer для создания дашбоардов и мобильных приложений. Он основан на платформе Eclipse и имеет визуальный редактор для создания приложений.

SAP BusinessObjects Design Studio представляет собой новый инструмент, помогающий создавать мобильные дашбоарды и другие приложения используя HTML5. Design Studio работает как расширение BEx Web Application Designer (WAD) в SAP NetWeaver BW, и, следовательно, является важной темой для разработчиков и дизайнеров BI.

Дизайнеры использующие BEx WAD для будущих разработок могут столкнуться с определенными трудностями. SAP объявил, что не планирует новых расширений функциональности BEx WAD. Также скоро прекратится основная поддержка BEx WAD, хотя эта информация может изменяться. По сравнению с BEx WAD, Design Studio точен до пикселя во время дизайна (т.е. позволяет разработчикам отчетов форматировать отчет с точностью до одного пикселя), он поддерживает SAP HANA и BEx. Приложения создаваемые в Design Studio могут работать как на десктопах, так и на мобильных устройствах, что было невозможным в BEx WAD.

На момент написания статьи не существует способов переноса существующих дашбоардов ,созданных в BEx WAD, в Design Studio. Для создания новых дашбоардов и мобильных приложений дизайнеры должны использовать Design Studio вместо BEx WAD.

Мы пошагово покажем как создавать приложения в Design Studio. Для повторения сценария вам потребуется следующее:

  • Установленный Design Studio.
  • Учетная запись пользователя для доступа к системе SAP NetWeaver BW.
  • Установленный add-on для Design Studio в платформе SAP BusinessObjects BI 4.0 (он позволяет создавать приложения на сервере BusinessObjects).
  • Пользователи и дизайнеры отчетов со знанием запросов BEx.

Вы хотели бы увидеть полную версию статьи?

Если вы являетесь подписчиком журнала SAP Professional Journal, пожалуйста, авторизируйтесь на сайте.

Если вы хотите подписаться на SAP Professional Journal, пожалуйста, обратитесь в редакцию или сделайте заказ на сайте.

Правила получения тестового доступа к статьям SAP Professional Journal

Возможности расширения модулей

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

В качестве ограничений расширения методов можно выделить:

— запрет на заимствование в расширение глобальных серверных модулей;

— по умолчанию расширенные методы привилегированного общего модуля выполняются в непривилегированном режиме (но это можно настроить в профиле безопасности).

— запрет на создание в расширении привилегированных и глобальных серверных общих модулей;

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

В заимствованном в расширение модуле можно:

— создавать собственные переменные, процедуры и функции;

— назначать собственные обработчики на события, которые не обрабатываются в конфигурации;

— перехватывать любой метод расширяемого модуля и вызывать до и/или после него собственные методы.

Механизм аннотаций.

Для перехвата методов основной конфигурации используется механизм аннотаций при помощи элементов встроенного языка – &Перед, &После, &Вместо, — они определяют последовательность исполнения расширяемого и расширяющего методов.

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

Аннотация &Перед

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

Наглядно это можно отразить на приведенной ниже схеме

В качестве примера решим задачу вывода Фото Физического лица на Форму элемента Справочника Сотрудники в конфигурации ЗУП 3.1. Для этого добавим в расширение метод СотрудникиФормы.СотрудникиПриСозданииНаСервере вызываемый в обработчике Формы ПриСозданииНаСервере.

Запустим 1С Предприятие в режиме конфигуратора и перейдем в общий модуль СотрудникиФормы, далее щелкнув правой кнопкой мыши по заголовку процедуры СотрудникиПриСозданииНаСервере откроем выпадающий список – в нем выберем строчку «Добавить в расширение», система спросит тип аннотации – выберем «Вызывать перед»

Далее мы увидим следующее – в расширение добавился общий модуль СотрудникиФормы и создалась процедура Расш1_СотрудникиПриСозданииНаСервере с аннотацией &Перед(«СотрудникиПриСозданииНаСервере»)

Добавим в процедуру код программного вывода изображения на форму:

1С (Код)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 &Перед(«СотрудникиПриСозданииНаСервере») Процедура Расш1_СотрудникиПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) //Выведем фотографию для сотрудника //Добавим реквизит формы МассивРеквизитов = Новый Массив; РеквизитАдресФотографии = Новый РеквизитФормы(«АдресФотографии», Новый ОписаниеТипов(«Строка»)); МассивРеквизитов.Добавить(РеквизитАдресФотографии); Форма.ИзменитьРеквизиты(МассивРеквизитов); Форма.АдресФотографии = КадровыйУчетРасширенный.АдресФотографииФизическогоЛица(Форма.ФизическоеЛицо.Ссылка); //Добавление элементов формы Если Форма.Элементы.Найти(«АдресФотографии») <> Неопределено Тогда Возврат; КонецЕсли; Элементы = Форма.Элементы; //Добавим группу ГруппаФотография = Элементы.Добавить(«ГруппаФотография», Тип(«ГруппаФормы»), Элементы.ФИОНомер); ГруппаФотография.Вид = ВидГруппыФормы.ОбычнаяГруппа; ГруппаФотография.ОтображатьЗаголовок = Ложь; //Добавим поле ПолеАдресФотографии = Элементы.Добавить(«АдресФотографии», Тип(«ПолеФормы»), ГруппаФотография); ПолеАдресФотографии.Вид = ВидПоляФормы.ПолеКартинки; ПолеАдресФотографии.ПутьКДанным = «АдресФотографии»; ПолеАдресФотографии.РастягиватьПоВертикали = Ложь; ПолеАдресФотографии.РастягиватьПоГоризонтали = Ложь; ПолеАдресФотографии.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; ПолеАдресФотографии.Гиперссылка = Ложь; ПолеАдресФотографии.ТекстНевыбраннойКартинки = НСтр(«ru = ‘Картинка не установлена'»); ПолеАдресФотографии.РазмерКартинки = РазмерКартинки.АвтоРазмер; ПолеАдресФотографии.ЦветТекста = ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет; ПолеАдресФотографии.Высота = 4; ПолеАдресФотографии.Ширина = 10; КонецПроцедуры

Запустим 1С в режиме предприятия и убедимся что фото Физлица выведено на Форме Сотрудника

Аннотация &После

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

Для примера рассмотрим задачу изменения цвета текста в поле ФОТ на Форме элемента Справочника Сотрудники в конфигурации ЗУП 3.1. в зависимости от выведенного значения. Если ФОТ < 30 000 сделаем желтый, если значение в диапазоне от 30 000 до 50 000 зеленый, если больше 50 000 – красный.

Вернемся в режим конфигуратора 1С Предприятия, данные ФОТ заполняются в обработчике Формы элемента Справочника Сотрудники ПриЧтенииНаСервере процедурой общего модуля СотрудникиФормы.СотрудникиПриЧтенииНаСервере. Для того чтобы анализировать уже заполненное значение ФОТ добавим метод СотрудникиФормы.СотрудникиПриЧтенииНаСервере в расширение с аннотацией &После

Так как общий модуль СотрудникиФормы уже был в нашем расширении в него просто добавилась процедура Расш1_ Расш1_СотрудникиПриЧтенииНаСервере с аннотацией &После(«СотрудникиПриЧтенииНаСервере»)

Далее добавим в процедуру код изменяющий цвет текста

1С (Код)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 &После(«СотрудникиПриЧтенииНаСервере») Процедура Расш1_СотрудникиПриЧтенииНаСервере(Форма, ТекущийОбъект) // Проверим на существование Элемента Формы Если Форма.Элементы.Найти(«ТекущийФОТ») = Неопределено Тогда Возврат; КонецЕсли; Если Форма.ТекущийФОТ = 0 Тогда //Не оформляем нулевое значение Возврат; ИначеЕсли Форма.ТекущийФОТ <= 30000 Тогда Форма.Элементы.ТекущийФОТ.ЦветТекста = WebЦвета.Желтый; ИначеЕсли Форма.ТекущийФОТ > 50000 Тогда Форма.Элементы.ТекущийФОТ.ЦветТекста = WebЦвета.Красный; Иначе Форма.Элементы.ТекущийФОТ.ЦветТекста = WebЦвета.Зеленый; КонецЕсли; КонецПроцедуры

Запустим 1С в режиме предприятия и убедимся что цвет текста в поле ФОТ стал зеленым

Аннотация &Вместо

Данная аннотация полностью отключает выполнение расширяемого метода и выполняется только метод расширенный

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

Для примера запустим 1С Предприятие в режиме конфигуратора и добавим используемую выше функцию получения изображения физлица КадровыйУчетРасширенный.АдресФотографииФизическогоЛица в расширение. Платформа 1С создала функцию Расш1_АдресФотографииФизическогоЛица в расширении со следующим содержимым:

Метод ПродолжитьВызов() рассмотрим ниже, а сейчас заменим содержимое функции слегка доработанным типовым кодом, добавив в него условие, что если пользователю не доступна Роль «Расш1_ПросмотрФото» то адрес изображения возвращаться не будет:

1С (Запрос)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 &Вместо(«АдресФотографииФизическогоЛица») Функция Расш1_АдресФотографииФизическогоЛица(ФизическоеЛицо) //Начало вставки Если Не РольДоступна(«Расш1_ПросмотрФото») Тогда Возврат «»; КонецЕсли; //Конец вставки Запрос = Новый Запрос; Запрос.УстановитьПараметр(«ФизическоеЛицо», ФизическоеЛицо); Запрос.Текст = «ВЫБРАТЬ РАЗРЕШЕННЫЕ | ФотографииФизическихЛиц.ФизическоеЛицо, | ФотографииФизическихЛиц.Фотография |ИЗ | РегистрСведений.ФотографииФизическихЛиц КАК ФотографииФизическихЛиц |ГДЕ | ФотографииФизическихЛиц.ФизическоеЛицо = &ФизическоеЛицо»; РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Возврат «»; КонецЕсли; Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); Возврат ПоместитьВоВременноеХранилище(Выборка.Фотография.Получить(), ФизическоеЛицо.УникальныйИдентификатор()); КонецФункции

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

Метод ПродолжитьВызов()

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

Решим сейчас такую задачу – выведем вместо надписи «Картинка не установлена» собственную картинку для тех Сотрудников у которых в базе нет фото. Для этого добавим также в расширении картинку в ветку метаданных Общие картинки новый элемент Расш1_ПустоеФото с подходящим изображением

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

1С (Код)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 &Вместо(«АдресФотографииФизическогоЛица») Функция Расш1_АдресФотографииФизическогоЛица(ФизическоеЛицо) // Выполним код типовой функции. Результат = ПродолжитьВызов(ФизическоеЛицо); //Проверим есть ли изображение в базе Если Не ЗначениеЗаполнено(Результат) Тогда // Если изображения нет вернем картинку-заглушку Возврат ПоместитьВоВременноеХранилище(БиблиотекаКартинок.Расш1_ПустоеФото.ПолучитьДвоичныеДанные(), ФизическоеЛицо.УникальныйИдентификатор()); КонецЕсли; Возврат Результат; КонецФункции

Запустим 1С в режиме предприятия и убедимся, что вместо надписи «Картинка не установлена» мы видим добавленную в расширение картинку-заглушку

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

1С (Код)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 &Вместо(«АдресФотографииФизическогоЛица») Функция Расш1_АдресФотографииФизическогоЛица(ФизическоеЛицо) //Начало вставки Если Не РольДоступна(«Расш1_ПросмотрФото») Тогда Возврат «»; КонецЕсли; //Конец вставки Результат = ПродолжитьВызов(ФизическоеЛицо); Возврат Результат КонецФункции

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

Совместное использование &Перед и &После

Использование метода ПродолжитьВызов()

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

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

Порядок следования расширений в конфигурации

Порядок обхода аннотаций &Перед и &После

Порядок обхода аннотации &Вместо совместно с методом ПродолжитьВызов() и аннотациями &Перед и &После

Порядок обхода аннотации &Вместо без метода ПродолжитьВызов()

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

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

После многолетнего перерыва фирма «1С» приняла участие в проходившей в середине марта в Ганновере (Германия) выставке CeBIT. На своем стенде она представила платформу «1С:Предприятие», а также прикладные решения, подготовленные специально для немецкого рынка — «1C:Finance & Trade» и «1С: Business Suite».

Первая реакция на эту новость — здорово, началось! Вторая — а почему все это происходит только сейчас, в 2007 г.?

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

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

Пользовательский интерфейс продукта «1С: Business Suite” изменен по сравнению с русскими продуктами «1С”

И все же, почему у зарубежных поставщиков ERP-решений получается выход на мировые просторы, а у нас пока не очень? Причем тут мы имеем в виду не гигантов типа SAP или Oracle, а относительно небольшие компании вроде шведской Scala или датской Navision (правда, обе они уже «бывшие», но не из-за того, что оказались неудачниками, а наоборот — успешными игроками), которые смогли добиться успеха далеко за пределами Европы, в том числе в странах с иным менталитетом (Азия, Южная Америка) и часто изменяющимся законодательством (Россия).

Определенную активизацию своей деятельности за пределами СНГ фирма «1С» начала еще четыре года назад одновременно с выпуском новой платформы «1С:Предприятие» 8.0, одним из новшеств которой было создание технологической основы для реализации интернациональных прикладных решений. Сама платформа практически сразу была выпущена в варианте поддержки различных национальных пользовательских интерфейсов (в настоящее время есть 10 иностранных языков, в том числе английский и немецкий). И все же приходится констатировать: выход «1С:Предприятия» за пределы постсоветского пространства пока не состоялся.

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

Сам перечень этих стран показывает, что продвижение за рубеж идет довольно случайным образом, на основе частных инициатив тех или иных партнеров. Чем это можно объяснить? Я бы тут назвал две взаимосвязанные причины.

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

2. Рост продаж экономического ПО «1С» уже много лет держится на очень высоком уровне: 30-50% в год. Выдерживать такие темпы довольно сложно, хотя бы с точки зрения управления бизнесом, ведь речь идет об огромной партнерско-корпоративной структуре (разработкой, внедрением и сопровождением занимается примерно 100 тыс. ИТ-специалистов!). В этих условиях форсировать развитие бизнеса еще и за счет расширения географии очень сложно.

Локализованные версии прикладных решений «1С:Предприятия” 8.0

И тем не менее представление «1С: Предприятия» на CeBIT’е свидетельствует о серьезном намерении компании выйти на европейский рынок. Что же было привезено на выставку?

Продукт «1С:Finance & Tradе» — впервые представленное готовое решение, разработанное «1С» при участии ряда партнеров и предназначенное для автоматизации бизнес-процессов торговой фирмы: финансового учета и планирования, банкинга, управления закупками, продажами, запасами, активами. Это аналог продукта «Управление торговлей», но реализованный с учетом практики ведения бизнеса в странах Западной Европы и снабженный английским интерфейсом.

Бизнес-приложение «1С: Business Suite» полностью написано «1С-Рарус» — крупнейшим партнером фирмы «1С», частью активов которого она сама и владеет. Это приложение предназначено для малых и средних компаний, занимающихся оптовой торговлей, рассылкой, а также работающих в сфере услуг. Его функциональность (управление закупками, продажами, запасами, взаимоотношениями с клиентами, доставкой продукции) в значительной мере пересекается с «1С:Finance & Tradе», но оно больше ориентировано именно на немецких заказчиков и поддерживает многоязычный интерфейс: русский, английский и немецкий. В нем изменен по сравнению с отечественными приложениями и сам принцип пользовательского интерфейса, с учетом требований немецких пользователей.

Отдельно отметим, что в качестве самостоятельного продукта на выставке продемонстрирована и собственно платформа под названием «1С:Enretrpise» (в России она отдельно не продается и не лицензируется). Это говорит о том, что фирма намерена более активно развивать за рубежом (что вполне логично) партнерские отношения именно с независимыми разработчиками.

В обычной для себя манере «1С» довольно скромно заявила о цели своего участия в CeBIT’2007 — изучение возможности привлечения новых партнеров по разработке и продвижению решений на платформе «1С:Предприятие» 8 в странах Европы, Азии и Америки. Более того, оба прикладных решения были представлены в виде бета-версий (что также необычно для «1С»); начать продажи коммерческих продуктов предполагается в конце лета.

Организационно деятельность в Германии будет вестись через официально зарегистрированное представительство 1С Germany*1. Самая активная роль тут отводится компании «1С-Рарус», которая в данном случае будет работать не под своей (как в России), а под общей «материнской торговой маркой». Надо сказать, что начало продвижения «1С:Предприятия» именно в Германии (это подтвердил и Борис Нуралиев) во многом начато по инициативе «1С-Рарус», которая в предыдущие посещения CeBIT завязала ряд деловых контактов в этой крупнейшей европейской стране.

*1 За рубежом «1С» выступает под иной торговой маркой, чем в России: 1С (c латинской буквой С).

Комментируя планы выхода на немецкий рынок, Борис Нуралиев помимо прочего подчеркнул два благоприятных фактора. Первый — наличие в Германии достаточно большого числа выходцев из бывшего СССР, которым (и как партнерам, и как клиентам) будет полезно наличие русскоязычной поддержки продуктов*1. Второй — активный выход российских бизнесменов на зарубежные рынки, создание тут филиалов, новых предприятий и пр. Многие из них уже хорошо знакомы с решениями «1С» и готовы к их применению на своих зарубежных площадках.

*1 1С Germany находится в Ганновере, где имеется большая русскоязычная диаспора.

Говоря о конкретных итогах участия в CeBIT’2007, руководитель «1С-Раруса» Дмитрий Казачков отметил, что в первую очередь ставилась задача поиска заказчиков, на которых можно было бы отработать схемы внедрения и сопровождения готовых прикладных решений. Следующий этап — начало формирования партнерской сети, принципы построения которой, наверное, будут отличаться от тех, что использовались в России.

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

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