Имя: Пароль:
1C
 
Протокол oData, Детализация запроса к Регистру Бухгалтерии (ДвиженияССубконто)
,
0 lvi15
 
24.10.16
11:39
Добрый день!
В запросах-примерах нашел только такой вариант:

http://host/db_1C/odata/standard.odata/AccountingRegister_Хозрасчетный/Turnovers...

Где Turnovers - это обороты.
А как будет ДвиженияССубконто??
В языке запросов оно выглядит:
ТекстЗапроса = "ВЫБРАТЬ  ХозрасчетныйДвиженияССубконто.Документ
                        | ИЗ  РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&дт1, &дт2) КАК ХозрасчетныйДвиженияССубконто
1 lvi15
 
24.10.16
12:05
Или где можно посмотреть английские наименования объектов метаданных?
2 Живой Ископаемый
 
24.10.16
12:27
в СП, если включить такую возможность в настройках "Справка\галка - Оба языка"
3 Serginio1
 
24.10.16
18:20
А почему не хочешь через ссылку на службу получить описание,

Ссылку уже давал
http://catalog.mista.ru/public/403524/

Например для Регистров бухгалтерии

// Вставить содержимое обработчика.
    Массив = Новый Массив();

    
    Для Каждого Справочник Из Метаданные.РегистрыБухгалтерии Цикл
     Массив.Добавить(Справочник);
    
    
КонецЦикла;
УстановитьСоставСтандартногоИнтерфейсаOData(Массив);

Затем в VS
Затем в VS Добавить ссылку на службу используя URI

http://{АдресВебСервера}/{ИмяПубликации}/odata/standard.odata/$metadata

Получим описание

например
public partial class AccountingRegister_Хозрасчетный_BalanceAndTurnover : global::System.ComponentModel.INotifyPropertyChanged
4 Serginio1
 
25.10.16
10:28
Кстати посмотрел какие функции импортирует 1С

<EntityContainer Name="EnterpriseV8" m:IsDefaultEntityContainer="true">
        <EntitySet Name="AccountingRegister_Хозрасчетный" EntityType="StandardODATA.AccountingRegister_Хозрасчетный" />
        <EntitySet Name="AccountingRegister_Хозрасчетный_RecordType" EntityType="StandardODATA.AccountingRegister_Хозрасчетный_RecordType" />
        <FunctionImport Name="Balance" IsBindable="true" IsSideEffecting="false" ReturnType="Collection(StandardODATA.AccountingRegister_Хозрасчетный_Balance)">
          <Parameter Name="bindingParameter" Type="StandardODATA.AccountingRegister_Хозрасчетный" />
          <Parameter Name="AccountCondition" Type="Edm.String" />
          <Parameter Name="Condition" Type="Edm.String" />
          <Parameter Name="Dimensions" Type="Edm.String" />
          <Parameter Name="ExtraDimensions" Type="Edm.String" />
          <Parameter Name="Period" Type="Edm.DateTime" />
        </FunctionImport>
        <FunctionImport Name="Turnovers" IsBindable="true" IsSideEffecting="false" ReturnType="Collection(StandardODATA.AccountingRegister_Хозрасчетный_Turnover)">
          <Parameter Name="bindingParameter" Type="StandardODATA.AccountingRegister_Хозрасчетный" />
          <Parameter Name="AccountCondition" Type="Edm.String" />
          <Parameter Name="BalancedAccountCondition" Type="Edm.String" />
          <Parameter Name="BalancedExtraDimensions" Type="Edm.String" />
          <Parameter Name="Condition" Type="Edm.String" />
          <Parameter Name="Dimensions" Type="Edm.String" />
          <Parameter Name="EndPeriod" Type="Edm.DateTime" />
          <Parameter Name="ExtraDimensions" Type="Edm.String" />
          <Parameter Name="StartPeriod" Type="Edm.DateTime" />
        </FunctionImport>
        <FunctionImport Name="BalanceAndTurnovers" IsBindable="true" IsSideEffecting="false" ReturnType="Collection(StandardODATA.AccountingRegister_Хозрасчетный_BalanceAndTurnover)">
          <Parameter Name="bindingParameter" Type="StandardODATA.AccountingRegister_Хозрасчетный" />
          <Parameter Name="Condition" Type="Edm.String" />
          <Parameter Name="Dimensions" Type="Edm.String" />
          <Parameter Name="EndPeriod" Type="Edm.DateTime" />
          <Parameter Name="StartPeriod" Type="Edm.DateTime" />
        </FunctionImport>
        <FunctionImport Name="ExtDimensions" IsBindable="true" IsSideEffecting="false" ReturnType="Collection(StandardODATA.AccountingRegister_Хозрасчетный_ExtDimensions)">
          <Parameter Name="bindingParameter" Type="StandardODATA.AccountingRegister_Хозрасчетный" />
        </FunctionImport>
        <FunctionImport Name="RecordsWithExtDimensions" IsBindable="true" IsSideEffecting="false" ReturnType="Collection(StandardODATA.AccountingRegister_Хозрасчетный_RecordsWithExtDimensions)">
          <Parameter Name="bindingParameter" Type="StandardODATA.AccountingRegister_Хозрасчетный" />
          <Parameter Name="Condition" Type="Edm.String" />
          <Parameter Name="EndPeriod" Type="Edm.DateTime" />
          <Parameter Name="Order" Type="Edm.String" />
          <Parameter Name="StartPeriod" Type="Edm.DateTime" />
          <Parameter Name="Top" Type="Edm.Int64" />
        </FunctionImport>
        <FunctionImport Name="DrCrTurnovers" IsBindable="true" IsSideEffecting="false" ReturnType="Collection(StandardODATA.AccountingRegister_Хозрасчетный_DrCrTurnover)">
          <Parameter Name="bindingParameter" Type="StandardODATA.AccountingRegister_Хозрасчетный" />
          <Parameter Name="AccountCondition" Type="Edm.String" />
          <Parameter Name="BalancedAccountCondition" Type="Edm.String" />
          <Parameter Name="BalancedExtraDimensions" Type="Edm.String" />
          <Parameter Name="Condition" Type="Edm.String" />
          <Parameter Name="Dimensions" Type="Edm.String" />
          <Parameter Name="EndPeriod" Type="Edm.DateTime" />
          <Parameter Name="ExtraDimensions" Type="Edm.String" />
          <Parameter Name="StartPeriod" Type="Edm.DateTime" />
        </FunctionImport>
      </EntityContainer>
    </Schema>
  </edmx:DataServices>

Но в VS их не подгружает.
Но конечно можно через context.CreateQuery получить доступ
5 Serginio1
 
25.10.16
13:52
Только странно
Если делаю такой запрос
var query = context.CreateQuery<StandardODATA.AccountingRegister_Хозрасчетный>(@"AccountingRegister_Хозрасчетный").ToList();
То возвращает

{
"odata.metadata": "http://localhost/DemoAccounting/odata/standard.odata/$metadata#AccountingRegister_Хозрасчетный";,
"value": [{



А если

var query3 = context.CreateQuery<StandardODATA.AccountingRegister_Хозрасчетный_Turnover>(@"AccountingRegister_Хозрасчетный/Turnovers").ToList();

{
"odata.metadata": "http://localhost/DemoAccounting/odata/standard.odata/$metadata#Collection(StandardODATA.AccountingRegister_Хозрасчетный_Turnover)";,
"value": [

Добавляет в метадата Collection
6 Serginio1
 
25.10.16
14:08
Но если я сделаю такой запрос

var query3 = context.CreateQuery<List<StandardODATA.AccountingRegister_Хозрасчетный_Turnover>>(@"AccountingRegister_Хозрасчетный/Turnovers").ToList();

То возвращается тип

query3    Count = 1    System.Collections.Generic.List<System.Collections.Generic.List<StandardODATA.AccountingRegister_Хозрасчетный_Turnover>>

Где вся коллекция лежит в первом элементе query3.Items[0]
7 lvi15
 
28.10.16
13:22
Большое спасибо за ответы, Мой вариант запроса:
Хозрасчетный/ДвижениеССубконто:   http://localhost/DemoBuh/odata/standard.odata/AccountingRegister_Хозрасчетный/RecordsWithExtDimensions(StartPeriod=datetime'2012-01-01T00:00:00',EndPeriod=datetime'2016-01-31T23:59:59')  то есть ДвижениеССубконто это - RecordsWithExtDimensions. Здесь правда возникла заморочка с датами. Формат: datetime'2012-01-01T00:00:00'  почему-то не срабатывает. Работает только datetime'2012-01-01', то есть не "любит время". Тогда надо "расширять дырку" по датам(!?) Из ответов SerginioL - а как Вы определяете "context" в своем коде? Как подключаемый Web Reference?
8 Serginio1
 
28.10.16
13:46
(7) Ну в статье все же написано
http://catalog.mista.ru/public/403524/


Создаешь проект. Затем Проект-Создать ссылку на службу вставляешь http://{АдресВебСервера}/{ИмяПубликации}/odata/standard.odata/$metadata
Указываешь Имя ссылки на службу

При этом у тебя создадутся классы
с пространством имен  ИмяПриложения.ИмяСсылкиНаСервис

Там же будет и класс типа
public partial class EnterpriseV8 : global::System.Data.Services.Client.DataServiceContext

У которого будет конструктор

public EnterpriseV8(global::System.Uri serviceRoot)

Вот его и вызываешь. Например
var uriString = @"http://localhost.fiddler/DemoAccounting/odata/standard.odata/";;

            var context = new StandardODATA.EnterpriseV8(new Uri(uriString));

            context.Format.UseJson();
или
            context.Format.UseAtom();
9 lvi15
 
28.10.16
14:08
Супер, Спасибки!!! Буду "дерзать".
10 lvi15
 
28.10.16
14:10
Да и вдогонку - а функционал Web-Server  в поставке платформы 1с - является бесплатным? И запросы по oData - пользователя-пароль указывать надо, а лицензия? - "оно" ее требовать/конкурировать не будет?
11 Serginio1
 
28.10.16
14:56
(10) Там так же как и с вэб и HTTP сервисами. Нужна лицензия только на вызов.
Про пароль посмотрю
12 Serginio1
 
28.10.16
14:57
Но я у себя пока делаю так
Как отключить http аутентификацию в 1с 8.3.7?
13 Serginio1
 
28.10.16
14:59
14 Serginio1
 
28.10.16
15:00
Единственно, что нужно вместо Encoding.ASCII
использовать Encoding.UTF8
15 lvi15
 
28.10.16
15:06
То есть если покупается платформа "1с Предприятие" (+/- стандартная поставка 8.3 с поддержкой режима разработки) то web-server есть и вопрос только в шильдике при установке ну  + доп. настройки в IIS и пр.?  "Оно" не стОит дополнительных денег при покупке платформы?

Я пока делаю на локальном сервере - пользователю 1с прописываю себя для win-идентификации. Вроде как пускает.
oData привлекает, что никаким боком не затрагивает конфигурацию (в отличие от например веб-сервисов в самой конфигурации) (я к сожалению не 1с-ник профи)
16 Serginio1
 
28.10.16
15:33
(15) Нет оно уже идет в поставке. В том числе и для локальных версий 1С
17 Serginio1
 
28.10.16
15:37
(15) Сейчас можно вэб сервисы через расширения конфигурации добавлять изменять
Публикация веб-сервиса из расширения конфигурации.
18 Serginio1
 
28.10.16
15:40