Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Дек 2017, 08:28
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Вариант интеграции с 1с8.2  (Прочитано 7934 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vitaly1954

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-10-08
  • Сайт: 
  • Профессия: Программист 8.1
Прошу помощи по такому варианту интеграции.

Есть билинговая система - выполняет расчет за услуги связи(написана на PowerBuilder). Раньше результат расчетов писался в 1С7.7
напрямую  в таблицы SQL - сервера. Способ хороший, если четко знаешь внутреннее устройство базы.
На 7.7 пришлось повозиться.
Предстоит переход на 1С8.2. Хочется через COM с использованием готовых функций, чтобы без сюрпризов.
Проверил, работает.
Но мне важна взаимосвязь двух баз. Раньше я после экспорта любого объекта(записи справочника, документа) в 1С сохранял в своей базе ссылку на него
в виде ID записи. Потом использовал эти ссылки для изменения/удаления из 1С при пересчетах, синхронизации  и т.д.
Можно ли получить этот ID средствами 1С и можно ли его использовать как и раньше?
Ссылка() не проходит, т.к. возвращает объект, а не код.
Есть варианты?
В крайнем случае могу поменять базы местами, т.е. созранять свой ID в базе 1С, но не хотелось бы, переработка большая.



Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6558
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Вас, видимо, интересует функция ссылки объекта УникальныйИдентификатор()

Синтаксис:

УникальныйИдентификатор()
Возвращаемое значение:

Тип: УникальныйИдентификатор.

Описание:

Получает уникальный идентификатор ссылки.
Ссылка может быть получена из уникального идентификатора с помощью метода менеджера ПолучитьСсылку.

Доступность:

Тонкий клиент, сервер, толстый клиент, внешнее соединение.

Оффлайн Vitaly1954

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-10-08
  • Сайт: 
  • Профессия: Программист 8.1
Вот так работает

OLEObject spr, record, s_ref // соответсвущий тип данных в Power Builder

spr = connection_v82.Справочники.Контрагенты;
record = spr.Выбрать();
s_ref = record.Ссылка().УникальныйИдентификатор()

Реально в базе ключи имеют тип binary(16).
Пока неясно,что это дает.


Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6558
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Ну так по этому идентификатору вы потом можете найти элемент в базе 1С. И делать с ним все что нужно. Я так понял, именно такая задача и стоит.

Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6558
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Для поиска по ссылке у менеджера справочника есть функция ПолучитьСсылку()

Синтаксис:

ПолучитьСсылку(<УникальныйИдентификатор>)
Параметры:

<УникальныйИдентификатор> (необязательный)

Тип: УникальныйИдентификатор.
Уникальный идентификатор, из которого будет формироваться ссылка.
Возвращаемое значение:

Тип: СправочникСсылка.

Описание:

Формирует ссылку из значения типа УникальныйИдентификатор.
Данный уникальный идентификатор может быть в дальнейшем получен из ссылки методом УникальныйИдентификатор.

Оффлайн Vitaly1954

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-10-08
  • Сайт: 
  • Профессия: Программист 8.1
Загвоздка в том, как преобразовать OleObject в varbinary и обратно.
Здесь типы клиентской и серверной частей разъехались.
А так все понятно.
Я кстати не программист 1С.
Просто при регистрации других вариантов не нашел.
Поэтому трудновато как-то.


Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6558
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Вы можете преобразовать УникальныйИдентификатор в строку функцией СокрЛП() и дальше крутить ей как угодно.

Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6558
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Обратно соответственно конструктором Новый УникальныйИдентификатор(<Строка>)

Оффлайн Vitaly1954

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-10-08
  • Сайт: 
  • Профессия: Программист 8.1
А как вызывать функции 1С в среде PowerBuilder?
Нужно их как-то заворачивать, чтобы не было синтаксической ошибки.
Вызов типа obj1C.СокрЛП (), obj1C.Вычислить (...) выдает ошибку - нет такого метода.
В 7.7 есть метод  EvalExpr, который позволяет это делать, например так:
s = "Справочник.Контрагенты"
spr = obj1C.EvalExpr('СоздатьОбъект("' + s + '")').

Вот нашел старенькую статью, как эмулировать EvalExpr
http://doc-prg.narod.ru/art_00011/art_00011.htm

Другие варианты есть ?


Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6558
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Там описан хороший метод, но для него нужно править конфигурацию 1с.
Для того чтобы это не делать можно использовать метод com соединения NewObject("ИмяОбъекта")

Как видно из описания с помощью этого метода можно создать многие объекты 1С, но не все, а только те которые в конструкторе не содержат обязательных параметров.

Пример создания таблицы значений:

ТЗ = COM.NewObject("ТаблицаЗначений");

Касательно вашего вопроса.

Для получения строки из уникального идентификатора подойдет метод String()

Строка = COM.String(УникальныйИдентификатор);



Теги: интеграция 
 

Поле "вариант оформления продажи не заполнено"

Автор Алексей ЯгловскийРаздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 4543
Последний ответ 01 Июн 2016, 15:39
от Алексей Ягловский
Для контрагента в договоре установлен вариант ведения взаиморасчетов "По заказам

Автор DDDРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 3916
Последний ответ 25 Ноя 2008, 10:33
от DDD
1С УТ11.1 сервеный вариант не отправляет картинки в теле письма

Автор Константин ГрунинРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 9
Просмотров: 2546
Последний ответ 28 Авг 2015, 10:29
от vitasw
Кто-нибудь хочет на курсы 1С "Средства интеграции и обмена данными"?

Автор SandiРаздел Поиск единомышленников

Ответов: 5
Просмотров: 1018
Последний ответ 03 Авг 2017, 10:47
от Sandi
Не удалось определить вариант преобразования для сущности

Автор andrew_cherРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 1732
Последний ответ 17 Янв 2012, 10:33
от andrew_cher

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
154 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
46 Сообщений
oleg-x
44 Сообщений
andron81_81
44 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
BuhRust
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 179
  • Точка Скрытых: 1
  • Точка Пользователей: 3
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal