Сторінка 1 з 2
Підтвердження вхідних рахунків (API)
Додано: 13 листопада 2018, 23:10
Inkognito
Маємо вхідний рахунок, отриманий від контрагента:
Спробуємо його підтвердити програмно:
- Код | Показать
- SenderOK = App.GetDocSender();
Для каждого Стр Из Таблица Цикл
SenderOK.AddDocId(Стр.Doc_id);
SenderOK.AcceptDoc(Стр.Doc_id, 1, "ОК");
КонецЦикла;
Total = SenderOK.Send(0);
Результат:
Проблема в коді, чи MEDoc ?
Re: Підтвердження вхідних рахунків (API)
Додано: 14 листопада 2018, 10:44
PetroP
Якщо спробувати так:
Код: Виділити все
SenderOK = App.GetDocSender();
Для Каждого Стр Из Таблица Цикл
SenderOK.AcceptDoc(Стр.Doc_id, 1);
КонецЦикла;
Re: Підтвердження вхідних рахунків (API)
Додано: 14 листопада 2018, 11:56
Inkognito
PetroP
Нічого не відбувається (код скопіював).
Також спробувані комбінації:
1) Без SenderOK.AddDocId(Стр.Doc_id); в циклі: нічого не відбувається
2) Без Total = SenderOK.Send(0); після циклу - нічого не відбувається
3) SenderOK.AcceptDoc(Стр.Doc_id, 1, "ОК"); та SenderOK.AcceptDoc(Стр.Doc_id, 1); --- різниці немає, принаймні в обох випадках або не працює взагалі, або помилка маршруту. На цей метод помилки не виникало.
Тобто:
а) при використанні одночасно AddDocId(), AcceptDoc(), Send() - помилка маршруту
б) при відсутності хоча б одного методу з трьох - нічого не відбувається.
Re: Підтвердження вхідних рахунків (API)
Додано: 14 листопада 2018, 13:01
PetroP
Потрібні підписи перед цим додано до кешу (CertToCache)?
Re: Підтвердження вхідних рахунків (API)
Додано: 14 листопада 2018, 13:29
Inkognito
Ні, це весь код (крім коду отримання таблиці з полем "Doc_ID", але то деталі). Спробую додати CertToCache()
Re: Підтвердження вхідних рахунків (API)
Додано: 14 листопада 2018, 13:51
Inkognito
Перед перебором табличної частини, додав:
- | Показать
- sign = App.GetDocSigning() ;
resДир = sign.CertToCache(
"Шлях\certХХХХХХХХ.crt",
"Шлях\ХХХХХХХХ_ХХХХХХХХХХ_DХХХХХХХХХХХХХХХХХ.ZS2",
"ХХХХХ");
Сообщить("resДир= " + resДир);
resОрг = sign.CertToCache(
"Шлях\certХХХХХХХ.crt",
"Шлях\ХХХХХХХХХ_UХХХХХХХХХХХ.ZS2",
"ХХХХХ");
Сообщить("resОрг= " + resОрг);
resШиф = sign.CertToCache(
"Шлях\certХХХХХХХ.crt",
"Шлях\ХХХХХХХХХ_UХХХХХХХХХХХ.ZS2",
"ХХХХХ");
Сообщить("resШиф= " + resШиф);
//----------------------------
Всі три підключення видали "0", тобто в кеш записані вдало
//-----------------
SenderOK = App.GetDocSender();
Для каждого Стр Из Таблицва Цикл
SenderOK.AddDocId(Стр.Doc_id);
SenderOK.AcceptDoc(Стр.Doc_id, 1);
КонецЦикла;
УстановленоOK = SenderOK.Send(0);
Але все одно в результаті "Неможливо відправити документ Рахунок за вказаним маршрутом!"
Re: Підтвердження вхідних рахунків (API)
Додано: 14 листопада 2018, 15:39
PetroP
Підпис у кеш +
мій код - що буде?
Re: Підтвердження вхідних рахунків (API)
Додано: 14 листопада 2018, 15:47
Inkognito
- Код | Показать
- sign = App.GetDocSigning() ;
resДир = sign.CertToCache(
"Шлях\certХХХХХХХХ.crt",
"Шлях\ХХХХХХХХ_ХХХХХХХХХХ_DХХХХХХХХХХХХХХХХХ.ZS2",
"ХХХХХ");
Сообщить("resДир= " + resДир);
resОрг = sign.CertToCache(
"Шлях\certХХХХХХХ.crt",
"Шлях\ХХХХХХХХХ_UХХХХХХХХХХХ.ZS2",
"ХХХХХ");
Сообщить("resОрг= " + resОрг);
resШиф = sign.CertToCache(
"Шлях\certХХХХХХХ.crt",
"Шлях\ХХХХХХХХХ_UХХХХХХХХХХХ.ZS2",
"ХХХХХ");
Сообщить("resШиф= " + resШиф);
//-----------------------------
SenderOK = App.GetDocSender();
Для Каждого Стр Из Табл Цикл
SenderOK.AcceptDoc(Стр.Doc_id, 1);
КонецЦикла;
Код відпрацьовує. Без повідомлень. В Медку статус не міняється, принаймні візуально. Кнопки "Затвердити/Відхилити" не зникають, значить документ не був підтверджений-відхилений:
Re: Підтвердження вхідних рахунків (API)
Додано: 14 листопада 2018, 17:13
PetroP
Перевірив - не працює. Чекаємо на реакцію розробника.
Re: Підтвердження вхідних рахунків (API)
Додано: 14 листопада 2018, 19:24
priup
PetroP писав: ↑14 листопада 2018, 17:13
Перевірив - не працює. Чекаємо на реакцію розробника.
Подключайте Вашего дилера по МЕДОКу.............
Иначе не дочикаетесь "РЕАКЦИИ", форум то не официйний....
Re: Підтвердження вхідних рахунків (API)
Додано: 15 листопада 2018, 12:23
Inkognito
Так, неофіційні представники команди технічної підтримки на неофіційному форумі, посилання на який є на офіційному сайті. Ми в курсі
Але нам всім відомо, що ці представники мають бажання, силу волі, та розум, щоб передати проблему куди слід.
Re: Підтвердження вхідних рахунків (API)
Додано: 06 грудня 2018, 23:36
Inkognito
Опис 20 версі
Інтеграція
Відкориговано механізм затвердження документів за допомогою метода AcceptDoc.
Не працює - статус візуально не змінюється. Прошу перевірити. Код використовувався той самий (див.вище).
- Спроби затвердити | Показать
-
SenderOK.AcceptDoc(ТутБувІД, 1, "OK");
SenderOK.AcceptDoc(ТутБувІД, 1);
Re: Підтвердження вхідних рахунків (API)
Додано: 07 грудня 2018, 09:59
PetroP
Працює.
Код: Виділити все
sign = App.GetDocSigning();
rez = sign.CertToCache(...);
...
Sender = App.GetDocSender();
Sender.AcceptDoc("...", Истина);
Відправлено = Sender.Send(Ложь);
Сообщить("Відправлено: " + Відправлено);
Re: Підтвердження вхідних рахунків (API)
Додано: 07 грудня 2018, 10:13
Inkognito
Скопіював код, подставив свій УнікальнийІдентифікатор() - він є у вхідному документі. Виконав код. Результат:
resДир= 0
resОрг= 0
resШиф= 0
Відправлено: 0
Re: Підтвердження вхідних рахунків (API)
Додано: 07 грудня 2018, 10:26
PetroP
Inkognito писав: ↑06 грудня 2018, 23:36
Опис 20 версі
...
Виправлено на 21 версії.
Re: Підтвердження вхідних рахунків (API)
Додано: 07 грудня 2018, 12:27
Inkognito
В мене 21 версія...
Re: Підтвердження вхідних рахунків (API)
Додано: 10 грудня 2018, 14:45
PetroP
Виявилась інша проблема: відправка контрагенту:
Код: Виділити все
sign = App.GetDocSigning();
rez = sign.CertToCache(...);
...
Sender = App.GetDocSender();
Sender.Add("...");
Відправлено = Sender.Send(Ложь);
Сообщить("Відправлено: " + Відправлено);
Відправлено 0.
Підтвердження ж первинного документу відбувається (ще раз перевірив).
Re: Підтвердження вхідних рахунків (API)
Додано: 18 квітня 2019, 09:51
Inkognito
Підтвердження та відправка Додатку2 в ДФС, отриманого від контрагента, не працює:
- Код | Показать
- App = Новый COMОбъект("MEDOC.ZApplication");
Sender = App.GetDocSender();
CardCode = Формат(CardCode, "ЧГ=");
Sender.AcceptDoc(CardCode, Истина);
cnt= Sender.Send(Истина);
Сообщить(НСтр("ru = 'Утверждено: ';uk = 'Затверджено: '") + cnt);
Проблема в коді, чи MEDoc ?
Суть: підприємство отримує Додаток2 від контрагента з позначкою "Реєструється покупцем":
Відповідно, бухгалтер перевіряє отриманий документ, і хоче його відправити в ЄРПН. Перевірка з обліковими даними реалізована (вручну перевіряти не варіант), залишається просто відправити цей Додаток2 в ЄРПН. Вручну - норм. Програмно це зробити не вдається...
Re: Підтвердження вхідних рахунків (API)
Додано: 25 вересня 2019, 12:22
Inkognito
Актуально. Подтверждение НН (и отклонение) не работают. У кого-то есть идеи?
- Код, УФ | Показать
- &НаКлиенте
Процедура Подтвердить(Команда)
СтрДок = Новый Структура;
СтрДок.Вставить("CardCode", 20902);//СтрЗаменить(Объект.CardCode, Символы.НПП, ""));
Если Объект.Отклонение Тогда
ТекстВопроса = НСтр("ru = 'Отклонить документ?';uk = 'Відхилити документ?'");
ПоказатьВопрос(Новый ОписаниеОповещения("ВыполнитьОтклонение", ЭтаФорма, СтрДок), ТекстВопроса, РежимДиалогаВопрос.ДаНет);
Иначе
ТекстВопроса = НСтр("ru = 'Утвердить документ?';uk = 'Затвердити документ?'");
ПоказатьВопрос(Новый ОписаниеОповещения("ВыполнитьПодтверждение", ЭтаФорма, СтрДок), ТекстВопроса, РежимДиалогаВопрос.ДаНет);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьОтклонение(РезультатВопроса, ПараметрыЗаписи) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
App = Новый COMОбъект("MEDOC.ZApplication");
Sender = App.GetDocSender();
CardCode = Формат(ПараметрыЗаписи.CardCode, "ЧГ=");
Sender.Add(CardCode);
Sender.AddDocId(CardCode);
Sender.AcceptDoc(CardCode, 0, "Не вірно вказано найменування продавця"); //отклонить
cnt= Sender.Send(Истина);
Текст= НСтр("ru = 'Отклонено: ';uk = 'Відхилено: '") + cnt;
ПоказатьПредупреждение(Новый ОписаниеОповещения("КомандаВыполнитьЗавершение", ЭтаФорма), Текст);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьПодтверждение(РезультатВопроса, ПараметрыЗаписи) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
App = Новый COMОбъект("MEDOC.ZApplication");
Sender = App.GetDocSender();
CardCode = Формат(ПараметрыЗаписи.CardCode, "ЧГ=");
Sender.Add(CardCode);
Sender.AddDocId(CardCode);
Sender.AcceptDoc(CardCode, Истина);
cnt= Sender.Send(Истина);
Текст= НСтр("ru = 'Утверждено: ';uk = 'Затверджено: '") + cnt;
ПоказатьПредупреждение(Новый ОписаниеОповещения("КомандаВыполнитьЗавершение", ЭтаФорма), Текст);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КомандаВыполнитьЗавершение(ДополнительныеПараметры) Экспорт
КонецПроцедуры
Re: Підтвердження вхідних рахунків (API)
Додано: 25 вересня 2019, 12:26
priup
Inkognito писав: ↑25 вересня 2019, 12:22
Актуально. Подтверждение НН (и отклонение) не работают. У кого-то есть идеи?
.....
А НН зарегестрированы в ЕДРПН или НЕТ??