Доступ к МедКу через объекты

Відповісти
olegyudin
Повідомлень: 47
З нами з: 18 липня 2012, 12:23

Доступ к МедКу через объекты

Повідомлення olegyudin » 18 липня 2012, 12:39

Добрый день!

Хочу получить доступ к документам Медка из внешней программы. Удалось получить значения из существующих документов, но не удается поменять значения полей. Может потому, что у меня демо версия?

Олег

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 18 липня 2012, 16:41

Демоверсия на ОЛЕ-доступ точно не должна влиять. А можете конкретизировать, что именно и в каком документе хотите поменять?

olegyudin
Повідомлень: 47
З нами з: 18 липня 2012, 12:23

Re: Доступ к МедКу через объекты

Повідомлення olegyudin » 18 липня 2012, 17:16

Спасибо за ответ. Вот такой код. Значение поля получаю правильное, но новое значение не сохраняется

LOCAL omedok,odataset,odoc,omain,nvalue,otab1
omedok := CreateObject("MEDOC.ZApplication")
odataset:=omedok:DocumentsDataSet("CharCode='J0110103'",.T.)
odoc:=omedok:OpenDocumentByCode(odataset:FldVal("Code"))
omain:=odoc:DataSets("MAIN")
omain:First()
nvalue:=omain:FldVal('A0317')
omain:Edit()
omain:FldVal("A0317"):=499.0
omain:Post()
oDoc:Recalc()
oDoc:Save()
omain:destroy()
omain:=NIL
odoc:destroy()
odoc:=NIL
omedok:destroy()

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 18 липня 2012, 17:24

Ок. сегодня вечером посмотрю. Сейчас простите, работы много. Если неполучится разобраться, посоветуюсь завтра с программиистами, что они мне скажут.

olegyudin
Повідомлень: 47
З нами з: 18 липня 2012, 12:23

Re: Доступ к МедКу через объекты

Повідомлення olegyudin » 20 липня 2012, 16:48

Добрый день!

С вопросом изменения полей я разобрался.
Теперь у меня вопрос, какой метод использовать для создания новго документа.
Не могшли бы вы привести пример
Спасибо

Юдин Олег

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 20 липня 2012, 17:02

Где-то так (пример - форма S0110005, реализовывалось для 1С 7.7)

Код: Виділити все

Попытка 
	App=СоздатьОбъект("MEDOC.ZApplication");
Исключение 
	Сообщить("Приложение M.E.DOC не запущено !"); 
Возврат; 
КонецПопытки;
/////////////////////////////////////////////////////////////////////////////////////
	 PDate=Дата(ДатаГод(ДатаВКвартале),ДатаМесяц(КонКвартала(Дата2)),01);
	Если ДатаМесяц(КонКвартала(Дата2))=3 Тогда
		номпер=10
	ИначеЕсли ДатаМесяц(КонКвартала(Дата2))=6 Тогда
		номпер=20
	ИначеЕсли	ДатаМесяц(КонКвартала(Дата2))=9 Тогда
		номпер=25
	Иначе
		номпер=30
	КонецЕсли; 
Doc = App.CreateDocumentByParam("S0110005",номпер,PDate,);
rsMain=Doc.DataSets();  
rsMain.Edit();

sasha001ua
Повідомлень: 1
З нами з: 22 серпня 2012, 22:25

Re: Доступ к МедКу через объекты

Повідомлення sasha001ua » 22 серпня 2012, 22:29

Здравствуйте

есть вопрос помогите...
пытаюсь подключится через CreateObject("MEDOC.ZApplication")

пишет что объект ActiveX не найден, нужно как специально регистрировать или чет не так..

в файле импорта налоговых накладных MERst_NN2.xls также этот объект не создается

Медок Версия 10.00.089
windows 7

Спасибо

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 22 серпня 2012, 23:05

Можно увидеть весь код? В личку.

OlegBom
Повідомлень: 78
З нами з: 05 липня 2012, 17:07

Re: Доступ к МедКу через объекты

Повідомлення OlegBom » 19 вересня 2012, 11:28

Где можно почитать про методы обьектов

MEDOC.ZApplication – объект
MEDOC.IZDocument – объект
MEDOC.IZDataset – объект

в MedocDocs_Help.doc - очень уж бедненько описано.

Необходимо для решения следующей задачи.
В Medoc создан шаблон первичного документа. Теперь необходимо из внешней системы записать соответствующий документ , напрямую. (через XML - не интересует)

OlegBom
Повідомлень: 78
З нами з: 05 липня 2012, 17:07

Re: Доступ к МедКу через объекты

Повідомлення OlegBom » 19 вересня 2012, 11:38

такое впечатление, что первичные документы не имеют тела документа "MAIN".
Так как на команде
omain:=odoc:DataSets("MAIN") выпадает ошибка
Ошибка: DATASETS
Аргумент[1]:"DATASETS"
Аргумент[2]:"MAIN"

обьект odoc существует - и создан как

omedok := CreateObject("MEDOC.ZApplication")
odoc :=omedok:CreateDocumentByParam("545455",0,DTOC(dDate),1)

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 19 вересня 2012, 12:22

OlegBom
Как раз сейчас занимаюсь ее доработкой. Выйдет в скором будущем переработанной. Насчет Вашего вопроса... VisualBasic? К сожалению с его синтаксисом знаком слабо, а насчет объектов спрошу.
545455 - это код документа (FORM.CHARCODE). Уверены, что такой есть в программме?
ЗображенняЗображення
Может правда это код нового созданного шаблона первичного документа?

OlegBom
Повідомлень: 78
З нами з: 05 липня 2012, 17:07

Re: Доступ к МедКу через объекты

Повідомлення OlegBom » 19 вересня 2012, 15:16

Это код нового созданного шаблона первичного документа.

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 27 вересня 2012, 22:46

Посмотрели. В общем, на текущий момент именно для первички (счет-фактура, акт, + собственные шаблоны) не работает. Даже не ошибка, а именно недоработанный механизм. С первичкой сложнее, чем с обычными формами, из-за способа хранения в базе. Ищем решение.

Slipez
Повідомлень: 82
З нами з: 04 жовтня 2011, 16:15
Звідки: Полтава
Контактна інформація:

Re: Доступ к МедКу через объекты

Повідомлення Slipez » 15 жовтня 2012, 16:17

Родин Евгений писав: Как раз сейчас занимаюсь ее доработкой. Выйдет в скором будущем переработанной...
Если доработали можно получить инструкцию?
И можно ли с помощью сом объектов получать информацию с медок? ПН присланные нам контрагентом втянуть в свою программу через сом объекты?

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 15 жовтня 2012, 16:34

OlegBom
Сделали новую функцию. Выйдет с 097 версией (предположительно).
Доработал Инструкцию. Выйдет с новым дистрибутивом.
Проверил - работает. Правда, проверял на 1С, но думаю пересмотреть код под VB получится.

Slipez
Да. Вот посмотрите самый последний на сегодня вариант. Если есть вопросы-предложения, с удовольствием пообщаюсь:

Дополнил колонкой "Пример использования". Если у кого-то есть идеи, как использовать те или иные функции и методы, буду рад включить их в Инструкцию.
Вкладення
MedocDocs_Help_Landsaft_2.rar
(373.59 Кіб) Завантажено 186 разів

OlegBom
Повідомлень: 78
З нами з: 05 липня 2012, 17:07

Re: Доступ к МедКу через объекты

Повідомлення OlegBom » 15 жовтня 2012, 19:30

Евгений, спасибо!Буду изучать.

Родин Евгений

Re: Доступ к МедКу через объекты

Повідомлення Родин Евгений » 15 жовтня 2012, 22:44

Немного доработал внешний вид + добавил наглядное представление того, как создается программно документ (CreateDocumentByParam, CreateDocument)
Примечание: постараюсь протестировать все на примере 1С, правда не обещаю сразу. К выпуску дистрибутива постараюсь проверить максимум. Обратите внимание, что сейчас не везде есть примеры использования.
Вкладення
MedocDocs_Help_Landsaft_3.rar
(410.85 Кіб) Завантажено 141 раз

OlegBom
Повідомлень: 78
З нами з: 05 липня 2012, 17:07

Re: Доступ к МедКу через объекты

Повідомлення OlegBom » 16 жовтня 2012, 14:34

Евгений! Мне надо ждать 97-го обновления? А то валюсь на ф-ии SeekOrg

OlegBom
Повідомлень: 78
З нами з: 05 липня 2012, 17:07

Re: Доступ к МедКу через объекты

Повідомлення OlegBom » 16 жовтня 2012, 14:44

И еще вопрос. В описании говориться
> Примечание: предварительно для первички необходимо создать:
> orgId = Application.SeekOrg(+ параметры ) ;
> pp= App.GetPrimaryDocs();

Application - в описании нет такого объекта.
Это наверное имеется ввиду
App=Новый COMОбъект ("MEDOC.ZApplication");
и тогда надо писать так
orgId = App.SeekOrg(+ параметры ) .
Или я чего-то не понял?

OlegBom
Повідомлень: 78
З нами з: 05 липня 2012, 17:07

Re: Доступ к МедКу через объекты

Повідомлення OlegBom » 16 жовтня 2012, 14:54

Наверное ошибка в описании.
есть Doc.DataSets() и Doc.DataSet().
Это действительно два метода или один опечатка?

Відповісти

Повернутись до “1C”