Ошибка undefined на сайте

Ошибка при подписании на сайте www.rosagroleasing.ru

Offline

ykola72

 


#1
Оставлено
:

20 апреля 2020 г. 15:17:58(UTC)

ykola72

Статус: Новичок

Группы: Участники

Зарегистрирован: 20.04.2020(UTC)
Сообщений: 2
Российская Федерация
Откуда: Дальний Восток

Сказал(а) «Спасибо»: 1 раз

Доброго времени суток! При подписании документа на сайте www.rosagroleasing.ru в личном кабинете выдает ошибку «Ошибка проверки подписи. Код ошибки КриптоПро: undefined» Написал в тех.поддержку портала на что получил ответ
«В данном случае возникает ошибка на стороне Вашего криптопровайдера (КриптоПро)
Вам необходимо обратиться в техническую поддержку КриптоПро.»
НО при этом неделю назад я мог подписать на их сайте. ключ тот же самый. документы теже самые. сделал проверку подписи, все подписывает без каких либо ошибок. НАРОД куда стучать чтобы решить проблему.


Вверх


Offline

Андрей *

 


#2
Оставлено
:

20 апреля 2020 г. 15:22:17(UTC)

Андрей *

Статус: Сотрудник

Группы: Участники

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,757
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1840 раз в 1423 постах

Здравствуйте.

Это ошибка — undefined, в клиентском коде, на сайте из javascript что-то не удалось инициализировать,
например, плагин.

Уточните свою конфигурацию: ОС, версию КриптоПРО CSP, плагина.

Проверить работу плагина можно на этой тестовой странице.

К самому КриптоПРО CSPсертификату это не имеет отношения, можете убедиться через:
Панель управленияКриптоПРО CSPСервисПротестироватьПо сертификату…
Тест завершается без ошибок?

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW


Offline

ykola72

 


#3
Оставлено
:

20 апреля 2020 г. 15:55:28(UTC)

ykola72

Статус: Новичок

Группы: Участники

Зарегистрирован: 20.04.2020(UTC)
Сообщений: 2
Российская Федерация
Откуда: Дальний Восток

Сказал(а) «Спасибо»: 1 раз

ОС:Windows 10×64 домашняя для одного языка 1903
КриптоПро CSP 5.0.11453 КС1
плагин CryptoPro Extension for CAdES Browser Plug-in Версия плагина: 2.0.13771

ГОСТ Р 34.10-2012 256 бит

Тест без ошибок и все успешно.

Пробовал в разных браузерах хром яндекс и мазила

Отредактировано пользователем 20 апреля 2020 г. 15:57:21(UTC)
 | Причина: Не указана


Вверх


Offline

Андрей *

 


#4
Оставлено
:

20 апреля 2020 г. 16:00:32(UTC)

Андрей *

Статус: Сотрудник

Группы: Участники

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 11,757
Мужчина
Российская Федерация

Сказал «Спасибо»: 451 раз
Поблагодарили: 1840 раз в 1423 постах

какой использовали браузер?

т.е. на тестовой странице подписывается файл?

у меня нет доступа в ЛК www.rosagroleasing.ru
если у Вас воспроизводится ошибка — то после её появления нажимите F12,
откроется панель разработчика, там есть вкладка КонсольConsole , расширьте панель как можно больше по высоте
— сделайте снимок, приложите файлом — возможно, там есть детализация проблемы, о которой также должны знать в ТП rosagroleasing.ru

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW

thanks 1 пользователь поблагодарил Андрей * за этот пост.

ykola72

оставлено 20.04.2020(UTC)

Пользователи, просматривающие эту тему

Guest

Быстрый переход
 

Вы не можете создавать новые темы в этом форуме.

Вы не можете отвечать в этом форуме.

Вы не можете удалять Ваши сообщения в этом форуме.

Вы не можете редактировать Ваши сообщения в этом форуме.

Вы не можете создавать опросы в этом форуме.

Вы не можете голосовать в этом форуме.

Если при подписании на сайте ЕИС (ЕРУЗ) https://zakupki.gov.ru/ возникает ошибка «Cannot read properties of undefined (reading ‘CreateObjectAsync’)», мы рекомендуем в первую очередь использовать браузер Chromium GOST, так как ЕИС корректно работает именно в нём. Если вы планируете работать в Яндекс.Браузере — необходимо выполнить дополнительные настройки.

Если вы хотите использовать другой браузер, в котором возникает эта ошибка — рекомендуем обратиться в техническую поддержку ЕИС для уточнения сроков исправления ошибки в нужном для вас браузере.

Настройте для работы браузер Chromium GOST

1. ​Установите браузер:

  • Автоматически с нашего Веб-диска. После установки переходите к пункту 2 инструкции.
  • Вручную по ссылке https://github.com/deemru/Chromium-Gost/releases/. На открывшейся странице выберите версию браузера, которая соответствует разрядности вашей операционной системы, разрядность вашей системы можно определить следующими способами:
    а) Нажать правой кнопкой мыши на Мой компьютер — Свойства.
     б) Нажать комбинацию клавиш Win+Pause.
      в) Нажать правой кнопкой мыши на Пуск — Система.
       г) Воспользоваться инструкцией от Microsoft.


Запустите скачанный файл и следуйте подсказкам на экране для установки

2. Запустите браузер Chromium GOST и откройте в нём ссылку https://chrome.google.com/webstore/detail/cryptopro-extension-for-c/iifchhfnnmpdbibifmljnfjhpififfog. Проверьте, что расширение с открывшейся страницы установлено (должна отобразиться кнопка «Удалить из Chrome»):

Если вы видите кнопку «Установить» — нажмите её для установки расширения:

3. Повторите подписание документов в ЕИС

Настроить для работы Яндекс.Браузер

1. Скачайте браузер по ссылке https://browser.yandex.ru/ . Если Яндекс.Браузер уже установлен и ранее ЕИС (ЕРУЗ) работал в нём корректно, то переходите к пункту 4.

2. В Яндекс.Браузере зайдите в раздел «Настройки» — «Системные», либо откройте в нем ссылку: browser://settings/system

Включите настройку «Подключаться к сайтам, использующим шифрование по ГОСТ. Требуется КриптоПро»:

3. Установите расширение https://chrome.google.com/webstore/detail/cryptopro-extension-for-c/iifchhfnnmpdbibifmljnfjhpififfog так же, как это описано ранее в инструкции про Chromium GOST.

4. Повторите подписание в ЕИС. Если ошибка сохранилась, для нормальной работы портала в Яндекс.Браузере нужно выключить расширение из каталога Opera: 


Откройте «Настройки» — «Дополнения», либо откройте в браузере ссылку browser://tune/

Отключите расширение Каталог КриптоПро ЭЦП переведя ползунок в левое положение:

Внимание! Изменение этой настройки может негативно повлиять работу на некоторых сайтах, например на www.sberbank-ast.ruwww.rts-tender.ru и https://etp.gpb.ru/ . Решение об отключении вы принимаете самостоятельно!

Перезапустите браузер и повторите подписание в ЕИС.

undefined в JavaScript — настоящий кошмар начинающего фронтендера. В чём отличие undefined и null, если даже сравнение null == undefined выводит true, и как обрабатывать ошибку undefined? Давайте разбираться.

Примечание Вы читаете улучшенную версию некогда выпущенной нами статьи.

  1. Что такое undefined в JavaScript
  2. Как избежать undefined в JavaScript
  3. Значение undefined в массивах
  4. Отличие null и undefined в JavaScript
  5. Заключение

undefined является специальным значением. Согласно спецификации ECMAScript, undefined в JavaScript можно получить при доступе к неинициализированным переменным, несуществующим свойствам объекта, несуществующим элементам массива, etc. Пример:

let number;  
number;     // => undefined  
let movie = { name: 'Interstellar' };  
movie.year; // => undefined  
let movies = ['Interstellar', 'Alexander'];  
movies[3];  // => undefined

Как видим, undefined выводится при попытке доступа к:

  • неинициализированной переменной number;
  • несуществующему свойству объекта movie.year;
  • несуществующему элементу массива movies[3].

Оператор typeof возвращает строку undefined для неопределённого значения:

typeof undefined === 'undefined'; // => true

Оператор typeof отлично подходит для проверки значения undefined в JavaScript:

let nothing;  
typeof nothing === 'undefined';   // => true

Как избежать undefined в JavaScript

Неинициализированная переменная

Объявленная переменная, которая еще не имеет значения (не инициализирована), по умолчанию undefined. Пример:

let myVariable;  
myVariable; // => undefined

Переменная myVariable уже объявлена, но ещё не имеет присвоенного значения. Попытка обратиться к ней закончится выводом undefined. Чтобы это исправить, достаточно присвоить переменной значение. Чем меньше переменная существует в неинициализированном состоянии, тем лучше.

Ниже приведены способы решения проблемы.

1. const и let вместо var

Объявленные таким образом объекты и переменные находятся в области видимости, ограниченной текущим блоком кода, и находятся во временной мёртвой зоне до момента присвоения им значения.

При использовании неизменяемых данных (констант) рекомендуется инициализировать их как const:

const myVariable = 'initial'

Константа не подвергается неинициализированному состоянию, и получить значение undefined  в этом случае невозможно.

Если вам нужно менять значение переменной, то обозначьте её как let и также присваивайте ей начальное значение:

let index = 0

Проблема var заключается в поднятии переменных: где бы ни находилось объявление, это равнозначно тому, что переменную объявили в начале кода.

function bigFunction() {  
  // код...
  myVariable; // => undefined
  // код...
  var myVariable = 'Initial value';
  // код...
  myVariable; // => 'Initial value'
}
bigFunction();

В этом случае переменная myVariable содержит undefined до получения значения:

myVariable = 'Initial value'

Если же переменную объявить как let, она останется недоступной до момента присвоения ей значения. Таким образом, использование const или let снизит риск получения значения undefined в JavaScript.

2. Усиление связности

Связность характеризует степень взаимосвязи элементов модуля (пространства имён, класса, метода, блока кода). Сильная связность предпочтительнее, поскольку предполагает, что элементы модуля должны фокусироваться исключительно на одной задаче. Это поможет модулю быть:

  • сфокусированным и понятным;
  • легко поддерживаемым и поддающимся рефакторингу;
  • многоразовым;
  • простым для тестирования.

undefined в JavaScript и связность

Блок кода сам по себе может считаться небольшим модулем. Чтобы извлечь выгоду из преимуществ сильной связности, нужно держать переменные как можно ближе к блоку кода, который их использует.

Вот классический пример того, как не надо делать:

function someFunc(array) {  
  var index, item, length = array.length;
  // некоторый код...
  // некоторый код...
  for (index = 0; index < length; index++) {
    item = array[index];
    // некоторый код...
  }
  return 'some result';
}

index, item и length объявляются в начале функции, но используются они лишь ближе к концу. Всё время между объявлением переменной в начале и до использования её в цикле index и item не инициализируются и выводят undefined. Разумнее переместить переменные ближе к месту их применения:

function someFunc(array) {  
  // некоторый код...
  // некоторый код...
  const length = array.length;
  for (let index = 0; index < length; index++) {
    const item = array[index];
    // некоторый код 
  }
  return 'some result';
}

Доступ к несуществующему свойству

Попытка получить доступ к несуществующему свойству объекта JavaScript заканчивается undefined. Пример:

let favoriteMovie = {  
  title: 'Blade Runner'
};
favoriteMovie.actors; // => undefined

favoriteMovie — объект с одним значением title. Доступ к несуществующему свойству actors приведёт к выводу undefined.

Сам по себе доступ к не вызовет ошибку, а вот при попытке получить значение из несуществующего свойства выведется ошибка:

TypeError: Cannot read property <prop> of undefined

Проблема в особенностях JavaScript: свойство может быть установлено или отсутствовать. Хорошее решение — установка правил, которые обязывают задать свойствам значения.

Но не всегда возможно контролировать объекты, с которыми приходится работать. Такие объекты могут иметь разный набор свойств в различных сценариях, и каждый из них нужно обрабатывать вручную.

Реализуем функцию append(array, toAppend), которая добавляет в начале и/или в конце массива новые элементы:

function append(array, toAppend) {  
  const arrayCopy = array.slice();
  if (toAppend.first) {
    arrayCopy.unshift(toAppend.first);
  }
  if (toAppend.last) {
    arrayCopy.push(toAppend.last);
  }
  return arrayCopy;
}
append([2, 3, 4], { first: 1, last: 5 }); // => [1, 2, 3, 4, 5]  
append(['Hello'], { last: 'World' });     // => ['Hello', 'World']  
append([8, 16], { first: 4 });            // => [4, 8, 16]

Поскольку объект toAppend может удалять первые или последние свойства, необходимо проверить их существование с помощью условий if(toAppend.first){} и if(toAppend.last){}.

Вот только undefined, как false, null, 0, NaN и ' ', является ложными значением, а в текущей реализации функция append() не позволяет вставлять ложные элементы:

append([10], { first: 0, last: false }); // => [10]

0 и false — ложные значения, потому что if (toAppend.first){} и if (toAppend.last){} фактически сравниваются с ложными значениями, и эти элементы не вставляются в массив. Функция возвращает исходный массив [10] без изменений.

1. Наличие свойства

К счастью, JavaScript предлагает множество способов определить, имеет ли объект определённое свойство:

  • obj.prop !== undefined в JavaScript позволяет проверить undefined, сравнив с ним объект;
  • typeof obj.prop !== 'undefined' проверяет тип значения свойства;
  • obj.hasOwnProperty('prop') проверяет объект на наличие собственного свойства;
  • 'prop' in obj проверяет объект на наличие собственного или унаследованного свойства.

Рекомендацией в этом случае будет использование оператора in , чтобы проверить, имеет ли объект определённое свойство, не обращаясь к фактическому значению этого свойства:

function append(array, toAppend) {  
  const arrayCopy = array.slice();
  if ('first' in toAppend) {
    arrayCopy.unshift(toAppend.first);
  }
  if ('last' in toAppend) {
    arrayCopy.push(toAppend.last);
  }
  return arrayCopy;
}
append([2, 3, 4], { first: 1, last: 5 }); // => [1, 2, 3, 4, 5]  
append([10], { first: 0, last: false });  // => [0, 10, false]

'first' in toAppend ( как и 'last' in toAppend) выводит true, независимо от существующего свойства. В других случаях выводится — false.

Использование оператора in устраняет проблему со вставкой ложных элементов 0 и false. Теперь добавление элементов в начале и в конце массива [10] приводит к ожидаемому результату: [0, 10, false].

2. Деструктуризация доступа к свойствам объекта

Деструктуризация объекта позволяет устанавливать значение по умолчанию, если свойство не существует: удобно для исключения прямого контакта с undefined:

const object = { };  
const { prop = 'default' } = object;  
prop; // => 'default'

Применяя преимущества деструктуризации объекта, реализуем quote():

function quote(str, config) {  
  const { char = '"', skipIfQuoted = true } = config;
  const length = str.length;
  if (skipIfQuoted
      && str[0] === char
      && str[length - 1] === char) {
    return str;
  }
  return char + str + char;
}
quote('Hello World', { char: '*' });        // => '*Hello World*'  
quote('"Welcome"', { skipIfQuoted: true }); // => '"Welcome"'

const { char = '"', skipIfQuoted = true } = config в одной строкe извлекает свойства char и skipIfQuoted из объекта config.

Если некоторые свойства недоступны в объекте config,  деструктуризация задаёт значения по умолчанию: '"' для char и false для skipIfQuoted. К счастью, функцию можно улучшить.

Переместим деструктуризацию в раздел параметров и установим значение по умолчанию (пустой объект { }) для параметра config, чтобы пропустить второй аргумент, когда будет достаточно значений по умолчанию:

function quote(str, { char = '"', skipIfQuoted = true } = {}) {  
  const length = str.length;
  if (skipIfQuoted
      && str[0] === char
      && str[length - 1] === char) {
    return str;
  }
  return char + str + char;
}
quote('Hello World', { char: '*' }); // => '*Hello World*'  
quote('Sunny day');                  // => '"Sunny day"'

Деструктурирующее присваивание гарантирует, что используется пустой объект, если второй аргумент не указан вообще. В результате вы избегаете возникновения значения undefined в JavaScript.

3. Свойство по умолчанию

Есть простой способ установить значения по умолчанию для свойств объекта, и имя ему Spread syntax:

const unsafeOptions = {  
  fontSize: 18
};
const defaults = {  
  fontSize: 16,
  color: 'black'
};
const options = {  
  ...defaults,
  ...unsafeOptions
};
options.fontSize; // => 18  
options.color;    // => 'black'

Инициализатор объекта распространяет свойства из исходных объектов defaults и unsafeOptions. Важен порядок, в котором указаны исходные объекты: свойства более позднего исходного объекта перезаписывают более ранние. Независимо от ситуации, объект всегда содержит полный набор свойств, и появление undefined невозможно.

Параметры функции

Функция, имеющая определённые параметры, должна вызываться с одинаковым количеством аргументов. В таком случае параметры получают ожидаемые значения:

function multiply(a, b) {  
  a; // => 5
  b; // => 3
  return a * b;
}
multiply(5, 3); // => 15

При вызове функции multiply(5, 3) параметры a и b получают соответствующие значения 5 и 3. Умножение рассчитывается как ожидаемое: 5 * 3 = 15.

Но что происходит, когда пропускается аргумент при вызове? Параметр внутри функции получает значение undefined. Как этого избежать?

Лучшим подходом является использование параметров по умолчанию из ES2015:

function multiply(a, b = 2) {  
  a; // => 5
  b; // => 2
  return a * b;
}
multiply(5);            // => 10  
multiply(5, undefined); // => 10

Значение b = 2 в сигнатуре функции гарантирует, что если b получит значение undefined, то по умолчанию параметр изменится на 2.

Возвращаемое значение функции

В JavaScript функция, которая не имеет оператора return, возвращает значение undefined:

function square(x) {  
  const res = x * x;
}
square(2); // => undefined

То же происходит, если return присутствует, но без какого-либо выражения рядом:

function square(x) {  
  const res = x * x;
  return;
}
square(2); // => undefined

Указывая значение для return, можно получить желаемый результат:

function square(x) {  
  const res = x * x;
  return res;
}
square(2); // => 4

Теперь вызов функции выведет нужное значение.

Оператор void

Оператор void выполняет выражение и возвращает undefined вне зависимости от результата:

void 1;                    // => undefined  
void (false);              // => undefined  
void {name: 'John Smith'}; // => undefined  
void Math.min(1, 3);       // => undefined

Одним из вариантов использования оператора void является переопределение результата выполнения выражения и возврат undefined в случае возникновения неожиданных результатов выполнения функции.

Значение undefined в массивах

Вы получаете undefined при попытке доступа к элементу массива с индексом вне пределов массива.

const colors = ['blue', 'white', 'red'];  
colors[5];  // => undefined  
colors[-1]; // => undefined

Массив colors имеет 3 элемента, поэтому корректные индексы равны 0, 1 и 2. Поскольку в индексах массива 5 и -1 нет элементов, значения colors[5] и colors[-1] получают значение undefined.

В JavaScript вы можете столкнуться с так называемыми разрежёнными массивами. Эти массивы имеют пробелы, то есть на некоторых индексах не определены никакие элементы. Когда делаем попытку получить доступ к пустому значению в разрежённом массиве, на выходе получаем  undefined:

const sparse1 = new Array(3);  
sparse1;       // => [<empty slot>, <empty slot>, <empty slot>]  
sparse1[0];    // => undefined  
sparse1[1];    // => undefined  
const sparse2 = ['white',  ,'blue']  
sparse2;       // => ['white', <empty slot>, 'blue']  
sparse2[1];    // => undefined

sparse1 создается путем вызова конструктора Array с числовым первым аргументом. Он имеет 3 пустых элемента. sparse2 создается с литералом массива, второй элемент которого отсутствует. В любом из этих массивов доступ к пустому элементу оценивается как undefined.

Отличие null и undefined в JavaScript

Основное отличие в том, что undefined представляет значение переменной, которая ещё не была инициализирована, а null — намеренное отсутствие объекта.

Допустим, переменная number определена, но ей не назначено начальное значение:

let number;  
number; // => undefined

То же самое произойдёт при попытке доступа к несуществующему свойству объекта:

const obj = { firstName: 'Dmitri' };  
obj.lastName; // => undefined

Или переменная должна ожидать возвращение объекта функции, но по какой-то причине создание объекта невозможно. В этом случае null является значимым индикатором недостающего объекта. Например, clone() — это функция, которая клонирует простой объект JavaScript. Ожидается, что функция вернёт объект:

function clone(obj) {  
  if (typeof obj === 'object' && obj !== null) {
    return Object.assign({}, obj);
  }
  return null;
}
clone({name: 'John'}); // => {name: 'John'}  
clone(15);             // => null  
clone(null);           // => null

Но clone() может быть вызван с пустым аргументом: 15 или null. В этом случае функция не может создать клон, поэтому возвращает null — индикатор отсутствующего объекта.

В JavaScript существуют проверки на null и undefined. Оператор typeof демонстрирует различие между двумя значениями:

typeof undefined; // => 'undefined'  
typeof null;      // => 'object'

Строгий оператор равенства === также отличает undefined от null:

let nothing = undefined;  
let missingObject = null;  
nothing === missingObject; // => false

Вам также может быть интересна наша статья про обработку ошибок в JavaScript.

Заключение 

Стратегия борьбы с undefined в JavaScript:

  1. Уменьшить использование неинициализированных переменных.
  2. Сделать жизненный цикл переменных коротким и близким к источнику их использования.
  3. Назначить начальное значение переменным.
  4. Использовать const или let.
  5. Проверять наличие свойств или заполнить небезопасные объекты по умолчанию.
  6. Использовать значения по умолчанию для некритичных параметров функции.
  7. Избегать использования разрежённых массивов.

Перевод статьи «7 tips to handle undefined in JavaScript»

Электронные подписи используются в течение последнего десятилетия всё чаще. Благодаря им, нет необходимости посещать локацию заключения сделки, чтобы подтвердить документы. Всё можно сделать дистанционно, находясь в любой точке мира — главное, чтобы были компьютер и интернет. Это улучшает комфортность и даёт новые возможности бизнесу, а также ЭЦП безопасны и надёжны, ведь подделать их невозможно.

Однако иногда бывает, что техника подводит, и появляются какие-либо сложности с использование электронно-цифровой подписи. И эти проблемы обычно негативно влияют на бизнес, задерживают его. В этой статье рассмотрим ошибку Cannot read properties of undefined (reading ‘CreateObjectAsync’), которая возникает при подтверждении документов на сайте Госзакупок. Узнаем, как решить эту проблему максимально быстро и самостоятельно, начав от простых действий.

Содержание

  1. Перезагрузка компьютера
  2. Переход на другой браузер
  3. Установка расширения CryptoPro Extension for CAdES Browser Plug-in
  4. Переустановка КриптоПро ЭЦП
  5. Обновление сертификатов в КриптоПро ЭЦП
  6. Отключение расширения браузера
  7. Отключение антивируса
  8. Обновление браузера

ЭЦП

Перезагрузка компьютера

Перезагрузка — панацея от многих компьютерных проблем. Это самое быстрое, что можно сделать, если что-то работает не так, как надо и в большинстве случаев это простое действие действительно помогает. Поэтому начните с перезагрузки вашего компьютера.

Во время этого перезагрузится не только компьютер, но также и браузер, в котором вы пользовались Госзакупками, и программа КриптоПро ЭЦП, что тоже может помочь решить проблему. После успешной загрузки компьютера попробуйте снова совершить действие, при котором появилась ошибка Cannot read properties of undefined (reading ‘CreateObjectAsync’).

Переход на другой браузер

Некоторые пользователи советуют использовать браузер Спутник или Internet Explorer. Первый вариант рекомендуется больше. Скачивать и устанавливать необходимо не просто браузер Спутник, а ту версию, которая поддерживает криптографию https://www.sputnik-lab.com/news/suspend.

Internet Explorer тоже некоторым помог решить эту ошибку. Но этот вариант немного хуже, чем Спутник, потому что данный браузер больше не поддерживается разработчиком и в последних версиях Windows его нет. Однако по мнению многих, он лучше всех работает с сайтами, подобным Госзакупкам.

Установка расширения CryptoPro Extension for CAdES Browser Plug-in

При появлении ошибки Cannot read properties of undefined (reading ‘CreateObjectAsync’) некоторым помогло расширение CryptoPro Extension for CAdES Browser Plug-in. Это расширение для браузера Google Chrome и оно будет работать только в нём. Установите его, а потом попробуйте снова подтвердить документ на Госзакупках.

Цифровая подпись

Переустановка КриптоПро ЭЦП

КриптоПро ЭЦП — это программа, которая устанавливается на компьютер. Она обеспечивает связь между сайтом, где происходит подтверждение документов, и электронными сертификатами подписей, которые хранятся на компьютере. Естественно, что если в этой программе сбой, то подтвердить документы не получится и появится ошибка.

Поэтому, если описанные способы не помогают, то рекомендуется переустановить КриптоПро ЭЦП. Для этого её надо сначала удалить с компьютера, а потом скачать с сайта разработчика и установить заново https://www.cryptopro.ru/products/cades/plugin. Если вы затрудняетесь удалить программу, то попробуйте просто установить её заново, тогда программа заменит все свои файлы на компьютере и это с большой вероятностью тоже поможет решить проблему с ошибкой.

Обновление сертификатов в КриптоПро ЭЦП

КриптоПро ЭЦП знает о сертификатах ровно столько, сколько ей укажет пользователь компьютера. Программа запоминает указанные пути хранения сертификатов. Если сертификаты на компьютере были переносы в другое месте или если произошёл какой то сбой от которого КриптоПро ЭЦП потеряла пути их хранения, то нужно указать их заново.

Для этого откройте приложение КриптоПро ЭЦП и перейдите в раздел “Сервис”. Нажмите на кнопку “Обзор” и заново укажите путь на файл сертификата”.Путь на сертификат

Отключение расширения браузера

Расширения браузера, даже полезные, могут мешать работать КриптоПро ЭЦП. Поэтому рекомендуется их временно отключить и попробовать подтвердить документ на Госзакупках заново.

Даже если вы не устанавливали в браузер новые расширения, всё равно следует их отключить. Потому что некоторые расширения обновляются и меняют свой алгоритм работы, а также часто бывает, что пользователь случайно и не замечая того, сам устанавливает расширения в свой браузер.

Отключение антивируса

Многие пользователи знают, что антивирусы часто срабатывают ложно. И даже совершенно безобидные файлы помечают как вредоносные. Это приводит к нарушению работы некоторых программ, и с КриптоПро ЭЦП это тоже может быть.

Поэтому на время пользования КриптоПро ЭЦП, если появляется ошибка, рекомендуется отключать антивирус. Также рекомендуется переустановить КриптоПро ЭЦП именно с отключенным антивирусом.

Вам будет это интересно: Чем опасна электронная подпись для физических лиц?

Обновление браузера

Современные браузеры часто обновляются. Это делается не только для того, чтобы улучшить его функциональность и добавить новые возможности, но и для защиты. Потому что новые способы взломов и атак появляются тоже часто. Когда дело касается ЭЦП, безопасность на первом месте. Поэтому программа КриптоПро ЭЦП может не работать с устаревшей версией браузера. Обновление браузера в этом случае решает проблему.

Кстати, на компьютерах с устаревшей версий Windows XP обновить браузер не получится, потому что разработчики перестали поддерживать эту операционную систему. Однако, несмотря на это, ею всё ещё некоторые пользуются. В этом случае нужно использовать более современный компьютер, чтобы установить на него актуальную версию браузера.

Если вы столкнулись с ошибкой cannot read property createobjectasync of undefined на сайте zakupki.gov.ru, данная статья поможет вам избавиться от неё. Такая ошибка может возникать в момент обращения к Электронной подписи, в частности, при попытке подписать заявку на внесение изменений в профиль поставщика.

Что значит ошибка cannot read property createobjectasync of undefined ?

В большинстве случаев, данная ошибка вызвана тем, что сайту не удаётся получить доступ к хранилищу с электронными подписями. Чаще всего это вызвано отсутствием плагина: КриптоПро ЭЦП Browser plug-in . Либо не корректной работой плагина.

Следует сказать, что плагин КриптоПро ЭЦП Browser plug-in отвечает за взаимодействие между сайтом и хранилищем сертификатов электронных подписей, установленных на компьюетере пользователя. Когда вы нажимаете на портале zakupki.gov.ru кнопку «Сохранить и подписать» происходит обращение к данному плагину с целью получить список установленных на компьютере сертификатов, чтобы пользователь выбрал нужный для подписания сертификат.

Если на компьютере пользователя не установлен плагин КриптоПро ЭЦП Browser plug-in или он установлен не корректно, то при попытке получить список сертификатов, вы будете получать ошибку cannot read property createobjectasync of undefined.

Как избавиться от ошибки cannot read property createobjectasync of undefined?

Ранее мы определили, что данная ошибка возникает из-за отсутствующего, или не корректно работающего плагина КриптоПро ЭЦП Browser plug-in. Поэтому для исправления ошибки нужно установитьпереустановить данный плагин.

Давайте последовально разберём необходимые действия для устранения ошибки:
 

  1. Нужно скачать плагин КриптоПро ЭЦП Browser plug-in. Скачать можно с нашего сайта, по ссылке: КриптоПро ЭЦП Browser plug-in версия 2.0
  2. Нужно закрыть все браузеры.Настройка CryptoPro Extension for CAdES Browser Plug-in - cannot read property createobjectasync
  3. Нужно установитьпереустановить скачанный плагин.
  4. Рекомендуется пользоваться браузером Chrome. Запустить Chrome браузер, нажать на троеточие в правом верхнем углу , далее выбрать «Дополнительные инструменты» -> «Расширения» и убедиться, что у вас присутствует и включен CryptoPro Extension for CAdES Browser Plug-in. Выглядит следующим образом:
  5. Зайти в Личный кабинет на zakupki.gov.ru и повторить процедуру подписания изменений. Ошибка cannot read property createobjectasync of undefined больше не должна появляться.

После всех выполненных пунктов вы должны успешно подписать нужный вам документ на сайте zakupki.gov.ru . Ошибка не должна больше появляться. В случае, если всё равно не удаётся подписать документ электронной подписью, то есть не отображается список с доступными сертификатами ЭЦП, следует проверить всё рабочее место на предмет проведённых настроек для работы с Электронной подписью.


26 сен 2022 00:32 #21462
от S_asha

Здравствуйте столкнулись с проблемой при подписании на сайте eruz.zakupki.gov.ru  выдает ошибку Cannot read properties of undefined (reading ‘CreateObjectAsync’)
все плагины установлены все настроенно, Windows 10 КриптоПро CSP 5.0.11455 (Fury) яндекс браузер, плагин установлен.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


26 сен 2022 00:47 #21463
от Alex67



«Кто людям помогает — лишь тратит время зря. Хорошими делами прославиться нельзя» (с) Шапокляк

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


26 сен 2022 01:12 #21464
от S_asha

да плагин установлен и работает

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


26 сен 2022 04:0826 сен 2022 04:09 #21465
от Alex_04

да плагин установлен и работает

Плагин — это одно, а

РАСШИРЕНИЕ в Я.Б

для доступа к плагину — это другое. Именно о расширении Вас выше спросили — ОНО УСТАНОВЛЕНО?
Если в своём ответе Вы имели в виду «расширение», а не «плагин» — будьте точнее, пожалуйста.
Если имели в виду, что

расширение работает

— как это определили?



«Мы будем жить плохо, но недолго.» (© Черномырдин В.С.)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


26 сен 2022 04:43 #21466
от S_asha

да я имел ввиду расширение, проверил через сайт крипто про , да и на других порталах подписывает нормально.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


26 сен 2022 06:3626 сен 2022 06:37 #21467
от Wmffre

Спасибо сказали: Alex_04

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


26 сен 2022 12:22 #21485
от ranger

Было такое на ЯБ
Проблема была в установленном расширении плагина из магазина хрома, а не из магазина Оперы (родной магазин ЯБ)
Плюс яндекс не выгружался из памяти при закрытии

Поставил Хромиум-ГОСТ 105 версии и всё прошло

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.


26 сен 2022 13:04 #21492
от Wmffre

Было такое на ЯБ
Проблема была в установленном расширении плагина из магазина хрома, а не из магазина Оперы (родной магазин ЯБ)
Плюс яндекс не выгружался из памяти при закрытии

Поставил Хромиум-ГОСТ 105 версии и всё прошло

В версии расширения 1.2.12 должно быть, согласно форуму Криптопро исправлено:

Основные изменения:

extension: Исправлена ошибка в Яндекс браузере при установленных одновременно расширениях из Opera addons и Интернет-магазина Chrome (CADES-2138)

Спасибо сказали: ranger

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Понравилась статья? Поделить с друзьями:
  • Ошибка u3fff ниссан
  • Ошибка u3fff гранта
  • Ошибка undefined offset 0
  • Ошибка u3110 приора
  • Ошибка unb на стиральной машине леран