Підтвердження вхідних рахунків (API)

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

Підтвердження вхідних рахунків (API)

Повідомлення Inkognito » 13 листопада 2018, 23:10

Маємо вхідний рахунок, отриманий від контрагента:

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

Спробуємо його підтвердити програмно:
Код | Показать
SenderOK = App.GetDocSender();
Для каждого Стр Из Таблица Цикл
SenderOK.AddDocId(Стр.Doc_id);
SenderOK.AcceptDoc(Стр.Doc_id, 1, "ОК");
КонецЦикла;
Total = SenderOK.Send(0);
Результат:
ЗображенняЗображення

Проблема в коді, чи MEDoc ?

PetroP
Повідомлень: 614
З нами з: 22 січня 2015, 18:50

Re: Підтвердження вхідних рахунків (API)

Повідомлення PetroP » 14 листопада 2018, 10:44

Якщо спробувати так:

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

SenderOK = App.GetDocSender();
Для Каждого Стр Из Таблица Цикл
    SenderOK.AcceptDoc(Стр.Doc_id, 1);
КонецЦикла;

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

Re: Підтвердження вхідних рахунків (API)

Повідомлення Inkognito » 14 листопада 2018, 11:56

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() - помилка маршруту
б) при відсутності хоча б одного методу з трьох - нічого не відбувається.

PetroP
Повідомлень: 614
З нами з: 22 січня 2015, 18:50

Re: Підтвердження вхідних рахунків (API)

Повідомлення PetroP » 14 листопада 2018, 13:01

Потрібні підписи перед цим додано до кешу (CertToCache)?

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

Re: Підтвердження вхідних рахунків (API)

Повідомлення Inkognito » 14 листопада 2018, 13:29

Ні, це весь код (крім коду отримання таблиці з полем "Doc_ID", але то деталі). Спробую додати CertToCache()

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

Re: Підтвердження вхідних рахунків (API)

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

Перед перебором табличної частини, додав:
| Показать
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);
Але все одно в результаті "Неможливо відправити документ Рахунок за вказаним маршрутом!"

PetroP
Повідомлень: 614
З нами з: 22 січня 2015, 18:50

Re: Підтвердження вхідних рахунків (API)

Повідомлення PetroP » 14 листопада 2018, 15:39

Підпис у кеш + мій код - що буде?

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

Re: Підтвердження вхідних рахунків (API)

Повідомлення Inkognito » 14 листопада 2018, 15:47

Код | Показать
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);
КонецЦикла;
Код відпрацьовує. Без повідомлень. В Медку статус не міняється, принаймні візуально. Кнопки "Затвердити/Відхилити" не зникають, значить документ не був підтверджений-відхилений:

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

PetroP
Повідомлень: 614
З нами з: 22 січня 2015, 18:50

Re: Підтвердження вхідних рахунків (API)

Повідомлення PetroP » 14 листопада 2018, 17:13

Перевірив - не працює. Чекаємо на реакцію розробника.

priup
Повідомлень: 6518
З нами з: 22 червня 2011, 12:23

Re: Підтвердження вхідних рахунків (API)

Повідомлення priup » 14 листопада 2018, 19:24

PetroP писав:
14 листопада 2018, 17:13
Перевірив - не працює. Чекаємо на реакцію розробника.
Подключайте Вашего дилера по МЕДОКу.............
Иначе не дочикаетесь "РЕАКЦИИ", форум то не официйний.... :P

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

Re: Підтвердження вхідних рахунків (API)

Повідомлення Inkognito » 15 листопада 2018, 12:23

Так, неофіційні представники команди технічної підтримки на неофіційному форумі, посилання на який є на офіційному сайті. Ми в курсі :)
Але нам всім відомо, що ці представники мають бажання, силу волі, та розум, щоб передати проблему куди слід.

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

Re: Підтвердження вхідних рахунків (API)

Повідомлення Inkognito » 06 грудня 2018, 23:36

Опис 20 версі
Інтеграція
Відкориговано механізм затвердження документів за допомогою метода AcceptDoc.
Не працює - статус візуально не змінюється. Прошу перевірити. Код використовувався той самий (див.вище).
Спроби затвердити | Показать
SenderOK.AcceptDoc(ТутБувІД, 1, "OK");
SenderOK.AcceptDoc(ТутБувІД, 1);

PetroP
Повідомлень: 614
З нами з: 22 січня 2015, 18:50

Re: Підтвердження вхідних рахунків (API)

Повідомлення PetroP » 07 грудня 2018, 09:59

Працює.

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

	sign = App.GetDocSigning();
	rez = sign.CertToCache(...);
	...
	Sender = App.GetDocSender();
	Sender.AcceptDoc("...", Истина);
	Відправлено = Sender.Send(Ложь);
	Сообщить("Відправлено: " + Відправлено);

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

Re: Підтвердження вхідних рахунків (API)

Повідомлення Inkognito » 07 грудня 2018, 10:13

Скопіював код, подставив свій УнікальнийІдентифікатор() - він є у вхідному документі. Виконав код. Результат:
resДир= 0
resОрг= 0
resШиф= 0
Відправлено: 0

PetroP
Повідомлень: 614
З нами з: 22 січня 2015, 18:50

Re: Підтвердження вхідних рахунків (API)

Повідомлення PetroP » 07 грудня 2018, 10:26

Inkognito писав:
06 грудня 2018, 23:36
Опис 20 версі
...
Виправлено на 21 версії.

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

Re: Підтвердження вхідних рахунків (API)

Повідомлення Inkognito » 07 грудня 2018, 12:27

В мене 21 версія...

PetroP
Повідомлень: 614
З нами з: 22 січня 2015, 18:50

Re: Підтвердження вхідних рахунків (API)

Повідомлення PetroP » 10 грудня 2018, 14:45

Виявилась інша проблема: відправка контрагенту:

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

	sign = App.GetDocSigning();
	rez = sign.CertToCache(...);
	...
	Sender = App.GetDocSender();
	Sender.Add("...");
	Відправлено = Sender.Send(Ложь);
	Сообщить("Відправлено: " + Відправлено);
Відправлено 0.
Підтвердження ж первинного документу відбувається (ще раз перевірив).

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

Re: Підтвердження вхідних рахунків (API)

Повідомлення Inkognito » 18 квітня 2019, 09:51

Підтвердження та відправка Додатку2 в ДФС, отриманого від контрагента, не працює:
Код | Показать
App = Новый COMОбъект("MEDOC.ZApplication");
Sender = App.GetDocSender();
CardCode = Формат(CardCode, "ЧГ=");
Sender.AcceptDoc(CardCode, Истина);
cnt= Sender.Send(Истина);
Сообщить(НСтр("ru = 'Утверждено: ';uk = 'Затверджено: '") + cnt);
Проблема в коді, чи MEDoc ?

Суть: підприємство отримує Додаток2 від контрагента з позначкою "Реєструється покупцем":
ЗображенняЗображення
Відповідно, бухгалтер перевіряє отриманий документ, і хоче його відправити в ЄРПН. Перевірка з обліковими даними реалізована (вручну перевіряти не варіант), залишається просто відправити цей Додаток2 в ЄРПН. Вручну - норм. Програмно це зробити не вдається...

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

Re: Підтвердження вхідних рахунків (API)

Повідомлення Inkognito » 25 вересня 2019, 12:22

Актуально. Подтверждение НН (и отклонение) не работают. У кого-то есть идеи?
Код, УФ | Показать
&НаКлиенте
Процедура Подтвердить(Команда)

СтрДок = Новый Структура;
СтрДок.Вставить("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;

ПоказатьПредупреждение(Новый ОписаниеОповещения("КомандаВыполнитьЗавершение", ЭтаФорма), Текст);
КонецЕсли;

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

&НаКлиенте
Процедура КомандаВыполнитьЗавершение(ДополнительныеПараметры) Экспорт


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

priup
Повідомлень: 6518
З нами з: 22 червня 2011, 12:23

Re: Підтвердження вхідних рахунків (API)

Повідомлення priup » 25 вересня 2019, 12:26

Inkognito писав:
25 вересня 2019, 12:22
Актуально. Подтверждение НН (и отклонение) не работают. У кого-то есть идеи?
.....
А НН зарегестрированы в ЕДРПН или НЕТ??

Відповісти

Повернутись до “Модуль «Інтеграція»”