Сегодня утром написал письмо в службы поддержки пользователей ИС ЭСФ на адрес: esfsd@mgd.kz.
Вот что они ответили:
Каким образом Вы получаете (генерируете) подпись для СФ?
Просим проверить вас механизмы генерации подписи по инструкции для электронной счет фактуры.
Если Вы хотите реализовать генерацию подписи программным способом, Вам надо выполнить все пункты, кроме пункта 5 и 6.
(14) ls600, вот именно, С СУББОТЫ. Сначала сайт ЭСФ лежал, потом что-то барахлило и писалось об ошибках библиотеки. Теперь у всех кто тогда что-то пытался делать "кризис шестого дня".
В SDK от egov.kz есть локальный сервер в котором есть метод "generateSignature", пробовал подписывать ЭСФ через него, сформированная подпись отличается от подписи сгенерированной компонентой от 1С. Подменил подпись, ЭСФ сервером была успешно принята.
Как вариант временно можно написать подключение через Soap к этому локальному серверу для получения корректной подписи, либо писать свою компоненту, пока будем от 1С дожидаться ответа.
В настоящее время устанавливается причина возникновения данной ситуации при работе с прямым обменом данными. До выяснения и устранения данного момента рекомендуем использовать XML-обмен ЭСФ.
Количество ЭСФ в день исчисляется тысячами, как показала практика при выгрузке через XML - их сервер стонет и страдает, и зачастую зависая не обрабатывает данные даже скормленные ему порциями.
Точно такая же проблема. Нашел временное решение: если в 1С отправлять подписью юр. лица, то отправляется.
Кстати на сайте kgd.gov есть новость о том что проводились работы.
"Уважаемые пользователи! Комитет государственных доходов МФ РК сообщает, что в связи с проведением технических работ, информационная система "Электронные счета - фактуры" будет недоступна в период с 22:00 16 сентября по 01:00 17 сентября 2016 года."
1. Качаем SDK: http://kgd.gov.kz/sites/default/files/sdk-30.06.2016.zip 2. Запускаем сервер : "В папке localserver есть приложение которое позволит вам генерировать подпись. Его нужно запустить из консоли от имени Администратора вызовом файла start.bat"
3. Сертификат для подписи ложем в папку с сервером, у меня это "ecp.p12".
4. Добавляем изменения в обработку "ОбменЭСФ". В функции "ВыполнитьМетодВебСервисаCУказаниемСервера", указываем адрес компьютера на котором запустили "localserver".
В макете нужно указать имя файла сертификата, и пароль к нему.
Для удобства переводим её во внешние обработки.
Обработка.ОбменЭСФ.МодульОбъекта
Функция СоздатьЭЦП(Знач СтрокаДляПодписи, Знач КлючBase64, Знач ПарольКлюча) Экспорт
Попытка
Криптопровайдер = КриптографияКлиентСервер.НовыйКриптопровайдер();
//Криптопровайдер.ИнициализироватьХранилищеКлюча(КлючBase64, ПарольКлюча, ИнициализироватьХранилищеКлюча_ТипДанных_СтрокаBase64());
//ЭЦП = Криптопровайдер.ПолучитьПодпись(СтрокаДляПодписи, ПолучитьПодпись_ТипДанных_UTF8());
//-->22.09.2016. вмеренная заплатка, получение ЭЦП с локального сервера от egov.kz
ЭЦП = "";
ЗапросXML = ПолучитьМакет("ЗапросGenerateSignature").ПолучитьТекст();
ЗапросXML = СтрЗаменить(ЗапросXML, "[%ТекстДляПодписи%]", СтрокаДляПодписи);
ЗапросXML = СтрЗаменить(ЗапросXML, "<invoice>", "<nam1:invoice>");
ЗапросXML = СтрЗаменить(ЗапросXML, "</invoice>", "</nam1:invoice>");
ОтветXML = ВыполнитьМетодВебСервисаCУказаниемСервера(ЗапросXML, "generateSignature");
ИнформацияОбОшибке = Неопределено;
Если НЕ ЭтоМодульнаяОшибка(ОтветXML, ИнформацияОбОшибке) Тогда
ОтветXDTO = ЭСФСервер.ОбъектXDTOИзСтрокиXML(ОтветXML, ФабрикаXDTO);
invoiceHashList = ОтветXDTO.Body.signatureResponse.invoiceHashList;
Если invoiceHashList <> Неопределено Тогда
ЭЦП = ЭСФСервер.ПолучитьСвойство(invoiceHashList.invoiceHash, "signature", Неопределено);
Иначе
ВызватьИсключение "При подписании документа произошла ошибка.";
КонецЕсли;
Если Не ЗначениеЗаполнено(ЭЦП) Тогда
ВызватьИсключение "При подписании документа произошла ошибка.";
КонецЕсли;
Иначе
ВызватьИсключение НСтр("ru = 'При подписании документа произошла ошибка.'") + Символы.ПС + ИнформацияОбОшибке.ПодробноеПредставление;
КонецЕсли;
//<-- 22.09.2016. Вмеренная заплатка, получение ЭЦП с локального сервера от egov.kz
Возврат ЭЦП;
Исключение
Ошибка = ОшибкаКриптопровайдера(Криптопровайдер, ИнформацияОбОшибке());
ЭСФВызовСервера.СоздатьЗаписьЖурналаРегистрации(НСтр("ru = 'Ошибка выполнения'"), "Ошибка", , , Ошибка.ПодробноеПредставление);
ТекстИсключения = НСтр(
"ru = 'Не удалось подписать электронный счет-фактуру.
|[КраткоеПредставление]'");
ТекстИсключения = СтрЗаменить(ТекстИсключения, "[КраткоеПредставление]", Ошибка.КраткоеПредставление);
ВызватьИсключение ТекстИсключения;
КонецПопытки;
КонецФункции
//-->22.09.2016. вмеренная заплатка, получение ЭЦП с локального сервера от egov.kz
Функция ВыполнитьМетодВебСервисаCУказаниемСервера(Знач ТекстМетода, Знач ИмяВебСервиса) Экспорт
//ПараметрыПодключения = ЭСФСерверПовтИсп.ПолучитьПараметрыПодключенияКСерверуИСЭСФ();
ПараметрыПодключения = Новый Структура;
ПараметрыПодключения.Вставить("СерверИСЭСФ_HTTPS", Ложь);
ПараметрыПодключения.Вставить("СерверИСЭСФ_Адрес", "192.168.1.100");
ПараметрыПодключения.Вставить("СерверИСЭСФ_Порт", 6666 );
ПараметрыПодключения.Вставить("НовыйПроксиСерверИСЭСФ", Новый ИнтернетПрокси(Ложь));
ПараметрыПодключения.Вставить("СерверИСЭСФ_Ресурс", "LocalService");
Если ПараметрыПодключения.СерверИСЭСФ_HTTPS Тогда
HTTPСоединение = Новый HTTPСоединение(
ПараметрыПодключения.СерверИСЭСФ_Адрес,
ПараметрыПодключения.СерверИСЭСФ_Порт,
,
,
,
,
Новый ЗащищенноеСоединениеOpenSSL(,));
Иначе
HTTPСоединение = Новый HTTPСоединение(
ПараметрыПодключения.СерверИСЭСФ_Адрес,
ПараметрыПодключения.СерверИСЭСФ_Порт,
,
,
);
КонецЕсли;
HTTPЗапрос = Новый HTTPЗапрос();
ПрефиксРесурса = ПараметрыПодключения.СерверИСЭСФ_Ресурс;
ПрефиксРесурса = ?(Лев(ПрефиксРесурса, 1) = "/", Сред(ПрефиксРесурса, 2), ПрефиксРесурса);
ПрефиксРесурса = ?(Прав(ПрефиксРесурса, 1) = "/", Сред(ПрефиксРесурса, 1, СтрДлина(ПрефиксРесурса) - 1), ПрефиксРесурса);
HTTPЗапрос.АдресРесурса = "/" + ПрефиксРесурса + "/" + ИмяВебСервиса;
Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type", "text/xml;charset=UTF-8");
Заголовки.Вставить("SOAPAction", """""");
HTTPЗапрос.Заголовки = Заголовки;
HTTPЗапрос.УстановитьТелоИзСтроки(ТекстМетода, "UTF-8");
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
ТекстОтвета = СокрЛП(HTTPОтвет.ПолучитьТелоКакСтроку());
Возврат ТекстОтвета;
КонецФункции
Вроде бы данная проблема возникла у тех, у кого дог.ИТС, по которому получали криптобиблиотеку, на одно юр.лицо зарегистрирован, а с ЭСФ работают по другому.
(27) Lavrentyus, это не домыслы. Знаю 2 конторки в нашем городе у которых аналогичная ситуация. И это помимо нас. А у тех у кого ИТС и фирма ЭСФ совпадают работают как работали.
Да и приватно тут болтанул мне ещё один товарищ. Но это уже другая история :)))
сегодня с одной компанией общался которая занимается 1С:Франчайзингом. Они говорят что это проблемы не в 1С. Это на портале счет фактур что то на химичили.
Действительно, в настоящее время при отправке ЭСФ средствами API с ключами физического лица во многих случаях возникает ошибка подписи. Для обхода проблемы в настоящее время вы можете использовать обмен данными через XML-файлы, либо использовать для подписи ЭСФ ключи юридического лица (ГОСТ-ключи).
Проблема находится в стадии решения специалистами ИС ЭСФ, ожидается, что решение проблемы произойдет в ближайшее время (ориентировочно в понедельник (26.09.2016)) .
P.S. Просьба при ответе на данное письмо не удалять предыдущий текст переписки.
С уважением Hotline
г.Усть-Каменогорск, ул.Казахстан, 27
тел: (7232)20-30-10
E-mail:Hotline@1c-rating.kz
www.1c-rating.kz
При установке соединения с ИС ЭСФ возникла ошибка:
Ошибка работы с Интернет: Couldn't resolve host name
Возможные причины:
- Сервер ИС ЭСФ недоступен (Проверьте работу: https://esf.gov.kz:8443/esf-web/).
- На сервере localhost, для 1С:Предприятие (8.3.8.2027), нет доступа в Интернет (Обратитесь к системному администратору).
- Настройки безопасности Вашей сети требуют работы через прокси-сервер (Задайте настройки прокси-сервера, кнопка "Настроить прокси").
Доброго времени суток! При настройке ЭСФ напрямую через 1С вот такая проблема нет окна для регистрационного ключа. Может кто-то сталкивался с такой проблемой, буду очень признателен если поделитесь решением.
Ошибка: Поле объекта не обнаружено (createSessionResponse)
Означает, что нет доступа к серверу ИС ЭСФ.
Если в данный момент зайти на https://esf.gov.kz:8443/esf-web/login Увидим у них вот такую ошибку, на скрине прилагаю