Comments 92
Добрый день. В технологии Внешних компонент заложен возврат объектов и передача объектов в параметрах ВК. Но пока этого сделать нельзя. Приходится возвращать строку и из неё создавать ВК
//1С при передаче по ссылке свойства ВК Список.Current

// при выходе из метода присваивает  Список.Current значение переданное изначально
// Поэтому помечаем входной параметр как Знач

//Или же делать так, если методы изменить нельзя 
// То нужно присвоить значение переменной и вызвать метод передав в параметрах эту переменную

//Стр=Список.Current; 
//Зазача=ъ(Стр);

Функция Ъ(знач Ссылка) 
     
    // Создаем объект по ссылке полученной из методов .Net классов

    //Физически это строка ёЁ<Ьъ>№_%)Э?&2 содержащее 12 символов для отделения их от других строк

    //и индекс в спике исполуемых объектов на стороне .Net

    
    рез = Новый("AddIn.NetObjectToNative.NetObjectToNative");
    // И установим ссылку

    рез.УстановитьСсылку(Ссылка);    
    возврат  рез
КонецФункции// СоздатьОбъектПоСсылке()


Так при передаче объекта в параметрах приходится получать строковую ссылку

СборкаSqlClient=ъ(Врап.Сборка("System.Data.SqlClient.dll")); 
    SqlConnection=ъ(СборкаSqlClient.GetType("System.Data.SqlClient.SqlConnection"));
    SqlCommand=ъ(СборкаSqlClient.GetType("System.Data.SqlClient.SqlCommand")); 
    
    connection =ъ(Врап.Новый(SqlConnection.ПолучитьСсылку(),ConnectionString));
    connection.Open();
    


    ТекстЗапроса = "Select Номенклатура.DESCR Наименование  From sc84 Номенклатура where DESCR Like '%'+@Строка+'%' 
    |order by Номенклатура.DESCR";
    
    
    command = ъ(Врап.Новый(SqlCommand.ПолучитьСсылку(),ТекстЗапроса,connection.ПолучитьСсылку()));
    
    Parameters=ъ(command.Parameters);
    Parameters.AddWithValue("@Строка", "ДСП");
    dr = ъ(command.ExecuteReader());
    
    Пока dr.Read() Цикл
        Сообщить(dr.get_Item("Наименование"));
    КонецЦикла;


Я так понимаю вы имеете ввиду вашу реализацию работы с внешними компонентами, причем если мне не изменяет память на С#, что как бы нам напоминает что технология внешних компонент на NativeAPI ориентирована на C++, причем на кроссплатформенный C++.


int GetIntegerFromVariant(tVariant* arg)
{
    if (TV_VT(arg) == VTYPE_I2)
        return TV_I2(arg);
    if (TV_VT(arg) == VTYPE_I4)
        return TV_I4(arg);

    throw ArgumentTypeException(std::string("Invalid argument type"));
}

я бы ссылался на официальную документацию


  • для COM компонент — у нас есть тип VTYPE_DISPATCH
  • для кроссплаторфменной разработки мы несколько ограничены в типах tVariant

https://its.1c.ru/db/metodtorg#content:3221:hdoc:_toc235443219


Но я все также не пойму что вы хотите ?


Вот так например ?


ОбъектМойКомпоненты = ИнициализироватьОбъектКомпоненты();
_справочникСсылка = ПолучитьСсылкуНаСпровочникВВидеОбъекта();
ОбъектМойКомпоненты.ОбработатьСсылкуНаСправочник(_справочникСсылка);

P.S. sc84 — говорит мне об использовании интеграции с 1С 7.7 прямыми запросами ;-). Всем известно что такой способ интеграции должен писаться с помощью других средств. ;-) 1С++ называется.

Из 8 ки и из под линукса? 1С, Linux, Excel, Word, OpenXML и Net Core

Да это не суть. В Native API есть структура

struct _tVariant
        {
            _ANONYMOUS_UNION union
            {
               .......
            IID IDVal;
            struct _tVariant *pvarVal;
            struct tm      tmVal;
            _ANONYMOUS_STRUCT struct
            {
                void* pInterfaceVal;
               IID InterfaceID;
        }
        __VARIANT_NAME_2/*iface*/;
            _ANONYMOUS_STRUCT struct
            {
                char* pstrVal;
        uint32_t strLen; //count of bytes
    }
    __VARIANT_NAME_3/*str*/;
            _ANONYMOUS_STRUCT struct
            {
                WCHAR_T* pwstrVal;
    uint32_t wstrLen; //count of symbol
    /        } __VARIANT_NAME_4/*wstr*/;
        } __VARIANT_NAME_1;
        uint32_t cbElements;    //Dimension for an one-dimensional array in pvarVal
    TYPEVAR vt;
    };



В которой можно использовать
void* pInterfaceVal;
IID InterfaceID;

А в vt; указать, что это ВК.

Кстати в версии 8.3.10 планируется передача в параметрах двоичных данных
Раньше при передаче двоичных данных между 1С: Предприятием и внешней компонентой существовал ряд ограничений. Например, передать двоичные данные во внешнюю компоненту было нельзя, а при работе в веб-клиенте обмен двоичными данными был вообще невозможен.

Теперь мы убираем все эти ограничения. Обмен двоичными данными вы можете осуществлять в обе стороны и даже в веб-клиенте.

На работе существующих внешних компонент это никак не отразится. Они будут работать, как и раньше. А вот во вновь создаваемых компонентах вы сможете теперь в качестве параметров передавать объекты ДвоичныеДанные


https://wonderland.v8.1c.ru/blog/rasshirenie-funktsionalnosti-raboty-s-dvoichnymi-dannymi/

Я подписан — видел.


Мы сейчас сделали (со всякими BDD и CI-CD) вот такое.


image


И вроде как сложные типы коллеги победили. Но там CMake и C(C++). Естественно кросс-платформенное — это кстати к вопросу о интеграции.через NativeAPI. На GIF'ке — автоматический сценарий по Gherkin с кнопконажималкой.


Теперь уже и мне стало интересно — как они это сделали, уточню напишу.

Могу посмотреть какие есть в .Net Core. В большом есть. У меня к сожалению сейчас нет Linux но должно компилироваться. Но например взял 8.3.9 и скомпилировал по 64. Там вылетает ошибка, хотя если сделать свое 64 приложение то все нормально работает. Попробую откомпилировать по VS 2013
http://rsdn.org/forum/dotnet/6538046.1
Что касается WebSocket то в .Net Core они появятся осенью в 1.1
.NET Core Roadmap
Там хорошая технология SignalR

1C Messenger для отправки сообщений, файлов и обмена данными между пользователями 1С, вэб страницы, мобильными приложениями а ля Skype, WhatsApp

.NET Core Roadmap

Уже сейчас много кроссплатформенного под .Net Core
Например RSS Каналы

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


Посмотрите комментарий мой что-ли в указанной статье — мы начинали с C# и в продуктиве отказались.


Начиналось все с вот таких экспериментов https://github.com/allustin/one-c-connectors


Затем были статьи mini_root


http://infostart.ru/public/21077/
http://infostart.ru/public/21506/
http://infostart.ru/public/22184/
http://infostart.ru/public/59961/


Потом была история с курсом на 8 часов для 1С-ников https://silverbulleters.timepad.ru/event/131122/


и игра в кролика между любыми приложениями https://bitbucket.org/alexey_yakimovich/


и доклад для архитекторов https://www.youtube.com/watch?v=R1HQgOHEiME
чтобы не продолбать Топологию роутинга.


И после этого мы отказались от C# перейдя на C++ в продуктиве — это эффективней. Естественно с плагинами Shovel и Federate на самом RabbitMQ.


Бизнес-эффект если кто не в курсе, это когда любое событие в федеральное сети доставляется в центральные BI и остальные системы в течении 15 секунд и не более.

А продуктивней в чем? Там по сути то задержки это 1С да посылка сообщений на сам сервер. При этом до сих пор нет асинхронных методов.

Что касается возможности NET в части кроссплатформенности — меня если честно подзадолбала его поддержка в oscript.io, поэтому C++

Ну он вышел то совсем недавно. Но С++ нужно писать ВК. Здесь можно использовать код. Мало того скоро напишу для Net Core аналог .NET(C#) для 1С. Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия

Сейчас проверил такой код

var compilation = Microsoft.CodeAnalysis.CSharp.CSharpCompilation.Create("a")
    .WithOptions(new Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions(Microsoft.CodeAnalysis.OutputKind.DynamicallyLinkedLibrary))
    .AddReferences(
        Microsoft.CodeAnalysis.MetadataReference.CreateFromFile(typeof(object).GetTypeInfo().Assembly.Location))
        .AddSyntaxTrees(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree.ParseText(
        @"
using System;

public  class C
{
  
     public  C(){}
    public string  M()
    {
        return ""Hello Roslyn."";
    }
}"));

            var fileName = @"d:\NetStandart\TestCoreNetApp\src\TestCoreNetApp\bin\Debug\netcoreapp1.0\a.dll";

            compilation.Emit(fileName);

            var a = System.Runtime.Loader.AssemblyLoadContext.Default.LoadFromAssemblyPath(fileName);


            Type тип = a.GetType("C");
            var obj = Activator.CreateInstance(тип);

            var res = тип.GetMethod("M").Invoke(obj, null);
            Console.WriteLine(res.ToString());
Очень хочу когда-нибудь увидеть встроенный HTTP сервер как класс в технологической платформе.
Текущая необходимость использовать сторонние HTTP сервере (Apache, IIS) для публикации HTTP сервисов мне не нравится. Есть очень простые задачи по интеграции при реализации которых уходит на порядок больше времени для настройки окружения, чем на саму реализацию. Да и с точки зрения секьюрости открывать дефолтно настроенный ( а большинстве случаев так и есть, настраивается по мануалам без особого понимания) HTTP сервер — опасно.

Как я понял из описания встроенный веб сервер это новый компонент «кластера». Кластер серверов же используется только для клиент-серверных ИБ, и на его лицензирование нужен дорогостоящий ключ. Если это так, то мне эта новая фича совсем не нравится. Я подразумевал именно как класс технологической платформы. Или я что-то путаю?
А как Вы хотели? Главбух МарьВанна запускает на своём рабочем месте 1с-ку (желательно базовую, за 3 тыщи), а все остальные менеджеры забивают данные через браузер? Не покупая при этом лицензии даже для сетевой версии?
Нет 1С никогда на это не пойдёт…
Для базовых версий вы не можете менять конфигурацию.
А если говорим о профессиональных версиях то сейчас же может, только нужно дополнительного окружение в виде стороннего веб сервера.
Автор статьи лукавит — для получения данных ИЗ 1С требуется настройка дополнительного софта (web-сервера apache).
А у меня IIS/ Но тогда еще и MS SQL и прочие базы. Много чего нужно настраивать. Для этого существуют сис админы
Админы… Вот в этом и есть все почти все программисты 1С. Мало кто из них может настроить что-нибудь за пределами платформы и конфигурации.
К сожалению приходится не только программировать (на разных языках), но еще и заниматься администрированием. Это не правильно.
Основной закон развития капитализма (эволюции), это увеличение специализации.
Как раз наоборот. Они даже основы бухучета знают.
Ну и по моей практике как раз наоборот сисадмины почему-то (может в силу лени) часто не могут настроить IIS приходится самому делать. А мне за это не платят :(
Да, вы правы — я забыл упомянуть, что при работе через OData (ведь вы о нем?) нужно настроить Apache или IIS (правда, настройки минимальны).
Тем не менее, быть может опишете процесс настройки? Интересует связка Linux(Ubuntu/Centos) и apache?
Если конечно SMM-бюджет для хабра уже не исчерпан…
Когда же появятся расширения(плагины) не для конфигураций, а для конфигуратора?
Сколько же можно уже игнорировать просьбы разработчиков?
Сделайте уже нормальный OpenConf/Снегопат.
Мы двигаемся в этом направлении: Enterprise Development Tools
В новую среду разработки заложена потенциальная возможность расширения. Используя прикладной интерфейс и технологию подключаемых модулей (плагинов) мы планируем предоставить вам возможность расширять имеющиеся инструменты разработки.

Это, правда, не конфигуратор, но его замена в будущем.
Прекрасное далёко, не будь ко мне жестоко,
Не будь ко мне жестоко, жестоко не будь.
От чистого истока в прекрасное далёко,
В прекрасное далёко я начинаю путь
Недавно узнал про строенные возможности доступа по REST — поначалу идея выглядела очень удобной!

Но на деле при выборке документов (например счёта на оплату) повсюду вижу ссылки на другие сущности типа: 35d1f6e5-289b-11e6-8ba4-e03f49b16074. Приходится делать много дополнительных REST запросов, чтобы собрать полную информацию о документе. Возможно, есть какая-то опция «загрузить все связанные объекты по ссылкам на глубину N»?

А вообще, REST уже не модно, даёшь в следующей версии 1С встроенный GraphQL!

А вот не надо это называть REST — это OData протокол, что как бы несколько шире чем REST.


А вы хотите сделать SELECT FROM TOJSON? Зачем ?


Если вам понадобились ссылки на связанные объекты — явно вы интегрируете данные в свою систему, где также хотите реализовать бизнес-логику. То есть "сделать странное"...


Что касается ODATA и автоматического REST интерфейса по метаданным — напомню, уже в публичном доступе новая функциональность http://v8.1c.ru/o7/201508odata/index.htm

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

Странно это или нет? Да, можно было бы программировать бизнес логику непосредственно внутри 1С (платформа гибкая, мощная), но мы решили «снаружи». 1С у нас выступает как «микросервис» для бухгалтерской отчётности. Вполне рабочий вариант, я вам скажу! И по технологиям более привлекательный, т.к. мы не ограничены одним языком программирования или платформой.
Запрашиваемая вами функциональность реализована в платформе 8.3.9.
Из документации по 8.3.9 (8.3.9. уже доступна в тестовом варианте):
$expand
Данный параметр позволяет вместе с результатами основного запроса получать значения связанных сущностей, что позволит не запрашивать каждую сущность отдельно.
Молодцы! Но год назад не работало

Linq To ODATA

Да есть возможность в ODATA сразу подгружать нужные свойства
var result = (from Тестовый in context.Catalog_Тестовый.Expand("РеквизитСправочник") 
                          where Тестовый.Ref_Key == new Guid("aada18ad-5308-11e5-8e05-c86000c70663") 
                          select Тестовый).SingleOrDefault();


Но пока в 1С Параметр $expand не поддерживается"
Пытались пользоваться odata через Json. Вообще не пашет.

И хотя написано в заголовках написана одна версия odata, ответы присылает по другой.

У кого нибудь получилось состыковаться и изменить данные в 1с
Мы пытались адаптировать готовую либу для odata под 1С. Сразу оно естественно не заработало.

Столкнулись с тем, что когда кидаешь в 1С запрос в формате json с заголовками «хочу-json» получаешь ответ в xml. Добавив url $format=application/json получили наконец json.

На этом этапе мы смогли получать данные от туда норм.

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

интеграция с web языками, с линукса
В metadata.js есть двунаправленная шина данных — хоть в браузере, хоть под nodejs. К ней можно подключить 1С-ные и не 1С-ные базы разной структуры. Вместе с библиотекой интеграции, получается почти честная CRDT для 1С.
> Внешние источники данных – это прикладной объект конфигурации 1С, позволяющий взаимодействовать с любой ODBC-совместимой базой данных как на чтение, так и на запись.

Так сложилось, что последние лет 6 я занимаюсь сопровождением 1С под Linux (в качестве скорее сисадмина, чем разработчика), и постоянно сталкиваюсь с проблемами, что в стандартных конфигурациях вроде всё замечательно работает, но вдруг вылезает захардкоженное обращение к сущностям, отсутствующим у моих подопечных как класс — то штрихкод формируется прямым обращением к .dll (уже нет), то для формирования файлов отчётности в xml (!) требуется наличие Internet Explorer (по крайней мере было справедливо для УПП годичной давности), то путь к [файловому] хранилищу обязательно должен оканчиваться символом "\" (а у меня все пути оканчиваются "/")… вот теперь ещё и про «ODBC-совместимые базы данных» напомнили… с публикацией на web-сервере из Linux — вообще отдельная боль.
Хотелось бы узнать — есть ли, и если есть, то насколько приоритетна задача создания платформы полностью работоспособной без Windows?
> Внешние источники данных – это прикладной объект конфигурации 1С, позволяющий взаимодействовать с любой ODBC-совместимой базой данных как на чтение, так и на запись.

ODBC-драйвера есть и под Linux. Соответственно, внешние источники данных работают и под Linux.

Хотелось бы узнать — есть ли, и если есть, то насколько приоритетна задача создания платформы полностью работоспособной без Windows?

Задача в общем-то решена 1С. Есть много внедрений 1C на Linux. В нашем облачном сервере 1cfresh.com десятки серверов на Linux.
Если в каких-то конфигурациях что-то не работает на Linux — чиним.
Задача в общем-то решена 1С. Есть много внедрений 1C на Linux. В нашем облачном сервере 1cfresh.com десятки серверов на Linux.
Если в каких-то конфигурациях что-то не работает на Linux — чиним.

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


  1. Нет GUI-аналога оснастки "Администрирование серверов 1С Предприятия" — мне пришлось костылить собственный web-интерфейс для дёрганья командной строки на 1С-сервере.
  2. УПП содержит много элементов, жёстко ссылающихся на Windows-сущности. Я понимаю, что конфигурация устаревшая, что надо бы на ERP мигрировать, но вот миграция эта, в отличии от Бухгалтерии 2.0->3.0 или "Кадров" оценена только по лицензии в весьма ощутимую сумму денег, а не стоит забывать, что ещё и настройки все надо с нуля переписывать, что очень сильно демотивирует потребителя от такого решения (по сути — новое внедрение). Вот и приходится "грызть кактус", вынимая из сейфа ноутбук с Windows Home, когда приходит пора сдавать отчётность. Благо ещё не пришлось интегрировать в эту конфигурацию складское или производственное оборудование — обошлись обменами с внешними источниками.
Я написал два топика
1С Linux. Что не хватает по сравнению с Windows? InfoStart
1С Linux. Что не хватает по сравнению с Windows? Mista.ru

Но так и не получил внятного ответа. Меня прежде всего интересует что мне добавить, что бы моя разработка заинтересовала людей.
Чего не хватает в Linux по сравнению с Windows
главные недоработки в этом направлении на сегодня

У них есть недоработки, но вовсе не те, о которых вы написали.

1) Это не unix-way! Только командная строка, только хардкор! И не просите больше такую ересь :)

2) С 2006 года я стал участвовать в проектах на УПП на платформе Предприятие 8.0 и четко помню, что в то время, когда создавались нелюбимые вами связанные с Windows механизмы, никакого Linux-сервера даже в планах не было, не говоря уже про нативные клиенты, а следовательно не было необходимости что-либо делать кроссплатформенным. Рабочий (а не wine-симуляция) клиент появился относительно недавно, но слишком поздно. Не помню где точно я это прочитал (в инфописьме или в какой-то статье) и не могу привести ссылочку, но компания 1С после релиза рабочей версии ERP отказались от дальнейшего развития функциональности в УПП, только поддержка существующих наработок. Следовательно никакого глобального рефакторинга не будет.

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


  1. Ну не могу я дежурному специалисту техподдержки группы производственных предприятий давать рутовый (даже судоэрский) доступ к командной строке продакшн-сервера. Да и "не по Ваньке шапка" — тут нужен какой-то доступный и удобный механизм, позволяющий завершить зависшие сеансы (сеансы-зомби, которые проявляют фоновую активность, но клиентский интерфейс уже отвалился от графической оболочки) или выявить источник повышенной нагрузки на сервер. Пока для себя решил эту задачу как раз написанием собственного web-интерфейса, дёргающего команды на сервере, но это как-то по-колхозному смотрится.
  2. То, что УПП "похоронили" стало известно примерно через 6 месяцев после начала моего самого крупного внедрения и примерно через месяц после начала его ввода в эксплуатацию. Платформа 8.3 на тот момент обладала отвратительной стабильностью, а ERP была доступна только "для ознакомления", хотя на неё пообещали скидку при условии подписания контракта на внедрение с публичной оглаской. Да, понимаю, что стоило бы на раннем этапе "броситься в омут", но слишком уж высоки были риски и бизнес не согласился.
Все-таки не похоронили. УПП поддерживается, делается в т.ч. достаточно крупные доработки типа ЕГАИС и пилотного проекта ФСС
Для чего нужен рутовский пароль или право на sudo для запуска RAC-утилиты консольного администрирования кластера? Даже не нужно прямого доступа к продакшену. Главное, что бы RAS был поднят и нужные порты открыты.

Повторюсь — "… нужен какой-то доступный и удобный механизм..." — дежурный специалист (круглосуточный) имеет наименьший необходимый набор навыков для устранения текущих сбоев — если этих навыков не хватает, то он фиксирует внештатную ситуацию и дёргает следующий уровень, что стоит дополнительных денег и нервов. Способный продраться сквозь последовательность команд, позволяющих увидеть картину на сервере/кластере специалист будет стоить значительно дороже, чем специалист, способный в графическом интерфейсе посмотреть на основные показатели, сравнить их с "эталонными" и предпринять соответствующие действия для разрешения проблемы. Почему для Windows такой инструмент есть "из коробки" (к нему, правда, тоже есть немало претензий), а для Linux — нет?
Прям возникает желание привести мою вэб-морду к более-менее унифицированному виду и опубликовать для общественности...

Я уже понял, что вам нужно что-то типа такого — http://infostart.ru/public/414870/

Как альтернативу, можно сделать сценарий, который проверит состояние кластера и даст пользователю варианты исправления ошибок. Это даже еще быстрее и удобнее чем в gui-интерфейсе кликать мышкой между базами различных серверов в поиске зависших сеансов.
Я читаю на хабре про 1С, и никто не пишет свои эмоции при виде кода на русском языке. Неужели свершилось?
Как жаль что у 1С нет реальных конкурентов в РФ по доступной цене. Всем принудительно нужна подписка на ИТС, без сдачи за деньги экзамена нельзя внедрять ERP, открытость почти нулевая, игнорирование просьб разработчиков. Хорошо пока за объем воздуха в желтой коробке счет не выставляют.
На счет подписки ИТС, это не огромные деньги. Если брать другие системы там абаненка за тех поддержку куда больше, да и стоимость лицензий… Почему это без здачи экзамена нельзя внедрять ERP? Если ты не франч, то внедряй на здоровье. По игнорированию просьб, по крайней мере для Документооборота есть группа в ВК где общаешься напрямую с разработчиками, там довольно таки оперативно отрабатывают вопросы, предлож
Вы еще SAP не видели. Там например в шине интеграции между ихними модулями заставят платить за трафик (!) причем на вами же купленных серверах.
Подскажите, пожалуйста, насколько трудозатратно реализовать со стороны 1С обращение к веб-сервису а-ля рестфул в локальной сети для импорта данных по требованию иили расписанию о финансовых операциях от контрагентов до движений реальных средств и начислений по счетам учёта? Почему-то со стороны специалистов по 1С встречается ярое противодействие. Плюс такое же ярое против выгрузки данных в Постгрес-базу под Линуксом, причём в условиях когда сама 1С крутится на Постгресе под Линуксом. Такое ощущение, что сам этот факт для них шоком является, уверены, что всё под виндой и мсскулем, к постргресу пытаются подрубиться через сколь сервер студию или как там её даже без odbc.
обращение сделать недолго… проблемно реализовать корректный импорт данных. Так как даже одни и те же данные(цифрово-визуально) должны быть введены по разному в 1С ( пример: покупка-продажа валюты и списание-поступление на расчетный счет)…
Для денежных средств есть экспорт-импорт из КБ — работает нормально.
Черт дернул обновиться с 8.3.8.2197 на 8.3.9.2033

Плоды массового обновления на праздниках коту под хвост. Придется везде откатываться.

Теперь ODATA не работает на Linux серверах, сразу и не заметил, пока пользователи не пришли и не стали жаловаться, что CRM не работает. По HTTP даже не запрашивает пароль и вылетает с ошибкой 408/409

1C:Enterprise 8 application error:

Error executing query
by reason:
server_addr=tcp://1c:11560 descr=recv returns zero, disconnected line=1570 file=./src/DataExchangeTcpClientImpl.cpp

Я так понял для типовых базовых конфигураций odata не работает.
Какой тип конфигурации и лицензии нужно покупать, чтобы odata работал?

на сколько я знаю ODATA не зависит от типа конфигурации. Просто в последних релизах конфигураций ODATA для каждого документа надо включать отдельно

как включить ODATA для всех документов и справочников?


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


Как запустить внешнюю обработку?

https://drive.google.com/open?id=0B2lAfZOYZcTxMXFEMlVDSUJSMFk

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

http://forum.infostart.ru/forum9/topic166045/

Реальный пример как вытаскивать отчеты в виде HTML, JSON или XLS.
Можно и XML прикрутить по желанию

В типовой конфигурации базовой лицензии есть ограничение на одновременную работу в один пользователь.
т.е. 1С OData считает за пользователя.
Даже если обращения к OData не идут, то предприятие не запускается, говорит есть подключения.
Если перезагрузить IIS, то он пустит. Но кто будет каждый раз перезапускать IIS?
Я так понимаю, где-то должен быть параметр в IIS или в 1С, который отвечает за таймаут, чтобы по истечении этого времени IIS отпустил базу.
Кто нибудь сталкивался с этим?

Нашел параметр при публикации веб клиента "Время жизни соединения", поставил 120сек. Но он видимо не влияет. После того как закрывается http соединение к odata, через 60сек становится возможным редактировать данные в 1С. Главное, чтобы все http соединения были закрыты.
Я проверял в браузере хром и через wget. 60с таймаут и там и там.
Вобщем odata работает :)

в последних версиях платформы есть параметр использования сессий. Поставьте без сессий и будет счастье

        <standardOdata enable="true"
                        reuseSessions="dontuse"
                        sessionMaxAge="20"
                        poolSize="10"
                        poolTimeout="5"/>
@1С, вот у меня наболевший вопрос. В платформе найдены баги. Я как конечный пользователь не могу никуда написать о них. Пишу партнерам по франшизе, а они отвечают, что они могут только сообщать об ошибках в конфигурациях.

на https://partners.v8.1c.ru доступ никто не дает.

Вот такой вот замкнутый круг.
Если найдена ошибка в платформе, пишете письмо на v8@1c.ru

http://1c.ru/rus/support/support.htm#8

Если вы находите ошибку в программном продукте 1С (конфигурация или платформа — неважно), и вы являетесь зарегистрированным пользователем этого программного продукта, для сообщений об ошибках существует электронная почта линии консультации: v8@1c.ru
Пишу партнерам по франшизе, а они отвечают, что они могут только сообщать об ошибках в конфигурациях.

Вот это похоже на отмазку франча :) Если я правильно понял фразу «партнерам по франшизе».
ну я написал одному из крупнейших партнеров, на что получил вот такой вот ответ:

Добрый день!
Мы оказываем консультационные услуги только по использованию типовых решений для Казахстана и отраслевых решений компании «1С-Рейтинг».
Вопросы по использованию возможностей платформы «1С: Предприятие» при доработке/разработке конфигураций Вы можете задавать на специализированном форуме участников-партнеров https://partners.v8.1c.ru/.

В частности, по Вашему вопросу есть похожие сообщения https://partners.v8.1c.ru/forum/topic/1560477#m_1560477, https://partners.v8.1c.ru/forum/message/1561229#m_1561229, в которых данная ситуация признана ошибкой платформы.

А можно ли с помощью расширения конфигурации отлавливать допустим создание, изменение, отмену проводки, пометки на удаление и удаление какого-либо документа и инициировать http запрос на сторонний сервер с указанием данных, например uuid документа и тип операции?

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

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

А сокеты уже сами куда надо отправляют и обрабатывают данные. Так что не вижу смысла формировать фоновые задания.

Единственное, в расширениях нельзя иметь константы, обработчики и чего-то еще… не помню… пришлось снимать с поддержки.
Спасибо за статью. Из статьи я понял, что можно обращаться к 1С приложениям через REST из внешних приложений. Подскажите, пожалуйста, можно ли использовать внешние RESTful сервисы и обращаться к ним из 1С? Есть ли способы интеграции с RESTful старым клиентам, на 8.2, предыдущих 8.3 платформах?
можно ли использовать внешние RESTful сервисы и обращаться к ним из 1С?

Да, начиная с версии платформы 1С: Предприятие 8.3.6.

Есть ли способы интеграции с RESTful старым клиентам, на 8.2, предыдущих 8.3 платформах?

Насколько знаю — можно, через объект HTTPСоединение. Объект HTTPСоединение появился в платформе достаточно давно, чуть ли не с 8.3.1. В общем — если в коде доступен объект HTTPСоединение, то, скорее всего, интеграция возможна (если вызываемый сервис не использует какие-то экзотические атрибуты).
Спасибо за оперативный ответ. Надо пробовать, жаль, многие клиенты на 8.2…
Прошу прощения, ошибся. Это:
Объект HTTPСоединение появился в платформе достаточно давно, чуть ли не с 8.3.1.

надо читать как:
Объект HTTPСоединение появился в платформе достаточно давно, чуть ли не с 8.1


могу ошибаться, но вроде бы HTTPСоединение появилось аж в 8.1
Only those users with full accounts are able to leave comments. Log in, please.