Загрузка из Медка документов

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

Re: Загрузка из Медка документов

Повідомлення vademchuk » 27 січня 2015, 11:55

Zvezda писав:Пока техподдержка 6-й день собирается с мыслями задам еще один убойный вопрос: как можно зная DocID узнать ExDocID ?
Поверьте, не праздного любопытства ради спрашиваю.
А зачем вообще Вам DocID , как вы его используете?

Zvezda
Повідомлень: 19
З нами з: 23 січня 2015, 14:24

Re: Загрузка из Медка документов

Повідомлення Zvezda » 27 січня 2015, 12:35

vademchuk писав:А зачем вообще Вам DocID , как вы его используете?
Мне требуется получить список документов из медка. Если не ошибаюсь, то иного способа, кроме как с помощью DocumentsDataSet(...) нет.
Если я не прав - поправьте.
Кстати, видел в где-то в примерах вызовы DocumentsDataSet(...) со вторым параметром типа boolean, который не документирован. Что это за параметр ?
Так вот, я так понимаю, что в DataSet получаемом в результате выполнения DocumentsDataSet(...) поле CODE как раз и является тем самым IdDoc.
Вот только проблема в том, что почти все функции оперируют не IdDoc, а ExIdDoc, например, та же функция GetInTrashStatus.
Кстати, как быть если мы не грузим в медок код документа во внешней системе ? Ну не нужен он нам а если бы и грузили, то бухгалтерская система ничего не знает о коде из управленческой.

ignorant
Повідомлень: 67
З нами з: 10 грудня 2014, 10:58

Re: Загрузка из Медка документов

Повідомлення ignorant » 27 січня 2015, 12:48

Перебрать список документов с реквизитами можно ещё так:

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

   prim = App.GetPrimaryDocs();
   tabl = prim.GetPrimaryReestr ( -1, -1, Дата(2015, 1, 1), Дата(2016, 1, 1));             // Первичка за 2015-й год
   
   tabl.First(); 
   
   //СчетчикКолонок = tabl.Fields.Count();
   //Для Инд = 0 ПО (СчетчикКолонок - 1) Цикл
   //   Сообщить ( "Колонка " + Строка (Инд) + " " + tabl.Fields.item(Инд).name + " = " + tabl.Fields.item(Инд).Value );
   //КонецЦикла;
   
   Пока НЕ tabl.EOF Цикл 
      
      doc   = App.OpenDocumentByCode(tabl .Fields.Item("CARDCODE").Value);
      main = doc.DataSets("MAIN");
      
      Сообщить ("Идём в документ!");
      
      СчетчикКолонок1 = main.Fields.Count();
      Для Инд1 = 0 ПО (СчетчикКолонок1 - 1) Цикл
         Сообщить ( "Колонка " + Строка (Инд1) + " " + main.Fields.item(Инд1).name + " = " + main.Fields.item(Инд1).Value );
      КонецЦикла;
      
      main = doc.DataSets("TAB1");
      
      Сообщить ("Идём в Таблицу 1!");
      
      СчетчикКолонок1 = main.Fields.Count();
      Для Инд1 = 0 ПО (СчетчикКолонок1 - 1) Цикл
         Сообщить ( "Колонка " + Строка (Инд1) + " " + main.Fields.item(Инд1).name + " = " + main.Fields.item(Инд1).Value );
      КонецЦикла;
         
      Прервать;
      
      tabl.Next(); 
      
   КонецЦикла;
Поле CARDCODE содержит нечто похожее на IdDoc

Zvezda
Повідомлень: 19
З нами з: 23 січня 2015, 14:24

Re: Загрузка из Медка документов

Повідомлення Zvezda » 27 січня 2015, 14:06

Спасибо за информацию расширяющую сознание :)
Посмотрел на функцию GetPrimaryReestr(), проанализировал возвращаемые ей данные, но, к сожалению, в моем случае она так же бесполезна, как и DocumentsDataSet():
- функция ничего не сообщает о том находится ли документ в Корзине
- функция возвращает код EXDOC_ID, но в моем случае он всегда пуст
снова тупик.

Из положительных, если так можно выразиться, моментов можно отметить, что возвращаемое DocumentsDataSet() значение CODE походу не есть DocID, как я предполагал ранее.
GetPrimaryReestr() возвращает значение CARDCODE соответствующее CODE из DocumentsDataSet() и еще возвращает значение DOC_ID.
Таким образом, даже если бы функция GetInTrashStatus() умела оперировать DocID мне это не помогло бы, т.к. DocumentsDataSet() не возвращает ни DOC_ID ни ExDocID.

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

Re: Загрузка из Медка документов

Повідомлення vademchuk » 27 січня 2015, 14:14

ignorant писав:Перебрать список документов с реквизитами можно ещё так:

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

   prim = App.GetPrimaryDocs();
   tabl = prim.GetPrimaryReestr ( -1, -1, Дата(2015, 1, 1), Дата(2016, 1, 1));             // Первичка за 2015-й год
   
Поле CARDCODE содержит нечто похожее на IdDoc
Как бы Да и как бы Нет.....

Когда берем список через Реестр (для исходящего):
CardCode=474974
doc_id=32F1D3A0-01BB-4648-8445-498C9358F2D4
EXDOC_ID=f80e96a0-9d88-11e4-a8e0-1cc1de27bc45
STATUS=4
DOC_NUM=1913
DOC_DATE=03.01.2015 0:00:00
DOC_TYPE=1
DOC_MOVE=1
FIRM_EDRPOU=24824828
PATRNER_IPN=100000000000
OSOBFIO=І.М. Некто

Здесь CardCode и doc_id - совсем разные значения, ну и понятно что у входящего документа EXDOC_ID будет пустой.
DOC_MOVE - 1 = исходящие, 2 = входящие.


Плохо другое. У нас уже с год входящие НН привязаны в учетной системе по CardCode (Code при получении через DataSet), сейчас обнаружилось, что в каких-то случаях при получении повторного Вытяга из реестра с галкой импорт - существующие документы перезаписываются и меняется CardCode..... получается ,что не получается.... хотя, когда импорт НН из реестра заработал - такого не было.... блин.....

ignorant
Повідомлень: 67
З нами з: 10 грудня 2014, 10:58

Re: Загрузка из Медка документов

Повідомлення ignorant » 27 січня 2015, 14:53

vademchuk писав:
ignorant писав:Поле CARDCODE содержит нечто похожее на IdDoc
Здесь CardCode и doc_id - совсем разные значения, ну и понятно что у входящего документа EXDOC_ID будет пустой.
Всецело и категорически с Вами согласен ;)
Но мануэль говорит:
Список полів у таблиці
CardCode – ідентифікатор документа в Медку,
...
Doc_id – ідентифікатор документа
Что имели ввиду разработчики :roll: ?

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

Re: Загрузка из Медка документов

Повідомлення vademchuk » 27 січня 2015, 15:26

ignorant писав: Что имели ввиду разработчики :roll: ?
Эх..... вот знать бы, что они дальше имеют ввиду....

Zvezda
Повідомлень: 19
З нами з: 23 січня 2015, 14:24

Re: Загрузка из Медка документов

Повідомлення Zvezda » 27 січня 2015, 16:17

Через вебформу на сайте отправил разработчикам "Предложение":
Просьба доработать COM-функцию DocumentsDataSet(): добавить параметр позволяющий отбирать документы находящиеся не в Корзине, в Корзине или все; в результат функции добавить поля DOC_ID, EXDOC_ID и признак нахождения документа в Корзине.
Просьба доработать COM-функцию GetInTrashStatus(), чтобы в качестве параметра можно было указывать DOC_ID.

Zvezda
Повідомлень: 19
З нами з: 23 січня 2015, 14:24

Re: Загрузка из Медка документов

Повідомлення Zvezda » 03 лютого 2015, 12:40

Оставайтесь на линии, Ваш звонок очень важен для нас...

Техподдержка медка на мою просьбу отмахнулась пиcьмом с фразой "По вопросам стыковки программы обратись пожалуйста на почтовый ящик [email protected]".
Т.е. даже не удосужились передать информацию и мои контакты самостоятельно.
Ну а с этого ящика нет никакой информации вот уже неделю.

yevgen
Повідомлень: 4
З нами з: 14 січня 2015, 15:30

Re: Загрузка из Медка документов

Повідомлення yevgen » 03 лютого 2015, 13:19

При использовании функции GetPrimaryReestr () и последующей выборке нельзя отфильтровать налоговые накладные со статусом "Відхилено". Значение поля STATUS для "Відхилено" и "Отримано" одинаково и равно 4.

Это ошибка разработчиков или так задумано?

Как-то можно решить проблему другим способом?

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

Re: Загрузка из Медка документов

Повідомлення vademchuk » 04 лютого 2015, 13:36

yevgen писав:При использовании функции GetPrimaryReestr () и последующей выборке нельзя отфильтровать налоговые накладные со статусом "Відхилено". Значение поля STATUS для "Відхилено" и "Отримано" одинаково и равно 4.

Это ошибка разработчиков или так задумано?

Как-то можно решить проблему другим способом?
Это И ошибка разработчиков И так задумано :)

Что даст знание статуса "Відхилено" и "Отримано" если НН все-равно включена в РЕЕСТР ?

yevgen
Повідомлень: 4
З нами з: 14 січня 2015, 15:30

Re: Загрузка из Медка документов

Повідомлення yevgen » 05 лютого 2015, 16:43

vademchuk писав: Что даст знание статуса "Відхилено" и "Отримано" если НН все-равно включена в РЕЕСТР ?
Согласен )
Просто бухгалтерия не хотела затягивать в 1С документы с этим статусом. Потом разобрались, что это не имеет смысла.

Zvezda
Повідомлень: 19
З нами з: 23 січня 2015, 14:24

Re: Загрузка из Медка документов

Повідомлення Zvezda » 06 лютого 2015, 18:08

Zvezda писав:
aleksiychuk писав:Здравствуйте, если все использовать, как указано выше - ошибки не будет
DataSet = MeDoc.DocumentsDataSet(...);
doc = MeDoc.OpenDocumentByCode(DataSet .Fields.Item("CODE").Value);
main = doc.DataSets("MAIN");
Firm = main.Item("Firm_Name").Value
В DataSet попадают абсолютно все документы, в том числе находящиеся в Архиве и Корзине.
Подскажите каким образом можно сузить область поиска: не отбирать документы из Архива и Корзины.
Если, к огромному сожалению, это невозможно (с точки зрения производительности это огромный минус), то подскажите, как можно проверить где находится текущий документ или как проверить не находится ли он в Корзине или Архиве.
Сегодня вечером буду праздновать 2 недели, как техподдержка МЕДка не может ответить на мой вопрос и даже не может ничего предложить или пообещать. Тупо молчит.

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

Re: Загрузка из Медка документов

Повідомлення Inkognito » 11 лютого 2015, 22:49

Корзина: добавьте фильтр INTRASH=0
Архив: попробуйте фильтр MOVETYPE, EXSTATUS, хотя тут лучше спросить andriychyk
П.С. если скините базу в личку хотя бы с 1 документом в Архиве (для примера), скажу точно какое поле отвечает за фильтр по Архиву.

Відповісти

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