Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия | Следующая версия Следующая версия справа и слева | ||
common_all:priemyraboty:rabotacherezcom [2016/05/24 11:47] alexander |
common_all:priemyraboty:rabotacherezcom [2016/05/24 11:51] alexander |
||
---|---|---|---|
Строка 7: | Строка 7: | ||
Некоторая работа с данными через COM | Некоторая работа с данными через COM | ||
Опубликовал wowik в раздел Программирование - Практика программирования | Опубликовал 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>COMCоединение.xmlстрока(НоменклатураСсылка.НаборУпаковок) = COMCоединение.xmlстрока(COMCоединение.Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры)</code> |
- | НоменклатураСсылка.НаборУпаковок = COMCоединение.Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры</code> | + | |
+ | вместо | ||
+ | |||
+ | <code>НоменклатураСсылка.НаборУпаковок = COMCоединение.Справочники.НаборыУпаковок.ИндивидуальныйДляНоменклатуры</code> | ||
+ | ---- | ||