Пример организации HTTP сервиса на 1С: Документооборот. Источник 1С: ЕРП => Приемник 1С: Документооборот

Публикация № 1433473

Разработка - Системная интеграция - Интеграция

HTTP сервис запрос REST

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

1. Создаем HTTP-сервис с типом POST в 1С ДО, обзываем его МСУ_BusinessProcess.

Указываем название для Корневого URL, указываем название шаблона и метод обработки(наш обработчик на языке 1С).


 

 

 

 

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

Вернем результат запроса туда, откуда он пришел, в нашем случае в 1С: ЕРП.

Возвращаться может все, что угодно (текст, XML, json и т.д.), мы вернем текст в json

 

//обработчик указанный нами в http-сервисе
Функция ПрерываниеПроцессаПрерываниеПроцесса(Запрос)   

    Строка = "Все ОК"; //если обработка успешна, вернем как результат прерывания процесса в виде сообщения в 1С ЕРП
        
    Возврат Новый HTTPСервисОтвет(ПрочитатьJSON(Запрос, Строка));

КонецФункции


//Обработаем запрос и вернем результат обработки в источник
Функция ПрочитатьJSON(Запрос,Строка) Экспорт
    
     СтрокаJSON = Запрос.ПолучитьТелоКакСтроку(); //вытащим то, что указано в теле запроса
    
     ЧтениеJSON = Новый ЧтениеJSON();
     ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
     
     Массив = ПрочитатьJSON(ЧтениеJSON); //тут должны содержаться идентификаторы предметов, которые нам передали из 1С ЕРП

     Для Каждого СтрокаМассива Из Массив Цикл
         Предмет = Справочники.ВнутренниеДокументы.ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаМассива)); 
         Если НЕ Предмет.Пустая() Тогда
         ПрерватьПроцессПоПредмету(Предмет);
         КодОтвета = "200";
         Иначе
         Строка = "Не найден Документ с Идентификаторм "+СтрокаJSON;
         КодОтвета = "404";
         КонецЕсли;
     КонецЦикла;
     
     Ответ = Новый HTTPСервисОтвет(КодОтвета);
     
     ЗаписьJSON = Новый ЗаписьJSON();
     ЗаписьJSON.УстановитьСтроку();

     ЗаписатьJSON(ЗаписьJSON, Строка);

     Ответ.УстановитьТелоИзСтроки(ЗаписьJSON.Закрыть());
     

     Возврат Ответ; 

 КонецФункции


Сохраняем наши изменения в базу.

Публикуем созданный нами http-сервис из конфигуратора (вебсервер, естественно, должен быть уже развернут).

3. В другой базе, например, 1С: ЕРП создаем обработку вида


 

4. На кнопку обработки Post вешаем обработчики
 

&НаКлиенте
Процедура Post(Команда)
    PostНаСервере();
КонецПроцедуры


&НаСервере
Функция PostНаСервере()
    //нужно что то сообщить нам как всё прошо при передачи запроса в 1С ДО
    Сообщение = Новый СообщениеПользователю; 
    
    //полные параметры соединения
    Соединение = Новый HTTPСоединение(
        "SRV-1C" // Имя сервера (хост), иногда указывается внутри домена как SRV-1C.Local
        ,80     // порт, по умолчанию для http используется 80, для https 443
        ,"User"    // пользователь для доступа к серверу (если в базе 1С к которой коннектимся есть хотя бы 1 пользователь)
        ,"Parol"    // пароль для доступа к серверу (если в базе 1С к которой коннектимся есть хотя бы 1 пользователь)
        ,// здесь указывается прокси, если он есть
        ,// таймаут в секундах, 0 или пусто - не устанавливать
         //Новый ЗащищенноеСоединениеOpenSSL()  - если соединение через https 
        );
 
    
    //каталог публикации базы + обязательно "hs" + корневой каталог + Шаблон
    // Полная строка для браузера выглядит так: SRV-1C/doc_work/hs/BusinessProcess/abort_bp/
    АдресРесурса = "/doc_work/hs/BusinessProcess/abort_bp/";
    
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Type", "text/plain;charset=UTF-8"); //можно передать не текст а эксемель "application/xml" 
    
    HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, Заголовки);    
    
    СтрокаJSON = ПолучитьJSONСтроку(); //Сформируем JSONСтроку для передачи ее в теле запроса. Это по стути те данные, которые мы хотим передать.
    
    HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON);
    
    Попытка  //отправляем данные
        Результат = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
        Сообщить(Результат.ПолучитьТелоКакСтроку());
    Исключение
        Сообщение.Текст = ОписаниеОшибки();
        Сообщение.Сообщить();
        Возврат Ложь;
    КонецПопытки;
    
КонецФункции

&НаСервере
Функция ПолучитьJSONСтроку()
    
    Массив = Новый Массив;
    Массив.Добавить(Строка(Заявка.УникальныйИдентификатор()));
    ЗаписьJSON = Новый ЗаписьJSON();
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON, Массив);
    
    Возврат ЗаписьJSON.Закрыть();

КонецФункции


Итогом данной организационной модели реализации взаимодействия двух программ становится передача в теле JSON строки с уникальным идентификатором предмета в виде Заявки на расходование денежных средств.

При обработке запроса http-сервис выполнит процедуру прерывания процессов в базе 1С ДО и вернет результат обработки запроса.

Пример можно использовать как на передачу, так и на получение запросов на исполнение, и реализовывать свои модели http-сервисов между различными системами и не только 1С<>1С но и сторонними микросервисами. 

Специальные предложения

Оставьте свое сообщение

См. также

Обмен данными. Консистентность vs Многопоточность Промо

Интеграция v8 1cv8.cf Бесплатно (free)

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

03.09.2019    14153    m-rv    1    

Доменная аутентификация ОС при бесшовной интеграции 1С:Документооборот 8 КОРП, редакция 2.1 и 1С:ERP Управление предприятием 2 (в клиент-серверном режиме)

Системное администрирование Документоборот 2 v8 ДО ERP2 Россия Бесплатно (free)

Доменная аутентификация ОС при бесшовной интеграции 1С:Документооборот 8 КОРП, редакция 2.1 (2.1.27.1) и 1С:ERP Управление предприятием 2 (2.4.13.103) (в клиент-серверном режиме). Проблема: «После перехода на новую платформу перестала работать доменная аутентификация».

01.06.2021    555    user1387741    9    

Настраиваем авторизацию пользователей 1С через Okta

Интеграция v8 Бесплатно (free)

Чем больше в компании различных конфигураций и сервисов, тем актуальнее становится проблема единой системы авторизации single Sign-On. Его лидером практически безоговорочно считается Okta. Но на просторах интернета очень мало информации про интеграцию 1С с Okta через протокол OpenID Connect. Что ж, настало время восполнить недостающие пробелы и перевернуть эту печальную страницу в вашей истории

30.04.2021    2641    ripreal1    10    

Иной подход к схемам комплексных процессов (возможность пользователям в удобном формате видеть участников процесса до его запуска) в 1С: Документооборот

Документооборот и делопроизводство Документоборот 2 v8 ДО УУ Бесплатно (free)

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

30.03.2021    781    Capitullo    0    

Перенос присоединенных файлов в документооборот при бесшовной интеграции

Документоборот 2 v8 ДО ERP2 Бесплатно (free)

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

26.02.2021    734    ВикторП    4    

«БИП: Бизнес-Процессы». Интеграция с Telegram и Конструктор чат-ботов

Управление бизнес-процессами (BPM) Интеграция v8 УУ Бесплатно (free)

В статье приводятся примеры настройки автоматических оповещений в системе «БИП: Бизнес-Процессы» с использованием мессенджера Telegram. Также, приводятся примеры создания и настройки произвольных чат-ботов с использованием Конструктора чат-ботов.

15.02.2021    760    YuriYuriev    0    

Архитектурное решение интеграции баз 1С с использованием брокера сообщений Rabbit MQ

Интеграция v8 1cv8.cf Бесплатно (free)

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

12.02.2021    1159    Koder_Line    1    

HTML редактор/editor (Wysiwyg) для WebKit 1С (CMS, B2B), альтернатива TinyMCE и стандартному ФорматированныйДокумент

WEB Интеграция v8 v8::УФ 1cv8.cf Бесплатно (free)

Suneditor - отличная замена HTML редактору TinyMCE (бесплатному), в публикации с открытым кодом подключим его в 1С с WebKit, скачать HTMLeditor обработку можно бесплатно.

28.12.2020    2503    SizovE    25    

Чтение вложенных свойств Структур Структуры, Соответствий, свойства через точку, разбор JSON

Практика программирования WEB Интеграция Универсальные функции v8 Бесплатно (free)

JSON: {user.device.type} - как получить значение {type}? А если вложенность значительно глубже? Как проверить, что оно заполнено или удалить его - всё это в публикации с открытым кодом и даже без рекурсии. Бонусом разбор дерева значений - ДанныеФормыЭлементДерева, СтрокаДереваЗначений.

17.11.2020    1874    SizovE    2    

Сказ о том, как в одной крупной компании документооборот внедряли, или проблемы типовых обменов между КА и ДО

Интеграция Документоборот 2 Перенос данных из 1C8 в 1C8 v8 ДО КА2 Бесплатно (free)

Приветствую всех. Сегодня пойдет речь о том, как на одной крупной компании внедряли 1С:Документооборот 2.1 в связке с КА 2.4. Вроде бы системы типовые, мы практически не добавляли ничего в них, но проблем было столько, что я решил изложить их в статье. Может, кому-то пригодится это в дальнейшем, и не придется тратить кучу времени на поиск решений.

10.11.2020    5598    maks_20    23    

Запрет повторного запуска комплексных процессов типовыми средствами в 1С: Документооборот

Документооборот и делопроизводство Документоборот 2 v8 ДО Бесплатно (free)

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

09.11.2020    1391    sulig    4    

Структура обработки загрузки номенклатуры поставщика с примерами и комментариями (часть 2)

Интеграция Практика программирования v8 1cv8.cf Бесплатно (free)

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

17.10.2020    883    malikov_pro    3    

Управление соляриями из 1С через Arduino

Интеграция v8 1cv8.cf Здравоохранение, медицина, стоматология УУ Бесплатно (free)

Мой опыт автоматизации сети соляриев с интеграцией 1С и оборудования соляриев с помощью платформы Arduino.

01.10.2020    2464    impextr    32    

Интеграция с Трелло. Готовый код

Обмен данными 1С Интеграция Agile (XP, SCRUM, Канбан) v8 Бесплатно (free)

Код основных действий, интеграция с API Трелло.

19.08.2020    3927    Yashazz    14    

Ограничение выбора вариантов шаблонов запуска процессов в Документообороте 2.1

Документоборот 2 v8 ДО Бесплатно (free)

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

20.07.2020    1915    Maito    4    

Интеграции с сервером SQL. Быстро и просто

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Решаем вопросы экспорта/импорта данных в базы отличного от 1С происхождения.

06.07.2020    3219    Infector    4    

Мониторинг факта выполнения обмена с помощью сервиса healthchecks.io

Интеграция Системное администрирование v8 1cv8.cf Россия Бесплатно (free)

В статье опишу вариант простого мониторинга обработчиков, запускаемых по расписанию.

30.06.2020    2187    malikov_pro    7    

Как мы запилили в АЙТАТ.РФ обработку-бота, чтобы ускорить отгрузку в 2 раза или Реальный опыт внедрения нового механизма "Трансляция событий" от 1С-Коннект

Интеграция v8 Бесплатно (free)

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

24.06.2020    2066    direwest    4    

Маркировка лекарственных препаратов. Часть первая "Быстрая интеграция"

Интеграция Розничная торговля v8 1cv8.cf Фармацевтика, аптеки Россия УУ Бесплатно (free)

Данный цикл будет посвящен маркировке лекарственных препаратов (далее ЛП), нюансам работы с "1С: Библиотека интеграции с МДЛП", доступной для скачивания на сайте ИТС, методиками работы с регистраторами выбытия, и проблемам, с которыми пришлось столкнуться при интеграции. Эта статья будет представлять из себя краткую инструкцию, что делать, когда маркировка уже близко и необходимо быстро внедрить ее. Надеюсь, она станет подспорьем в данной задаче. Будут приведены рекомендации, как в короткие сроки с минимально необходимой функциональностью и минимумом чтения документации произвести интеграцию библиотеки МДЛП и выполнить начальные настройки. Также будут даны рекомендации по быстрым, но важным, на мой взгляд, доработкам.

23.06.2020    8190    IssakN    32    

Диадок. Подключаемый модуль. Отладка

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Небольшой пример, как работать с подключаемым модулем Диадок (для изменения УПД перед выгрузкой на сайт Диадок.). Отладка подключаемого модуля, если не смогли подключить стандартную отладку.

17.06.2020    8732    John_d    10    

1C# – 1С моей мечты

Интеграция v8 Бесплатно (free)

Встроенных в платформу 1С возможностей не всегда хватает для построения сложных интеграционных схем между различными 1С и не-1С-решениями на базе MS SQL Server. Как сделать интеграцию между SQL-базами более гибкой с помощью платформы 1С# на конференции Infostart Event 2019 Inception рассказал Дмитрий Жичкин.

01.06.2020    12494    zhichkin    36    

Обработчик "После завершения транзакции" своими руками

Практика программирования Интеграция v8::blocking Бесплатно (free)

Обработчик "Сразу после завершения транзакции" очень востребован в механизме обмена мгновенными сообщениями, развитием которого фирма 1С заинтересовались настолько, что уже создала "Сервисы интеграции". Но платформа 8.3.17 всё еще не имеет полноценного обработчика "После записи" в подписках на события.

31.05.2020    3570    barelpro    63    

Интеграция Camunda BPM и 1С

WEB Интеграция v8 Бесплатно (free)

Быстрый старт. Только практические примеры. Установка, запуск и публикация бизнес-процесса на сервере Camunda BPM. Управление бизнес-процессами из 1С при помощи Camunda REST API.

12.05.2020    5396    zhichkin    30    

Как мы загружаем данные в "Центр управления кассами Магнита"

Внешние источники данных Интеграция v8 1cv8.cf Бесплатно (free)

Статья о том, как мы делали механизм загрузки больших объемов данных в "Центр управления кассами Магнита"

08.05.2020    5531    chernenko_vv    25    

Интеграция СуперОкна7 и УНФ

Интеграция Внешние источники данных v8 УНФ Россия Бесплатно (free)

Изучаем базу данных СуперОкна7, смотрим возможности передачи и получения информации.

08.05.2020    2705    vostok1.dz    3    

Синхронизация БИТ:СКУД 8 с Parsec.Net 2.5

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Настройка синхронизации БИТ:СКУД 8 с Parsec.Net.2.5, выгрузка данных из внешней системы контроля доступа.

04.05.2020    4576    RPGrigorev    0    

Измерительная лаборатория с использованием 1С+Ардуино

Периферийные устройства Интеграция v8 Россия Бесплатно (free)

1С в автоматизации "научных" и около... экспериментов.

02.05.2020    4866    maxlab    16    

Интеграция БИТ:СКУД с типовой конфигурацией

Интеграция v8 1cv8.cf Россия Бесплатно (free)

Интеграция БИТ:СКУД с типовой конфигурацией, обновление БИТ:СКУД в составе конфигурации и отдельно. Обновление системы защиты.

26.04.2020    5872    RPGrigorev    0    

Интеграция 1С и BI-системы: мой опыт с коннектором ATK BIView

Интеграция v8 1cv8.cf Россия Бесплатно (free)

Интеграция 1С и BI-системы: мой опыт с коннектором ATK BIView.

06.04.2020    5484    Flyerink    2    

Как я собрал для себя высокопроизводительный и бесплатный облачный бекенд для 1С на PosgreSQL + PostgREST

Производительность и оптимизация (HighLoad) WEB Интеграция Мобильная разработка Администрирование веб-серверов v8 Бесплатно (free)

В этой статье я расскажу о проблемах бека для мобильных приложений или другого фронта, который требует производительности, быстрой реакции и отказоустойчивости, и как я решил это благодаря opensource проекту PostgREST и СУБД Postgre SQL 12. Проведу простой тест производительности для сравнения 1С с данным решением. Это может быть полезно всем, кто разрабатывает мобильные приложения либо фронтсайд-приложения для 1С на чем угодно - на мобильной платформе или на нативном языке или на Simple UI. И также обзор новых функций SimpleUI для связи с этим бекендом.

31.03.2020    15038    informa1555    35    

Использование таблиц SQL Server в качестве очередей сообщений

Практика программирования Интеграция v8 Бесплатно (free)

Статья о событийно-ориентированной интеграции и об асинхронной обработке данных в контексте 1C под управлением SQL Server. Подробно разбирается вопрос использования таблиц СУБД в качестве очередей сообщений.

23.03.2020    4010    zhichkin    9    

Интеграция "Библиотеки интеграции МДЛП 1.1.2.7" с типовой конфигурацией

Интеграция Конфигурирование 1С v8 Здравоохранение, медицина, стоматология Россия Бесплатно (free)

Инструкция для интеграции “Библиотеки интеграции МДЛП 1.1.2.7” в типовые конфигурации, на примере конфигурации “Управление нашей фирмой, редакция 1.6 (1.6.18.168)”.

02.03.2020    8262    RPGrigorev    3    

Бесшовная интеграция через обмен по правилам - миссия выполнима

Практика программирования Интеграция Перенос данных из 1C8 в 1C8 v8 ДО ERP2 Бесплатно (free)

При организации работы с договорами в ERP 2, с помощью бесшовной интеграции с Документооборотом, «типовой» методикой является создание договоров в ЕРП. После создания договора в ЕРП, пользователь «отправляет» договор в ДО по бесшовной интеграции. На практике, весьма часто пользователи хотят видеть обратную схему: вводить договоры в ДО и при этом получать их в ЕРП без «лишних телодвижений». Или даже вводить их независимо в обеих системах – так, чтобы потом «стыковать» по каким-то определенным правилам.

24.01.2020    6223    e-9    8    

Передача данных с сервера на клиент через WebSocket NativeAPI и Centrifugo

Интеграция v8::УФ 1cv8.cf Россия Бесплатно (free)

В статье описываю реализацию обмена для замены передачи сообщений через 1С Сервер взаимодействия.

23.09.2019    8730    malikov_pro    11    

Оповещения боту из 1С за 31 минуту

Практика программирования Интеграция v8::УФ 1cv8.cf Бесплатно (free)

Поделюсь опытом, как быстро сделать бота с оповещениями в Телеграмм из 1С без лишних затрат.

18.09.2019    18916    feva    43    

Как организовать консолидацию данных из трех десятков предприятий, не привлекая программистов на местах?

Интеграция v8 1cv8.cf Бесплатно (free)

Какую архитектуру и технологии выбрать для организации обмена между «зоопарком» разных конфигураций и системой, принципиально отличающейся от 1С, как наладить такой обмен без изменения конфигурации и организовать мониторинг из единого центра, расскажет докладчик конференции INFOSTART EVENT 2018 EDUCATION Александр Бобрышов. 

15.07.2019    5237    ShurikDM    4    

Система питания в офисе: как совместить вендинговые автоматы, 1С, облачную кассу и веб-технологии

Интеграция Розничная торговля Розничная торговля v8 1cv8.cf Розничная и сетевая торговля (FMCG) Россия УУ Бесплатно (free)

В начале 2019 года тенденция развития автоматов питания в России привела к появлению проекта нового формата питания на работе — МикроМаркета “Го!Поедим”. Потребовалось создать новый формат зоны питания сотрудников: интегрировать в офисные кухни полноценные МикроМаркеты с бесконтактной оплатой, кофе-машинами, лаунж-зоной. Если правильно совместить вендинговые автоматы, облачную кассу, 1С и веб-технологии, то в результате будут не только сытые сотрудники, но и корректная работа всей системы офисного питания.

22.06.2019    7234    antonovintervolga    6    

1С + TecDoc + CMS Битрикс. Трудности перевода

Интеграция Оптовая торговля Оптовая торговля v8 1cv8.cf Автомобили, автосервисы Россия УУ Бесплатно (free)

Варианты подключения номенклатурных данных базы TecDoc, если у вас автобизнес.

12.04.2019    7780    n.saltsina    13    

RabbitMQ + Конвертация Данных 3.0

Внешние источники данных Обмен через XML Интеграция Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

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

21.03.2019    29135    barelpro    87    

Переход на "Зарплату и управление персоналом 3.1"

Интеграция Управление персоналом (HRM) Пользователю системы Бухгалтерский учет Управление персоналом (HRM) v8 v8::СПР ЗУП2.5 ЗУП3.x Россия БУ Бесплатно (free)

Сменила я тут работу и уже после того, как я приступила к исполнению обязанностей, мой новый начальник мне призналась, что выбор пал на меня только из-за того, что я знаю программу. Справедливости ради, эта уверенность была основана только на том, что я прошла тестирование, включающее только основные операции кадрового делопроизводства. Так или иначе, а работодатель попал в точку, нанимая меня в надежде, что я решу проблему: нужно перейти «с 8.2 на 8.3». Ничего сложного, скажет большинство, я тоже так говорю, но ситуация осложнялась некоторым количеством предшественников, которые уже «нафеячили» в программах до меня. Взять и сделать все заново мне не разрешили, так что пришлось исходить из того, что есть, и именно это дало пищу для размышлений и, в конце концов, привело к написанию этих рекомендаций. Если перед Вами стоит задача перехода с ЗУП 2.5 на ЗУП 3.1, я попробую облегчить Вам жизнь этой статьей.

01.02.2019    14112    VKuser24804875    33