витяг з системи електронного адміністрування через COM

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

витяг з системи електронного адміністрування через COM

Повідомлення OlegBom » 26 серпня 2015, 11:59

Добрый день!
Подскажите плиз, как через учётную систему с помощью технологии COM сделать следующее:
- создать в Медке запрос J1301205 -Запит щодо отримання відомостей про стан рахунку
- подписать и отправить его
- получить ответ J1401205 Витяг з системи електронного адміністрування ПДВ.

Или хотя бы, как минимум, через СОМ найти последний J1401205 Витяг з системи електронного адміністрування ПДВ за указанную дату.

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

Re: витяг з системи електронного адміністрування через COM

Повідомлення Inkognito » 26 серпня 2015, 13:50

OlegBom писав:Добрый день!
Подскажите плиз, как через учётную систему с помощью технологии COM сделать следующее:
- создать в Медке запрос J1301205 -Запит щодо отримання відомостей про стан рахунку
- подписать и отправить его
- получить ответ J1401205 Витяг з системи електронного адміністрування ПДВ.

Или хотя бы, как минимум, через СОМ найти последний J1401205 Витяг з системи електронного адміністрування ПДВ за указанную дату.
День добрый, OlegBom.
Инструкция здесь: http://me-doc.com.ua/upload_images/file ... export.doc
Остается только воспользоваться необходимыми методами + своя фантазия.

1) Создание документа (пример):
Попытка
App = Новый COMОбъект("MEDOC.ZApplication");
Исключение
ПРедупреждение("Медок не запущен! Давай досвиданья!");
Возврат;
КонецПопытки;

Бланк="J1301205";
PDate = Дата(Год(ТекущаяДата()), Месяц(ТекущаяДата()), 01);
ИД=Строка(Новый УникальныйИдентификатор());
Doc = App.OpenOrCreateByExDocID(Бланк, 0, PDate, , ИД, 0);
rsMain = Doc.DataSets();
rsMain.Edit();

rsMain.Fields.Item("DOCDATE").Value = ТекущаяДата();
rsMain.Fields.Item("NUM").Value = КакойТоНомер;
...
Doc.Save();
Doc.Close();
2) Подписать и отправить (варианты пользовательского интерфейса и программного кода дают бесконечные возможности):
Sender = App.GetDocSender();
Sender.Add(ИД);
cnt = Sender.Send(true);
ПоказатьОповещениеПользователя(, , Нстр("ru = 'Отправлено ';uk = 'Відправлено '") + Символы.ПС + Строка(cnt) + " шт", БиблиотекаКартинок.Информация32);
Примечание: для отправки СОМ воспользуйтесь методом App.GetDocSigning() --- никогда не юзал (он относительно новый, пример скопирован):
sign = App.GetDocSigning()
res = sign.CertToCache( "D:\cert\11223333_1122334456_BS150428095136.cer", "D:\cert\11223333_1122334456_BS150428095136.ZS2", "12356" )
Думаю, сначала видимо нужно воспользоваться App.GetDocSigning(), потом App.GetDocSender();

3) Такого метода нет. Почему? Вопрос к Разработчикам. Много чего нет, чего хотелось бы.

4) Сомнительно что вообще возможно (разве что чтением всей таблицы CARD с фильтрами по FORM, CRTDATE). Пока ничего в голову не приходит.

Примечание: код 1Ски печатал с головы и немного копипастил, может встретите очипятки.
С уважением, Inkognito
Востаннє редагувалось 28 серпня 2015, 09:54 користувачем Inkognito, всього редагувалось 2 разів.

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

Re: витяг з системи електронного адміністрування через COM

Повідомлення OlegBom » 27 серпня 2015, 15:46

Спасибо, попробую

Відповісти

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