Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
common_all:priemyraboty:ole [2018/08/19 18:48] alexander |
common_all:priemyraboty:ole [2019/07/07 12:23] alexander |
||
---|---|---|---|
Строка 11: | Строка 11: | ||
[[http://infostart.ru/public/164976/|Статья Vladimir'а (AKA wowik) на infostart'e "Некоторая работа с данными через COM"]] | [[http://infostart.ru/public/164976/|Статья Vladimir'а (AKA wowik) на infostart'e "Некоторая работа с данными через COM"]] | ||
[[common_all:priemyraboty:rabotacherezcom|(Статья)]] | [[common_all:priemyraboty:rabotacherezcom|(Статья)]] | ||
+ | |||
+ | {{:common_all:vygruzkadocumentov_acc_trade.7z|Обработка "Перенос кассовых документов из Торговли в Бухгалтерию" (управляемые формы, практически все механизмы СОМ обмена)}} | ||
---- | ---- | ||
Строка 87: | Строка 89: | ||
База8 = Неопределено;</code> | База8 = Неопределено;</code> | ||
+ | |||
+ | |||
+ | ==== Как выполнить отчет на СКД через COM и получить данные отчета? (статья Vladimir A (wowik) на Infostart'e) ==== | ||
+ | |||
+ | |||
+ | <code> МесяцРасчета = Дата(2018,03,01); | ||
+ | | ||
+ | //Програмное формирование отчета СКД | ||
+ | СхемаОст = Отчеты.АнализНачисленийРаботникамОрганизаций.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); | ||
+ | | ||
+ | КомпоновщикНастроекНастройки = Новый КомпоновщикНастроекКомпоновкиДанных; | ||
+ | КомпоновщикНастроекНастройки.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаОст)); | ||
+ | КомпоновщикНастроекНастройки.ЗагрузитьНастройки(СхемаОст.НастройкиПоУмолчанию); | ||
+ | | ||
+ | КомпоновщикНастроекНастройки.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", НачалоМесяца(МесяцРасчета)); | ||
+ | КомпоновщикНастроекНастройки.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода", КонецМесяца(МесяцРасчета)); | ||
+ | | ||
+ | КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; | ||
+ | МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаОст, КомпоновщикНастроекНастройки.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); | ||
+ | ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; | ||
+ | ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных); | ||
+ | ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; | ||
+ | | ||
+ | ДанныеТЗ = Новый ТаблицаЗначений; | ||
+ | ПроцессорВывода.УстановитьОбъект(ДанныеТЗ); | ||
+ | ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); | ||
+ | |||
+ | ЗП = 0; | ||
+ | ПодразделениеПроизводство = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000005"); | ||
+ | Для каждого СтрокаТаблицы из ДанныеТЗ Цикл | ||
+ | Если не ЗначениеЗаполнено(СтрокаТаблицы.ВидРасчета) Тогда | ||
+ | Продолжить; | ||
+ | КонецЕсли; | ||
+ | | ||
+ | Если СтрокаТаблицы.ПодразделениеОрганизации = ПодразделениеПроизводство Тогда | ||
+ | ЗП = ЗП + СтрокаТаблицы.Начислено; | ||
+ | КонецЕсли; | ||
+ | КонецЦикла;</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ЗУП - Com - соединение. Как подключиться сказано [[http://infostart.ru/public/164976/|здесь]] | ||
+ | <code>МесяцРасчета = Дата(2018,03,01); | ||
+ | | ||
+ | СхемаКомпоновкиДанных = ЗУП.Отчеты.АнализНачисленийРаботникамОрганизаций.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); | ||
+ | | ||
+ | КомпоновщикНастроекНастройки = ЗУП.NewObject("КомпоновщикНастроекКомпоновкиДанных"); | ||
+ | ИсточникДоступныхНастроекКомпоновкиДанных = ЗУП.NewObject("ИсточникДоступныхНастроекКомпоновкиДанных",СхемаКомпоновкиДанных); | ||
+ | КомпоновщикНастроекНастройки.Инициализировать(ИсточникДоступныхНастроекКомпоновкиДанных); | ||
+ | КомпоновщикНастроекНастройки.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); | ||
+ | | ||
+ | | ||
+ | КомпоновщикНастроекНастройки.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", НачалоМесяца(МесяцРасчета)); | ||
+ | КомпоновщикНастроекНастройки.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецПериода", КонецМесяца(МесяцРасчета)); | ||
+ | | ||
+ | КомпоновщикМакета = ЗУП.NewObject("КомпоновщикМакетаКомпоновкиДанных"); | ||
+ | МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроекНастройки.Настройки,,,ЗУП.NewObject("ОписаниеТипов", "ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений").Типы().Получить(0)); | ||
+ | ПроцессорКомпоновкиДанных = ЗУП.NewObject("ПроцессорКомпоновкиДанных"); | ||
+ | ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных); | ||
+ | | ||
+ | ПроцессорВывода = ЗУП.NewObject("ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений"); | ||
+ | | ||
+ | ДанныеТЗ = ЗУП.NewObject("ТаблицаЗначений"); | ||
+ | | ||
+ | ПроцессорВывода.УстановитьОбъект(ДанныеТЗ); | ||
+ | ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); | ||
+ | | ||
+ | ЗП = 0; | ||
+ | ПодразделениеУИД =ЗУП.XMlСтрока(ЗУП.Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000005")); | ||
+ | Для каждого СтрокаТаблицы из ДанныеТЗ Цикл | ||
+ | Если не ЗУП.ЗначениеЗаполнено(СтрокаТаблицы.ВидРасчета) Тогда | ||
+ | Продолжить; | ||
+ | КонецЕсли; | ||
+ | | ||
+ | Если ЗУП.XMlСтрока(СтрокаТаблицы.ПодразделениеОрганизации) = ПодразделениеУИД Тогда // сравнить элементы справочника в СОМ подключении можно только так | ||
+ | ЗП = ЗП + СтрокаТаблицы.Начислено; | ||
+ | КонецЕсли; | ||
+ | КонецЦикла;</code> | ||
==== Передача списка параметров запросу через COM (OLE) соединение ==== | ==== Передача списка параметров запросу через COM (OLE) соединение ==== |