Вход | Регистрация


Протокол oData, Детализация запроса к Регистру Бухгалтерии (ДвиженияССубконто)

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

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

Где Turnovers - это обороты.
А как будет ДвиженияССубконто??
В языке запросов оно выглядит:
ТекстЗапроса = "ВЫБРАТЬ  ХозрасчетныйДвиженияССубконто.Документ
                        | ИЗ  РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&дт1, &дт2) КАК ХозрасчетныйДвиженияССубконто
 
 
   lvi15
 
1 - 24.10.16 - 12:05
Или где можно посмотреть английские наименования объектов метаданных?
   Живой Ископаемый
2 - 24.10.16 - 12:27
в СП, если включить такую возможность в настройках "Справка\галка - Оба языка"
   Serginio1
 
3 - 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
   Serginio1
 
4 - 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 получить доступ
   Serginio1
 
5 - 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
   Serginio1
 
6 - 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]
   lvi15
 
7 - 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?
   Serginio1
 
8 - 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();
   lvi15
 
9 - 28.10.16 - 14:08
Супер, Спасибки!!! Буду "дерзать".
   lvi15
 
10 - 28.10.16 - 14:10
Да и вдогонку - а функционал Web-Server  в поставке платформы 1с - является бесплатным? И запросы по oData - пользователя-пароль указывать надо, а лицензия? - "оно" ее требовать/конкурировать не будет?
 
 Рекламное место пустует
   Serginio1
 
11 - 28.10.16 - 14:56
(10) Там так же как и с вэб и HTTP сервисами. Нужна лицензия только на вызов.
Про пароль посмотрю
   Serginio1
 
12 - 28.10.16 - 14:57
   Serginio1
 
13 - 28.10.16 - 14:59
   Serginio1
 
14 - 28.10.16 - 15:00
Единственно, что нужно вместо Encoding.ASCII
использовать Encoding.UTF8
   lvi15
 
15 - 28.10.16 - 15:06
То есть если покупается платформа "1с Предприятие" (+/- стандартная поставка 8.3 с поддержкой режима разработки) то web-server есть и вопрос только в шильдике при установке ну  + доп. настройки в IIS и пр.?  "Оно" не стОит дополнительных денег при покупке платформы?

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует