8.х Ссылка и Внешнее соединение

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем skv_79, 19 мар 2017.

  1. TopicStarter Overlay
    skv_79
    Offline

    skv_79 Опытный в 1С

    Регистрация:
    10 июл 2013
    Сообщения:
    379
    Симпатии:
    6
    Баллы:
    29
    Добрый день!
    Хотелось бы сохранять в ИБ ссылку на документ из другой базы, и при необходимости открывать через внешнее соединение сразу форму объекта с отбором по ссылке в другой базе. Но сложность в том, что ссылка имеет тип COMОбъект и сохранить ее в реквизит типа ЛюбаяСсылка не получается. Думал получить хотя бы УИ но такой метод через внешнее соединение не поддерживается. Сейчас думаю, что вариант создать общий внешний модуль в другой базе через расширения и возвращать ссылку через функцию в массиве. Может это как-то проще делается...
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.858
    Симпатии:
    1.025
    Баллы:
    204
    Передавать/хранить нужно строку от УИ, затем преобразовывать из строки.
    skv_79 нравится это.
  3. TopicStarter Overlay
    skv_79
    Offline

    skv_79 Опытный в 1С

    Регистрация:
    10 июл 2013
    Сообщения:
    379
    Симпатии:
    6
    Баллы:
    29
    Спасибо, все получилось:
    Код:
    Результат.String(ДокОбъект.Ссылка.УникальныйИдентификатор())
  4. TopicStarter Overlay
    skv_79
    Offline

    skv_79 Опытный в 1С

    Регистрация:
    10 июл 2013
    Сообщения:
    379
    Симпатии:
    6
    Баллы:
    29
    Код:
        ДокПолуч = "";
        СсылкаУИДКОМ = База.NewObject(Новый УникальныйИдентификатор(СсылкаУИД));
        Выполнить("ДокПолуч = База.Документы." + Строка("ПлатежноеПоручение") + ".ПолучитьСсылку(" + СсылкаУИДКОМ + "))");
       
        БазаПараметры = База.NewObject("Структура");
        БазаПараметры.Вставить("Ключ", ДокПолуч);
       
        База.ОткрытьФорму("Документ.ПлатежноеПоручение.Форма.ФормаДокумента", БазаПараметры);
    
    Хочу открыть документ, и на второй строке возникает ошибка "разные типы, параметр 1". В СсылкаУИД УИД типа Строка. Все делаю, кажется, правильно, в другой базе создаю новый объект, а потом пытаюсь получить ссылку по УИД из другой базы.
    --- Объединение сообщений, 19 мар 2017 ---
    Все отработкало как положено вот так:
    Код:
        ДокПолуч = "";
        СсылкаУИДКОМ = База.NewObject("УникальныйИдентификатор", СсылкаУИД);
        Выполнить("ДокПолуч = База.Документы." + Строка("ПлатежноеПоручение") + ".ПолучитьСсылку(СсылкаУИДКОМ)");
       
        БазаПараметры = База.NewObject("Структура");
        БазаПараметры.Вставить("Ключ", ДокПолуч);
       
        База.ОткрытьФорму("Документ.ПлатежноеПоручение.Форма.ФормаДокумента", БазаПараметры);
    
    Последнее редактирование: 19 мар 2017
  5. TopicStarter Overlay
    skv_79
    Offline

    skv_79 Опытный в 1С

    Регистрация:
    10 июл 2013
    Сообщения:
    379
    Симпатии:
    6
    Баллы:
    29
    Так понимаю, что через COM соединение рационально работать только на одном компьютере... если по локальной сети один хост обращается к другому, то это происходит очень долго. Сейчас проверил, если одна база и вторая на одном хосте, то 30 сек, а если по сети то 5 минут. Существуют способы как-то ускорить этот процесс, или только переходить на xml?
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.858
    Симпатии:
    1.025
    Баллы:
    204
    Только другие способы передачи данных.