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

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


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

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

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


ВЫБРАТЬ
    ПоступлениеТоваровУслугТовары.Ссылка,
    ПоступлениеТоваровУслугТовары.Номенклатура,
    ПоступлениеТоваровУслугТовары.КоличествоМест,
    ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения,
    ПоступлениеТоваровУслугТовары.ЕдиницаИзмеренияМест,
    ПоступлениеТоваровУслугТовары.Коэффициент,
    ПоступлениеТоваровУслугТовары.Количество,
    ПоступлениеТоваровУслугТовары.Цена,
    ПоступлениеТоваровУслугТовары.Сумма,
    ПоступлениеТоваровУслугТовары.СтавкаНДС,
    ПоступлениеТоваровУслугТовары.СуммаНДС
ИЗ
    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ГДЕ
    ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
    И ПоступлениеТоваровУслугТовары.Ссылка.ПометкаУдаления = ЛОЖЬ
    И ПоступлениеТоваровУслугТовары.Ссылка.Проведен = ИСТИНА
11 Zamestas
 
12.12.18
05:39
(0) ТС - а тебе зачем это нужно?
12 Tolstiy Beremenniy
 
12.12.18
05:45
(11) Задача. Подключиться к базе 1с на sql server и загрузить от туда данные. Документы поступления.
13 Tolstiy Beremenniy
 
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)}: Ожидается выражение "ВЫБРАТЬ"
14 catena
 
12.12.18
05:57
(13)Убери перевод строки.
Проведенные документы не могут быть помеченными на удаление.
15 Tolstiy Beremenniy
 
12.12.18
05:59
(13) тут ошибка была в этом

    ЗапросКом.Текст = "


Продвигаюсь далее....
16 Mankubus
 
12.12.18
06:00
(13) сравни создание запроса по ссылке в (6) и у себя. Где у тебя запрос.текст=?!
17 Mankubus
 
12.12.18
06:01
(15) ура! сам что-то нашёл
18 Tolstiy Beremenniy
 
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 объекты (документы ПоступлениеТоваровУслуг). Что ты с ним будешь делать - хз. Цель то нам неизвестна.
20 Tolstiy Beremenniy
 
12.12.18
06:14
(19) В ВыборкаКом нет поля Ссылка ...
21 catena
 
12.12.18
06:16
(20)До цикла или внутри?
22 Tolstiy Beremenniy
 
12.12.18
06:17
(21) В цикле

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

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

я могу иметь только

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

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

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

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

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

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

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

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

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

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