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

gorakh
Повідомлень: 61
З нами з: 23 травня 2012, 14:40

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

Повідомлення gorakh » 22 грудня 2014, 18:28

aleksiychuk писав:Здравствуйте!
По поводу вопросов по неполной инструкции по COM и нового законодательства (подтверждения входящих документов):
в связи с нововведениями инструкция будет обновлена, дополнена новыми методами и функциями, а так же максимальными примерами использования.
Инструкция будет выпущена выпущена в одном из следующих функциональных обновлений M.E.DOC IS.
А когда планируется публикация новой инструкции?

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

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

Повідомлення Белокопытов Геннадий » 22 грудня 2014, 18:46

gorakh
Новая инструкция будет выпущена в функциональном обновлении программы.

AutoCentre
Повідомлень: 13
З нами з: 03 листопада 2014, 19:48

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

Повідомлення AutoCentre » 31 грудня 2014, 13:39

В функциональном обновлении 019 - ничего нет...

vademchuk
Повідомлень: 79
З нами з: 15 липня 2012, 01:01

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

Повідомлення vademchuk » 01 січня 2015, 22:25

AutoCentre писав:В функциональном обновлении 019 - ничего нет...
А не было слова "в следующем" ........... :)

gorakh
Повідомлень: 61
З нами з: 23 травня 2012, 14:40

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

Повідомлення gorakh » 04 січня 2015, 18:08

vademchuk писав:
AutoCentre писав:В функциональном обновлении 019 - ничего нет...
А не было слова "в следующем" ........... :)
:(

F@n@T
Повідомлень: 43
З нами з: 29 листопада 2012, 11:32

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

Повідомлення F@n@T » 08 січня 2015, 11:48

А подскажите пожалуйста, где хотя бы старую инструкцию взять по работе через COM? И где ее искать новую (когда выложат)? Заранее спасибо!

NeoN
Повідомлень: 42
З нами з: 01 грудня 2011, 11:38

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

Повідомлення NeoN » 08 січня 2015, 12:04

c:\Program Files (x86)\MeDoc\help\manuals\Инструкция по СОМ объектам.pdf

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

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

Повідомлення OlegBom » 09 січня 2015, 14:45

КАРАУЛЛЛЛЛ!!!!!

Не работает тег - TAB1_A141 в COM - доступе для НН J1201007

osod:setProperty("FldVal","TAB1_A14", 'шт') - это работает

А код единиц измерения НЕ РАБОТАЕТ
ни так
osod:setProperty("FldVal","TAB1_A141", 2009 ) -
ни так
osod:setProperty("FldVal","TAB1_A141", '2009' )

kupava
Повідомлень: 9
З нами з: 09 січня 2015, 14:37

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

Повідомлення kupava » 09 січня 2015, 16:01

Ситуация следующая:
Имеется обработка для выгрузки из Медок в 1С 7.7. налоговых накладных и приложений 2. Видимо та которую здесь роздают только по личному запросу. (нашел в инете).
Возникла задача дополнить данную обработку функцией загрузки из Медка в 1С 7.7. налоговых и приложений 2.

При реализации столкнулся с проблемой вылета 1С. Опишу на всякий случай.
Заходиш в 1С. Запускаеш обработку передаеш налоговые в медок или из Медка в 1С.
Внешнее событие срабатывает. ЗАкрываеш обработку (не 1С). Открываеш обработку повторно - 1С зависает и вываливается с критической ошибкой.
Проблема в повторном вызове функции ЗАгрузитьВнешнююКомпоненту("medoc1c.dll").
ОС: Вин7 64х. 1С:Предприятие 7.7. 77027, файловая.

Лечится копированием файла medoc1c.dll в C:\Windows\SysWOW64 и регистрацией в реестре при помощи
%systemroot%\SysWoW64\regsvr32.exe %systemroot%\SysWoW64\medoc1c.dll.

Далее в обработку была добавлена закладка загрузка данных, а на нее таблица значений.
При передаче из Медка в 1С документа, в 1С срабатывает внешнее событие и передаются ком-объект и данные.
Алгоритм обрабатывает полученные данные и заполняет таблицу значений на закладке "Загрузка данных".
После этого, пользователь отмечает флагами, какие документы он все таки хочет создать в 1С и нажимает кнопку создать документы.
При получении данных из Медок имеем номер, дату накладной, суммы, данные оргнаизации и контрагента и вот тут вопрос.

ВОПРОС:
В 1С присуствуют такие поля как, например, вид документа (ПНП, ВМД, ЧК), ДляПоставкиУслуг, СпецРежимНалогообложения и др.
Существуют ли в Медок эти данные и как их можно программно извлечь?

Пы.Сы.
Я нашел что вид документа можно взять из реестра НН, но на момент загрузки налоговой в 1С, ее еще не будет в реестре полученных НН. Контрагент включит ее в реестр только в след. месяце.
Дальше не знаю что делать, неужели прийдется грузить документы с полями по умолчанию. как это зделано в обработке для 1С:8.2 ?

priup
Повідомлень: 7713
З нами з: 22 червня 2011, 12:23

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

Повідомлення priup » 09 січня 2015, 17:56

kupava писав:Ситуация следующая:
Имеется обработка для выгрузки из Медок в 1С 7.7. налоговых накладных и приложений 2. Видимо та которую здесь роздают только по личному запросу. (нашел в инете).
..........
Данная обработка предназначена только для выгрузки из 1С 7.7 в МЕДок.
А вторая предназначена для выгрузки из 1С 8.2 в МЕДок и загрузки из МЕДока в 1С 8.2.....

Переходите на ВОСЬМЁРКУ......

kupava
Повідомлень: 9
З нами з: 09 січня 2015, 14:37

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

Повідомлення kupava » 09 січня 2015, 18:16

priup писав:
kupava писав:Ситуация следующая:
Имеется обработка для выгрузки из Медок в 1С 7.7. налоговых накладных и приложений 2. Видимо та которую здесь роздают только по личному запросу. (нашел в инете).
..........
Данная обработка предназначена только для выгрузки из 1С 7.7 в МЕДок.
А вторая предназначена для выгрузки из 1С 8.2 в МЕДок и загрузки из МЕДока в 1С 8.2.....

Переходите на ВОСЬМЁРКУ......
Прочитайте пожалуйста ВОПРОС еще раз.
Причем здесь восьмерка?

ВОПРОС:
Существуют ли в Медок для налоговой накладной, такие поля как, например, вид документа (ПНП, ВМД, ЧК), ДляПоставкиУслуг, СпецРежимНалогообложения, которые имеются как в 1С 7.7 так и в 1С 8.
И если да, то как их можно программно извлечь для того, чтобы заполнить документ в 1С при загрузке из Медка?

priup
Повідомлень: 7713
З нами з: 22 червня 2011, 12:23

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

Повідомлення priup » 09 січня 2015, 18:27

МОЖЕТ ВАМ сюда:

http://www.me-doc.com.ua/index.php?id=2234
:?:

kupava
Повідомлень: 9
З нами з: 09 січня 2015, 14:37

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

Повідомлення kupava » 09 січня 2015, 19:01

priup писав:МОЖЕТ ВАМ сюда:

http://www.me-doc.com.ua/index.php?id=2234
:?:
Спасибо за ответ. Но как загрузить данные из xml я знаю. Меня интересует чтение данных из Медка именно через COM.
Инструкций к программе для этого не достаточно. В обработке для 1С 8. можно встретить такой код:
МедКомпонент.AcceptDoc(НовыйИД);
//Сообщить("НовыйИД записан=" + НовыйИД);
//Возврат;
NNTable = МедКомпонент.CreateNNStatusQuery();
NNTable.NewRow("TAB1");
NNTable.SetValue("TAB1", "DOC_TYPE", 1);
NNTable.SetValue("TAB1", "DOC_MOVE", 2);
NNTable.SetValue("TAB1", "DOC_ID", пGUID);
//NNTable.SetValue("TAB1", "DOC_ID", СокрЛП(НовыйИД));

NNStatusResult = МедКомпонент.ExecNNStatusQuery(NNTable);
Если (NNStatusResult.GetValue("TAB1", "STATUS")) = 4 Тогда
ННВх.ДатаВключенияВЕдиныйРеестрНалоговыхНакладных = Дата(NNStatusResult.GetValue("TAB1", "REGDATE"));
ННВх.ТребуетПроверкиВключенияВЕдиныйРеестрНалоговыхНакладных=Истина;
КонецЕсли;

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

Скажите пожалуйста где можно получить информацию по этому пводу?

Белокопытов Геннадий
Универсал (склонность - системные вопросы)
Повідомлень: 10116
З нами з: 13 січня 2012, 11:21

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

Повідомлення Белокопытов Геннадий » 09 січня 2015, 21:50

kupava
Для получения ответа на вопрос по COM коду, напишите пожалуйста, запрос на сайте me-doc.com.ua в разделе "Написать разработчику".
Описав подробно интересующий Вас вопрос и пример кода, который используете для передачи данных.

Inkognito
Повідомлень: 1072
З нами з: 14 січня 2012, 14:26

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

Повідомлення Inkognito » 10 січня 2015, 23:03

вид документа (ПНП, ВМД, ЧК), ДляПоставкиУслуг
нет, такого поля в НН непредусмотрено. Рассмотрите вариант проставления на основании входящей НН значение по-умолчанию "ПНЕ".
СпецРежимНалогообложения
По идее, по аналогии с 8кой:
Документ.СпецРежимНалогообложения = СокрЛП(Отчет.GetValue("MAIN", "N2_12"));

tanyxa
Повідомлень: 17
З нами з: 09 січня 2015, 16:27

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

Повідомлення tanyxa » 13 січня 2015, 12:30

Здравствуйте. Вопрос по OpenOrCreateDocument
Я правда использую не 1С, а Delphi но может это в данном случае неважно.

Дано:
локальный медок 021 демоверсия
Создаю в реестре первичных документов исходящую накладную (прямо в медке)
Подключаюсь из своей системы и пытаюсь ее прочитать:

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

  medoc : IZApplication;
  PrimaryDoc : IPrimaryDocs;
  dic : IDictionary;
  NewDoc: IZDocument;
  izd : IZDataset;

----
   medoc:=CoZApplication.Create; //Ок - объект создается
   PrimaryDoc:=medoc.GetPrimaryDocs; //Ок - объект создается
   OrgID:=medoc.SeekOrg(MyOrgID,EmptyWideStr); //Ок - значение получено
   
   dic:=medoc.GetDictionary; //Ок - объект создается
   izd:=dic.Open('HBPARTNER'); //Ок - справочник открывается
   while not izd.Eof do
   begin
    //Тут кое что делаю с контрагентами
    izd.Next;
  end;

  //Пытаюсь вытащить НН и получаю ошибку
  NewDoc:=PrimaryDoc.OpenOrCreateDocument(OrgID,'J1201006','555', StrToDateTime('30.12.2014'),EmptyWideStr,false);

Ошибка малоинформативна EOleException "Ошибка на сервере"
Импортирую входящие накладные из xml файлов, пытаюсь открыть одну из них - аналогичная ошибка.
Чтобы это могло быть?

И еще вопрос - почему при создании новой НН, даже если дата выписки январь 2015 года - накладная создается согласно бланку J1201006, а не J1201007?

vademchuk
Повідомлень: 79
З нами з: 15 липня 2012, 01:01

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

Повідомлення vademchuk » 13 січня 2015, 12:43

tanyxa писав:Здравствуйте. Вопрос по OpenOrCreateDocument

//Пытаюсь вытащить НН и получаю ошибку
NewDoc:=PrimaryDoc.OpenOrCreateDocument(OrgID,'J1201006','555', StrToDateTime('30.12.2014'),EmptyWideStr,false);

И еще вопрос - почему при создании новой НН, даже если дата выписки январь 2015 года - накладная создается согласно бланку J1201006, а не J1201007?
Вы сами указали какой код шаблона использовать - J1201006. Надо заменить в коде на J1201007

tanyxa
Повідомлень: 17
З нами з: 09 січня 2015, 16:27

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

Повідомлення tanyxa » 13 січня 2015, 12:50

vademchuk писав:
tanyxa писав:Здравствуйте. Вопрос по OpenOrCreateDocument
Вы сами указали какой код шаблона использовать - J1201006. Надо заменить в коде на J1201007
При создании НН медок автоматически создает ее по бланку J1201006. Соответственно и в таблице CARD значение поля FORM равно 11306, т.е. бланк J1201006.
Может это нужно дополнительно настроить - подскажите тогда где?

tanyxa
Повідомлень: 17
З нами з: 09 січня 2015, 16:27

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

Повідомлення tanyxa » 13 січня 2015, 12:53

Да и при попытке открыть импортированные НН от контрагентов использующие уже бланк J1201007 - ошибка та же

Inkognito
Повідомлень: 1072
З нами з: 14 січня 2012, 14:26

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

Повідомлення Inkognito » 13 січня 2015, 14:48

1) Похоже, во время своих экспериментов Вы удалили запись из таблицы FORM с записью о форме J1201006 (+J1201007), поэтому и ошибка.
Варианты решения:
- переустановка программы
- сравнение двух таблиц FORM двух баз - эталонной и Вашей, одинаковой версии. Если они не равны - внести недостающие записи.
Рекомендую второй способ (для этого конечно нужен установленный FireBird 2.1 и IBExpert)
П.С. это предположение; возможно ситуация другая.
В любом случае, очень похоже что ошибка в базе данных, таблица FORM

2) Лучше определить код бланка перед подстановкой в функцию создания:
| Показать
Если НачалоДня(Дата(Документ.Дата)) <= НачалоДня(Дата(2011, 12, 16)) Тогда
Бланк = "J1201003";
ИначеЕсли
НачалоДня(Дата(Документ.Дата)) >= НачалоДня(Дата(2011, 12, 17)) И
КонецДня(Дата(Документ.Дата)) <= КонецДня(Дата(2014, 02, 28)) Тогда
Бланк = "J1201004";
ИначеЕсли
НачалоДня(Дата(Документ.Дата)) >= НачалоДня(Дата(2014, 03, 01)) И
КонецДня(Дата(Документ.Дата)) <= КонецДня(Дата(2014, 11, 30)) Тогда
Бланк = "J1201005";
ИначеЕсли
НачалоДня(Дата(Документ.Дата)) >= НачалоДня(Дата(2014, 12, 01)) И
КонецДня(Дата(Документ.Дата)) <= КонецДня(Дата(2014, 12, 31)) Тогда
Бланк = "J1201006";
ИначеЕсли
НачалоДня(Дата(Документ.Дата)) >= НачалоДня(Дата(2015, 01, 01)) Тогда
Бланк = "J1201007";
КонецЕсли;
И только потом использовать как переменную:
| Показать
Doc = App.OpenOrCreateByExDocID(Бланк, 0, PDate, , ИД, 0);
3) В Вашей функции создания документа много ошибок. Так правильнее:
| Показать
Doc = pd.OpenOrCreateDocument(orgId, Бланк, , , ИД, 0);

Відповісти

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