|   |   | 
| 
 | COM соединение из 8.2 к 7.7 | ☑ | ||
|---|---|---|---|---|
| 0
    
        Janna26 10.05.12✎ 12:04 | 
        Всем привет. Столкнулась с такой проблемой. Уже битый час не могу настроить строку подключения к 7.7.
  V7 = Новый COMОбъект("V1CEnterprise.Application"); init = V7.Initialize(V7.RMTrade, "/d D:\Навика\NData\NData", "No_splash_show"); Номенклатура77 = V7.CreateObject("Справочник.Номенклатура"); постоянно ругается на CreateObject. Ну это понятно из за того что init всегда ложь. У базы 7.7 пароля и логина нет. Пробовала ставить, происходит ровным счетом тоже самое. что я делаю не так? | |||
| 1
    
        Wobland 10.05.12✎ 12:09 | 
        /dD:\Навика\NData\NData ?     | |||
| 2
    
        alkov 10.05.12✎ 12:10 | 
        NO_SPLASH_SHOW     | |||
| 3
    
        155153144627 10.05.12✎ 12:10 | 
        Ты уже второй человек за сегодня который создает непонятный ком-объект: 
  V7 = Новый COMОбъект("V1CEnterprise.Application"); Попробуй V77 = Новый COMОбъект("V77.Application"); и насколько я помню без логина и пароля соединения не произойдет. | |||
| 4
    
        Академик_ Келдыш 10.05.12✎ 12:10 | 
        может v77.application?)     | |||
| 5
    
        rphosts 10.05.12✎ 12:12 | 
        (3) ну может там все без логину в базу ходят     | |||
| 6
    
        Janna26 10.05.12✎ 12:22 | 
        (4) я и так уже пробывала.     | |||
| 7
    
        Janna26 10.05.12✎ 12:25 | 
        V7 = Новый  COMОбъект("v77.Application");
  init = V7.Initialize(V7.RMTrade, "/dD:\Навика\NData\NData","NO_SPLASH_SHOW"); Номенклатура77 = V7.CreateObject("Справочник.Номенклатура"); а=0; Сделала вот так все равно не получается :( | |||
| 8
    
        Галахад гуру 10.05.12✎ 12:26 | 
        Путь-то правильный? Что за NData\NData     | |||
| 9
    
        Cube 10.05.12✎ 12:30 | ||||
| 10
    
        zladenuw 10.05.12✎ 12:31 | 
        Соединение = Новый COMОбъект("V77.Application");
  Открыта = Соединение.Initialize(Соединение.RMTrade,"/D"""+ПутьКБазе+""""+" /N"+СокрЛП(Пользователь7)+" /P"+СокрЛП(Пароль7),?(ЗапускБезЗаставки = 0,"NO_SPLASH_SHOW",""));//"NO_SPLASH_SHOW" Попытка Если Соединение.Метаданные.Выбран() = 0 Тогда ЗавершитьРаботуСистемы(Ложь); КонецЕсли; Исключение ЗавершитьРаботуСистемы(Ложь); КонецПопытки; | |||
| 11
    
        Traker 10.05.12✎ 12:32 | 
        ОС какая на компьютере?     | |||
| 12
    
        Janna26 10.05.12✎ 12:35 | 
        (11) 7 корп.     | |||
| 13
    
        Eugene_life 10.05.12✎ 12:37 | 
        (12) ОС = операционная система     | |||
| 14
    
        Janna26 10.05.12✎ 12:37 | 
        (9) не работает. Я вот грешу на драйвер 7.7 не помню ставила ли 7.7 или копированием платформу перенесла, сейчас попробую переустановить.     | |||
| 15
    
        Janna26 10.05.12✎ 12:37 | 
        (13) Windows 7 корпоративная.     | |||
| 16
    
        Eugene_life 10.05.12✎ 12:38 | 
        (14) попробуй 1С 7.7 мобильная версия (не помню как она называется по-настоящему), которая работает без установки     | |||
| 17
    
        155153144627 10.05.12✎ 12:40 | 
        (16) Любая версия 7.7 все пропишет в реестр, если ее запустит локальный администратор.     | |||
| 18
    
        Eugene_life 10.05.12✎ 12:42 | 
        (17) не знал     | |||
| 19
    
        Janna26 10.05.12✎ 12:43 | 
        Переустановила. Не помогло.     | |||
| 20
    
        Janna26 10.05.12✎ 12:44 | 
        ИмяИБ="D:\Навика\NData\NData";
  Пользователь7 = "Com"; Пароль7 ="Com"; V7 = Новый COMОбъект("V1CEnterprise.Application"); init = V7.Initialize(V7.RMTrade,"/D"""+ИмяИБ+""""+" /N"+СокрЛП(Пользователь7)+" /P"+СокрЛП(Пароль7),"NO_SPLASH_SHOW"); //Номенклатура77 = V7.CreateObject("Справочник.Номенклатура"); а=0; на данный момент код такой. | |||
| 21
    
        del123 10.05.12✎ 12:47 | 
        а вообще база 7.7 нормально запускается? ни на что не ругается?     | |||
| 22
    
        Janna26 10.05.12✎ 12:48 | 
        (21) Да все отлично. Даже проверяла так. Убирала путь из строки тогда 1с открывает выбор баз 7.7 я там выбирала нужную базу и вводила правильно логин и пароль. и все равно....     | |||
| 23
    
        155153144627 10.05.12✎ 12:51 | 
        ИмяИБ="D:\Навика\NData\NData";
  Пользователь7 = "Com"; Пароль7 ="Com"; V7 = Новый COMОбъект("V1CEnterprise.Application"); init = V7.Initialize(V7.RMTrade,"/D"""+ИмяИБ+""""+" /N"+СокрЛП(Пользователь7)+" /P"+СокрЛП(Пароль7),"NO_SPLASH_SHOW"); Если init = 0 Тогда Сообщить("Не удалось подключиться к указанной базе"); КонецЕсли; Вот так сделай. И еще такой момент, если индексы порушены некорректным выходом из программы, то подключиться не удасться. Нужна будет переиндексация в монопольном режиме. | |||
| 24
    
        Janna26 10.05.12✎ 12:51 | 
        У кого еще мысли будут?     | |||
| 25
    
        155153144627 10.05.12✎ 12:52 | 
        ИмяИБ="D:\Навика\NData\NData";
  Пользователь7 = "Com"; Пароль7 ="Com"; V7 = Новый COMОбъект("V77.Application"); init = V7.Initialize(V7.RMTrade,"/D"""+ИмяИБ+""""+" /N"+СокрЛП(Пользователь7)+" /P"+СокрЛП(Пароль7),"NO_SPLASH_SHOW"); Если init = 0 Тогда Сообщить("Не удалось подключиться к указанной базе"); КонецЕсли; | |||
| 26
    
        hhhh 10.05.12✎ 12:54 | 
        (25) откуда запускаете это хозяйство? С клиента или сервера?     | |||
| 27
    
        Janna26 10.05.12✎ 12:55 | 
        (25) Ну ты мой спаситель =) Скорее всего проблема и правда была в индексах.     | |||
| 28
    
        155153144627 10.05.12✎ 12:55 | 
        А запускала 1с-ку от имени администратора?     | |||
| 29
    
        nicxxx 10.05.12✎ 12:55 | 
        7.7 установлена простым копированием каталога BIN?     | |||
| 30
    
        Janna26 10.05.12✎ 12:56 | 
        (28) да у меня на пользователе локальный админ. Запустила в монопольно переиндексировала, вроде заработало :)     | |||
| 31
    
        Janna26 10.05.12✎ 12:56 | 
        (29) читай (19).     | |||
| 32
    
        Stamper 10.05.12✎ 13:00 | 
        может, Пользователь7 уже залогинен в ИБ 7.7? два раза под одним и тем-же залогиниться не удастся.
  плюс, нужно проверить, остался ли запущенный процесс 1с77 на машине. и последняя мысль -- зайти в базу в монопольном режиме. возможно, при неудачном выходе из базы её теперь нужно переиндексировать. вот ком-объект и не пускает. | |||
| 33
    
        Stamper 10.05.12✎ 13:01 | 
        тьфу, не вчитался...     | |||
| 34
    
        Janna26 10.05.12✎ 13:28 | 
        Ну это еще не все :)
  Если кого не затруднит объясните пожалуйста. Мне нужно из справочника номенклатура в 7 выбрать все элементы, лучше всего это сделать запросом. ТекстЗапр = "//{{ЗАПРОС(Сформировать) |Наименование = Справочник.Номенклатура.ТекущийЭлемент; |";//}}ЗАПРОС что то такое в конструкторе получилось :) А как дальше? Пока Запрос.Группировка("Наименование") = 1 Цикл а=0; КонецЦикла; не работает :( | |||
| 35
    
        del123 10.05.12✎ 13:31 | 
        а где в запросе группировка?     | |||
| 36
    
        Janna26 10.05.12✎ 13:32 | 
        (35) можешь поправить? не знаю в принципе как на 7.7 запросы писать :(     | |||
| 37
    
        Janna26 10.05.12✎ 13:34 | 
        ТекстЗапроса = 
  "//{{ЗАПРОС(Сформировать) |ТекущийЭлемент = Справочник.Номенклатура.ТекущийЭлемент; |Группировка ТекущийЭлемент упорядочить по ТекущийЭлемент.ВидНоменклатуры; |"//}}ЗАПРОС ; Так? | |||
| 38
    
        del123 10.05.12✎ 13:38 | 
        ТекстЗапроса = 
  "//{{ЗАПРОС(Сформировать) |ТекущийЭлемент = Справочник.Номенклатура.ТекущийЭлемент; |Группировка ТекущийЭлемент; |"//}}ЗАПРОС ; как то так вроде) Семерки под рукой нет, так что по памяти..) | |||
| 39
    
        Janna26 10.05.12✎ 14:34 | 
        Спасибо это получилось :)     | |||
| 40
    
        Janna26 10.05.12✎ 15:38 | 
        Ном77 = V7.CreateObject("Справочник.Номенклатура");
  Позиция = Ном77.НайтиПоРеквизиту("Артикул", Выборка.Артикул); Позиция возвращает значение 1. А как мне получить сам объект? | |||
| 41
    
        155153144627 10.05.12✎ 15:39 | 
        Позиция = Ном77.ТекущийЭлемент();     | |||
| 42
    
        Janna26 10.05.12✎ 15:40 | 
        (41) а если в восьмерке?     | |||
| 43
    
        155153144627 10.05.12✎ 15:40 | 
        Если Ном77.НайтиПоРеквизиту("Артикул", Выборка.Артикул) = 1 Тогда
  Позиция = Ном77.ТекущийЭлемент(); Иначе Сообщить("Номенклатура не найдена"); КонецЕсли; | |||
| 44
    
        Janna26 10.05.12✎ 15:41 | 
        {Форма.Форма.Форма(24)}: Значение не является значением объектного типа (ТекущийЭлемент)
  Ном77=Позиция.ТекущийЭлемент(); | |||
| 45
    
        Janna26 10.05.12✎ 15:42 | 
        (43) спасибо получилось.     | |||
| 46
    
        Janna26 10.05.12✎ 15:53 | 
        Опять проблема :(
  Пока Выборка.Следующий() Цикл Ном77 = V7.CreateObject("Справочник.Номенклатура"); Если выборка.Артикул <> "" тогда если Ном77.НайтиПоРеквизиту("Артикул", Выборка.Артикул)=1 тогда; Ном=Ном77.ТекущийЭлемент(); СтрРаз = РазныеЭлементы.Добавить(); СтрРаз.Наименование77 = Ном.Наименование; КонецЕсли; КонецЕсли; КонецЦикла; вот такой код что бы сильно не вникать объясню. Я в запросе выбираю нужный мне артикул из 8.2 и пытаюсь найти его в 7.7 я уверена что этот артикул есть, а программа не находит. Грешу на иерархию. Есть у кого нить предложения? | |||
| 47
    
        Janna26 10.05.12✎ 15:55 | 
        Ном77.НайтиПоРеквизиту("Артикул", Выборка.Артикул) вот это возвращает 0!     | |||
| 48
    
        Eugene_life 10.05.12✎ 15:57 | 
        (47) Значит, по артикулу элемент не нашелся..     | |||
| 49
    
        Janna26 10.05.12✎ 15:58 | 
        (480 Это я поняла. Меня интересует почему.     | |||
| 50
    
        Eugene_life 10.05.12✎ 15:58 | 
        (47) + попробуй СокрЛП()     | |||
| 51
    
        Eugene_life 10.05.12✎ 16:00 | 
        (50) + или, возможно, в этот артикул из 8-ки закрался Символы.НПП. Его нужно убрать тогда.     | |||
| 52
    
        Janna26 10.05.12✎ 16:01 | 
        (51) символы проверила.     | |||
| 53
    
        Janna26 10.05.12✎ 16:02 | 
        (50) СокрЛП() не помг :(     | |||
| 54
    
        Eugene_life 10.05.12✎ 16:03 | 
        (53) Попробуй так:
  Ном77.НайтиПоРеквизиту("Артикул", Выборка.Артикул,1); | |||
| 55
    
        Janna26 10.05.12✎ 16:04 | 
        (54) Помогло :) а что это было?     | |||
| 56
    
        Janna26 10.05.12✎ 16:04 | 
        Простите за глупые вопросы :(     | |||
| 57
    
        AlexTim03 10.05.12✎ 16:04 | 
        (46) а еще совсем не айс постоянно в цикле создавать объект:
  "Ном77 = V7.CreateObject("Справочник.Номенклатура");" | |||
| 58
    
        Eugene_life 10.05.12✎ 16:05 | 
        (56) "1" - флаг глобального поиска (т.е. без учета иерархии), а "0" (это по умолчанию) - только в пределах подчинения. Это же 7.7 :)     | |||
| 59
    
        155153144627 10.05.12✎ 16:05 | 
        НайтиПоРеквизиту(<?>,,);
  Синтаксис: НайтиПоРеквизиту(<ИмяРеквизита>,<Значение>,<ФлагГлобальногоПоиска>) Назначение: Найти элемент справочника по значению реквизита. Возвращает: 1 - если действие выполнено; 0 - если действие не выполнено (элемент не найден). Параметры: <ИмяРеквизита> - строка с наименованием реквизита; <Значение> - значение реквизита для поиска; <ФлагГлобальногоПоиска> - флаг поиска: 0 - поиск выполняется в пределах подчинения справочника, 1 - поиск выполняется по всему справочнику. | |||
| 60
    
        Eugene_life 10.05.12✎ 16:06 | 
        (57) + Кстати, да. Строку Ном77 = V7.CreateObject("Справочник.Номенклатура"); лучше вынести перед циклом.     | |||
| 61
    
        Janna26 10.05.12✎ 16:22 | 
        (60) вынесла спасибо.     | |||
| 62
    
        John83 15.05.12✎ 10:27 | 
        (0) винда случаем не 64х?
  какой дистрибутив ставила? я дома пытался поставить 7ку, но COM соединение так и не взлетело... | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |