Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
common_all:priemyraboty:rabotacherezcom [2016/05/24 11:47] alexander |
common_all:priemyraboty:rabotacherezcom [2016/05/24 11:53] alexander |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
{{ :common_pics:1c_128.png?nolink&128|}} | {{ :common_pics:1c_128.png?nolink&128|}} | ||
- | ====== COM, OLE... ====== | + | ====== Некоторая работа с данными через COM ====== |
[[common_all:priemyraboty:ole|назад]] | [[common_all:priemyraboty:ole|назад]] | ||
---- | ---- | ||
- | Некоторая работа с данными через COM | + | |
- | Опубликовал wowik в раздел Программирование - Практика программирования | + | Опубликовал [[http://infostart.ru/profile/46144/|wowik]] в раздел Программирование - Практика программирования |
+ | ---- | ||
В статье приведены примеры работы с Платформой 8.X через COM (точнее, через объект COMConnector). | В статье приведены примеры работы с Платформой 8.X через COM (точнее, через объект COMConnector). | ||
Строка 16: | Строка 18: | ||
При подключении с использованием COM, в подключенной базе есть некоторые ограничения: не работают события связанные с интерфейсом(модуль управляемого приложения, модуль сеанса), но работают события модуля внешнего соединения. | При подключении с использованием COM, в подключенной базе есть некоторые ограничения: не работают события связанные с интерфейсом(модуль управляемого приложения, модуль сеанса), но работают события модуля внешнего соединения. | ||
+ | ---- | ||
+ | Создание com подключения к базе: | ||
- | Начнем. | ||
- | |||
- | |||
- | Создание com подключения к базе: | ||
<code>Процедура ПодключениеКБазе1С(ПутьКБазе, Пользователь, Пароль = "", Сервер, БазаДанных) | <code>Процедура ПодключениеКБазе1С(ПутьКБазе, Пользователь, Пароль = "", Сервер, БазаДанных) | ||
СтрокаПодключения = ""; | СтрокаПодключения = ""; | ||
Строка 32: | Строка 32: | ||
COMCоединение = cntr.Connect(СтрокаПодключения); | COMCоединение = cntr.Connect(СтрокаПодключения); | ||
КонецПроцедуры</code> | КонецПроцедуры</code> | ||
- | + | ---- | |
- | + | Получение типа "ДокументСсылка.ПриходнаяНакладная" из подключенной базы: | |
- | Получение типа "ДокументСсылка.ПриходнаяНакладная" из подключенной базы | + | |
<code>Тип = COMCоединение.NewObject("ОписаниеТипов","ДокументСсылка.ПриходнаяНакладная").Типы().Получить(0);</code> | <code>Тип = COMCоединение.NewObject("ОписаниеТипов","ДокументСсылка.ПриходнаяНакладная").Типы().Получить(0);</code> | ||
+ | ---- | ||
Строка 44: | Строка 44: | ||
<code>Тип = COMCоединение.NewObject("ОписаниеТипов","СправочникСсылка.Номенклатура").Типы().Получить(0);</code> | <code>Тип = COMCоединение.NewObject("ОписаниеТипов","СправочникСсылка.Номенклатура").Типы().Получить(0);</code> | ||
+ | ---- | ||
- | Создание объекта "Запрос" | + | |
+ | Создание объекта "Запрос": | ||
<code>Запрос = COMCоединение.NewObject("Запрос");</code> | <code>Запрос = COMCоединение.NewObject("Запрос");</code> | ||
+ | ---- | ||
- | Создание объекта "Структура" | + | |
+ | Создание объекта "Структура": | ||
Вариант 1. | Вариант 1. | ||
Строка 58: | Строка 62: | ||
<code>ПараметрыПоиска = COMCоединение.NewObject("Структура"); ПараметрыПоиска.Вставить("КлючСвязиСерийныхНомеров",123);</code> | <code>ПараметрыПоиска = COMCоединение.NewObject("Структура"); ПараметрыПоиска.Вставить("КлючСвязиСерийныхНомеров",123);</code> | ||
+ | ---- | ||
- | Создание объекта "СписокЗначений" | + | Создание объекта "СписокЗначений": |
<code>СЗ = COMCоединение.NewObject("СписокЗначений");</code> | <code>СЗ = COMCоединение.NewObject("СписокЗначений");</code> | ||
+ | ---- | ||
- | + | Создание таблицы значений: | |
- | Создание таблицы значений | + | |
<code>ИтоговаяТаблица = COMCоединение.NewObject("ТаблицаЗначений");</code> | <code>ИтоговаяТаблица = COMCоединение.NewObject("ТаблицаЗначений");</code> | ||
+ | ---- | ||
- | Добавление колонок таблицы значений | + | Добавление колонок таблицы значений: |
<code>ИтоговаяТаблица.Колонки.Добавить("Номенклатура", COMCоединение.NewObject("ОписаниеТипов","СправочникСсылка.Номенклатура"));</code> | <code>ИтоговаяТаблица.Колонки.Добавить("Номенклатура", COMCоединение.NewObject("ОписаниеТипов","СправочникСсылка.Номенклатура"));</code> | ||
+ | ---- | ||
- | + | Получение ссылки на документ если известен уникальный идентификатор: | |
- | Получение ссылки на документ если известен уникальный идентификатор | + | |
<code>Документ1С = COMCоединение.Документы.ПриходнаяНакладная.ПолучитьСсылку(COMCоединение.NewObject("УникальныйИдентификатор", УникальныйИдентификаторДокументаВВидеСтроки));</code> | <code>Документ1С = COMCоединение.Документы.ПриходнаяНакладная.ПолучитьСсылку(COMCоединение.NewObject("УникальныйИдентификатор", УникальныйИдентификаторДокументаВВидеСтроки));</code> | ||
+ | ---- | ||
+ | |||
Проверка что ссылка не пустая и не "битая": | Проверка что ссылка не пустая и не "битая": | ||
<code>Если Найти(COMCоединение.String(Документ1С),"не найден") = 0 Тогда //документ найден</code> | <code>Если Найти(COMCоединение.String(Документ1С),"не найден") = 0 Тогда //документ найден</code> | ||
+ | ---- | ||
- | + | Проверка реквизита справочника с типом "Перечисление"на соответствие определенному значению: | |
- | Проверка реквизита справочника с типом "Перечисление"на соответствие определенному значению | + | |
<code>COMCоединение.XMLстрока(Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий) = "ЭкземплярТовара";</code> | <code>COMCоединение.XMLстрока(Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий) = "ЭкземплярТовара";</code> | ||
+ | ---- | ||
+ | Сравнение ссылок объектов (при сравнении ссылочных Com-объектов, как показывает практика, нужно сравнивать их по коду или по ссылке, а не напрямую): | ||
- | Сравнение ссылок объектов (при сравнении ссылочных Com-объектов, как показывает практика, нужно сравнивать их по коду или по ссылке, а не напрямую) | + | <code>COMCоединение.xmlстрока(НоменклатураСсылка.НаборУпаковок) = COMCоединение.xmlстрока(COMCоединение.Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры)</code> |
- | <code>COMCоединение.xmlстрока(НоменклатураСсылка.НаборУпаковок) = COMCоединение.xmlстрока(COMCоединение.Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры) вместо | + | вместо |
- | НоменклатураСсылка.НаборУпаковок = COMCоединение.Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры</code> | + | |
+ | <code>НоменклатураСсылка.НаборУпаковок = COMCоединение.Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры</code> | ||
+ | ---- | ||