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

sonar
Повідомлень: 72
З нами з: 17 жовтня 2011, 16:44

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

Повідомлення sonar » 04 серпня 2014, 15:38

Белокопытов Геннадий писав:sonar
Данная ситуация находится в работе, будет исправлена в одном из следующих обновлений программы
Все еще не исправлено.

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

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

Повідомлення Белокопытов Геннадий » 04 серпня 2014, 16:16

sonar
Создание заявок с кодом Z0200106 с помощью функции CreateOrOpenCertReq будет исправлено в одном из следующих функциональных обновлений программы

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

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

Повідомлення OlegBom » 08 серпня 2014, 16:25

OlegBom писав:Добрый день!
Создали обьект во внешнем приложении.

App=СоздатьОбъект("MEDOC.ZApplication");
App.Hide() - можно спрятать главное окно

А как закрыть Медок из внешнего приложения?
Сделал. Нашел и убил процесс.

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

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

Повідомлення Inkognito » 13 серпня 2014, 15:43

Поделитесь опытом (кодом)?...

sonar
Повідомлень: 72
З нами з: 17 жовтня 2011, 16:44

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

Повідомлення sonar » 21 серпня 2014, 10:13

Белокопытов Геннадий писав:sonar
Создание заявок с кодом Z0200106 с помощью функции CreateOrOpenCertReq будет исправлено в одном из следующих функциональных обновлений программы
C 25 августа заполнение реквизитов которые есть в заявке Z0200106 является обязательным - функция CreateOrOpenCertReq по прежнему делает заявки со старым кодом.

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

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

Повідомлення Белокопытов Геннадий » 21 серпня 2014, 10:25

sonar
В следующем функциональном обновлении будут правки по данному вопросу.
Функция CreateOrOpenCertReq будет создавать новый код заявки

winn3r.BB
Повідомлень: 258
З нами з: 23 листопада 2011, 19:03
Контактна інформація:

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

Повідомлення winn3r.BB » 11 вересня 2014, 14:43

підкажіть, чи можливо через СОМ імпортувати Запити в ЄДР?

winn3r.BB
Повідомлень: 258
З нами з: 23 листопада 2011, 19:03
Контактна інформація:

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

Повідомлення winn3r.BB » 12 вересня 2014, 09:38

пробував по аналогії з первинними док-тами чомусь пише "недостатньо факт. параметрів". Можливо якась специфічна функція створення/додаткові параметри?

чи взагалі не підтримується?
:?: :?: :?: :?: :?: :?: :?: :?: :?:

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

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

Повідомлення Белокопытов Геннадий » 12 вересня 2014, 09:51

winn3r.BB
Здравствуйте!
На вопросы относительно создания COM объектов Вам ответит соответствующий специалист данного направления в течении дня.

winn3r.BB
Повідомлень: 258
З нами з: 23 листопада 2011, 19:03
Контактна інформація:

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

Повідомлення winn3r.BB » 15 вересня 2014, 10:13

є якась інформація? :?:

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

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

Повідомлення Inkognito » 15 вересня 2014, 10:36

Спробуйте так (з строковим параметром "КодФорми"):
CreateGovQryByCharCode()

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

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

Повідомлення Inkognito » 19 вересня 2014, 15:05

В честь дня Пятницы, держите работающий пример (для проверки 1 накладной).
В случае необходимости проверки большего количества накладных, - или добавляйте строки вручную (копируя код добавления строки), или (что предпочтительнее) - сделайте запрос к базе 1С, чтобы получить (дату, номер, ИНН клнтрагента), и пройдитесь циклом (пример как это сделать - закомментирован):
| Показать
Процедура Тест(Элемент)

Попытка
App = Новый COMОбъект("MEDOC.ZApplication");
Исключение
Предупреждение(НСтр("ru = 'Передача документов отложена. Возможные причины:';uk = 'Передача документів відкладено. Можливі причини:'") + Символы.ПС +
НСтр("ru = '- M.E.Doc не запущен.';uk = '- M.E.Doc не запущений.'") + символы.ПС +
НСтр("ru = '- не выполнен вход в предприятие из списка.';uk = '- не виконаний вхід у підприємство зі списку.'"));
Возврат;
КонецПопытки;

Попытка
Doc = App.CreateGovQryByCharCode("J1300102");
Шапка = Doc.DataSets();
Шапка.Edit();
Шапка.Fields.Item("FIRM_INN").Value ="1234512345";
Шапка.Fields.Item("FIRM_EMAILORG").Value ="[email protected]";
Шапка.Post();

Таблица = Doc.DataSets("TAB1");

//Закомментирован вариант, при котором нужно проверить Н накладных, которые выбираются из базы 1С некоторым Запросом
//Запрос = Новый Запрос();
//Результат = Запрос.Выполнить();
//Номер = 0;
//Н = Результат.Выгрузить().Количество();
//СписокНакладныхДляПроверки = Результат.Выбрать();

//Пока СписокНакладныхДляПроверки.Следующий() Цикл
Таблица.Edit();
Таблица.Fields.Item("TAB1_A21").Value = "123";
Таблица.Fields.Item("TAB1_A3").Value = Формат("11.09.2014", "ДФ = dd.MM.yyyy");
Таблица.Fields.Item("TAB1_A4").Value = "ПН";
Таблица.Fields.Item("TAB1_A5").Value = "1234567890";
Таблица.Post();
// Номер = Номер + 1;
// Если Номер <> Н Тогда
// Таблица.Append();
// КонецЕсли;
//КонецЦикла;

Doc.Save();
Doc.Close();
ПоказатьОповещениеПользователя(, , НСтр("ru = 'Документ создан!';uk = 'Документ створено!'"), БиблиотекаКартинок.Информация32);
Исключение
Предупреждение(НСтр("ru = 'Ошибка при создании документа!';uk = 'Помилка створення документу!'"));
КонецПопытки;

App.RefreshRstDoc();

КонецПроцедуры
Результат:

ЗображенняЗображення

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

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

Повідомлення Inkognito » 24 жовтня 2014, 13:43

Не работает фильтр по типу документов. Код для проверки:
| Показать
App = Новый COMОбъект("MEDOC.ZApplication");
reestrFil = App.RunModule("PrimaryDocsRstNew");
filterTbl = reestrFil.GetFilter(); //получить фильтр
Если filterTbl.Fields.Count = 0 Тогда
Сообщить("Для этого модуля фильтр не определен!");
Возврат;
КонецЕсли;
filterTbl.Fields.Item("DOCTYPE").Value = "10100"; //тип документа
filterTbl.Fields.Item("PERFROM").Value = "01.01.2012"; //период с
filterTbl.Fields.Item("PERTO").Value = "01.01.2013"; //период по
filterTbl.Fields.Item("PARTNEREDRPOU").Value = "11111111"; //ЕДРПОУ контрагента
filterTbl.Fields.Item("ROUTE").Value = 2; //1 - входящие 2 - исходящие
filterTbl.Fields.Item("SUBROUTE").Value = -3; // на опрацюванни
reestrFil.ApplyFilter();
Предупреждение("Реестр первички открыт! Перейдите в Медок!");
ЗображенняЗображення

Согласно Инструкции, код "10100" соответствует фильтру по "Налоговой накладной":

ЗображенняЗображення

Остальные фильтры, как видим, работают.

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

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

Повідомлення Inkognito » 24 жовтня 2014, 15:59

Предлагается создание нового метода: проверка возможности ЭДО для контрагента.
Использование: создаем контрагента программно, тут же проверяем его возможность ЭДО.
Очень удобно, когда контрагенты программно создаются в десятках каталогов (по аналогии из своей учетной системы), и тут же проверяются в цикле. На прошлой неделе переносил десятки предприятий из 1С 8.2, такой метод пригодится на будущее... Мы ведь за ЭДО, правда? :D

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

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

Повідомлення AutoCentre » 03 листопада 2014, 19:55

Inkognito писав:Не работает фильтр по типу документов. Код для проверки:
| Показать
App = Новый COMОбъект("MEDOC.ZApplication");
reestrFil = App.RunModule("PrimaryDocsRstNew");
filterTbl = reestrFil.GetFilter(); //получить фильтр
Если filterTbl.Fields.Count = 0 Тогда
Сообщить("Для этого модуля фильтр не определен!");
Возврат;
КонецЕсли;
filterTbl.Fields.Item("DOCTYPE").Value = "10100"; //тип документа
filterTbl.Fields.Item("PERFROM").Value = "01.01.2012"; //период с
filterTbl.Fields.Item("PERTO").Value = "01.01.2013"; //период по
filterTbl.Fields.Item("PARTNEREDRPOU").Value = "11111111"; //ЕДРПОУ контрагента
filterTbl.Fields.Item("ROUTE").Value = 2; //1 - входящие 2 - исходящие
filterTbl.Fields.Item("SUBROUTE").Value = -3; // на опрацюванни
reestrFil.ApplyFilter();
Предупреждение("Реестр первички открыт! Перейдите в Медок!");
та же проблема. Геннадий, ее решают?
Инкогнито, а как перекинули контрагентов? мне пригодится ... структуру ХМЛ где взяли?

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

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

Повідомлення Inkognito » 04 листопада 2014, 16:39

XML структура не понадобится. Использовал СОМ технологию, обратите внимание на:
...\help\manuals\Инструкция по СОМ объектам.pdf
Пункт 2.3 - обязательно прочитайте!

Что нужно: создайте обработку. В ней, предлагаю добавить элементы:
- кнопка "Загрузить"
- таблицаЗначений (временная табица контрагентов)
- кнопка "Отправить"

Действия:
1) кнопка "Загрузить" - загружаете список контрагентов в ТаблицуЗначений. Здесь варианты реализации на Ваш вкус.
2) ТаблицаЗначений - рекомендуется вывести в список перечень контрагентов с основными реквизитами
3) кнопка "Отправить". Здесь подробнее:

Процедура Кнопка1Нажатие(Элемент)
//пригодится структура этих таблиц:
//HBPARTNER - основная таблица
//HBPARTNERGRP - группы. Связка по полю IDPARTNER. Советую считать значения и добавить в справочник. Реализация на Ваше усмотрение.
//HBPARTNERADR - адрес контрагента. Пригодится для выписки первички на будущее.
//HBPARTNERADRTEL - телефон, факс контрагента. Пригодится для выписки первички на будущее.
//Считайте их структуру, поймете связь таблиц и в какие поля что вставлять из 1Ски.

КонецПроцедуры

Или Вы хотите саму готовую обработку? Чтобы не напрягаться.... :)

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

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

Повідомлення AutoCentre » 13 листопада 2014, 18:48

Готовую..... 8-) Можно в личку... Сочтемся.
п.с. в 011 перестал регистрироваться метод? :shock:
App = Новый COMОбъект("MEDOC.ZApplication");
Все, теперь с 1С ничего не передать? Разрабы, ну вы блин даете... :(

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

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

Повідомлення Inkognito » 13 листопада 2014, 22:51

1) Ловите.
2) Нормально работает регистрация объекта, не паникуйте. Перезагрузитесь, - обычно помогает при большинстве непонятных ситуаций.
Сегодня кстати четверг, Microsoft любит выпускать в это время свои обновления, может есть взаимосвязь? СОМ объект- системный компонент, может быть связан с особенностями работы в конкретной операционной системе. Если после перезагрузки все ОК, - просто забудьте.

Колпаков Б.И.
Повідомлень: 8802
З нами з: 29 липня 2011, 14:59
Звідки: Украина, Донецкая область, Бахмут
Контактна інформація:

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

Повідомлення Колпаков Б.И. » 13 листопада 2014, 23:20

Да, вчера вечером вышло больше десятка!

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

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

Повідомлення AutoCentre » 02 грудня 2014, 11:49

Не создается программно "Лист запрошення контрагенту". Пытаюсь создать его программно в 1С8.2, выдает ошибку:
---------------------------------------------------------------------------------
Ошибка при вызове метода контекста (DataSets)
rsMain = Doc.DataSets();
по причине:
Неизвестная ошибка
---------------------------------------------------------------------------------
Мой код:
App = Новый COMОбъект("MEDOC.ZApplication");
ИД=Новый УникальныйИдентификатор;
PDate = Дата(Год(ТекущаяДата()), Месяц(ТекущаяДата()), 01);
Бланк="CltMail";

yes = App.SelectFirm(МойЕДРПОУ,"");
ЕСЛИ yes ТОГДА
Doc = App.OpenOrCreateByExDocID(Бланк, 0, PDate, , ИД, 0);
КонецЕсли;

rsMain = Doc.DataSets();
rsMain.Edit();
rsMain.Append();
rsMain.Post();

rsMain.Fields.Item("SIDE_CD_K").Value = "Тест";
rsMain.Fields.Item("SIDE_EDRPOU_K").Value = "11111111";

rsMain.Post();
Doc.Save(1);
Doc.Close();
---------------------------------------------------------------------------------
Все делал по описанию методов, изложенных в "Инструкции по СОМ объектам".... помогите пожалуйста!..

Відповісти

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