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

Получение самих документов по метаданным

Получение самих документов по метаданным
Я
   TolstiyBeremenniy
 
12.12.18 - 03:42
Подключился к базе SQL Server. Могу перебором получить
наименования справочников. А как получить сами элементы.
Или сами документы?

    СтрокаПодключения     = "srvr='41'; ref='To'; usr='А'; pwd='ne';";
    ComConnector          = ПолучитьCOMОбъектПоВерсииПлатформы();
    СообщениеПользователю = Новый СообщениеПользователю;
    //
    Попытка
        ComConnection = COMConnector.Connect(СтрокаПодключения);
    Исключение
        СообщениеПользователю.Текст = "Ошибка подключения: " + ОписаниеОшибки();
        СообщениеПользователю.Сообщить();
        Возврат;
    КонецПопытки;
    Для Каждого спр Из ComConnection.Метаданные.Справочники Цикл
        СообщениеПользователю.Текст = "- " + спр.Имя;
        СообщениеПользователю.Сообщить();
    КонецЦикла;
 
 
   TolstiyBeremenniy
 
1 - 12.12.18 - 04:14
Можно ли от сюда получать сами данные, а не их свойства?
Нужны вообще ссылки документов ПоступлениеТоваровУслуг.

   Для Каждого спр Из ComConnection.Метаданные.Справочники Цикл
        СообщениеПользователю.Текст = "- " + спр.Имя;
        СообщениеПользователю.Сообщить();
    КонецЦикла;
   TolstiyBeremenniy
 
2 - 12.12.18 - 04:19
Я так понимаю нельзя??????
Как тогда можно подключиться к базе 1с на SQL Server
для получения данных?
   TolstiyBeremenniy
 
3 - 12.12.18 - 05:03
Что! никто не подскажет?
   catena
 
4 - 12.12.18 - 05:05
Сделай выборку, сделай запрос - все так же, как в текущей базе, только в ком.
   Mankubus
 
5 - 12.12.18 - 05:07
Чтобы получить данные нужно писать запросы.
Запрос = новый запрос(выбрать,... Из... )
   Mankubus
 
6 - 12.12.18 - 05:09
Вот я погуглил за тебя
v8: Запрос через COM соединение
   TolstiyBeremenniy
 
7 - 12.12.18 - 05:10
(4) Подскажите пожалуйста по этому вопросу поподробнее!!!
я не смог найти никакой информации в инете по этому вопросу.
Только перебор метаданных, и получения свойств объектов.
а нужны ссылки на сами данные, на сами объекты.

Вот у меня есть соединение ComConnection.
Подключился! как дальше?

(6) сейчас посмотрю. Но я сам ничего не смог найти!
   catena
 
8 - 12.12.18 - 05:13
(7)Очень жаль, нужно прокачивать поисковый скил. А то забанят на мисте и все, прощай работа.
   TolstiyBeremenniy
 
9 - 12.12.18 - 05:21
(8) Все я там прокручивал. И переходил по найденным страницам. Как то не удачно у меня видимо получилось,
на этот раз.
   TolstiyBeremenniy
 
10 - 12.12.18 - 05:37
Сделал вот такой запрос. но не могу его сохранить
в текущей базе. Так как тут нет такого документа.
Как быть?


ВЫБРАТЬ
    ПоступлениеТоваровУслугТовары.Ссылка,
    ПоступлениеТоваровУслугТовары.Номенклатура,
    ПоступлениеТоваровУслугТовары.КоличествоМест,
    ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения,
    ПоступлениеТоваровУслугТовары.ЕдиницаИзмеренияМест,
    ПоступлениеТоваровУслугТовары.Коэффициент,
    ПоступлениеТоваровУслугТовары.Количество,
    ПоступлениеТоваровУслугТовары.Цена,
    ПоступлениеТоваровУслугТовары.Сумма,
    ПоступлениеТоваровУслугТовары.СтавкаНДС,
    ПоступлениеТоваровУслугТовары.СуммаНДС
ИЗ
    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ГДЕ
    ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
    И ПоступлениеТоваровУслугТовары.Ссылка.ПометкаУдаления = ЛОЖЬ
    И ПоступлениеТоваровУслугТовары.Ссылка.Проведен = ИСТИНА
 
 Рекламное место пустует
   Zamestas
 
11 - 12.12.18 - 05:39
(0) ТС - а тебе зачем это нужно?
   TolstiyBeremenniy
 
12 - 12.12.18 - 05:45
(11) Задача. Подключиться к базе 1с на sql server и загрузить от туда данные. Документы поступления.
   TolstiyBeremenniy
 
13 - 12.12.18 - 05:52
В чем ошибка?????


    СтрокаПодключения     = "srvr='1s'; ref='To'; usr='А'; pwd='ne';";
    ComConnector          = ПолучитьCOMОбъектПоВерсииПлатформы();
    СообщениеПользователю = Новый СообщениеПользователю;
    //

    Попытка
        ComConnection = COMConnector.Connect(СтрокаПодключения);
    Исключение
        СообщениеПользователю.Текст = "Ошибка подключения: " + ОписаниеОшибки();
        СообщениеПользователю.Сообщить();
        Возврат;
    КонецПопытки;
    Для Каждого спр Из ComConnection.Метаданные.Справочники Цикл
        СообщениеПользователю.Текст = "- " + спр.Имя;
        СообщениеПользователю.Сообщить();
    КонецЦикла;
    // 

    ЗапросКом = ComConnection.Newobject("Запрос");
    ЗапрсоКом = "
        |ВЫБРАТЬ
        |    ПоступлениеТоваровУслугТовары.Ссылка,
        |    ПоступлениеТоваровУслугТовары.Номенклатура,
        |    ПоступлениеТоваровУслугТовары.КоличествоМест,
        |    ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения,
        |    ПоступлениеТоваровУслугТовары.ЕдиницаИзмеренияМест,
        |    ПоступлениеТоваровУслугТовары.Коэффициент,
        |    ПоступлениеТоваровУслугТовары.Количество,
        |    ПоступлениеТоваровУслугТовары.Цена,
        |    ПоступлениеТоваровУслугТовары.Сумма,
        |    ПоступлениеТоваровУслугТовары.СтавкаНДС,
        |    ПоступлениеТоваровУслугТовары.СуммаНДС
        |ИЗ
        |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        |ГДЕ
        |    ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
        |    И ПоступлениеТоваровУслугТовары.Ссылка.ПометкаУдаления = ЛОЖЬ
        |    И ПоступлениеТоваровУслугТовары.Ссылка.Проведен        = ИСТИНА";
    ЗапросКом.установитьПараметр("НачДата", НачалоМесяца(Объект.Дата));
    ЗапросКом.установитьПараметр("КонДата", КонецМесяца(Объект.Дата));
    ВыборкаКом = ЗапросКом.Выполнить().Выбрать();    




{Документ.Поступление.Форма.ФормаДокумента.Форма(106)}: Ошибка при вызове метода контекста (Выполнить)
    ВыборкаКом = ЗапросКом.Выполнить().Выбрать();    
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.3.10.2168): {(1, 1)}: Ожидается выражение "ВЫБРАТЬ"
   catena
 
14 - 12.12.18 - 05:57
(13)Убери перевод строки.
Проведенные документы не могут быть помеченными на удаление.
   TolstiyBeremenniy
 
15 - 12.12.18 - 05:59
(13) тут ошибка была в этом
    ЗапросКом.Текст = "


Продвигаюсь далее....
   Mankubus
 
16 - 12.12.18 - 06:00
(13) сравни создание запроса по ссылке в (6) и у себя. Где у тебя запрос.текст=?!
   Mankubus
 
17 - 12.12.18 - 06:01
(15) ура! сам что-то нашёл
   TolstiyBeremenniy
 
18 - 12.12.18 - 06:09
Подскажите пожалуйста. В переборе сейчас выборки запроса
методом .Следующий(0 что я могу и как получить?
А то там везде ком объект и метод не найден.

Как это правильно получать?



    СтрокаПодключения     = "srvr='1s'; ref='To'; usr='А'; pwd='ne';";
    ComConnector          = ПолучитьCOMОбъектПоВерсииПлатформы();
    СообщениеПользователю = Новый СообщениеПользователю;
    //

    Попытка
        ComConnection = COMConnector.Connect(СтрокаПодключения);
    Исключение
        СообщениеПользователю.Текст = "Ошибка подключения: " + ОписаниеОшибки();
        СообщениеПользователю.Сообщить();
        Возврат;
    КонецПопытки;
    Для Каждого спр Из ComConnection.Метаданные.Справочники Цикл
        СообщениеПользователю.Текст = "- " + спр.Имя;
        СообщениеПользователю.Сообщить();
    КонецЦикла;
    // 

    ЗапросКом       = ComConnection.Newobject("Запрос");
    ЗапросКом.Текст = "
        |ВЫБРАТЬ
        |    ПоступлениеТоваровУслугТовары.Ссылка,
        |    ПоступлениеТоваровУслугТовары.Номенклатура,
        |    ПоступлениеТоваровУслугТовары.КоличествоМест,
        |    ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения,
        |    ПоступлениеТоваровУслугТовары.ЕдиницаИзмеренияМест,
        |    ПоступлениеТоваровУслугТовары.Коэффициент,
        |    ПоступлениеТоваровУслугТовары.Количество,
        |    ПоступлениеТоваровУслугТовары.Цена,
        |    ПоступлениеТоваровУслугТовары.Сумма,
        |    ПоступлениеТоваровУслугТовары.СтавкаНДС,
        |    ПоступлениеТоваровУслугТовары.СуммаНДС
        |ИЗ
        |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        |ГДЕ
        |    ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
        |    И ПоступлениеТоваровУслугТовары.Ссылка.Проведен        = ИСТИНА";
    ЗапросКом.установитьПараметр("НачДата", НачалоМесяца(Объект.Дата));
    ЗапросКом.установитьПараметр("КонДата", КонецМесяца(Объект.Дата));
    ВыборкаКом = ЗапросКом.Выполнить().Выбрать();    
    Пока ВыборкаКом.Следующий() Цикл
        //

        
    КонецЦикла;
   Лодырь
 
19 - 12.12.18 - 06:13
Получишь в выборке com объекты (документы ПоступлениеТоваровУслуг). Что ты с ним будешь делать - хз. Цель то нам неизвестна.
   TolstiyBeremenniy
 
20 - 12.12.18 - 06:14
(19) В ВыборкаКом нет поля Ссылка ...
   catena
 
21 - 12.12.18 - 06:16
(20)До цикла или внутри?
   TolstiyBeremenniy
 
22 - 12.12.18 - 06:17
(21) В цикле
    Пока ВыборкаКом.Следующий() Цикл
        //

        
    КонецЦикла;
   TolstiyBeremenniy
 
23 - 12.12.18 - 06:20
У Номенклатуры так же нет Ссылки, есть только,
Description.
   catena
 
24 - 12.12.18 - 06:33
(22)Я тебе не верю, докажи. у ВыборкаКом ссылка должна быть.
   TolstiyBeremenniy
 
25 - 12.12.18 - 06:34
Не подскажете, почему в выборке (18) нет ссылки на документ
ни ссылок на другие справочники?
   youalex
 
26 - 12.12.18 - 06:35
(20) Ref есть?
   catena
 
27 - 12.12.18 - 06:40
(26)У него Ссылка в выборке - это поле запроса, какое реф?
   catena
 
28 - 12.12.18 - 06:40
(25)Все там есть, ты врешь.
   TolstiyBeremenniy
 
29 - 12.12.18 - 06:43
(24) А как доказать? я в отладчике открыл табло и смотрю.
Там нет поля Ссылка.
(26) Есть. Но а где сами ссылки?
Там только строковые значения.
Дата, булево, число, COMOбъект, и пустые метод не найден!!!

(28) У меня нет. Что я не так сделал? Код в (18).
   TolstiyBeremenniy
 
30 - 12.12.18 - 06:44
(28) У меня нету. я пытаюсь сделать так что бы они появились.
   Лодырь
 
31 - 12.12.18 - 06:51
(29) Строковое значение и есть ссылка.
   catena
 
32 - 12.12.18 - 06:58
(29)COMOбъект - это отображение ссылочных типов. Ком не знает, как тебе показывать ссылки чужой базы, ведь в текущей базе таких ссылок нет.
   youalex
 
33 - 12.12.18 - 07:07
Анекдот напомнило. Папа, а где море)
 
 
   TolstiyBeremenniy
 
34 - 12.12.18 - 07:21
(31) То есть ссылка в ВыборкаКом
я могу иметь только

ВыборкаКом.Ref.date   - Дата документа
ВыборкаКом.Ref.number - Номер документа

и все по документу. а у Номенклатуры

ВыборкаКом.Номенклатура.Description - Наименование
ВыборкаКом.Номенклатура.Code        - Код

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

- Число
- Строка
- Дата
- Булево
-
?
   catena
 
35 - 12.12.18 - 07:29
(34)ВыборкаКом.Ссылка.Дата
Ком не умеет "переводить" имена полей. Только стандартные реквизиты.
Да, только примитивные типы.
   TolstiyBeremenniy
 
36 - 12.12.18 - 07:52
(35) Но ссылки в моем случае нет!
Я об этом вам и говорил!!!

ВыборкаКом.Ref.

есть!
   hhhh
 
37 - 12.12.18 - 07:56
(36)         |ВЫБРАТЬ
        |    ПоступлениеТоваровУслугТовары.Ссылка,
       |    ПоступлениеТоваровУслугТовары.Ссылка.Номер КАК Номер,
       |    ПоступлениеТоваровУслугТовары.Ссылка.Дата Как Дата,

и у вас волшебным образом появятся

ВыборкаКом.Дата
ВыборкаКом.Номер
   catena
 
38 - 12.12.18 - 07:58
(36)Как тебе помогать, если ты все время врешь?

https://cdn1.savepice.ru/uploads/2018/12/12/7444292b6816b1ae867a447cb65512d1-full.png
   Лодырь
 
39 - 12.12.18 - 08:00
(38) Он скорее добросовестно заблуждается.
   catena
 
40 - 12.12.18 - 08:03
(39)Нельзя заблуждаться с таким уверенным выражением лица. По крайней мере не каждый раз.
   TolstiyBeremenniy
 
41 - 12.12.18 - 08:22
(40) Я в табло смотрел, ссылки у развернутой ветки ВыборкаКом не было.
   youalex
 
42 - 12.12.18 - 08:33
(41) посмотри в табло ComConnection.ТипЗначения(ВыборкаКом)
   youalex
 
43 - 12.12.18 - 08:39
(42) т.е.
ComConnection.ТипЗнч(ВыборкаКом)
   catena
 
44 - 12.12.18 - 08:41
(43)Да рабочий у него код, нормально там все. Он просто не умеет пользоваться тем, что получил.
   TolstiyBeremenniy
 
45 - 12.12.18 - 10:41
(44) Да извините, сейчас ввел в табло ВыборкаКом.Ссылка
Действительно есть. я разворачивал ВыборкаКом.
Там не было. я вот и задумался почему там нет!!!!!
   Web00001
 
46 - 12.12.18 - 11:05
(33) У него каждая ветка анекдот. Низкий порог вхождения, все дела.


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