Имя: Пароль:
1C
1С v8
Подскажите примерчик Com-соединения с базой
,
0 Маленький Вопросик
 
12.07.12
06:55
собственно сабжик

база источник 8.2.13
база приемник 8.2.15
1 France
 
12.07.12
06:56
2 Cube
 
12.07.12
06:57
(0) Иди в поиск
3 Маленький Вопросик
 
12.07.12
06:58
мне не охота искать обработки - может кто сразу скажет - "вот такая например" и даст ссылки
4 Cube
 
12.07.12
07:02
(3) Не охота помогать лентяям...
5 Маленький Вопросик
 
12.07.12
07:03
(4) а я в дьябло 3 всю ночь играл...
6 Wobland
 
12.07.12
07:03
(4) лентяй. вон France не поленился
7 Rie
 
12.07.12
07:04
(3) Обработку, которая просто соединяется с базой и ничего при этом не делает - вряд ли кто подскажет, ибо такие обработки мало кому нужны.

Но: судя по тому, что в (0) указаны версии платформы, предположу, что проблема у тебя в несовместимости. Если обе базы на одной машине - с этим Com справиться не сможет.
8 Маленький Вопросик
 
12.07.12
07:05
а где маньяк? у него было что-то по ком-соединениям в открытом доступе
9 Rie
 
12.07.12
07:09
(8) Не знаю, кто тут маньяк :-), но ProgID - один, и ссылается он на конкретную платформу.
Или в чём именно у тебя проблема?
10 napagokc
 
12.07.12
07:11
(0)

Состояние("Подключение к базе БУ...");
Если Файловая = 0 Тогда
   СтрокаПодключения = "File=""" + Каталог + """";
Иначе
   СтрокаПодключения = "Srvr=""" + ИмяСервера + """;Ref=""" + ИмяБазы + """";
КонецЕсли;
СтрокаПодключения = СтрокаПодключения + ";Usr = """ + Пользователь + """";
СтрокаПодключения = СтрокаПодключения + ";Pwd = """ + Пароль + """";
СтрокаПодключения = СтрокаПодключения + ";";
Попытка
   БазаПриемник.ЗавершитьРаботуСистемы(Ложь);
   БазаПриемник = Неопределено;
Исключение
КонецПопытки;
Попытка
   Если ПроводитьРеализациюИСоздаватьСчетФактуру
       Или ПроводитьПоступление Тогда
       БазаПриемник = Новый COMОбъект("V82.Application");
       БазаПриемник.Connect(СтрокаПодключения);
   Иначе
       ТекCOMПодключение = Новый COMОбъект("V82.COMConnector");
       БазаПриемник = ТекCOMПодключение.Connect(СтрокаПодключения);
   КонецЕсли;
Исключение
   Если Найти(ОписаниеОшибки(), "Несоответствие версии формата файла информационной базы.") > 0 Тогда
       Попытка
           Если ПроводитьРеализациюИСоздаватьСчетФактуру
               Или ПроводитьПоступление Тогда
               БазаПриемник = Новый COMОбъект("V81.Application");
               БазаПриемник.Connect(СтрокаПодключения);
           Иначе
               ТекCOMПодключение = Новый COMОбъект("V81.COMConnector");
               БазаПриемник = ТекCOMПодключение.Connect(СтрокаПодключения);
           КонецЕсли;
       Исключение
           БазаПриемник = Неопределено;
           Если СообщатьобОшибке Тогда
               Сообщить(ОписаниеОшибки());
           КонецЕсли;
       КонецПопытки;
   Иначе
       БазаПриемник = Неопределено;
       Если СообщатьобОшибке Тогда
           Сообщить(ОписаниеОшибки());
       КонецЕсли;
   КонецЕсли;
КонецПопытки;
   
Если БазаПриемник <> Неопределено Тогда
//...
КонецЕсли;
11 Маленький Вопросик
 
12.07.12
07:15
всем спасибо!
вот, добрый самаритянин какой-то тут дает разъяснения

http://infostart.ru/public/62823/
12 France
 
12.07.12
07:17
(9) Маня вроде
13 Маленький Вопросик
 
12.07.12
13:46
ПараметрСоединения = "File="""+ПутьКФайловойБазе+""";Usr="""+Пользователь+""";Pwd="""+Пароль+""";";
   
       V8 =  Новый COMобъект("V82.COMConnector");
   
   Попытка
       V8.Connect(ПараметрСоединения);
   Исключение
       Сообщить("Ошибка при подключении к бухгалтерии! "+ОписаниеОшибки());
       
       Возврат;
   КонецПопытки;    
   
   
   
   Запрос = V8.НовыйОбъект("Запрос");
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ПоступлениеТоваровУслуг.Ссылка
   |ИЗ
   |    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг";    
   
   Поступления = Запрос.Выполнить().Выгрузить();
   
   Сообщить(Поступления.Количество());


Ругается на НовыйОбъект.... подскажите как исправить
14 dk
 
12.07.12
13:52
иногда для OLE нужна англоверсия синтаксиса
15 Маленький Вопросик
 
12.07.12
14:01
{Форма.Форма.Форма(38)}: Метод объекта не обнаружен (NewObject)
   Запрос = V8.NewObject("Запрос");
16 Cube
 
12.07.12
14:06
Вместо

V8 = Новый COMобъект("V82.COMConnector");
V8.Connect(ПараметрСоединения);
Запрос = V8.НовыйОбъект("Запрос");

Нужно писать:

V8Connector = Новый COMобъект("V82.COMConnector");
V8 = V8Connector.Connect(ПараметрСоединения);
Запрос = V8.НовыйОбъект("Запрос");
17 Маленький Вопросик
 
12.07.12
14:28
ПараметрСоединения = "File="""+ПутьКФайловойБазе+""";Usr="""+Пользователь+""";Pwd="""+Пароль+""";";
   V8Connector = Новый COMобъект("V82.COMConnector");
   
   Попытка
       V8 = V8Connector.Connect(ПараметрСоединения);
   Исключение
       Сообщить("Ошибка при подключении к бухгалтерии! "+ОписаниеОшибки());
       
       Возврат;
   КонецПопытки;    
   
   ДокПоступленияТоваровУслуг = V8.Документы.ПоступлениеТоваровУслуг;
   Выборка = ДокПоступленияТоваровУслуг.Выбрать();
   
   Пока Выборка.Следующий() Цикл
       
       Если Выборка.Дата> НачПериода И Выборка.Дата< КонецДня(КонПериода) Тогда
           НовСтр = СписокДокументов.Добавить();
           НовСтр.Дата = Выборка.Дата;
           НовСтр.Номер = Выборка.Номер;
           НовСтр.СуммаДокумента = Выборка.СуммаДокумента;
           НовСтр.СсылкаДокумент = Выборка.Ссылка; //пишет COMОбъект (а хотелось бы документ поступления...)
       КонецЕсли;
       
   КонецЦикла;

вообщем я выкрутился, но мне это не сильно нравиться... в комментарии еще 1 ошибку написал
18 Cube
 
12.07.12
14:30
(17) Ты в поиск пойдешь или нет? Пойми ты спрашиваешь АЗЫ. Их полно на мисте - читай не хочу...
19 Маленький Вопросик
 
12.07.12
14:31
(18) понимаю, в поиск не пойду... тут объясните
20 Маленький Вопросик
 
16.07.12
09:12
апнем)
21 Cube
 
16.07.12
09:14
(19) Ага, щас...
Поменяешь пол и выложишь фотку топлес - тогда подумаем, помогать тебе (лентяю) или нет.
22 Маленький Вопросик
 
16.07.12
09:16
(21) сейчас найдуться добрые самаритяне
23 Fish
 
16.07.12
09:20
12.07.12 - 06:55 -- 16.07.12 - 09:16 За это время уже 100500 книжек на эту тему можно было прочитать и всё сделать самому :)) А ТС всё ждёт готовое решение на блюдечке :)))
24 izekia
 
16.07.12
09:21
а я не писал, что надо запросом?
25 Маленький Вопросик
 
16.07.12
09:26
(24) запросом чето не сработало...
26 izekia
 
16.07.12
09:27
(25) надо еще раз попробовать
27 Маленький Вопросик
 
16.07.12
09:33
(26) {Форма.Форма.Форма(30)}: Метод объекта не обнаружен (НовыйОбъект)
   Запрос = V8.НовыйОбъект("Запрос");

код:

ПараметрСоединения = "File="""+ПутьКФайловойБазе+""";Usr="""+Пользователь+""";Pwd="""+Пароль+""";";
   V8Connector = Новый COMобъект("V82.COMConnector");
   
   Попытка
       V8 = V8Connector.Connect(ПараметрСоединения);
   Исключение
       Сообщить("Ошибка при подключении к бухгалтерии! "+ОписаниеОшибки());
       
       Возврат;
   КонецПопытки;    
   
   
   Запрос = V8.НовыйОбъект("Запрос");
   
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ПоступлениеТоваровУслуг.Ссылка
   |ИЗ
   |    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг";    
   
   Поступления = Запрос.Выполнить().Выгрузить();
   
   Сообщить(Поступления.Количество());
28 Cube
 
16.07.12
09:34
Запрос = V8.NewObject("Запрос");
29 izekia
 
16.07.12
09:34
(28) блин, ну зачем?)
30 Cube
 
16.07.12
09:35
(29) Ась?)
31 izekia
 
16.07.12
09:35
(30) автору подумать не даешь, ну кто из него вырастет?
32 Cube
 
16.07.12
09:37
(31) А автору с начала ветки намекаю на "подумать")))
Но до таких вещей, как (28) самому допетрить сложновато... :) Это скорее баг, а не фича...
33 Snorkler
 
16.07.12
09:39
(31) Из него вырастет МаленькийВопросик…  :0)
34 Маленький Вопросик
 
16.07.12
09:40
сработало.

теперь второй вопрос:

как получить наименование ссылки, а не COMОбъект?

Запрос.Текст =
   "ВЫБРАТЬ
   |    ПоступлениеТоваровУслуг.Ссылка  
   |ИЗ
   |    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг";    
   
   Поступления = Запрос.Выполнить().Выгрузить();

//пишет COMОбъект (а хотелось бы документ поступления...)
35 Cube
 
16.07.12
09:40
(33) Нет, из него вырастет БольшаяПроблема...
36 izekia
 
16.07.12
09:41
(35) вот видишь (34) ... молчать надо было
37 Cube
 
16.07.12
09:41
(34) А вот тут я тебе повторю ещё раз - иди в поиск. Ищи, читай, учи. А после приходи с задавай вопросы.
38 Cube
 
16.07.12
09:43
(36) Да ладно, вопрос из (17) так и в (34) остался нерешенным :)
39 izekia
 
16.07.12
09:46
не буду в тему заходить, автор ведь не успокоится, пока ему весь код не напишут, а так и не смешно уже

надо же быть таким ленивым
40 Cube
 
16.07.12
09:49
(39) +100500!
41 Рэйв
 
16.07.12
09:50
(34)COMОбъект  - это и есть документ поступления.
Делай .ПолучитьОбъект() и насилуй его как хош.

А вообще - ты реально ленивый. Дальше сам копай.
42 Маленький Вопросик
 
16.07.12
09:54
Запрос.Текст =
   "ВЫБРАТЬ
   |    ПоступлениеТоваровУслуг.Ссылка.Представление КАК ДокументПоступления,
   |    ПоступлениеТоваровУслуг.Дата КАК Дата,
   |    ПоступлениеТоваровУслуг.Номер КАК Номер,
   |    ПоступлениеТоваровУслуг.СуммаДокумента КАК СуммаДокумента
   |ИЗ
   |    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг";

все надо делать самому!!!
43 ПрограмлюКак Индус
 
16.07.12
09:54
что то не понял - автор на Мисте 2 года.
В личке - ссылки на его публикации в инфостарте.
В то же время спрашивает элементарщину - которую можно в любой обработке по переносу посмотреть , да еще и требует!!! сделать за него. даже усилия не прилагая
44 ПрограмлюКак Индус
 
16.07.12
09:55
(41) я считал себя ленивым - но тут похоже - перебил всех
45 ПрограмлюКак Индус
 
16.07.12
09:56
(42)>> все надо делать самому!!!
Знаешь - даже ЗП самому приходится получать.
А вообще - это такая элементарщина....
46 Snorkler
 
16.07.12
09:57
(39) Он не ленивый, он - упорный…  :0)
Правда, ежели бы он был столь же упорен в поиске на мисте, давно бы уже решил проблему…
Но, Diblo его побери, ему проще тупо копировать вопрос…  :0)
47 hhhh
 
16.07.12
10:03
(42) ведь твои темы перестанут читать, ели будешь такую фигню постить. И когда возникнет по-настоящему важный вопрос, никто и не отзовется.