|   |   | 
| 
 | Получение ссылки на документ через ЗначениеИзСтрокиВнутр() | ☑ | ||
|---|---|---|---|---|
| 0
    
        LisaAlisa 16.09.15✎ 09:13 | 
        Добрый день!
 Из 8.3 подключаюсь к 7.7, имея при этом IDDOC документа. Код следующий: ОбъектВнутреннегоФормата = Строка(ComОбъект77._StrToId(Лев(СтрокаТЧ.IDDOC_Удаляем,6))); ОбъектВнутреннегоФормата = СтрЗаменить(ОбъектВнутреннегоФормата,Символ(160),""); ОбъектВнутреннегоФормата = Прав(" "+ОбъектВнутреннегоФормата+" ",13); Стр = "{""O"",""0"",""0"",""130"",""0"",""0"","""+ОбъектВнутреннегоФормата+"""}"; СтрИд = СтрЗаменить(Стр, """", """"""); СсылкаНаОбъект =ComОбъект77.ЗначениеИзСтрокиВнутр(СтрИд,); ------ здесь ошибка при этом для конкретного документа СтрИд = "{""O"",""0"",""0"",""130"",""0"",""0"",""39258689""}", в 7ке в табло получаю значение ЗначениеИзСтрокиВнутр("{""O"",""0"",""0"",""130"",""0"",""0"",""39258689""}") = Отгрузка товаров, продукции 7870608 (01.08.15) , т.е. возвращается ссылка на объект, а в 8ке не работает, возвращает ошибку > Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр): > Неизвестная ошибка | |||
| 1
    
        Апош 16.09.15✎ 09:16 | 
        второй параметр штоль?     | |||
| 2
    
        ДенисЧ 16.09.15✎ 09:21 | 
        А с чего бы внутреннее значение из 77 должно расшифровываться в 8ке?     | |||
| 3
    
        LisaAlisa 16.09.15✎ 09:24 | 
        (2) а как быть в этом случае?     | |||
| 4
    
        LisaAlisa 16.09.15✎ 09:25 | 
        (1) без второго параметра так же не работает, это я уже всякие варианты пробовала, поискав по форуму     | |||
| 5
    
        ДенисЧ 16.09.15✎ 09:37 | 
        (3) Искать по полям поиска     | |||
| 6
    
        dk 16.09.15✎ 09:40 | 
        в 77 нет второго параметра у значениеизстрокивнутр     | |||
| 7
    
        kosts 16.09.15✎ 09:41 | 
        Попробуй сделать функцию обертку в 77 в глобальном модуле     | |||
| 8
    
        dk 16.09.15✎ 09:44 | 
        еще не всегда ком77 принимает русское название функций -
 попробуй СсылкаНаОбъект = ComОбъект77.ЗначениеИзСтрокиВнутр(СтрИд); и СсылкаНаОбъект = ComОбъект77.ЗначениеИзСтрокиВнутр("{""O"",""0"",""0"",""130"",""0"",""0"",""39258689""}"); и СсылкаНаОбъект = ComОбъект77.ValueFromStringInternal("{""O"",""0"",""0"",""130"",""0"",""0"",""39258689""}"); | |||
| 9
    
        kosts 16.09.15✎ 10:05 | 
        Вот так попробуй 
 тмп = 0; СсылкаНаОбъект = ComОбъект77.ЗначениеИзСтрокиВнутр(Идентификатор, тмп); или так СсылкаНаОбъект = ""; ComОбъект77.ЗначениеИзСтрокиВнутр(Идентификатор, СсылкаНаОбъект); | |||
| 10
    
        LisaAlisa 16.09.15✎ 10:10 | 
        (9) сделала, возвращает СсылкаНаОбъект = "" 
 (8) объединила с (9) СсылкаНаОбъект = ""; ComОбъект77.ValueFromStringInternal(СтрИд,СсылкаНаОбъект); | |||
| 11
    
        LisaAlisa 16.09.15✎ 10:11 | 
        (7) мне нельзя править конфигурацию 77     | |||
| 12
    
        dk 16.09.15✎ 10:18 | 
        покажи как ComОбъект77 создаешь и работаешь
 какого хрена в 77 пытаешься 2-й параметр передать, если его там нет? | |||
| 13
    
        Ёпрст гуру 16.09.15✎ 10:19 | 
        сылкаНаОбъект = ComОбъект77.ЗначениеИзСтрокиВнутр(Идентификатор, неопределенно);
 Так, че кажет ? | |||
| 14
    
        LisaAlisa 16.09.15✎ 10:22 | 
        (13) возвращает Неопределено     | |||
| 15
    
        LisaAlisa 16.09.15✎ 10:25 | 
        (12) уже не передаю, это был один из вариантов
 сейчас так ОбъектВнутреннегоФормата = Строка(ComОбъект77._StrToId(Лев(СтрокаТЧ.IDDOC_Удаляем,6))); ОбъектВнутреннегоФормата = СтрЗаменить(ОбъектВнутреннегоФормата,Символ(160),""); ОбъектВнутреннегоФормата = Прав(" "+ОбъектВнутреннегоФормата+" ",13); Стр = "{""O"",""0"",""0"",""130"",""0"",""0"","""+ОбъектВнутреннегоФормата+"""}"; СтрИд = СтрЗаменить(Стр, """", """"""); СсылкаНаОбъект =ComОбъект77.ЗначениеИзСтрокиВнутр(СтрИд,); ComОбъект77 = ПолучитьОбъектДоступаК7(Путь, Имя, Пароль); Функция ПолучитьОбъектДоступаК7(Путь, Имя, Пароль) Перем ОбъектДоступа; Попытка ОбъектДоступа = Новый COMОбъект("V77S.Application"); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Если НЕ ОбъектДоступа=Неопределено Тогда Если ЗначениеЗаполнено(Имя) И ЗначениеЗаполнено(Пароль) Тогда СтрокаПодключения="/d"""+Путь+""" /n"+Имя+ " /p"+Пароль; Иначе Сообщить("Необходимо во вкладке Настройки заполнить Имя и Пароль!"); Возврат Неопределено; КонецЕсли; РезультатПодключения = ОбъектДоступа.Initialize(ОбъектДоступа.RMTrade, СтрокаПодключения, "NO_SPLASH_SHOW"); Если Не РезультатПодключения Тогда ОбъектДоступа=Неопределено; КонецЕсли; КонецЕсли; Возврат ОбъектДоступа; КонецФункции | |||
| 16
    
        LisaAlisa 16.09.15✎ 10:28 | 
        Не понимаю, как здесь отредактировать отправленное сообщение...
 В предыдущем была ошибка, исправляюсь: ComОбъект77 = ПолучитьОбъектДоступаК7(Путь, Имя, Пароль); ОбъектВнутреннегоФормата = Строка(ComОбъект77._StrToId(Лев(СтрокаТЧ.IDDOC_Удаляем,6))); ОбъектВнутреннегоФормата = СтрЗаменить(ОбъектВнутреннегоФормата,Символ(160),""); ОбъектВнутреннегоФормата = Прав(" "+ОбъектВнутреннегоФормата+" ",13); Стр = "{""O"",""0"",""0"",""130"",""0"",""0"","""+ОбъектВнутреннегоФормата+"""}"; СтрИд = СтрЗаменить(Стр, """", """"""); СсылкаНаОбъект =ComОбъект77.ЗначениеИзСтрокиВнутр(СтрИд); Получение ком-объекта Функция ПолучитьОбъектДоступаК7(Путь, Имя, Пароль) Перем ОбъектДоступа; Попытка ОбъектДоступа = Новый COMОбъект("V77S.Application");//V77S.Application - для SQL V77L.Application - для однопользовательской V77.Application - для сетевой Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Если НЕ ОбъектДоступа=Неопределено Тогда Если ЗначениеЗаполнено(Имя) И ЗначениеЗаполнено(Пароль) Тогда СтрокаПодключения="/d"""+Путь+""" /n"+Имя+ " /p"+Пароль; Иначе Сообщить("Необходимо во вкладке Настройки заполнить Имя и Пароль!"); Возврат Неопределено; КонецЕсли; РезультатПодключения = ОбъектДоступа.Initialize(ОбъектДоступа.RMTrade, СтрокаПодключения, "NO_SPLASH_SHOW"); Если Не РезультатПодключения Тогда ОбъектДоступа=Неопределено; КонецЕсли; КонецЕсли; Возврат ОбъектДоступа; КонецФункции | |||
| 17
    
        dk 16.09.15✎ 10:38 | 
        ну и чего возвращают варианты
 СсылкаНаОбъект = ComОбъект77.ЗначениеИзСтрокиВнутр(СтрИд); и СсылкаНаОбъект = ComОбъект77.ЗначениеИзСтрокиВнутр("{""O"",""0"",""0"",""130"",""0"",""0"",""39258689""}"); и СсылкаНаОбъект = ComОбъект77.ValueFromStringInternal("{""O"",""0"",""0"",""130"",""0"",""0"",""39258689""}"); | |||
| 18
    
        LisaAlisa 16.09.15✎ 10:42 | 
        (17) для конкретного документа СтрИд = "{""O"",""0"",""0"",""130"",""0"",""0"",""39258689""}", 
 в 7ке в табло получаю значение ЗначениеИзСтрокиВнутр("{""O"",""0"",""0"",""130"",""0"",""0"",""39258689""}") = Отгрузка товаров, продукции 7870608 (01.08.15) , т.е. возвращается ссылка на объект, а в 8ке не работает, возвращает ошибку > Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр): > Неизвестная ошибка | |||
| 19
    
        LisaAlisa 16.09.15✎ 10:46 | 
        (17) Ошибка при вызове метода контекста (ValueFromStringInternal): Неизвестная ошибка     | |||
| 20
    
        Ёпрст гуру 16.09.15✎ 10:54 | 
        а так ?
 ССылочка = ComОбъект77.EvalExpr("ValueFromStringInternal(""{""O"",""0"",""0"",""130"",""0"",""0"",""39258689""}"",Неопределено)"); | |||
| 21
    
        LisaAlisa 16.09.15✎ 11:02 | 
        (20) Ошибка при вызове метода контекста (EvalExpr): Произошла исключительная ситуация (1С:Предприятие): 1    ValueFromStringInternal("{"<<?>>O","0","0","130","0","0","39258689"}",Неопределено)
 Ожидается символ ')' | |||
| 22
    
        НЕА123 16.09.15✎ 11:16 | 
        ССылочка =  ComОбъект77.EvalExpr("ValueFromStringInternal(""{""""O"""",""""0"""",""""0"""",""""130"""",""""0"""",""""0"""",""""39258689""""}"""",Неопределено)");     | |||
| 23
    
        dk 16.09.15✎ 12:29 | 
        ComОбъект77.EvalExpr("ЗначениеИзСтрокиВнутр(""{""""O"""",""""0"""",""""0"""",""""130"""",""""0"""",""""0"""",""""39258689""""}"")")
 так работает | |||
| 24
    
        Serginio1 16.09.15✎ 12:48 | 
        Все намного проще делать через внешние отчеты/
 Проще использовать Внешний Отчет с ОткрытьФормуМодально и передачей параметров во втором параметре Как выполнить процедуру внешней обработки через OLE Например БазаОЛЕ.ОткрытьФормуМодально("Отчет",параметры,ПутьКОбработке_ert"); А еще проще через 1с++ | |||
| 25
    
        LisaAlisa 17.09.15✎ 23:40 | 
        Рабочий код: 
 ОбъектВнутреннегоФормата = Строка(ComОбъект77._StrToId(Лев(СтрокаТЧ.IDDOC_Удаляем,6))); Стр ="{""O"",""0"",""0"",""130"",""0"",""0"","+ОбъектВнутреннегоФормата+"}"; СсылкаНаОбъект = 0; ComОбъект77.ЗначениеИзСтрокиВнутр(Стр,СсылкаНаОбъект); | |||
| 26
    
        ЧеловекДуши 18.09.15✎ 06:36 | 
        (0) Извращение, полнейшее :)     | |||
| 27
    
        ЧеловекДуши 18.09.15✎ 06:36 | 
        + Начни изучение 1С++, погугли :)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |