Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Експорт даних із 7.7 у 8.2 (контактні дані контрагентів) , 7.7 - рос.торг., 8.2 - УТП Україна          
mister-x Подменю пользователя
сообщение 23.04.13, 14:41
Сообщение #1

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1422 раз
Рейтинг: 0

код у 8.2:
База7 = Новый COMОбъект("V77s.Application");
    Если База7.Initialize (База7.RMTrade , "","NO_SPLASH_SHOW") = 0 Тогда
        База7 = Неопределено;
        Сообщить("Произошла ошибка. Подключение к OLE-объекту не произошло");        Возврат;
    Иначе
        
        Контрагент7 =  База7.CreateObject("Справочник.Контрагенты");
        
        
                
        Контрагент7.ВыбратьЭлементы(1);
        Пока Контрагент7.ПолучитьЭлемент()=1 цикл
            
            Если Контрагент7.ПометкаУдаления()=1 тогда
                Продолжить;
            КонецЕсли;
            
            
            
            Если (Контрагент7.ЭтоГруппа()=1) тогда
                Продолжить;
            Иначе
                //Сообщить(Контрагент7.Наименование);
                Контрагент8 = Справочники.Контрагенты.НайтиПоКоду(Контрагент7.Код);
                
                Если Контрагент8=Справочники.Контрагенты.ПустаяСсылка() тогда
                    сообщить("Не найдено контрагента из 7.7: "+Контрагент7.Наименование+" из кодом "+Контрагент7.код);
                    продолжить;
                конецесли;    
                    
                    Состояние("!!! Обрабатывается контрагент из версии 7.7: "+Контрагент7.Наименование + " !!!");
                    
                    //**************************
                    // адреса
                    НаборЮрАдрес=РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
                    
                    НаборЮрАдрес.Отбор.Объект.Установить(Контрагент8.Ссылка);
                    НаборЮрАдрес.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.Адрес);
                    НаборЮрАдрес.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента.Ссылка);
                    
                    //НаборЮрАдрес.прочитать();
                    П77 = СокрЛП(Контрагент7.ЮрФизЛицо.ЮрАдрес);
                    ЮрАд = СокрЛП(База7.EvalExpr("глПредставлениеАдреса(П77,0)"));
...

із доків по ОЛЕ
Цитата
EvalExpr() - вычислить выражение.

Синтаксис метода такой: EvalExpr(<СтрокаВыражения>), где:
<СтрокаВыражения> - строковое выражение, записанное на встроенном языке 1С-Предприятия.

Результатом выражения может быть число, строка, дата или значение любого агрегатного типа данных. Результат с неопределенным типом преобразуется к строковому типу.

Вилітає із помилкою при використанні методу EvalExpr:
Цитата
{Форма.Форма.Форма(48)}: Ошибка при вызове метода контекста (EvalExpr)
ЮрАд = СокрЛП(База7.EvalExpr("глПредставлениеАдреса(П77,0)"));
по причине:
Произошла исключительная ситуация (1С:Предприятие): 1 глПредставлениеАдреса(П77<<?>>,0)
Переменная не определена (П77)


Маємо у таблі (відлагоджувач):
П77=",,,,Тернопіль,Миру,,1В,,21" (тип - строка).

глоб. функція і3 7.7
Цитата
//******************************************************************************
// глПредставлениеАдреса(Знач Адрес, Способ = 0) Экспорт
//
// Параметры:
// Адрес (строка), адрес представление которого нужно вернуть.
// Способ - способ представления адреса (если=1, то возвращает представление адреса без индекса)
//
// Возвращаемое значение:
// Строку - представление адреса
//
// Описание:
// Предназначена для формирования адресной строки в "удобочитаемом" виде
// для отражения в формах.


хто юзав цей метод EvalExpr - що він хоче?

Сообщение отредактировал mister-x - 23.04.13, 14:45

alex040269 Подменю пользователя
сообщение 23.04.13, 15:09
Сообщение #2

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(mister-x @ 23.04.13, 15:41) *
Переменная не определена (П77)

мабуть
ЮрАд = СокрЛП(База7.EvalExpr("глПредставлениеАдреса("+П77+",0)"));


smile.gif

П77 определена в области видимости 8, но не определена в 7.7


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

mister-x Подменю пользователя
сообщение 23.04.13, 15:26
Сообщение #3

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1422 раз
Рейтинг: 0

пробував - от
Цитата
{Форма.Форма.Форма(48)}: Ошибка при вызове метода контекста (EvalExpr)
ЮрАд = СокрЛП(База7.EvalExpr("глПредставлениеАдреса("+П77+",0)"));
по причине:
Произошла исключительная ситуация (1С:Предприятие): 1 глПредставлениеАдреса(,,,,Тернопіль,Миру,,1В,<<?>>,21,0)
Ожидается выражение


не перетворює в стрічку зміну П77
мало б бути так
глПредставлениеАдреса(",,,,Тернопіль,Миру,,1В,,21",0)


і так
ЮрАд = СокрЛП(База7.EvalExpr("глПредставлениеАдреса("+строка(П77)+",0)"));

нічого не дає
Цитата
{Форма.Форма.Форма(48)}: Ошибка при вызове метода контекста (EvalExpr)
ЮрАд = СокрЛП(База7.EvalExpr("глПредставлениеАдреса("+строка(П77)+",0)"));
по причине:
Произошла исключительная ситуация (1С:Предприятие): 1 глПредставлениеАдреса(,,,,Тернопіль,Миру,,1В,<<?>>,21,0)
Ожидается выражение


Сообщение отредактировал mister-x - 23.04.13, 15:24

pablo Подменю пользователя
сообщение 23.04.13, 15:27
Сообщение #4

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 193 раз
Рейтинг: 0

ЮрАд = СокрЛП(База7.EvalExpr("глПредставлениеАдреса("""+П77+""",0)"));

А так?


Signature
Правильно поставленный вопрос содержит до 90% ответа.

alex040269 Подменю пользователя
сообщение 23.04.13, 15:27
Сообщение #5

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(mister-x @ 23.04.13, 16:23) *
пробував - от


не перетворює в стрічку зміну П77
мало б бути так
<!--shcode--><pre><code class='1c'>глПредставлениеАдреса(",,,,Тернопіль,Миру,,1В,<<?>>,21",0)</code></pre><!--ehcode-->


ЮрАд = СокрЛП(База7.EvalExpr("глПредставлениеАдреса("""+П77+""",0)"));


т.е добавить двойные кавычки, сто бы 1С преобразовали и передала строку : глПредставлениеАдреса(",,,,Тернопіль,Миру,,1В,,21",0)

Сообщение отредактировал pablo - 23.04.13, 15:30
Причина редактирования: Поправил тэги


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

mister-x Подменю пользователя
сообщение 23.04.13, 15:29
Сообщение #6

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1422 раз
Рейтинг: 0

Цитата
{Форма.Форма.Форма(49)}: Метод объекта не обнаружен (EvalExpr)
ЮрАд = СокрЛП(База7.EvalExpr("глПредставлениеАдреса("""+П77+""",0)"));

alex040269 Подменю пользователя
сообщение 23.04.13, 15:40
Сообщение #7

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

ЮрАд = СокрЛП(База7.EvalExpr(""""+П77+""""));


а так возвращает строку?


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

mister-x Подменю пользователя
сообщение 23.04.13, 15:59
Сообщение #8

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1422 раз
Рейтинг: 0

вертає

отак працює, в оле чотири лапки потрібно для перетворення в стрічку змінної із 8-ки в 7-ці, мда
ЮрАд = СокрЛП(База7.EvalExpr("глПредставлениеАдреса("+""""+П77+""""+",0)"));


Сообщение отредактировал mister-x - 23.04.13, 16:00

alex040269 Подменю пользователя
сообщение 23.04.13, 16:04
Сообщение #9

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

спочатку 8-ка "з'їдає" лапки, а потім 7-ка smile.gif


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.06.25, 16:47
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!