Тонкости и подводные камни работы типового модуля интеграции Битрикс24 и 1С

07.11.21

Интеграция - WEB-интеграция

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

P.S. В процессе написания понял, что придется писать цикл статей, т.к. в одну все просто не уместить...

Прежде всего хочу акцентировать внимание на том, что это НЕ инструкция! Подробнейшая инструкция по настройке имеется на официальном сайте HelpDesk’а Bitrix24 в открытом для всех и каждого доступе https://helpdesk.bitrix24.ru/section/104395/ (в статье я буду периодически оставлять ссылки на описание конкретных настроек).

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

Основные положения:

  • Рассматривать будем общую ситуацию полной интеграции, то есть с обменом (происходящим в обе стороны) всеми основными сущностями - товарами, контрагентами и заказами (счетами, в случае с Бухгалтерией предприятия - далее БП);
  • Рассматриваем всё без привязки к конкретной конфигурации (за исключением моментов, когда ситуация касается специфики конфигурации), подразумевая, что она не была изменена (типовая). 1С Фреш не рассматриваю, но если хочется понатягивать сову на глобус, информацию о поддержке можно найти тут;
  • Битрикс24 может быть как коробочный, так и облачный (учтите - в облачном теперь доступен обмен только на максимальном тарифе);
  • Идти будем по нарастающей сложности, запутанности и сцепленности разделов в порядке Общие настройки -> Товары -> Контрагенты -> Заказы (Счета).

Статьи поделю по разделам для улучшения восприятия. Вроде бы ничего не забыл… Итак, поехали!

Общие настройки

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

 

1. Установка модуля

Здесь мне особенно сказать нечего. Ребята из Битрикс сделали все грамотно и постарались максимально упростить процесс установки, чтобы даже простой пользователь с полными правами и без высшего образования по специальности “программист” мог его установить. Инструкцию для всех актуальных конфигураций ищите тут, главное - убедитесь, что ваша версия конфигурации максимально свежая. А иначе придется привлекать программиста, чтобы решить проблемы с совместимостью или установкой модуля более ранней версии (найти можно тут).

 

 

Сам модуль представляет из себя расширение конфигурации, что позволяет не вносить изменений в вашу конфигурацию и сэкономить тонны времени и средств на обновление. НО! Вот для 1С Управление Торговлей 10.3 все немного не так просто. Тут точно понадобится понимание что и как вы делаете, доступ к конфигуратору и немного прямых рук, так как модуль вшивается непосредственно в конфигурацию. Комплект для установки шаблона можно отыскать вот тут. Инструкция по установке в саму конфигурацию идет в комплекте.

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

 

 

2. Схемы обмена

Главные вопросы раздела: “Что с чем меняется?”, “А если у нас две базы 1С?” и “А если у нас два Битрикса?”.

 

 

2.1. Первый вопрос больше философский. Если же подойти с технической точки зрения к ответу на первый вопрос, то меняется в нашем случае всегда 1С с Битрикс24. Инициатором обмена всегда служит 1С! То есть непосредственно управлением выгрузкой/загрузкой данных манипулирует 1С. Битрикс в лучшем случае знает, что за 1С к нему подключена и какие объекты она планирует забирать и присылать. Непосредственно “забирает” из Битрикс24 с помощью запросов изменения сама 1С, ну и конечно же отправляет обратно свои изменения.

Нужно упомянуть, что есть режим обмена в реальном времени посредством поддержки постоянной связи с Битрикс24 и мгновенного получения изменений, но по сути своей он сводится к тому, что Битрикс сразу после изменений передает сообщение 1С, что изменения были, и 1С их тут же “забирает”. Технически манипулирует выгрузкой все равно 1С.

2.2. Что касаемо второго вопроса - тут все неоднозначно. Технически такая возможность есть - никто не мешает применить ключ обмена в двух разных базах и запустить обмен из обеих. НО! Последствия непредсказуемы, а если быть точным, предсказуемы и зависят от настроек модуля. Если рассматривать принятый за данность в начале статьи вариант обмена всем в обе стороны, то ситуация следующая:

  • Контрагенты из всех баз 1С попадут в Битрикс и, как следствие, во все базы, где их нет (через Битрикс выгрузятся в базы при обмене);
  • Товары также попадут из всех баз во все базы;
  • Новые объекты из Битрикс24 будут попадать в базу 1С, которая первой “заберёт” изменения;
  • Изменения в реквизитах объекта на стороне одной из баз 1С приведут к изменению объекта в Битриксе и изменят соответствующий объект во всех остальных базах;

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

 

 

 
 “Но ведь можно же как-то доработать? Программисты же могут все?!”. ВНИМАНИЕ! Точка зрения автора!

А вот тут я бы хотел высказать свое видение и объяснить "Почему так?". Если вкратце, то схема обмена нескольких систем должна быть понятной, логичной и иметь центральный узел (я сейчас говорю о нашей ситуации). Битрикс под центральный узел не подходит от слова совсем! Его первоочередная цель - это быть CRM системой или Корп. порталом.

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

 

 

Если интересно расширить кругозор о том, как правильно строить взаимодействие между большим количеством систем, чтобы оно оставалось максимально прозрачным и имело минимальную сцепленность, рекомендую к ознакомлению статью Андрея Овсянкина //infostart.ru/1c/articles/792952/. В ней есть как мат. часть, так и подробно описанные инструменты для реализации.

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

3. Соответствия объектов

Один из частых вопросов, ответа на который нет нигде в официальных источниках: “А какие объекты в Битрикс24 соответствуют каким объектам в 1С?”. С виду кажется, что все просто: “Ну сделка - это заказ, компания - это контрагент, а товар - это номенклатура!”. Для общего понимания этого достаточно, но мы-то здесь не за этим, так ведь? Ведь есть же еще контактная информация, реквизиты компаний, банковские счета, единицы измерения и дополнительные реквизиты, в конце концов. Да и с основными объектами по типу компаний не все так просто.

Вот примерная таблица соответствия объектов:

 

Объект в Битрикс24 Объект в 1С
Товары Номенклатура
Компании Контрагенты (юр. лица)
Контакты Контрагенты (физ. лица)
Контактные лица Контрагентов
Сделка Заказ клиента
Счета Счета покупателю (только для БП)
Единицы измерения Единицы измерения

Реквизиты Компании /

Реквизиты Контакта

Контрагенты /

Контактные лица

Адреса Компании /

Адреса Контакта

Контактная информация Контрагента /

Контактная информация Контактного лица

Банковские реквизиты Банковские счета Контрагентов
Пользовательские поля Дополнительные реквизиты
Свойства товаров Дополнительные реквизиты
Лиды ---------------------
Задачи ---------------------

 

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

  • Настройка выгрузки основных объектов, помеченных зеленым, осуществляется отдельно друг от друга (хотя местами они и связаны) и подробно описана тут. На нюансах для каждого объекта я остановлюсь в других статьях;
  • Синим помечены объекты, выгрузка которых привязана непосредственно к основным объектам и частично настраивается в соответствующих разделах, поэтому на них я тоже остановлюсь позднее;
  • В таблицу я также включил некоторые объекты, которые не участвуют в типовом обмене, но про которые часто возникает вопрос: “А возможна ли выгрузка?”. Так вот, НЕТ! Задачи и лиды не выгружаются ни в какую сторону, ни в каком виде при использовании типового модуля (у Битриксовской части интеграции по умолчанию просто нет прав на эти разделы), НО выгрузка возможна! Отдельным путем через REST API Битрикс24 (тут документация), с привлечением программистов (тот самый случай, когда “Можно же как-то доработать?”).

4. Режимы синхронизации

Существует три режима обмена с Битрикс24, о которых можно почитать тут в самом низу страницы.

 

 

4.1. Первый из них “Ручной” - это просто режим, когда вы жмете кнопочку, и происходит обмен. О нем сказать нечего. Нажали и смотрите, как загружается, наблюдая за красивым журналом загрузки (к слову, про него в следующем разделе).

4.2. Второй  - “В режиме реального времени”. Подразумевает поступление изменений в динамическом варианте. То есть при любых изменениях в Битрикс24 или в 1С, происходит мгновенная подгрузка изменений по тому объекту, с которым они произошли. Нюансов в целом два:

  1. Первый, касающийся самого процесса. С недавних пор у Битрикса существует два способа оповестить 1С об изменениях объектов. Каждый вариант требует хорошей технической базы: стабильный и быстрый интернет, достаточно мощный сервер с 1С и технически грамотный системный администратор, который настроит всю “железную” составляющую. Варианты такие:
    1. Через так называемые “LongPoll-запросы”. Если не вдаваться в технические детали, то 1С поддерживает постоянное соединение с Битрикс24 и мгновенно получает от Битрикса все события изменений;
    2. Второй вариант, появившийся недавно, через HTTP-сервис. То есть вы публикуете вашу базу на WEB-сервер, указываете в настройках внешний путь до базы, и Битрикс обращается по указанному пути каждый раз, когда происходят изменения на портале.
  2. Второй нюанс касается принципа работы и связан в первую очередь с файловыми базами 1С и тонкостями их работы. В данном режиме работы (в реальном времени) весь обмен происходит в фоне (в фоновых заданиях), а соответственно, для того чтобы все работало и в файловых базах 1С, разработчикам модуля пришлось пойти на ухищрения. Так как в файловой базе фоновое задание по сути запускается не в “фоне” и при выполнение блокирует пользовательский сеанс, то, чтобы запустить обмен с Битрикс24 через режим реального времени, придется пожертвовать одним сеансом. Читай как  "У вас будет все время занята одна лицензия, одно “повисшее” окно 1С и один, работающий нон-стоп, компьютер").

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

4.3. Третий режим работы - это “По расписанию”. Самый, на мой взгляд, оптимальный вариант. Технически подразумевает просто регламентное задание, которое периодически активируется и запускает обмен. Может быть настроено аналогично любому другому регламентному заданию в 1С и имеет такую же логику работы. Касательно работы в файловых базах 1С - ограничения ровно такие же, как и с любым другим регламентным заданием. Чтобы оно отработало, нужно чтобы был активен хотя бы один пользовательский сеанс.

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

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

 
Много технических терминов и вставки кода

5. Журнал синхронизаций

 

 

У модуля интеграции Битрикс24 очень удобный и красивый журнал, но хранится он непосредственно в регистрах базы 1С. Как следствие, если происходит обмен большими объемами данных, то ОБЯЗАТЕЛЬНО необходимо установить настройку обрезки этого журнала. И обязательно должна быть снята галочка "Режим отладки". Она нужна только для программистов, если нужно посмотреть, что там за запросы уходят в Битрикс. А так как все это фиксируется в журнал, то количество сообщений от одного обмена увеличивается в несколько раз. В официальной инструкции этому не уделено достаточно внимания (тут в разделе “Общие настройки”), но на моей практике были случаи, когда база клиента разрасталась до крайне неприличных размеров (размер журнала в 3 раза превышал размер основных данных, накопленных за 3 года).

 

 

Особенно это критично для файловых баз, так как если вы превысите лимит по размеру таблицы данных (примерно 2 Гб), то спасать вашу базу придется с шаманами и бубнами. Еще один случай из практики, когда красивый журнал модуля Битрикс24 положил базу Бухгалтерии, и на спасение ушло полдня в авральном режиме (был последний день сдачи отчетности) и невесть сколько флаконов нашатыря для Главбуха.

В общем. При настройке убирайте галочку “Режим отладки” (в обязательном порядке) и выбирайте период обрезки журнала правильно.

6. Резюме

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

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

Здоровая критика, исправления и дополнения приветствуются. Если остались вопросы, добро пожаловать в комментарии, постараюсь ответить.

ВНИМАНИЕ! Спасибо за внимание! =3

Битрикс24 Bitrix24 Интеграция Обмен

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    17930    18    22    

17

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

7200 руб.

04.05.2021    20049    13    19    

17

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    14514    42    8    

18

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    1581    1    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. malikov_pro 1325 07.11.21 17:44 Сейчас в теме
За разбор +,
"режим обмена в реальном времени" - маркетинговая уловка.
"Технически манипулирует выгрузкой все равно 1С." - Long pull вполне адекватная технология, хотите быстрее - нужно использовать систему очередей (далеко не все умеют и не все нужна такая скорость).
“А если у нас два Битрикса?”. - переделывать под несколько планов обмена/спецРС, модуль использовать как транспорт.
"постоянная неразбериха адресных данных" - корявость кода
"В этом разделе я постарался собрать самые основные боли" - показать остатки в разрезе складов в Б24?

Обмен идет с помощью API, если сделаете технический разбор, то думаю будет полезно.
Ваш контекст УТ10, в УТ 11 и УНФ приемы обработки данных несколько другие.
2. triviumfan 97 08.11.21 11:00 Сейчас в теме
У нас почему-то не взлетел обмен через нттп, хотя база опубликована. Интегратор тоже не смог понять, почему. Приходится использовать "Через push&pull сервер", поэтому всегда висит это фоновое задание, которое слегка напрягает) А иногда приходится ещё его отлаживать, так это вообще геморрой. Часто бывали проблемы, когда через б24 открывается окошко 1с, делаешь создание заказа, а клиенты не подтягивались. Прямо типичная проблема. А причины разные: то фоновое задание не активно (как оно завершается тоже не понятно, ведь там бесконечный цикл), то сеансы веб-клиентов задублировались, то ещё что-то. В общем один геморрой.
4. freegman74 66 08.11.21 14:37 Сейчас в теме
(2)Мне кажется вы немного путаете. Я пишу от типовом модуле обмена. ОН не подразумевает открытие окна 1С в Битрикс24. Вы скорей всего имеете в виду модуль "Бэкофис".
На момент когда я активно занимался интеграциями (в районе полугода назад), Бэкофис был весьма сырым продуктом. Там и проблемы со скоростью работы, и невозможность быстрого возобновления сессии (чтоб не ждать прогрузки всех окон web-морды) и миллион багов.
Не так давно они выпустили БэкОфис 2.0, но я с тех пор стараюсь избегать проектов с использованием этих модулей.
user1045671; svilsa; triviumfan; +3 Ответить
6. triviumfan 97 09.11.21 12:34 Сейчас в теме
(4) Да, верно, бэкофис. Но настройки интеграции в 1с выглядят также :)
3. bulpi 217 08.11.21 12:52 Сейчас в теме
" если вы превысите лимит по размеру таблицы данных (примерно 2 Гб)"
ИМХО, 4 Гб, разве нет?
dime2; freegman74; +2 Ответить
5. freegman74 66 08.11.21 14:40 Сейчас в теме
(3)Да вы правы. Нашел информацию на ИТС - 4 Гб на таблицу.
https://its.1c.ru/db/metod8dev/content/5710/hdoc
7. capitan 2511 11.11.21 15:50 Сейчас в теме
От себя я бы добавил, что если у вас был ранее обмен с битрикс и вы решили перейти на битрикс24 то...
точно
такой переход не предусмотрен в типовом функционале, потому, что поменялась логика хранения идентификаторов
так что пользователи битрикс
8. fatman78 21 14.11.21 16:04 Сейчас в теме
Название статьи на сегодняшний день не совсем корректно. Я бы исправил название на след: "Тонкости и подводные камни работы старой версии модуля синхронизации Битрикс24"
Для Битрикс24 уже появился и работает полноценный модуль синхронизации на Базе Бэкофис 2.0 и успешно работает для УНФ 1.6 ERP 2.5, УТ 11.5(эта конфигурация еще не вышла официально из бэты). Разработчики не скрывают что это новый механизм пришедший на замену описанному в вашей статье отдельному модулю "синхронизации" и объединяющий в себе несколько старых функций, ранее поставляемых в виде отдельных модулей, а так же совершенно новый функционал завязанный на смарт процессы, например: роботы и триггеры. И в скором времени старые модули будут сняты с поддержки.
9. freegman74 66 15.11.21 09:56 Сейчас в теме
(8)К сожалению не было опыта работы с новым модулем...
А информация, на счет снятия с поддержки старых модулей, откуда? Просто довольно много клиентов сидит именно на "старой" версии модуля. Особенно вопрос с модулем для 10.3.
Если там все так серьёзно, то в дальнейших статьях рассмотрю и включу данные по новому модулю.
Думаю большая часть кода осталось та же что и была.
10. fatman78 21 15.11.21 19:25 Сейчас в теме
(9) Информация от ведущего разработчика 1С интеграции с Битрикс24 смотреть со 2 минуты
abasovit; +1 Ответить
11. slavia43 21.12.21 11:05 Сейчас в теме
Цикл полезный, без сомнения. Когда ждать продолжение?
12. freegman74 66 21.12.21 11:59 Сейчас в теме
(11) Спасибо за отзыв. Вторая часть цикла уже опубликована (https://infostart.ru/1c/articles/1555935/), третью надеюсь успеть до конца года.
user1045671; abasovit; slavia43; +3 Ответить
13. СергейКа 670 12.03.22 14:30 Сейчас в теме
Здоровая критика, исправления и дополнения приветствуются.
))

“А если у нас две базы 1С?”

С технической точки зрения это решается достаточно не сложно. Намекну например что в разных базах нужно поставить разные источники данных в настройках обмена и соответственно можно распределить по разному таблицу изменений со стороны Б24.
Обмен сделками можно например разрулить разными воронками и брать только ту что нужно.
Но в целом с выводом что это делать не нужно - согласен. Хотя на практике приходилось делать. Здесь главный критерий что в разных базах должны вестись разные организации. Иначе потом краев не найдешь (если это 2 базы одинакового типа).
Или возможен вариант с разными базами если это УТ и БП по одной организации.
Просто потому что товары и контрагенты будут одинаковыми, но в одной базе берутся Сделки-Заказы покупателей, а во второй Счета. И особых проблем нет.
Есть еще моменты, где на самом деле не так. Но слишком много писать для комментария ))

В целом плюс за начинание, но не рассмотрены критически важные моменты именно для пользователей, на которых спотыкается множество интеграторов, и потом приходится переделывать за ними...
14. kodar-msk 22.11.24 16:32 Сейчас в теме
Добрый день коллеги!
Можете что-то рассказать про обмен 1С:УНФ которая лежит во фреше и Битрикс 24, облачный тариф ПРОФессиональный. Есть ли у кого то такой опыт. Какие подводные камни. Вижу что модуль обмена в магазине расширений для фреша есть, вчера туда позвонил, прислали письмо с рекомендациями по установке, но в нем также сказано что они не гарантируют работоспособность обмена. Стоит задача синхронизировать базу клиентов и контактов с их связкой, думаю можно ли это сделать не вытаскивая базу из Фреша.
Заранее Спасибо!
Оставьте свое сообщение