From 253606dbe9219e65e7f5db92d0f762b2b919c081 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Thu, 10 Jul 2025 11:07:44 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B3=D0=BB=D0=B0=D0=B2=D0=BD=D0=BE=D0=B9=20?= =?UTF-8?q?=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D1=8B=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=BA=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/docusaurus/src/css/custom.css | 24 ++++ docs/docusaurus/src/pages/index.js | 69 ++++++++++- docs/docusaurus/src/pages/index.module.css | 52 ++++++-- .../src/CommonModules/OPI_MSSQL/Module.bsl | 3 +- .../src/CommonModules/OPI_Тесты/Module.bsl | 113 ++++++++++++++++++ 5 files changed, 246 insertions(+), 15 deletions(-) diff --git a/docs/docusaurus/src/css/custom.css b/docs/docusaurus/src/css/custom.css index 132ea7f219..68ad047ce3 100644 --- a/docs/docusaurus/src/css/custom.css +++ b/docs/docusaurus/src/css/custom.css @@ -444,4 +444,28 @@ li > a.menu__link { [class*='iconExternalLink_'] { display: none; +} + +.falling-icon { + position: absolute; + width: 40px; + height: auto; + opacity: 0; + animation-name: fall; + animation-timing-function: linear; + animation-iteration-count: infinite; +} + +@keyframes fall { + 0% { + transform: translateY(-100px); + opacity: 0.25; + } + 35% { + opacity: 0; + } + 100% { + transform: translateY(100vh); + opacity: 0; + } } \ No newline at end of file diff --git a/docs/docusaurus/src/pages/index.js b/docs/docusaurus/src/pages/index.js index 778a092b02..6f4b2d218a 100644 --- a/docs/docusaurus/src/pages/index.js +++ b/docs/docusaurus/src/pages/index.js @@ -7,13 +7,74 @@ import AlternatingFeatures from '@site/src/components/AlternatingFeatures'; import Heading from '@theme/Heading'; import styles from './index.module.css'; +const iconList = [ + '/img/APIs/Airtable.png', + '/img/APIs/VK.png', + '/img/APIs/Ozon.png', + '/img/APIs/Neocities.png', + '/img/APIs/Telegram.png', + '/img/APIs/Viber.png', + '/img/APIs/Bitrix24.png', + '/img/APIs/CDEK.png', + '/img/APIs/Dropbox.png', + '/img/APIs/GoogleCalendar.png', + '/img/APIs/GoogleDrive.png', + '/img/APIs/GoogleSheets.png', + '/img/APIs/GreenAPI.png', + '/img/APIs/HTTP.png', + '/img/APIs/MSSQL.png', + '/img/APIs/MySQL.png', + '/img/APIs/Notion.png', + '/img/APIs/OpenAI.png', + '/img/APIs/Twitter.png', + '/img/APIs/PostgreSQL.png', + '/img/APIs/RCON.png', + '/img/APIs/S3.png', + '/img/APIs/Slack.png', + '/img/APIs/SQLite.png', + '/img/APIs/TCP.png', + '/img/APIs/VKTeams.png', + // ... добавьте все свои иконки +]; + +const FallingIcons = () => { + const iconCount = 60; // количество падающих иконок + const icons = []; + + for (let i = 0; i < iconCount; i++) { + const randomIcon = iconList[Math.floor(Math.random() * iconList.length)]; + const left = (i / (iconCount - 1)) * 100; // равномерное распределение по ширине + const duration = Math.random() + 20;// случайная длительность от 6 до 10 секунд + const delay = Math.random() * 20; // случайная задержка от 0 до 5 секунд + + icons.push( + falling icon + ); + } + + return <>{icons}; +}; + function HomepageHeader() { - const {siteConfig} = useDocusaurusContext(); + const { siteConfig } = useDocusaurusContext(); return (
+
+ +
- + {siteConfig.title} @@ -41,14 +102,14 @@ function HomepageHeader() { } export default function Home() { - const {siteConfig} = useDocusaurusContext(); + const { siteConfig } = useDocusaurusContext(); return (
-

+

diff --git a/docs/docusaurus/src/pages/index.module.css b/docs/docusaurus/src/pages/index.module.css index edc656dea2..d5f92b578f 100644 --- a/docs/docusaurus/src/pages/index.module.css +++ b/docs/docusaurus/src/pages/index.module.css @@ -15,27 +15,52 @@ } +.container { + position: relative; + z-index: 1; +} + .particle { position: absolute; - background-color: rgba(0, 63, 19, 0.452); - border-radius: 50%; + width: 0; + height: 0; + border-style: solid; + border-width: 0 0.3em 0.5em 0.3em; + border-color: transparent transparent #00000034 transparent; + transform: rotate(36deg); pointer-events: none; animation: float linear infinite; + z-index: -1; + will-change: transform; } +.fallingIconsContainer { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; + pointer-events: none; + z-index: -1; +} + + + @keyframes float { 0% { - transform: translateY(0) translateX(0); - opacity: 1; + transform: translateY(0) translateX(0) scale(1); + opacity: 0.2; } 50% { - transform: translateY(-50px) translateX(20px); - opacity: 0.7; + transform: translateY(-40px) translateX(20px) scale(1.2); + opacity: 0.8; } - 100% { - transform: translateY(0) translateX(0); - opacity: 1; + 90% { + transform: translateY(0) translateX(0) scale(1); + opacity: 0.2; } + } @media screen and (max-width: 996px) { @@ -56,6 +81,10 @@ flex-wrap: wrap; } +.particle { + opacity: 0; +} + .button{ margin: 10px; } @@ -70,3 +99,8 @@ .heroBanner_src-pages-index-module { padding-bottom: 30px; } + +.textContainer { + background-color: white; +} + diff --git a/src/ru/OPI/src/CommonModules/OPI_MSSQL/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_MSSQL/Module.bsl index 594f95882e..b6d7878117 100644 --- a/src/ru/OPI/src/CommonModules/OPI_MSSQL/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_MSSQL/Module.bsl @@ -612,8 +612,7 @@ ИначеЕсли ТекущийТип = Тип("Булево") Тогда - ТекущийПараметр = ?(ТекущийПараметр, 1, 0); - ТекущийКлюч = "BIT"; + ТекущийКлюч = "BIT"; ИначеЕсли ТекущийТип = Тип("Число") Тогда diff --git a/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl index 3e9de5cdb8..08b07faa27 100644 --- a/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl @@ -2843,6 +2843,8 @@ MSSQL_СоздатьТаблицу(ПараметрыТеста); MSSQL_ДобавитьЗаписи(ПараметрыТеста); MSSQL_ПолучитьЗаписи(ПараметрыТеста); + MSSQL_ОбновитьЗаписи(ПараметрыТеста); + MSSQL_УдалитьЗаписи(ПараметрыТеста); КонецПроцедуры @@ -24233,6 +24235,117 @@ КонецПроцедуры +Процедура MSSQL_ОбновитьЗаписи(ПараметрыФункции) + + Адрес = ПараметрыФункции["PG_IP"]; + Логин = "SA"; + Пароль = ПараметрыФункции["PG_Password"]; + База = "test_data"; + + НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTls(Истина); + СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль); + + Таблица = "test_data"; + + СтруктураПолей = Новый Структура; + СтруктураПолей.Вставить("ip_address", Новый Структура("VARCHAR", "127.0.0.1")); + + Фильтры = Новый Массив; + + СтруктураФильтра = Новый Структура; + + СтруктураФильтра.Вставить("field", "gender"); + СтруктураФильтра.Вставить("type" , "="); + СтруктураФильтра.Вставить("value", Новый Структура("NVARCHAR", "Male")); + СтруктураФильтра.Вставить("raw" , Ложь); + + Фильтры.Добавить(СтруктураФильтра); + + Количество = OPI_MSSQL.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения, НастройкиTLS); // SKIP + OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Количество, "ОбновитьЗаписи (количество)", "MSSQL"); // SKIP + Количество = Количество["data"].Количество(); // SKIP + + // При использовании строки подключения инициализируется новое соединение, + // которое будет закрыто после выполнения функции. + // В случае выполнения нескольких операций желательно использовать одно соединение, + // заранее созданное функцией ОткрытьСоединение() + Результат = OPI_MSSQL.ОбновитьЗаписи(Таблица, СтруктураПолей, СтруктураФильтра, СтрокаПодключения, НастройкиTLS); + + // END + + OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьЗаписи", "MSSQL"); + OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат); + + Проверка = OPI_MSSQL.ПолучитьЗаписи(Таблица, "['ip_address']", Фильтры, , , СтрокаПодключения, НастройкиTLS); + + OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Проверка, "ОбновитьЗаписи (проверка)", "MSSQL"); + OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Проверка); + OPI_ПолучениеДанныхТестов.Проверка_Массив(Проверка["data"], Количество); + + Для Н = 0 По Проверка["data"].ВГраница() Цикл + OPI_ПолучениеДанныхТестов.Проверка_SQLiteЗначенияПолей(Проверка["data"][Н], СтруктураПолей); + КонецЦикла; + +КонецПроцедуры + +Процедура MSSQL_УдалитьЗаписи(ПараметрыФункции) + + Адрес = ПараметрыФункции["PG_IP"]; + Логин = "SA"; + Пароль = ПараметрыФункции["PG_Password"]; + База = "test_data"; + + НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTls(Истина); + СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль); + + Таблица = "test_data"; + + Фильтры = Новый Массив; + + СтруктураФильтра = Новый Структура; + + СтруктураФильтра.Вставить("field", "gender"); + СтруктураФильтра.Вставить("type" , "="); + СтруктураФильтра.Вставить("value", Новый Структура("NVARCHAR", "Male")); + СтруктураФильтра.Вставить("raw" , Ложь); + СтруктураФильтра.Вставить("union", "AND"); + + Фильтры.Добавить(СтруктураФильтра); + + СтруктураФильтра = Новый Структура; + + СтруктураФильтра.Вставить("field", "ip_address"); + СтруктураФильтра.Вставить("type" , "="); + СтруктураФильтра.Вставить("value", Новый Структура("NVARCHAR", "127.0.0.1")); + СтруктураФильтра.Вставить("raw" , Ложь); + + Получение = OPI_MSSQL.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения, НастройкиTls); // SKIP + + // При использовании строки подключения инициализируется новое соединение, + // которое будет закрыто после выполнения функции. + // В случае выполнения нескольких операций желательно использовать одно соединение, + // заранее созданное функцией ОткрытьСоединение() + Результат = OPI_MSSQL.УдалитьЗаписи(Таблица, Фильтры, СтрокаПодключения, НастройкиTls); + + // END + + OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Получение, "УдалитьЗаписи (получение)", "MSSQL"); + OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат); + + Количество = Получение["data"].Количество(); + Остаток = 100 - Количество; + + OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьЗаписи", "MSSQL"); + OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат); + + Результат = OPI_MSSQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения, НастройкиTLS); + + OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьЗаписи (проверка)", "MSSQL"); + OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат); + OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], Остаток); + +КонецПроцедуры + #КонецОбласти #КонецОбласти