Сторінка 1 з 1
Как получить реестр отчетов через com
Додано: 17 березня 2020, 15:23
kvatik
Добрый день.
Пишу интеграцию с Медком через COM (Medoc.ZApplication)
Есть метод GetPrimaryReestr для получения реестра первичных документов.
Есть ли аналогичный метод для реестра отчетов? Мне необходимо вытащить из Медка Таблицы данных плательщика налогов (J1312303).
Re: Как получить реестр отчетов через com
Додано: 18 березня 2020, 15:49
kvatik
Подскажите пожалуйста хотя бы где спросить, очень надо.
Re: Как получить реестр отчетов через com
Додано: 18 березня 2020, 17:05
priup
kvatik писав: ↑18 березня 2020, 15:49
Подскажите пожалуйста хотя бы где спросить, очень надо.
Попросите Вашего продавца МЕДОК вопрос в БО отослать!!
Re: Как получить реестр отчетов через com
Додано: 18 березня 2020, 17:38
Белокопытов Геннадий
kvatik
Добрый день. На текущий момент для работы с реестром отчетов СОМ методов, аналогичных GetPrimaryReestr, нет.
Вы можете посмотреть вариант DocumentsDataSet из описания существующих методов.
Если вам необходима индивидуальная доработка, можете также обратиться к обслуживающей организации или по форме обратной связи на оф. сайте,
ссылка
Re: Как получить реестр отчетов через com
Додано: 18 березня 2020, 17:41
Inkognito
DS = App.DocumentsDataSet("PerDate > DateValue('01.01.2019')"); //датасет за пеірод з 01.01.2019, поставте свій варіант
DS.Filter = "Charcode=J1312303"; //фільтр за чаркодом, щоб тільки такі звіти залишились
DS.First(); //позиціювання в першу стрічку датасета
Пока НЕ DS.EOF Цикл //цикл
Cardcode = Формат(DS.Fields.Item("Cardcode").Value,"ЧГ="); //внутрішній код
PerDate = DS.Fields.Item("PerDate").Value; //період звіту
Сообщить("Cardcode=" + Cardcode + "; PerDate =" + PerDate); //для наглядності
// читаємо документ
док = App.OpenDocumentByCode(Cardcode);
MAIN= док.DataSets("MAIN"); //шапка
TAB1= док.DataSets("TAB1"); //таблиця
//далі свій код
//
DS.Next(); //наступна стрічка
КонецЦикла;
Re: Как получить реестр отчетов через com
Додано: 18 березня 2020, 17:44
kvatik
Огромнейшее спасибо!!!!
Re: Как получить реестр отчетов через com
Додано: 18 березня 2020, 18:02
kvatik
При выполнении App.DocumentsDataSet медок крашится (((
Ну буду ковырять.
Re: Как получить реестр отчетов через com
Додано: 18 березня 2020, 20:01
Белокопытов Геннадий
kvatik писав: ↑18 березня 2020, 18:02
При выполнении App.DocumentsDataSet медок крашится (((
Ну буду ковырять.
Необходимо более детальное понимание, что вы выполняете и что в логах программы.
Re: Как получить реестр отчетов через com
Додано: 19 березня 2020, 11:34
kvatik
Inkognito писав: ↑18 березня 2020, 17:41
DS = App.DocumentsDataSet("PerDate > DateValue('01.01.2019')"); //датасет за пеірод з 01.01.2019, поставте свій варіант
DS.Filter = "Charcode=J1312303"; //фільтр за чаркодом, щоб тільки такі звіти залишились
DS.First(); //позиціювання в першу стрічку датасета
Пока НЕ DS.EOF Цикл //цикл
Cardcode = Формат(DS.Fields.Item("Cardcode").Value,"ЧГ="); //внутрішній код
PerDate = DS.Fields.Item("PerDate").Value; //період звіту
Сообщить("Cardcode=" + Cardcode + "; PerDate =" + PerDate); //для наглядності
// читаємо документ
док = App.OpenDocumentByCode(Cardcode);
MAIN= док.DataSets("MAIN"); //шапка
TAB1= док.DataSets("TAB1"); //таблиця
//далі свій код
//
DS.Next(); //наступна стрічка
КонецЦикла;
Cardcode = Формат(DS.Fields.Item("CODE").Value,"ЧГ=");
Все получилось спасибо.
P.S. С датой тоже что-то отбор не получился, но так как мы решили грузить все, то фильтр по дате не нужен.
Re: Как получить реестр отчетов через com
Додано: 19 березня 2020, 11:35
kvatik
- Итоговый код | Показать
-
// получаем данные с МЕДКА
Попытка
App = Новый COMОбъект("Medoc.ZApplication")
Исключение
Сообщить(НСтр("ru = 'Подключение не выполнено. Возможные причины:';uk = 'Підключення не виконано. Можливі причини:'") + Символы.ПС +
НСтр("ru = '- M.E.Doc не запущен.';uk = '- M.E.Doc не запущений.'") + символы.ПС +
НСтр("ru = '- не выполнен вход в предприятие из списка.';uk = '- не виконаний вхід у підприємство зі списку.'"), СтатусСообщения.Важное);
Возврат;
КонецПопытки;
ОргМедок = App.GetCurrEdrpou();
Если Не УстановитьОрганизацию(ОргМедок) Тогда
Сообщить("Не найдена организация, выбранная в Медке, по коду ЕДРПОУ " + ОргМедок, СтатусСообщения.Важное);
Возврат;
КонецЕсли;
//DS = App.DocumentsDataSet("PerDate > DateValue('01.02.2020') AND PerDate < DateValue('01.03.2020') AND Charcode='J1312303'");
DS = App.DocumentsDataSet("Charcode='J1312303'");
//DS.Filter = "Charcode=J1312303";
DS.First();
Пока НЕ DS.EOF Цикл
//Cardcode = Формат(DS.Fields.Item("Cardcode").Value,"ЧГ=");
Cardcode = Формат(DS.Fields.Item("CODE").Value,"ЧГ=");
Если Cardcode="" Тогда
DS.Next();
Продолжить;
КонецЕсли;
PerDate = DS.Fields.Item("PerDate").Value;
Сообщить("Cardcode=" + Cardcode + "; PerDate =" + PerDate);
//
Doc = App.OpenDocumentByCode(Cardcode);
rsMain= Doc.DataSets("MAIN");
КонтрагентИНН = rsMain.Fields.Item("FIRM_INN").Value;
НоваяСтрока_Документы = _Документы.Добавить();
НоваяСтрока_Документы.CARDCODE = rsMain.Fields.Item("CARDCODE").Value;
НоваяСтрока_Документы.CODE = rsMain.Fields.Item("CODE").Value;
НоваяСтрока_Документы.Документ = НайтиДокументПоКодуМедка(НоваяСтрока_Документы.CARDCODE);
Если Не ЗначениеЗаполнено(НоваяСтрока_Документы.Документ) Тогда
НоваяСтрока_Документы.ЗагружатьДокумент = Истина;
КонецЕсли;
rsTab= Doc.DataSets("TAB1");
СчетчикТЧ = rsTab.RecordCount;
Пока СчетчикТЧ <> 0 Цикл
НоваяСтрока = ДанныеДокументов.Добавить();
НоваяСтрока.CARDCODE = rsTab.Fields.Item("CARDCODE").Value;
НоваяСтрока.CODE = rsTab.Fields.Item("CODE").Value;
НоваяСтрока.TAB1_ = rsTab.Fields.Item("TAB1_").Value;
НоваяСтрока.TAB1_A1 = rsTab.Fields.Item("TAB1_A1").Value;
НоваяСтрока.TAB1_A2 = rsTab.Fields.Item("TAB1_A2").Value;
НоваяСтрока.TAB1_A3 = rsTab.Fields.Item("TAB1_A3").Value;
НоваяСтрока.КодУКТВЭД_приобретения = НайтиКлассификаторУКТВЭД(НоваяСтрока.TAB1_A2);
НоваяСтрока.КодУКТВЭД_поставки = НайтиКлассификаторУКТВЭД(НоваяСтрока.TAB1_A3);
СчетчикТЧ = СчетчикТЧ-1;
rsTab.Next();
КонецЦикла;
//
DS.Next();
КонецЦикла;