7 причин, почему интеграция стала приятной. Не упускайте ряд потрясающих возможностей

01.10.15

Интеграция - Внешние источники данных

В статье показаны примеры получения данных без программирования на стороне «1С:Предприятие 8». Вам нужно проверить гипотезу и проанализировать данные, почему бы не интегрироваться с Excel? Используете технологии .NET и «1С:Предприятие 8», процесс связывания систем движется катастрофически медленно? Хотите native Android приложение с вашими данными всегда под рукой?

Скачать исходный код

Наименование Файл Версия Размер
Исходный код JAVA generator, Android приложения
.zip 30,85Mb
8
.zip 30,85Mb 8 Скачать
Обработка для определения состава метаданных, доступных через стандартный сервис OData
.epf 11,36Kb
39
.epf 1.0.18 11,36Kb 39 Скачать
Исходный код .NET для интеграции с сервисом OData
.zip 43,80Kb
10
.zip 43,80Kb 10 Скачать

Введение в Open Data Protocol

В 1С Предприятие 8.3.5.1068 появилась поддержка автоматического REST-сервиса. Теперь платформа может автоматически формировать REST интерфейс для всего прикладного решения. Вы привычным образом публикуете его на веб-сервере, и после этого сторонние системы могут обращаться к вашему приложению с помощью HTTP запросов. В качестве протокола доступа платформа использует протокол OData версии 3.0. Это открытый веб-протокол для запроса и обновления данных. Он позволяет оперировать данными, используя в качестве запросов HTTP-команды. Получать ответы можно в различных форматах, но пока присутствует поддержка формата Atom/XML

7 причин, почему интеграция стала приятной

  1. Платформа автоматически генерирует REST интерфейс, не нужно никакого программирования;
  2. Прозрачная интеграция прикладного решения с интернет-сайтами, мобильными приложениями и прочими системами;
  3. Реализация сторонними средствами дополнительной функциональности без изменения конфигурации;
  4. Загрузка данных в прикладное решение и выгрузка данных из него;
  5. Управление составом объектов метаданных, доступных через стандартный сервис OData API на лету;
  6. Ограничения прав доступа пользователей также действительны для запросов OData;
  7. Универсальность и кроссплатформенность.

 

Подготовительный этап

  1. Версия платформы «1С:Предприятие 8»  не ниже 8.3.5.1068;
  2. Режим совместимости конфигурации — "Не использовать" или не ниже "Версия 8.3.5";
  3. Включен флаг "Публиковать стандартный интерфейс OData";
  4. Определить состав объектов метаданных, доступных через стандартный сервис OData;
  5. Проверить работоспособность сервиса по ссылкам:
    http://{АдресВебСервера}/{ИмяПубликации}/odata/standard.odata;
    http://{АдресВебСервера}/{ИмяПубликации}/odata/standard.odata/$metadata;
  6. Посмотреть, проходит ли валидацию описание сервиса по ссылке.

Возникают трудности? Посмотрите видео:

 

Если возникают проблемы с валидацией, нужно обратиться по адресу https://partners.v8.1c.ru/forum/. Использовать веб-сервис все равно можно, даже если валидация не удалась.

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

 

Интеграция с Excel

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

  1. Нужно настроить внешний источник данных в Excel

    Подключение из Excel к «1С:Предприятие 8»

  2. Настроить подключение к REST сервису «1С:Предприятие 8»
    Вводим ссылку на описание сервиса OData, логин и пароль
  3. Отмечаем нужные таблицы, в примере "Справочник.Валюты" и "РегистрСведений.КурсыВалют"
    Отмечаем нужные данные 
  4. Импортируем данные из «1С:Предприятие 8»
    Импортируем данные из «1С:Предприятие 8» 

Для получения детальной информации посмотрите видео:


Интеграция с .NET системами

Ни для кого не секрет, что появляется множество новых систем, с которыми нужно интегрироваться. На живом примере видел, что связывание систем - очень долгий и сложный процесс. Почему бы его не упростить? Сделаем программу на c# (Windows Forms Application), которая будет выводить курсы валют. Рассмотрим поэтапно:

  1. необходимый инструментарий: Microsoft Visual Studio (в примере используется Visual Studio Community 2015), DataSvcUtil.exe (обычно идет вместе с Visual Studio Community 2015);
  2. сохраним описание REST сервиса в файл metadata.csdl;
  3. с помощью утилиты DataSvcUtil.exe сформируем прокси класс, которые будет делать всю работу по взаимодействию с REST сервисом «1С:Предприятие 8». Вот так выглядит командная строка:
    C:\Users\Designer>"C:\Program Files (x86)\Microsoft WCF Data Services\5.6.4\bin\tools\DataSvcUtil.exe" /in:D:\Public_OData\metadata.csdl /out:D:\Public_Odata\metadata.cs /version:3.0;
  4. создаем проект Windows Forms Application
    Создаем проект Windows Forms Application 
  5. добавляем в проект прокси класс metadata.cs;
  6. в файле App.config пропишем параметры доступа к REST сервису:
    <connectionStrings>
        <add name="ProductionOData" connectionString="http://wall-e.ktc.local/dt/odata/standard.odata" />
        <add name="UserOData" connectionString="username" />
        <add name="PasswordOData" connectionString="password" />
    </connectionStrings>
    
  7. добавим необходимые References в проект
    Необходимые References 
  8. добавим на форму DataGridView и настроим
    Добавляем DataGridView 
  9. при загрузке формы добавим код для получения курсов валют из REST сервиса:
    // Получаем ссылку на REST сервис
    Uri serviceRoot = new Uri(ConfigurationManager.ConnectionStrings["ProductionOData"].ConnectionString);

    // Инициализируем сервис
    EnterpriseV8 V8Base = new EnterpriseV8(serviceRoot);

    // Задаем пользователя и пароль в «1С:Предприятие 8»
    V8Base.Credentials = new NetworkCredential(ConfigurationManager.ConnectionStrings["UserOData"].ConnectionString,
        ConfigurationManager.ConnectionStrings["PasswordOData"].ConnectionString);

    // Получаем список значений справочника валюты
    List<Catalog_Валюты> currencyCatalog = new List<Catalog_Валюты>();
    IEnumerable<Catalog_Валюты> currencyResponse = V8Base.Catalog_Валюты.Execute();
    foreach (var item in currencyResponse)
    {
        currencyCatalog.Add(item);
    }

    // Выводим курсы валют в dataGridView, подставляя Description из списка значений справочника валют
    IEnumerable<InformationRegister_КурсыВалют> coursesResponse = V8Base.InformationRegister_КурсыВалют.Execute();
    foreach (var item in coursesResponse)
    {
        string[] record =
            {
                item.Period.ToString(),
                currencyCatalog.Find(x => x.Ref_Key == item.Валюта_Key).Description,
                item.Курс.ToString()
            };
        dataGridView2.Rows.Add(record);
    }
  10. Запускаем на выполнение и любуемся
    Результат выполнения 
Для получения детальной информации посмотрите видео:
 

Интеграция с системами на базе Android

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

  1. решения для увеличения продаж;
  2. вся информация о вашей компании в смартфоне клиентов;
  3. важные показатели бизнеса всегда под рукой;
  4. улучшение качества бизнес-процессов;
  5. продвижение своего приложения позволяет компании повысить собственный имидж.
Чем native приложение лучше 1С мобильного приложения? Native приложение позволяет поддерживать высокую производительность, обрабатывать больше данных на стороне клиента, нет очень жестких ограничений, как при разработке 1С приложения, а самое главное среда разработки для Android развивается в разы быстрее. Из личного опыта, внедрение мобильного приложения в систему логистики, по доставке товаров и приема оплаты от клиентов, позволило обрабатывать в десятки раз больше заказов без ошибок и недоездов. Показательно, что в сезон продаж рост был четырёхкратный и система отработала безотказно.
Сделаем мобильное приложение Android, которое будет выводить курсы валют. Рассмотрим поэтапно: 
  1. необходимый инструментарий: Eclipse JAVA (создание прокси класса для взаимодействия с REST сервисом «1С:Предприятие 8»), библиотеки restlet.org (JAVA SE, Android) и Android Studio для создания приложения;
  2. создаем новый проект в Eclipse -> Java Project. Добавляем необходимые внешние библиотеки restlet.org (JAVA SE): 
    • org.restlet.jar
    • org.restlet.ext.odata.jar
    • org.restlet.ext.freemarker.jar
    • org.restlet.ext.atom.jar
    • org.restlet.ext.xml.jar
    • org.freemarker_2.3\org.freemarker.jar
  3. к сожалению, библиотека org.restlet.ext.odata.jar не умеет создавать прокси классы из файлов *.csdl и REST сервисов, где необходима авторизация. Покопавшись в исходниках Restlet, добавил возможность прохождения авторизации REST и дальнейшей генерации прокси классов, новая версия библиотеки есть в архиве в конце статьи. Официально, пока не известно когда мои изменения попадут в основную ветку Restlet, обсуждение этой задачи здесь;
  4. добавим код формирования прокси классов:
    import java.net.URI;
    
    import org.restlet.data.ChallengeResponse;
    import org.restlet.data.ChallengeScheme;
    import org.restlet.data.Reference;
    import org.restlet.ext.odata.Generator;
    
    public class Main {
         
        public static void main(String[] arg) throws Exception
        {
            String serviceURL = "http://wall-e.ktc.local/dt/odata/standard.odata";
            Generator ODataGen = new Generator(new Reference(URI.create(serviceURL)), "ODataConnector");
            ODataGen.setCredentials(new ChallengeResponse(ChallengeScheme.HTTP_BASIC, "username", "password"));
            ODataGen.generate("D:\\Public_OData\\eclipse\\proxy_generated\\");
    
        }
    }
    
  5. запускаем, через несколько мгновений классы должны быть готовы;
Возникают трудности? Посмотрите видео:

  1. создаем новый проект в Android Studio, заполняем все необходимые поля; 
  2. переходим в каталог проекта, далее в директорию mobile\libs\, копируем внешние библиотеки restlet.org (Android):
    • org.restlet.jar
    • org.restlet.ext.odata.jar
    • org.restlet.ext.atom.jar
    • org.restlet.ext.xml.jar
      Копируем библиотеки Restlet в проект
  3. возвращаемся в корень проекта и переходим в mobile\src\main\res\layout\, добавляем описание layout item.xml, который будем использовать для вывода данных в gridView. Описание item.xml:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <TextView
            android:id="@+id/tvText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:minHeight="40dp"
            android:textSize="20sp"
            android:text="">
        </TextView>
    </LinearLayout>
    
  4. в файл mobile\src\main\AndroidManifest.xml добавляем строки, связанные с доступом приложения (перед блоком <application></application>):
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <permission android:name="android.permission.INTERNET"/>
    
  5. в файл \mobile\build.gradle добавляем строки связанные с внешними библиотеками restlet.org (Android), чтобы включить их сборку проекта:
    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        wearApp project(':wear')
        compile 'com.android.support:appcompat-v7:23.0.1'
        compile 'com.google.android.gms:play-services:7.8.0'
        compile files('libs/org.restlet.ext.odata.jar')
        compile files('libs/org.restlet.ext.xml.jar')
        compile files('libs/org.restlet.jar')
        compile files('libs/org.restlet.ext.atom.jar')
    }
    
  6. создаем папку ProxyClass в \mobile\src\main\java и копируем в нее файлы созданные на 5 шаге:
    Копируем прокси класс в проект
  7. добавляем в файл StandardOdataService.java, запись:
    package ProxyClass;
    
  8. во все файлы в папке \mobile\src\main\java\ProxyClass\standardodata добавим следующее:
    package ProxyClass.standardodata;
    
  9. к сожалению, библиотека Restlet не знает такой тип, как Type="Collection(Edm.String)" и формирует прокси класс с ошибкой, создавая неизвестный тип CollectionStringEdm. Переходим в файл \mobile\src\main\java\ProxyClass\standardodata\TypeDescription.java и заменяем CollectionStringEdm на List<String>;
  10. исправляем ошибки namespace'ов в файлах прокси класса;
  11. в Android Studio на активити добавляем gridView и настраиваем:
    Добавляем gridView и настраиваем 
  12. вот так выглядит процедура при создании:
     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
    
            setContentView(R.layout.activity_main);
    
            /* Инициализируем OData сервис */
            StandardOdataService service = new StandardOdataService();
            service.setCredentials(new ChallengeResponse(ChallengeScheme.HTTP_BASIC, "username", "password"));
    
            /* Создаем соответствие межу GUID'ом валюты и ее Description */
            Map<String, String> hashTable = new HashMap<String, String>();
            Query<Catalog_Валюты> currencyCatalog = service.createCatalog_ВалютыQuery("/Catalog_Валюты");
            for (Catalog_Валюты data : currencyCatalog) {
                hashTable.put(data.getRef_key(), data.getDescription());
            }
    
            /* Подготавливаем заголовки таблицы */
            List<String> listData = new Vector<String>();
            listData.add("Период");
            listData.add("Валюта");
            listData.add("Курс");
    
            /* Получаем курсы валют, СрезПоследних(), и добавляем в список для вывода * подставляем Description из соответствия валют */
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
            Query<InformationRegister_КурсыВалют> coursesResponse = service.createInformationRegister_КурсыВалютQuery("/InformationRegister_КурсыВалют/SliceLast");
            for (InformationRegister_КурсыВалют data : coursesResponse) {
                listData.add( formatter.format(data.getPeriod()));
                listData.add( hashTable.get(data.getВалюта_key()));
                listData.add( Double.toString(data.getКурс()));
            }
    
            /* Выводим данные на активити */
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.item, R.id.tvText, listData);
            GridView dataGridView = (GridView)findViewById(R.id.gridView);
            dataGridView.setAdapter(adapter);
    
        }
    

Возникают трудности? Видео 6-17 шагов:


Послесловие

Интегрироваться с «1С:Предприятие 8» стало на порядок проще, надеюсь информация будет полезна сообществу. 

Статья в личном блоге

Автоматически генерируемый REST интерфейс прикладных решений 1С:Предприятия

Средства работы с JSON

Расширение поддержки протокола OData


OData REST Android .NET Proxy Интеграция

См. также

Экстрактор данных 1С в BI - выгрузка данных из 1С в BI-аналитику

Внешние источники данных Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование Конфигурации 1cv8 Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

15.11.2022    15666    14    SQV0    47    

34

Перенос данных из Парус 8 в ЗГУ 3

Зарплата Внешние источники данных Бюджетный учет Системный администратор Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    23058    19    1    

22

SALE! 25%

Что нам стоит бота построить? Нарисуем - будет жить! Графический конструктор телеграм-ботов/Telegram

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

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

13200 9900 руб.

27.12.2021    35003    89    161    

185

"Штрихкод-информер" 1С (штрих-код-чекер) - мобильный ТСД и прайс-чекер в смартфоне

Мобильная разработка Сканер штрих-кода Терминал сбора данных Управляемые формы Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

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

2880 руб.

03.12.2018    56306    174    103    

167

Программа "Мобильный ТСД сканер для 1С" - приложение для телефона для инвентаризации и сбора штрихкодов для iOS и Android

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный ТСД (терминал сбора данных) сканер для 1С для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    93430    537    186    

304

Перенос данных из Парус 7.хх в ЗГУ ред.3

Внешние источники данных Зарплата Бюджетный учет Программист Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 7.хх учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

24000 руб.

24.04.2017    49226    97    165    

87
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vano-ekt 124 01.10.15 21:52 Сейчас в теме
но пока присутствует поддержка формата Atom/XML.

полгода как REST доступен по JSON
paulsinev; +1 Ответить
2. pbazeliuk 1964 01.10.15 22:06 Сейчас в теме
(1) vano-ekt, поддержка, именно для OData, в релизах доступных простым смертным появилась с 23.07.15 (8.3.6.2152) , но конфигурации пока отстают, потому оставлю так как есть. В конце статьи есть ссылка «Средства работы с JSON».
3. orfos 215 01.10.15 22:11 Сейчас в теме
Хорошая статья, спасибо
pvlunegov; +1 Ответить
4. DoctorRoza 02.10.15 07:14 Сейчас в теме
5. Жолтокнижниг 259 02.10.15 09:30 Сейчас в теме
Не полная поддержка OData, ждемс 8.3.8. А из примеров еще WEB-интеграции не хватает.
6. infosoft-v 884 02.10.15 09:50 Сейчас в теме
Спасибо вам за такое большое количество примеров. Они простые, но для начала самое оно.
7. kwazi 635 02.10.15 09:53 Сейчас в теме
Отличная статья, но не забывайте читать лицензионное соглашение. Надо иметь лицензии 1С:предприятие на количество одновременных соединений по данному каналу, хотя само соединение лицензии не требует. Пользоваться таким сервисом могут только сотрудники компании владельца ПО. Если предполагается использование сервиса сторонними контрагентами, надо заключать с ними договор субаренды. Жесть короче...
Glebis; Maxis; +2 Ответить
12. FireFox_Manager 17.03.16 20:46 Сейчас в теме
(7) kwazi,
Надо иметь лицензии 1С:предприятие на количество одновременных соединений по данному каналу.. Если предполагается использование сервиса сторонними контрагентами, надо заключать с ними договор субаренды.

Интересно, как рассчитать нужное количество ключей? Допустим, мы разработали для Android приложеие, которое позволяет сделать заказ с мобильного телефона. Как узнать - сколько пользователей начнут одновременно коннектиться к базе и сколько времени занимает один коннект? И когда он отвалится и освободит лицензию? Уравнение с двумя неизвестными..
Не делает ли это всю затею абсолютно бессмысленной? Держать "про запас" много лицензий - слишком дорого, мало лицензий - значит "обломать" человека, который скачал приложение и не смог подключиться к базе. Или я чего-то не понимаю и в этом решении есть смысл?
13. pbazeliuk 1964 18.03.16 03:12 Сейчас в теме
(12) FireFox_Manager, прочитал ваш комментарий, не смог ответить в двух словах - написал статью. Надеюсь статья утром пройдет модерацию, http://infostart.ru/public/503059/
8. baracuda 2 02.10.15 10:12 Сейчас в теме
Статья зачем, тянуть аналитику самое то. Да и с сайтами синхронизация мягкая получается.
9. logarifm 1120 06.10.15 10:15 Сейчас в теме
Все отлично, но думаю без программиста всеравно не обойтись даже если настроить Ексель.
Я думаю это равносильно тому же, что дать консоль запрососов и сказать вот вам инструмент и тащите себе таблички какие угодно.

10. pbazeliuk 1964 06.10.15 12:58 Сейчас в теме
(9) logarifm, есть разные люди, особенно бизнес аналитики. С консолью запросов можно положить базу при неправильных соединениях :)
11. motrl 07.10.15 08:19 Сейчас в теме
(10) Можно написать отдельный web-service с фильтрацией и ссылать на него, тогда и 1с наружу вытаскивать не надо будет.
14. FireFox_Manager 20.03.16 11:08 Сейчас в теме
Спасибо за ответ. Статья про RabbitMQ для меня сложновата, к сожалению.
Понял только, что о протоколе OData следует забыть. Расплата за его использование - тысячи зависших соединений, которые устраняются только рестартом службы 1С.
15. virtex3 20 26.02.17 10:08 Сейчас в теме
(14) в 8.3.9 можно использовать один и тот же сеанс http://its.1c.ru/db/v839doc#bookmark:adm:TI000000726
ну и вообще можно настроить автоматическое закрытие сессии по неиспользованию.

Я так вообще, сохраняю идентификатор сессии на стороне WEB сервера в переменную $_SERVER['IBSession'] (для PHP) и если сессия не отвалилась по таймауту, она используется во всех последующих запросах к WEB серверу. Если же отвалилась по истечению времени из-за неиспользования, то создается новая сессия и идентификатор сохраняется опять в серверную переменную.

В итоге сотни пользователей висит на одной лицензии и соединения не подвисаются.
16. pbazeliuk 1964 26.02.17 16:59 Сейчас в теме
(15) Лицензии это не такая и большая проблема, у себя используем что-то похожее (прокси-балансировщик).
17. virtex3 20 26.02.17 17:16 Сейчас в теме
(16) покупать отдельную лицензию для пользователя, который только отчеты смотрит - расточительство )))
А так сидят менеджеры, смотрят данные, если надо, то средствами ODATA даже счета формируют )))

20 человек таких и уже какая экономия на лицензиях.

По сути лицензия теперь нужна только тем, кто манипулирует данными и постоянно их вносит. А тем кто только смотрит - можно пересадить на ODATA и HTTP-сервисы.
18. KAV2 156 04.03.19 11:04 Сейчас в теме
Допустим мы написали дашбоард который получает данные из 1С через odata (или веб сервис). Как в этом случае правильно делать аутентификацию пользователя от имени которого будет выполняться доступ к данным 1С? выходит, что только остается хардкодить пароль в коде?
Если бы можно было использовать openID для этого, но вот что написано про openID в файле V8AddDoc.htm:
Примечание 1. Данный способ аутентификации не применим при обращении к веб-сервисам, опубликованным из «1С:Предприятия».
19. pvlunegov 158 09.09.20 13:23 Сейчас в теме
Цитата: "Покопавшись в исходниках Restlet, добавил возможность прохождения авторизации REST и дальнейшей генерации прокси классов, новая версия библиотеки есть в архиве в конце статьи."
Вопрос: "Где новая версия библиотеки?"

Цитата: "Добавляем необходимые внешние библиотеки restlet.org (JAVA SE): ... org.restlet.ext.freemarker.jar"
Вопрос: "Со времени написания статьи данные библиотеки попали в артефакты Mаven (Можно скачать на сайте https://restlet.talend.com/downloads/current/). Порылся там, нашел артефакты которые описаны в статье но не нашел данный артефакт (в цитате). Подскажите где его найти".
20. pvlunegov 158 09.09.20 13:25 Сейчас в теме
(19) Цитата: "7. переходим в каталог проекта, далее в директорию mobile\libs\, копируем внешние библиотеки restlet.org (Android):
org.restlet.jar
org.restlet.ext.odata.jar
org.restlet.ext.atom.jar
org.restlet.ext.xml.jar"

Вопрос: "в пункте 7 не упоминается библиотека org.restlet.ext.freemarker.jar Отсюда я сделал вывод что данная библиотека не используется в вашем проекте, который описан в статье, хотя ранее по тексту статьи она упоминается. Просьба убрать ее из статьи, чтобы не вводить в заблуждение".
21. pvlunegov 158 09.09.20 13:37 Сейчас в теме
Пункты 4-5 не ясны. Мы же создаем мобильное приложение, а в пункте 5 вы создаете класс для запуска в Windows.
Не понятно как выполнить пункт 6 - запуск данного класса.
Данное приложение создано для Android, класс созданный в п.5 не будет выполнятся - будет ошибка.
22. pvlunegov 158 09.09.20 14:11 Сейчас в теме
Просьба предоставить ссылки на документацию или примеры, где описан пункт 5.
Я порылся в документации https://restlet.talend.com/documentation/user-guide/2.4/introduction/first-steps/first-application
и не нашел в ней генерации кода классов, как описано в п.5.
п. 5 выполнить не получается, так как код устарел, вот этот импорт не работает:

import org.restlet.ext.odata.Generator;

поэтому п.5 выполнить не удается и далее статья не рабочая.

Просьба актуализировать код в статье!
23. pvlunegov 158 10.09.20 07:42 Сейчас в теме
Порылся в библиотеке org.restlet.ext.odata.jar
Она нерабочая, так как в официальной документации к библиотеке https://restlet.talend.com/documentation/user-guide/2.4/extensions/odata/tutorial
предлагается, для п.5 в данной статье, выполнить следующий код в командной строке:

java -jar org.restlet.ext.odata.jar http://restlet.cloudapp.net/TestAssociationOneToOne.svc/ ~/workspace/testADO

сайт cloudapp.net не доступен (видимо нерабочий с некоторого времени) поэтому само расширение недоступно к использованию.
В самом пункте 5 так же используется не рабочий код.

String serviceURL = "http://wall-e.ktc.local/dt/odata/standard.odata";
Generator ODataGen = new Generator(new Reference(URI.create(serviceURL)), "ODataConnector");
ODataGen.setCredentials(new ChallengeResponse(ChallengeScheme.HTTP_BASIC, "username", "password"));
ODataGen.generate("D:\\Public_OData\\eclipse\\proxy_generated\\");

В коде выше, адрес serviceURL недоступен (сайт нерабочий)
В самой библиотеке, в версии 3.0 вообще нет класса OData
В версии 2.0 и 2.5 есть класс OData но в данном классе нет функций setCredentials и generate (в версии 2.0)

Таким образом, я считаю что рассмотренный в статье подход к созданию приложения для Android не рабочий, необходимо использовать другие библиотеки.
Chizhik2020; +1 Ответить
Оставьте свое сообщение