Тендер - Выполнение комплекса работ по зачистке и ремонту резервуаров горизонтальных надземных (РГН) для хранения нефти с паровым регистром, объемом 20-50 м3 №293187060

Описание тендера: ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "РН-БУРЕНИЕ" объявляет тендер: Выполнение комплекса работ по зачистке и ремонту резервуаров горизонтальных надземных (РГН) для хранения нефти с паровым регистром, объемом 20-50 м3
Сумма контракта: См. документацию Получить финансовую помощь
Начало показа: 07.03.2025
Окончание: 14.03.2025 10:00:00
Тендер №: 293187060
Тип: Запрос предложений Тендерная аналитика
Отрасль: Химия / Химические элементы и соединения
Возможные отрасли:
ОКПД2:
  • (201419190) Производные углеводородов прочие, не включенные в другие группировки
Регион: Центральный ФО / г. Москва
Источник: ▒▒▒▒▒▒▒▒▒▒
Торговая площадка: ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

Зарегистрируйтесь и получите полную информацию о Заказчике, аналитику по снижению им цены и основным поставщикам.

Лот 1

Предмет контракта: Выполнение комплекса работ по зачистке и ремонту резервуаров горизонтальных надземных (РГН) для хранения нефти с паровым регистром, объемом 20-50 м3
Цена контракта: 0,00 RUB

Задать вопрос по тендеру: 
Документация
Форма_10,_10.1_-_Форма_коммерческой_части_заявки.[2].xls 15 КБ 07.03.25 08:48 Действующая
Приложение_№3_к_ТЗ_Ориентировочный_объем_ЗИП_и_МТР.xlsx 25 КБ 07.03.25 08:48 Действующая
Приложение_№4_к_ТЗ_-Корпоративные_цвета..pdf.html 13 КБ 07.03.25 08:48 Действующая
Извещение[5].docx 17 КБ 07.03.25 08:48 Действующая
ТЗ_зачистка_и_ремонт_РГН.pdf.html 13 КБ 07.03.25 08:48 Действующая
Приложение_№2_к_ТЗ_ориентировочный_объем_работ_на_1_единицу.xlsx 14 КБ 07.03.25 08:48 Действующая
Приложение_№1_к_ТЗ_Производствен_программа.xls 8 КБ 07.03.25 08:48 Действующая
Форма_10,_10.1_-_Форма_коммерческой_части_заявки..xls.html 13 КБ 10.03.25 07:54 Действующая

Оглавление

▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ - открыть60 .. STAGE = "prod"; var captchaImageExpireSeconds = ""*1; // "" for syntax, *1 for number var captchaInputDisabledAtLastsExpireSeconds = ""*1; // "" for syntax, *1 for number input, html, h1, h2, h3 { font-weight: 400; } . hgroup.page .status .loading-rotate-back, .loading .loading-rotate .loading @keyframes loading-wings } @keyframes loading-rotate 40% { transform: rotate(0deg); } 45% { transform: rotate(10deg); } 60% { transform: rotate(0deg); } 75% { transform: rotate(0deg); } 82% { transform: rotate(7deg); } } # .state-expire # .state-loading # @keyframes captcha 50% { background-position: 0px 0px; } } #status .state-loading #status .captcha-180 { position: absolute; transform: scaleY(-1) translateY(-0.07em) translateX(-2px); } .captcha-after # #header-wrong .state-wrong-answer #header-wrong .first-captcha-loaded .width-as .at-left-side-before-first .first-captcha-loaded .at-left-side-before-first @media (max-width: 768px) { . hgroup.page .status #header-wrong .state-wrong-answer #header-wrong } @media (min-width: 768px) { #header-we-like-a # . } # .stage-local # .state-expire #header-hello, .state-expire #header-its-captcha, .state-expire #header-we-like-a #header .state-expire #header .state-expire # (function(){ if (STAGE!="local") return; setInterval(function() { var captchaImageLivetime = Math.floor((Date.now() - captchaImageReceivedAt) / 1000); document.getElementById("dbg").innerHTML = `${captchaImageLivetime}sec / ${captchaImageExpireSeconds} – ${captchaInputDisabledAtLastsExpireSeconds}`; }, 0.5*1000); })(); (function(){ var prevLivetime = -1; setInterval(function() { var captchaImageLivetime = Math.floor((Date.now() - captchaImageReceivedAt) / 1000); if (prevLivetime!=captchaImageLivetime) { var critical = Math.floor(CAPTCHA_ENV["VERIFICATION_TOKEN_TTL"]/1000); if (prevLivetime!==-1 && prevLivetime critical) { expireSoon(); } prevLivetime = captchaImageLivetime; } }, 0.5*1000); })(); Здравствуйте! Вам КАПЧА! Не бойтесь оказаться роботом, но никогда не скрывайте свою человечность. Пожалуйста, включите яваскрипт Вы не успели расшифровать эту КАПЧУ.
Пожалуйста, запросите другую картинку. Текст не совпал — попробуйте еще раз var loadings = 1; function addLoading() { if (loadings===0) { document.body.classList.add('state-loading'); document.getElementById("refreshbtn").disabled = true; document.getElementById("answerbtn").disabled = true; } loadings++; } function removeLoading() { loadings--; setTimeout(() => { if (loadings===0) { document.body.classList.remove('state-loading'); document.getElementById("answerbtn").disabled = false; document.getElementById("answer").focus(); document.getElementById("answer").value = ""; document.getElementById("refreshbtn").disabled = false; document.getElementById("answerbtn").disabled = false; } }, 50); } function actualOrDefault(replacedVariable, defaultValue) { if (replacedVariable.charAt(0)=="_") { if (replacedVariable.charAt(replacedVariable.length-1)=="_") { return defaultValue; } } return replacedVariable; } var CAPTCHA_ENV = { "REQUEST_ID": "WAF8NfNdd0U1", "IP": "212.66.43.82", "DATETIME": "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ - открыть:10:32 +0000", "ORIGINAL_URL": "https://api.tektorg.ru/open-api/documents/procedure/▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ - открыть?utm_referrer=https%3a%2f%2fwww.tektorg.ru%2frosnefttkp%2fprocedures%2f▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ - открыть", "PTOKEN_PARAM_NAME_FOR_ORIGINAL_URL": "fa821dba_ipp_har", "CAPTCHA_TOKEN": actualOrDefault("ap/jDMcFX5MrYnW+uy6HD/OqxQuPjfIemAz+ngn9h3dkwu0itHr8rJRQRuRQUZs+pM++Nw==",""), "CAPTCHA_TOKEN_TTL": actualOrDefault("600000", "600000")*1, "VERIFICATION_TOKEN_TTL": actualOrDefault("120000", "120000")*1, "CAPTCHA_URL": actualOrDefault("https://c1.vchecks.io",""), }; var captchaImageReceivedAt = 0; var vtoken = null; function handleTokenExpiration() { document.getElementById("submitbtn").disabled = true; document.getElementById("refreshbtn").disabled = false; document.getElementById("answer").disabled = true; document.getElementById("refreshbtn").onclick = () => window.location.reload(); } function myFetch(folder, params) { if (folder.charAt(0)=="/") folder = folder.slice(1); var origin = CAPTCHA_ENV["CAPTCHA_URL"]; if (origin.slice(-1)=="/") origin = origin.slice(0, -1); var url = origin + "/" + folder; url += "?ms="+ Date.now() +"&rnd=" + Math.random(); url += "&ctoken=" + CAPTCHA_ENV["CAPTCHA_TOKEN"]; var getParams = Object.entries(params || {}).map(([k,v]) => k+'='+v).join('&') || ''; if (getParams) { url += '&' + getParams; } return fetch(url) .then(res => { if (!res.ok) throw new Error(res.status); return res.json(); }); } function fetchPic() { addLoading(); document.getElementById("captcha").src = ''; document.body.classList.remove("state-expire-wait-for-user"); var widthAsCaptcha = () => { setTimeout(()=>{ var img = document.getElementById("captcha"); img.width = img.naturalWidth; img.height = img.naturalHeight; var width = img.offsetWidth; var height = img.offsetHeight; Array.from(document.querySelectorAll(".width-as-captcha")).forEach(node => { node.style.width = width +"px"; }); Array.from(document.querySelectorAll(".height-as-captcha")).forEach(node => { node.style.height = height +"px"; }); console.log(width, height) notExpireSoon(); setTimeout(()=>{ document.body.classList.remove("first-captcha-not-loaded"); document.body.classList.add("first-captcha-loaded"); }, 50); },10); } document.getElementById("captcha").onload = widthAsCaptcha; return myFetch("generate", null) .then(json => { var captcha_image_elem = document.getElementById("captcha"); if (json.png) { captcha_image_elem.src = "data:image/png;base64," + json.png; } else if (json.jpg || json.jpeg) { captcha_image_elem.src = "data:image/jpeg;base64," + json.jpg || json.jpeg; } if (json.alt) { captcha_image_elem.alt = json.alt; } captcha_image_elem.classList.remove('loading'); vtoken = json.vtoken; captchaImageReceivedAt = Date.now(); removeLoading(); }) .catch(er => { console.error(er); if (er.message === "403") { handleTokenExpiration(); } , 5 * 1000); }) .then(()=>{ removeLoading(); return fetchPic(); }); } }); } function expireSoon() { document.body.classList.add('state-expire'); document.body.classList.add('state-expire-wait-for-user'); document.getElementById("answerbtn").disabled = true; document.getElementById("refreshbtn").disabled = false; document.getElementById("answer").disabled = true; } function notExpireSoon() { document.body.classList.remove('state-expire'); document.body.classList.remove('state-expire-wait-for-user'); document.getElementById("answerbtn").disabled = false; document.getElementById("answer").disabled = false; } function submit_answer() { addLoading(); return myFetch("verify", {"vtoken": vtoken, "answer": (document.getElementById("answer").value+'').trim()}) .then(json => { const result_url = new URL(CAPTCHA_ENV["ORIGINAL_URL"]); result_url.searchParams.append(CAPTCHA_ENV["PTOKEN_PARAM_NAME_FOR_ORIGINAL_URL"], json.ptoken); window.location.href = result_url.href; }) .catch(er => { console.error(er); return new Promise(resolve => { setTimeout(() => { resolve(); }, 1 * 1000); }) .then(()=>{ removeLoading(); document.body.classList.add('state-wrong-answer'); setTimeout(() => { document.body.classList.remove('state-wrong-answer'); }, 3*1000); return fetchPic(); }); }) } removeLoading(); fetchPic(); setTimeout(()=>{ handleTokenExpiration() }, CAPTCHA_ENV["CAPTCHA_TOKEN_TTL"]) ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ - открыть .. STAGE = "prod"; var captchaImageExpireSeconds = ""*1; // "" for syntax, *1 for number var captchaInputDisabledAtLastsExpireSeconds = ""*1; // "" for syntax, *1 for number input, html, h1, h2, h3 { font-weight: 400; } . hgroup.page .status .loading-rotate-back, .loading .loading-rotate .loading @keyframes loading-wings } @keyframes loading-rotate 40% { transform: rotate(0deg); } 45% { transform: rotate(10deg); } 60% { transform: rotate(0deg); } 75% { transform: rotate(0deg); } 82% { transform: rotate(7deg); } } # .state-expire # .state-loading # @keyframes captcha 50% { background-position: 0px 0px; } } #status .state-loading #status .captcha-180 { position: absolute; transform: scaleY(-1) translateY(-0.07em) translateX(-2px); } .captcha-after # #header-wrong .state-wrong-answer #header-wrong .first-captcha-loaded .width-as .at-left-side-before-first .first-captcha-loaded .at-left-side-before-first @media (max-width: 768px) { . hgroup.page .status #header-wrong .state-wrong-answer #header-wrong } @media (min-width: 768px) { #header-we-like-a # . } # .stage-local # .state-expire #header-hello, .state-expire #header-its-captcha, .state-expire #header-we-like-a #header .state-expire #header .state-expire # (function(){ if (STAGE!="local") return; setInterval(function() { var captchaImageLivetime = Math.floor((Date.now() - captchaImageReceivedAt) / 1000); document.getElementById("dbg").innerHTML = `${captchaImageLivetime}sec / ${captchaImageExpireSeconds} – ${captchaInputDisabledAtLastsExpireSeconds}`; }, 0.5*1000); })(); (function(){ var prevLivetime = -1; setInterval(function() { var captchaImageLivetime = Math.floor((Date.now() - captchaImageReceivedAt) / 1000); if (prevLivetime!=captchaImageLivetime) { var critical = Math.floor(CAPTCHA_ENV["VERIFICATION_TOKEN_TTL"]/1000); if (prevLivetime!==-1 && prevLivetime critical) { expireSoon(); } prevLivetime = captchaImageLivetime; } }, 0.5*1000); })(); Здравствуйте! Вам КАПЧА! Не бойтесь оказаться роботом, но никогда не скрывайте свою человечность. Пожалуйста, включите яваскрипт Вы не успели расшифровать эту КАПЧУ.
Пожалуйста, запросите другую картинку. Текст не совпал — попробуйте еще раз var loadings = 1; function addLoading() { if (loadings===0) { document.body.classList.add('state-loading'); document.getElementById("refreshbtn").disabled = true; document.getElementById("answerbtn").disabled = true; } loadings++; } function removeLoading() { loadings--; setTimeout(() => { if (loadings===0) { document.body.classList.remove('state-loading'); document.getElementById("answerbtn").disabled = false; document.getElementById("answer").focus(); document.getElementById("answer").value = ""; document.getElementById("refreshbtn").disabled = false; document.getElementById("answerbtn").disabled = false; } }, 50); } function actualOrDefault(replacedVariable, defaultValue) { if (replacedVariable.charAt(0)=="_") { if (replacedVariable.charAt(replacedVariable.length-1)=="_") { return defaultValue; } } return replacedVariable; } var CAPTCHA_ENV = { "REQUEST_ID": "VAFF6rQwwSw1", "IP": "212.111.82.234", "DATETIME": "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ - открыть:10:31 +0000", "ORIGINAL_URL": "https://api.tektorg.ru/open-api/documents/procedure/▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ - открыть?utm_referrer=https%3a%2f%2fwww.tektorg.ru%2frosnefttkp%2fprocedures%2f▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ - открыть", "PTOKEN_PARAM_NAME_FOR_ORIGINAL_URL": "fa821dba_ipp_har", "CAPTCHA_TOKEN": actualOrDefault("H5p+Y5oZc4DHCj5rZr0S81kV5exsUixSk7brOGVc0B9sRehkVxQMaJR+vZ4kbp/T24bZ2g==",""), "CAPTCHA_TOKEN_TTL": actualOrDefault("600000", "600000")*1, "VERIFICATION_TOKEN_TTL": actualOrDefault("120000", "120000")*1, "CAPTCHA_URL": actualOrDefault("https://c1.vchecks.io",""), }; var captchaImageReceivedAt = 0; var vtoken = null; function handleTokenExpiration() { document.getElementById("submitbtn").disabled = true; document.getElementById("refreshbtn").disabled = false; document.getElementById("answer").disabled = true; document.getElementById("refreshbtn").onclick = () => window.location.reload(); } function myFetch(folder, params) { if (folder.charAt(0)=="/") folder = folder.slice(1); var origin = CAPTCHA_ENV["CAPTCHA_URL"]; if (origin.slice(-1)=="/") origin = origin.slice(0, -1); var url = origin + "/" + folder; url += "?ms="+ Date.now() +"&rnd=" + Math.random(); url += "&ctoken=" + CAPTCHA_ENV["CAPTCHA_TOKEN"]; var getParams = Object.entries(params || {}).map(([k,v]) => k+'='+v).join('&') || ''; if (getParams) { url += '&' + getParams; } return fetch(url) .then(res => { if (!res.ok) throw new Error(res.status); return res.json(); }); } function fetchPic() { addLoading(); document.getElementById("captcha").src = ''; document.body.classList.remove("state-expire-wait-for-user"); var widthAsCaptcha = () => { setTimeout(()=>{ var img = document.getElementById("captcha"); img.width = img.naturalWidth; img.height = img.naturalHeight; var width = img.offsetWidth; var height = img.offsetHeight; Array.from(document.querySelectorAll(".width-as-captcha")).forEach(node => { node.style.width = width +"px"; }); Array.from(document.querySelectorAll(".height-as-captcha")).forEach(node => { node.style.height = height +"px"; }); console.log(width, height) notExpireSoon(); setTimeout(()=>{ document.body.classList.remove("first-captcha-not-loaded"); document.body.classList.add("first-captcha-loaded"); }, 50); },10); } document.getElementById("captcha").onload = widthAsCaptcha; return myFetch("generate", null) .then(json => { var captcha_image_elem = document.getElementById("captcha"); if (json.png) { captcha_image_elem.src = "data:image/png;base64," + json.png; } else if (json.jpg || json.jpeg) { captcha_image_elem.src = "data:image/jpeg;base64," + json.jpg || json.jpeg; } if (json.alt) { captcha_image_elem.alt = json.alt; } captcha_image_elem.classList.remove('loading'); vtoken = json.vtoken; captchaImageReceivedAt = Date.now(); removeLoading(); }) .catch(er => { console.error(er); if (er.message === "403") { handleTokenExpiration(); } , 5 * 1000); }) .then(()=>{ removeLoading(); return fetchPic(); }); } }); } function expireSoon() { document.body.classList.add('state-expire'); document.body.classList.add('state-expire-wait-for-user'); document.getElementById("answerbtn").disabled = true; document.getElementById("refreshbtn").disabled = false; document.getElementById("answer").disabled = true; } function notExpireSoon() { document.body.classList.remove('state-expire'); document.body.classList.remove('state-expire-wait-for-user'); document.getElementById("answerbtn").disabled = false; document.getElementById("answer").disabled = false; } function submit_answer() { addLoading(); return myFetch("verify", {"vtoken": vtoken, "answer": (document.getElementById("answer").value+'').trim()}) .then(json => { const result_url = new URL(CAPTCHA_ENV["ORIGINAL_URL"]); result_url.searchParams.append(CAPTCHA_ENV["PTOKEN_PARAM_NAME_FOR_ORIGINAL_URL"], json.ptoken); window.location.href = result_url.href; }) .catch(er => { console.error(er); return new Promise(resolve => { setTimeout(() => { resolve(); }, 1 * 1000); }) .then(()=>{ removeLoading(); document.body.classList.add('state-wrong-answer'); setTimeout(() => { document.body.classList.remove('state-wrong-answer'); }, 3*1000); return fetchPic(); }); }) } removeLoading(); fetchPic(); setTimeout(()=>{ handleTokenExpiration() }, CAPTCHA_ENV["CAPTCHA_TOKEN_TTL"]) x - Посмотреть таблицу с данными

ИЗВЕЩЕНИЕ

о заинтересованности в проведении закупки

Выполнение комплекса работ по зачистке и ремонту резервуаров горизонтальных надземных (РГН) для хранения нефти с паровым регистром, объемом 20-50м³ для Нижневартовского филиала ООО «РН-Бурение» на 2025г.

наименование товаров/наименование работ/наименование услуг

Наименование инициатора закупки (заказчика) - ООО «РН-Бурение»

Почтовый адрес:▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ - открыть, г. Москва, ул. Калужская М., дом 15, стр.31

Адрес электронной почты: ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ - открыть

Номер контактного телефона, номер факса, контактное лицо: Нижневартовский филиал ООО «РН-Бурение»,▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ - открыть, Ханты-Мансийский Автономный округ-Югра, г. Нижневартовск, ул. Индустриальная, 19, строение 8.; Литвяков Антон Александрович – гл. специалист, тел. (3▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ - открытьдоб. 1565.

В связи с необходимостью проведения закупки:

Выполнение комплекса работ по зачистке и ремонту резервуаров горизонтальных надземных (РГН) для хранения нефти с паровым регистром, объемом 20-50м³ для Нижневартовского филиала ООО «РН-Бурение» на 2025г.

наименование товаров/наименование работ/наименование услуг

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

Место, дата и время окончания срока подачи предложений – http://rn.tektorg.ru, до 12 ч 00 мин (МСК+2) «14» марта 2025 г.

Предложение подается в письменной форме (на фирменном бланке участника или с печатью участника) и за подписью руководителя или уполномоченного лица.

Предложение может быть направлено потенциальным участником закупочной процедуры и получено инициатором (заказчиком) только посредством электронной торговой площадки http://rn.tektorg.ru.

Размещение настоящего извещения не накладывает на ООО «РН-Бурение» (в том числе в лице Филиалов), гражданско-правовых обязательств по обязательному заключению договора с участниками, предоставившими свои предложения (т.е. ООО «РН-Бурение» (в том числе в лице Филиалов), не несут ответственности за отказ от заключения такого договора с участниками), а также иных ограничений, предусмотренных законодательством РФ.

К извещению прилагается:

Приложение 1 к извещению «Форма коммерческого предложения»

Главный специалист А. А. Литвяков

x - Посмотреть таблицу с данными - Посмотреть таблицу с данными - Посмотреть таблицу с данными▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ - открыть60-addi-.zip .. STAGE = "prod"; var captchaImageExpireSeconds = ""*1; // "" for syntax, *1 for number var captchaInputDisabledAtLastsExpireSeconds = ""*1; // "" for syntax, *1 for number input, html, h1, h2, h3 { font-weight: 400; } . hgroup.page .status .loading-rotate-back, .loading .loading-rotate .loading @keyframes loading-wings } @keyframes loading-rotate 40% { transform: rotate(0deg); } 45% { transform: rotate(10deg); } 60% { transform: rotate(0deg); } 75% { transform: rotate(0deg); } 82% { transform: rotate(7deg); } } # .state-expire # .state-loading # @keyframes captcha 50% { background-position: 0px 0px; } } #status .state-loading #status .captcha-180 { position: absolute; transform: scaleY(-1) translateY(-0.07em) translateX(-2px); } .captcha-after # #header-wrong .state-wrong-answer #header-wrong .first-captcha-loaded .width-as .at-left-side-before-first .first-captcha-loaded .at-left-side-before-first @media (max-width: 768px) { . hgroup.page .status #header-wrong .state-wrong-answer #header-wrong } @media (min-width: 768px) { #header-we-like-a # . } # .stage-local # .state-expire #header-hello, .state-expire #header-its-captcha, .state-expire #header-we-like-a #header .state-expire #header .state-expire # (function(){ if (STAGE!="local") return; setInterval(function() { var captchaImageLivetime = Math.floor((Date.now() - captchaImageReceivedAt) / 1000); document.getElementById("dbg").innerHTML = `${captchaImageLivetime}sec / ${captchaImageExpireSeconds} – ${captchaInputDisabledAtLastsExpireSeconds}`; }, 0.5*1000); })(); (function(){ var prevLivetime = -1; setInterval(function() { var captchaImageLivetime = Math.floor((Date.now() - captchaImageReceivedAt) / 1000); if (prevLivetime!=captchaImageLivetime) { var critical = Math.floor(CAPTCHA_ENV["VERIFICATION_TOKEN_TTL"]/1000); if (prevLivetime!==-1 && prevLivetime critical) { expireSoon(); } prevLivetime = captchaImageLivetime; } }, 0.5*1000); })(); Здравствуйте! Вам КАПЧА! Не бойтесь оказаться роботом, но никогда не скрывайте свою человечность. Пожалуйста, включите яваскрипт Вы не успели расшифровать эту КАПЧУ.
Пожалуйста, запросите другую картинку. Текст не совпал — попробуйте еще раз var loadings = 1; function addLoading() { if (loadings===0) { document.body.classList.add('state-loading'); document.getElementById("refreshbtn").disabled = true; document.getElementById("answerbtn").disabled = true; } loadings++; } function removeLoading() { loadings--; setTimeout(() => { if (loadings===0) { document.body.classList.remove('state-loading'); document.getElementById("answerbtn").disabled = false; document.getElementById("answer").focus(); document.getElementById("answer").value = ""; document.getElementById("refreshbtn").disabled = false; document.getElementById("answerbtn").disabled = false; } }, 50); } function actualOrDefault(replacedVariable, defaultValue) { if (replacedVariable.charAt(0)=="_") { if (replacedVariable.charAt(replacedVariable.length-1)=="_") { return defaultValue; } } return replacedVariable; } var CAPTCHA_ENV = { "REQUEST_ID": "ALIHLFEKK4Y1", "IP": "147.45.231.61", "DATETIME": "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ - открыть:21:10 +0000", "ORIGINAL_URL": "https://api.tektorg.ru/open-api/documents/procedure/▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ - открыть?utm_referrer=https%3a%2f%2fwww.tektorg.ru%2frosnefttkp%2fprocedures%2f▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ - открыть", "PTOKEN_PARAM_NAME_FOR_ORIGINAL_URL": "fa821dba_ipp_har", "CAPTCHA_TOKEN": actualOrDefault("+p4T49yf7qg9izPsWcvecJpvpVV7EMIu594ja69nweZ5Nktr4Barza8fnMUTi7J3Cpsycg==",""), "CAPTCHA_TOKEN_TTL": actualOrDefault("600000", "600000")*1, "VERIFICATION_TOKEN_TTL": actualOrDefault("120000", "120000")*1, "CAPTCHA_URL": actualOrDefault("https://c1.vchecks.io",""), }; var captchaImageReceivedAt = 0; var vtoken = null; function handleTokenExpiration() { document.getElementById("submitbtn").disabled = true; document.getElementById("refreshbtn").disabled = false; document.getElementById("answer").disabled = true; document.getElementById("refreshbtn").onclick = () => window.location.reload(); } function myFetch(folder, params) { if (folder.charAt(0)=="/") folder = folder.slice(1); var origin = CAPTCHA_ENV["CAPTCHA_URL"]; if (origin.slice(-1)=="/") origin = origin.slice(0, -1); var url = origin + "/" + folder; url += "?ms="+ Date.now() +"&rnd=" + Math.random(); url += "&ctoken=" + CAPTCHA_ENV["CAPTCHA_TOKEN"]; var getParams = Object.entries(params || {}).map(([k,v]) => k+'='+v).join('&') || ''; if (getParams) { url += '&' + getParams; } return fetch(url) .then(res => { if (!res.ok) throw new Error(res.status); return res.json(); }); } function fetchPic() { addLoading(); document.getElementById("captcha").src = ''; document.body.classList.remove("state-expire-wait-for-user"); var widthAsCaptcha = () => { setTimeout(()=>{ var img = document.getElementById("captcha"); img.width = img.naturalWidth; img.height = img.naturalHeight; var width = img.offsetWidth; var height = img.offsetHeight; Array.from(document.querySelectorAll(".width-as-captcha")).forEach(node => { node.style.width = width +"px"; }); Array.from(document.querySelectorAll(".height-as-captcha")).forEach(node => { node.style.height = height +"px"; }); console.log(width, height) notExpireSoon(); setTimeout(()=>{ document.body.classList.remove("first-captcha-not-loaded"); document.body.classList.add("first-captcha-loaded"); }, 50); },10); } document.getElementById("captcha").onload = widthAsCaptcha; return myFetch("generate", null) .then(json => { var captcha_image_elem = document.getElementById("captcha"); if (json.png) { captcha_image_elem.src = "data:image/png;base64," + json.png; } else if (json.jpg || json.jpeg) { captcha_image_elem.src = "data:image/jpeg;base64," + json.jpg || json.jpeg; } if (json.alt) { captcha_image_elem.alt = json.alt; } captcha_image_elem.classList.remove('loading'); vtoken = json.vtoken; captchaImageReceivedAt = Date.now(); removeLoading(); }) .catch(er => { console.error(er); if (er.message === "403") { handleTokenExpiration(); } , 5 * 1000); }) .then(()=>{ removeLoading(); return fetchPic(); }); } }); } function expireSoon() { document.body.classList.add('state-expire'); document.body.classList.add('state-expire-wait-for-user'); document.getElementById("answerbtn").disabled = true; document.getElementById("refreshbtn").disabled = false; document.getElementById("answer").disabled = true; } function notExpireSoon() { document.body.classList.remove('state-expire'); document.body.classList.remove('state-expire-wait-for-user'); document.getElementById("answerbtn").disabled = false; document.getElementById("answer").disabled = false; } function submit_answer() { addLoading(); return myFetch("verify", {"vtoken": vtoken, "answer": (document.getElementById("answer").value+'').trim()}) .then(json => { const result_url = new URL(CAPTCHA_ENV["ORIGINAL_URL"]); result_url.searchParams.append(CAPTCHA_ENV["PTOKEN_PARAM_NAME_FOR_ORIGINAL_URL"], json.ptoken); window.location.href = result_url.href; }) .catch(er => { console.error(er); return new Promise(resolve => { setTimeout(() => { resolve(); }, 1 * 1000); }) .then(()=>{ removeLoading(); document.body.classList.add('state-wrong-answer'); setTimeout(() => { document.body.classList.remove('state-wrong-answer'); }, 3*1000); return fetchPic(); }); }) } removeLoading(); fetchPic(); setTimeout(()=>{ handleTokenExpiration() }, CAPTCHA_ENV["CAPTCHA_TOKEN_TTL"])

Похожие тендеры

Название Тип тендера Цена Период показа
Конкурс
#236983088
21 000
4 дня
19.01.2023
06.05.2025
Конкурс
#237151516
21 000
6 дней
20.01.2023
08.05.2025
Отбор
#279155934
364 дня
30.08.2024
01.05.2026
Отбор
#284911422
364 дня
25.11.2024
01.05.2026
Электронный аукцион
#287620367
12 909 968
28 дней
24.12.2024
30.05.2025

Тендеры из отрасли Химические элементы и соединения

Название Тип тендера Цена Период показа
Малая закупка
#293186857
1 500
Обеспечение заявки:
75
срок истек
07.03.2025
07.03.2025
Малая закупка
#293186853
270
Обеспечение заявки:
60
срок истек
07.03.2025
07.03.2025
Малая закупка
#293186791
2 571
срок истек
07.03.2025
07.03.2025
Электронный аукцион
#293186471
435 034
Обеспечение контракта:
10%
срок истек
07.03.2025
18.03.2025
Электронный аукцион
#293186429
435 034
Обеспечение контракта:
10%
срок истек
07.03.2025
18.03.2025

Тендеры из региона г. Москва

Название Тип тендера Цена Период показа
Запрос цен
#293187051
срок истек
07.03.2025
24.03.2025
Анализ цен
#293187038
срок истек
07.03.2025
17.03.2025
Анализ цен
#293187018
срок истек
07.03.2025
12.03.2025
Электронный аукцион
#293187013
111 250
срок истек
07.03.2025
07.03.2025
Электронный аукцион
#293187011
301 000
срок истек
07.03.2025
07.03.2025
Показать больше информации о тендере