Compare commits

..

15 Commits

@ -14,11 +14,12 @@ const server = http.createServer(async (req, res) => {
<title>simple_server</title>
</head>
<body>
<h1>HTML2</h1>
<h1>HTML</h1>
</body>
</html>
`;
// Отправка HTML клиенту
res.end(htmlContent);
} catch (error) {
console.error('Ошибка:', error.message);

@ -0,0 +1,135 @@
class Node {
constructor(data) {
this.data = data;
this.prev = null;
this.next = null;
}
}
class DoublyLinkedList {
constructor() {
this.head = null;
this.tail = null;
this.length = 0;
}
append(data) {
const newNode = new Node(data);
if (!this.head) {
this.head = newNode;
this.tail = newNode;
} else {
newNode.prev = this.tail;
this.tail.next = newNode;
this.tail = newNode;
}
this.length++;
}
insertAt(index, data) {
if (index < 0 || index > this.length) {
console.error("Wrong index");
return;
}
const newNode = new Node(data);
if (index === 0) {
newNode.next = this.head;
this.head.prev = newNode;
this.head = newNode;
} else if (index === this.length) {
newNode.prev = this.tail;
this.tail.next = newNode;
this.tail = newNode;
} else {
let current = this.head;
for (let i = 0; i < index - 1; i++) {
current = current.next;
}
newNode.next = current.next;
newNode.prev = current;
current.next.prev = newNode;
current.next = newNode;
}
this.length++;
}
removeAt(index) {
if (index < 0 || index >= this.length) {
console.error("Wrong index");
return;
}
let current = this.head;
if (index === 0) {
this.head = current.next;
if (this.head) {
this.head.prev = null;
} else {
this.tail = null;
}
} else if (index === this.length - 1) {
current = this.tail;
this.tail = current.prev;
this.tail.next = null;
} else {
for (let i = 0; i < index; i++) {
current = current.next;
}
current.prev.next = current.next;
current.next.prev = current.prev;
}
this.length--;
}
// Изменение элемента по индексу
updateAt(index, newData) {
if (index < 0 || index >= this.length) {
console.error("Wrong index");
return;
}
let current = this.head;
for (let i = 0; i < index; i++) {
current = current.next;
}
current.data = newData;
}
// Поиск элемента по индексу
search(data) {
let current = this.head;
while (current) {
if (current.data === data) {
return current;
}
current = current.next;
}
return null;
}
// Получение длины списка
getLength() {
return this.length;
}
// Элементы списка
display() {
let current = this.head;
while (current) {
console.log(current.data);
current = current.next;
}
}
}

@ -0,0 +1,109 @@
class Node {
constructor(data) {
this.data = data;
this.next = null;
}
}
class LinkedList {
constructor() {
this.head = null;
this.length = 0;
}
// Добавление элемента
append(data) {
const newNode = new Node(data);
if (!this.head) {
this.head = newNode;
} else {
let current = this.head;
while (current.next) {
current = current.next;
}
current.next = newNode;
}
this.length++;
}
// Вставка элемента
insertAt(index, data) {
if (index < 0 || index > this.length) {
console.error("Неверный индекс");
return;
}
const newNode = new Node(data);
if (index === 0) {
newNode.next = this.head;
this.head = newNode;
} else {
let current = this.head;
for (let i = 0; i < index - 1; i++) {
current = current.next;
}
newNode.next = current.next;
current.next = newNode;
}
this.length++;
}
// Удаление элемента
removeAt(index) {
if (index < 0 || index >= this.length) {
console.error("Неверный индекс");
return;
}
if (index === 0) {
this.head = this.head.next;
} else {
let current = this.head;
let prev = null;
for (let i = 0; i < index; i++) {
prev = current;
current = current.next;
}
prev.next = current.next;
}
this.length--;
}
// Изменение элемента
updateAt(index, newData) {
if (index < 0 || index >= this.length) {
console.error("Неверный индекс");
return;
}
let current = this.head;
for (let i = 0; i < index; i++) {
current = current.next;
}
current.data = newData;
}
// Поиск элемента
search(data) {
let current = this.head;
while (current) {
if (current.data === data) {
return current;
}
current = current.next;
}
return null;
}
// Получение длины списка
getLength() {
return this.length;
}
}

@ -0,0 +1,75 @@
class RedBlackNode {
constructor(key, value, color = 'red') {
this.key = key;
this.value = value;
this.color = color;
this.left = null;
this.right = null;
}
}
class RedBlackTree {
constructor() {
this.root = null;
}
// Поиск элемента по ключу
search(key) {
return this._search(this.root, key);
}
_search(node, key) {
if (node === null || key === node.key) {
return node;
}
if (key < node.key) {
return this._search(node.left, key);
} else {
return this._search(node.right, key);
}
}
// Вставка элемента
insert(key, value) {
this.root = this._insert(this.root, key, value);
this.root.color = 'black'; // Корень всегда черный
}
_insert(node, key, value) {
if (node === null) {
return new RedBlackNode(key, value);
}
if (key < node.key) {
node.left = this._insert(node.left, key, value);
} else if (key > node.key) {
node.right = this._insert(node.right, key, value);
} else {
node.value = value; // Если ключ уже существует, обновляем значение
}
return node;
}
// Удаление элемента
remove(key) {
this.root = this._remove(this.root, key);
}
_remove(node, key) {
if (node === null) {
return null;
}
return node;
}
// Изменение элемента
update(key, value) {
const node = this.search(key);
if (node) {
node.value = value;
}
}
}

@ -0,0 +1,34 @@
-- Курсы
CREATE TABLE courses (
course_id SERIAL PRIMARY KEY,
course_name VARCHAR(255) NOT NULL,
description TEXT,
start_date DATE,
end_date DATE
);
-- Студенты
CREATE TABLE students (
student_id SERIAL PRIMARY KEY,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
date_of_birth DATE
);
-- Уроки
CREATE TABLE lessons (
lesson_id SERIAL PRIMARY KEY,
lesson_name VARCHAR(255) NOT NULL,
content TEXT,
video_url VARCHAR(255),
lesson_order INT
);
-- m2m students to courses
CREATE TABLE student_courses (
student_id INT REFERENCES students(student_id),
course_id INT REFERENCES courses(course_id),
enrollment_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (student_id, course_id)
);

@ -0,0 +1,38 @@
-- Товары
CREATE TABLE products (
product_id INT PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(255) NOT NULL,
description TEXT,
price DECIMAL(10, 2) NOT NULL,
stock_quantity INT NOT NULL
);
-- Клиенты
CREATE TABLE customers (
customer_id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL
);
-- Заказы
CREATE TABLE orders (
order_id INT PRIMARY KEY AUTO_INCREMENT,
customer_id INT,
order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
total_amount DECIMAL(10, 2) NOT NULL,
status VARCHAR(50) DEFAULT 'В обработке',
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
-- Товары в заказах
CREATE TABLE order_items (
order_item_id INT PRIMARY KEY AUTO_INCREMENT,
order_id INT,
product_id INT,
quantity INT NOT NULL,
subtotal DECIMAL(10, 2) NOT NULL,
FOREIGN KEY (order_id) REFERENCES orders(order_id),
FOREIGN KEY (product_id) REFERENCES products(product_id)
);

@ -0,0 +1,43 @@
-- Пользователи
CREATE TABLE users (
user_id SERIAL PRIMARY KEY,
username VARCHAR(255) UNIQUE NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
full_name VARCHAR(255),
date_joined TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Посты
CREATE TABLE posts (
post_id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(user_id),
content TEXT NOT NULL,
post_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Комментарии
CREATE TABLE comments (
comment_id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(user_id),
post_id INT REFERENCES posts(post_id),
content TEXT NOT NULL,
comment_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Лайки
CREATE TABLE likes (
like_id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(user_id),
post_id INT REFERENCES posts(post_id),
comment_id INT REFERENCES comments(comment_id),
like_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Друзья
CREATE TABLE friends (
friendship_id SERIAL PRIMARY KEY,
user1_id INT REFERENCES users(user_id),
user2_id INT REFERENCES users(user_id),
friendship_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

@ -0,0 +1,16 @@
CREATE TABLE categories (
category_id INT PRIMARY KEY AUTO_INCREMENT,
category_name VARCHAR(255) NOT NULL
);
CREATE TABLE tasks (
task_id INT PRIMARY KEY AUTO_INCREMENT,
task_name VARCHAR(255) NOT NULL,
description TEXT,
due_date DATE,
category_id INT,
completed BOOLEAN DEFAULT FALSE,
FOREIGN KEY (category_id) REFERENCES categories(category_id)
);
INSERT INTO categories (category_name) VALUES ('Работа'), ('Дом'), ('Личное');

@ -0,0 +1,146 @@
class Node<T> {
data: T;
prev: Node<T> | null;
next: Node<T> | null;
constructor(data: T) {
this.data = data;
this.prev = null;
this.next = null;
}
}
class DoublyLinkedList<T> {
head: Node<T> | null;
tail: Node<T> | null;
length: number;
constructor() {
this.head = null;
this.tail = null;
this.length = 0;
}
append(data: T): void {
const newNode = new Node(data);
if (!this.head) {
this.head = newNode;
this.tail = newNode;
} else {
newNode.prev = this.tail;
if (this.tail) this.tail.next = newNode;
this.tail = newNode;
}
this.length++;
}
insertAt(index: number, data: T): void {
if (index < 0 || index > this.length) {
console.error("Wrong index");
return;
}
const newNode = new Node(data);
if (index === 0) {
newNode.next = this.head;
if (this.head) this.head.prev = newNode;
this.head = newNode;
} else if (index === this.length) {
newNode.prev = this.tail;
if (this.tail) this.tail.next = newNode;
this.tail = newNode;
} else {
let current = this.head;
for (let i = 0; i < index - 1; i++) {
if (current) current = current.next;
}
if (current) {
newNode.next = current.next;
newNode.prev = current;
if (current.next) current.next.prev = newNode;
current.next = newNode;
}
}
this.length++;
}
removeAt(index: number): void {
if (index < 0 || index >= this.length) {
console.error("Wrong index");
return;
}
let current = this.head;
if (index === 0) {
this.head = current ? current.next : null;
if (this.head) {
this.head.prev = null;
} else {
this.tail = null;
}
} else if (index === this.length - 1) {
current = this.tail;
this.tail = current ? current.prev : null;
if (this.tail) this.tail.next = null;
} else {
for (let i = 0; i < index; i++) {
if (current) current = current.next;
}
if (current && current.prev && current.next) {
current.prev.next = current.next;
current.next.prev = current.prev;
}
}
this.length--;
}
// Изменение элемента по индексу
updateAt(index: number, newData: T): void {
if (index < 0 || index >= this.length) {
console.error("Wrong index");
return;
}
let current = this.head;
for (let i = 0; i < index; i++) {
if (current) current = current.next;
}
if (current) current.data = newData;
}
// Поиск элемента по индексу
search(data: T): Node<T> | null {
let current = this.head;
while (current) {
if (current.data === data) {
return current;
}
current = current.next;
}
return null;
}
// Получение длины списка
getLength(): number {
return this.length;
}
// Элементы списка
display(): void {
let current = this.head;
while (current) {
console.log(current.data);
current = current.next;
}
}
}

@ -0,0 +1,115 @@
class Node<T> {
data: T;
next: Node<T> | null;
constructor(data: T) {
this.data = data;
this.next = null;
}
}
class LinkedList<T> {
head: Node<T> | null;
length: number;
constructor() {
this.head = null;
this.length = 0;
}
// Добавление элемента
append(data: T): void {
const newNode = new Node(data);
if (!this.head) {
this.head = newNode;
} else {
let current = this.head;
while (current.next) {
current = current.next;
}
current.next = newNode;
}
this.length++;
}
// Вставка элемента
insertAt(index: number, data: T): void {
if (index < 0 || index > this.length) {
console.error("Неверный индекс");
return;
}
const newNode = new Node(data);
if (index === 0) {
newNode.next = this.head;
this.head = newNode;
} else {
let current = this.head;
for (let i = 0; i < index - 1; i++) {
if (current) current = current.next;
}
newNode.next = current ? current.next : null;
if (current) current.next = newNode;
}
this.length++;
}
// Удаление элемента
removeAt(index: number): void {
if (index < 0 || index >= this.length) {
console.error("Неверный индекс");
return;
}
if (index === 0) {
this.head = this.head ? this.head.next : null;
} else {
let current = this.head;
let prev: Node<T> | null = null;
for (let i = 0; i < index; i++) {
prev = current;
if (current) current = current.next;
}
if (prev && current) prev.next = current.next;
}
this.length--;
}
// Изменение элемента
updateAt(index: number, newData: T): void {
if (index < 0 || index >= this.length) {
console.error("Неверный индекс");
return;
}
let current = this.head;
for (let i = 0; i < index; i++) {
if (current) current = current.next;
}
if (current) current.data = newData;
}
// Поиск элемента
search(data: T): Node<T> | null {
let current = this.head;
while (current) {
if (current.data === data) {
return current;
}
current = current.next;
}
return null;
}
// Получение длины списка
getLength(): number {
return this.length;
}
}

@ -0,0 +1,83 @@
class RedBlackNode<K, V> {
key: K;
value: V;
color: 'red' | 'black';
left: RedBlackNode<K, V> | null;
right: RedBlackNode<K, V> | null;
constructor(key: K, value: V, color: 'red' | 'black' = 'red') {
this.key = key;
this.value = value;
this.color = color;
this.left = null;
this.right = null;
}
}
class RedBlackTree<K, V> {
root: RedBlackNode<K, V> | null;
constructor() {
this.root = null;
}
// Поиск элемента по ключу
search(key: K): RedBlackNode<K, V> | null {
return this._search(this.root, key);
}
private _search(node: RedBlackNode<K, V> | null, key: K): RedBlackNode<K, V> | null {
if (node === null || key === node.key) {
return node;
}
if (key < node.key) {
return this._search(node.left, key);
} else {
return this._search(node.right, key);
}
}
// Вставка элемента
insert(key: K, value: V): void {
this.root = this._insert(this.root, key, value);
if (this.root) this.root.color = 'black'; // Корень всегда черный
}
private _insert(node: RedBlackNode<K, V> | null, key: K, value: V): RedBlackNode<K, V> {
if (node === null) {
return new RedBlackNode(key, value);
}
if (key < node.key) {
node.left = this._insert(node.left, key, value);
} else if (key > node.key) {
node.right = this._insert(node.right, key, value);
} else {
node.value = value; // Если ключ уже существует, обновляем значение
}
return node;
}
// Удаление элемента
remove(key: K): void {
this.root = this._remove(this.root, key);
}
private _remove(node: RedBlackNode<K, V> | null, key: K): RedBlackNode<K, V> | null {
if (node === null) {
return null;
}
return node;
}
// Изменение элемента
update(key: K, value: V): void {
const node = this.search(key);
if (node) {
node.value = value;
}
}
}

@ -0,0 +1,7 @@
// Собственный тип данных - Пользователь
type CustomUserType = {
name: string;
email: string;
};
type UserList = Record<string, CustomUserType>;

Binary file not shown.

Binary file not shown.

@ -0,0 +1,221 @@
[Desktop Entry]
Version=1.0
Name=Yandex Browser
# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
GenericName=Web Browser
GenericName[ar]=متصفح الشبكة
GenericName[bg]=Уеб браузър
GenericName[ca]=Navegador web
GenericName[cs]=WWW prohlížeč
GenericName[da]=Browser
GenericName[de]=Web-Browser
GenericName[el]=Περιηγητής ιστού
GenericName[en_GB]=Web Browser
GenericName[es]=Navegador web
GenericName[et]=Veebibrauser
GenericName[fi]=WWW-selain
GenericName[fr]=Navigateur Web
GenericName[gu]=વેબ બ્રાઉઝર
GenericName[he]=דפדפן אינטרנט
GenericName[hi]=वेब ब्राउज़र
GenericName[hu]=Webböngésző
GenericName[it]=Browser Web
GenericName[ja]=ウェブブラウザ
GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ
GenericName[ko]=웹 브라우저
GenericName[lt]=Žiniatinklio naršyklė
GenericName[lv]=Tīmekļa pārlūks
GenericName[ml]=വെബ് ബ്രൌസര്‍
GenericName[mr]=वेब ब्राऊजर
GenericName[nb]=Nettleser
GenericName[nl]=Webbrowser
GenericName[pl]=Przeglądarka WWW
GenericName[pt]=Navegador Web
GenericName[pt_BR]=Navegador da Internet
GenericName[ro]=Navigator de Internet
GenericName[ru]=Веб-браузер
GenericName[sl]=Spletni brskalnik
GenericName[sv]=Webbläsare
GenericName[ta]=இணைய உலாவி
GenericName[th]=เว็บเบราว์เซอร์
GenericName[tr]=Web Tarayıcı
GenericName[uk]=Навігатор Тенет
GenericName[zh_CN]=网页浏览器
GenericName[zh_HK]=網頁瀏覽器
GenericName[zh_TW]=網頁瀏覽器
# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
GenericName[bn]=ওয়েব ব্রাউজার
GenericName[fil]=Web Browser
GenericName[hr]=Web preglednik
GenericName[id]=Browser Web
GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର
GenericName[sk]=WWW prehliadač
GenericName[sr]=Интернет прегледник
GenericName[te]=మహాతల అన్వేషి
GenericName[vi]=Bộ duyệt Web
# Gnome and KDE 3 uses Comment.
Comment=Access the Internet
Comment[ar]=الدخول إلى الإنترنت
Comment[bg]=Достъп до интернет
Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন
Comment[ca]=Accedeix a Internet
Comment[cs]=Přístup k internetu
Comment[da]=Få adgang til internettet
Comment[de]=Internetzugriff
Comment[el]=Πρόσβαση στο Διαδίκτυο
Comment[en_GB]=Access the Internet
Comment[es]=Accede a Internet.
Comment[et]=Pääs Internetti
Comment[fi]=Käytä internetiä
Comment[fil]=I-access ang Internet
Comment[fr]=Accéder à Internet
Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો
Comment[he]=גישה אל האינטרנט
Comment[hi]=इंटरनेट तक पहुंच स्थापित करें
Comment[hr]=Pristup Internetu
Comment[hu]=Internetelérés
Comment[id]=Akses Internet
Comment[it]=Accesso a Internet
Comment[ja]=インターネットにアクセス
Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ
Comment[ko]=인터넷 연결
Comment[lt]=Interneto prieiga
Comment[lv]=Piekļūt internetam
Comment[ml]=ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക
Comment[mr]=इंटरनेटमध्ये प्रवेश करा
Comment[nb]=Gå til Internett
Comment[nl]=Verbinding maken met internet
Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ
Comment[pl]=Skorzystaj z internetu
Comment[pt]=Aceder à Internet
Comment[pt_BR]=Acessar a internet
Comment[ro]=Accesaţi Internetul
Comment[ru]=Доступ в Интернет
Comment[sk]=Prístup do siete Internet
Comment[sl]=Dostop do interneta
Comment[sr]=Приступите Интернету
Comment[sv]=Gå ut på Internet
Comment[ta]=இணையத்தை அணுகுதல்
Comment[te]=ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి
Comment[th]=เข้าถึงอินเทอร์เน็ต
Comment[tr]=İnternet'e erişin
Comment[uk]=Доступ до Інтернету
Comment[vi]=Truy cập Internet
Comment[zh_CN]=访问互联网
Comment[zh_HK]=連線到網際網路
Comment[zh_TW]=連線到網際網路
Exec=/usr/bin/yandex-browser-stable %U
StartupNotify=true
Terminal=false
Icon=yandex-browser
Type=Application
Categories=Network;WebBrowser;
MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;
Actions=new-window;new-private-window;
[Desktop Action new-window]
Name=New Window
Name[am]=አዲስ መስኮት
Name[ar]=نافذة جديدة
Name[bg]=Нов прозорец
Name[bn]=নতুন উইন্ডো
Name[ca]=Finestra nova
Name[cs]=Nové okno
Name[da]=Nyt vindue
Name[de]=Neues Fenster
Name[el]=Νέο Παράθυρο
Name[en_GB]=New Window
Name[es]=Nueva ventana
Name[et]=Uus aken
Name[fa]=پنجره جدید
Name[fi]=Uusi ikkuna
Name[fil]=New Window
Name[fr]=Nouvelle fenêtre
Name[gu]=નવી વિંડો
Name[hi]=नई विंडो
Name[hr]=Novi prozor
Name[hu]=Új ablak
Name[id]=Jendela Baru
Name[it]=Nuova finestra
Name[iw]=חלון חדש
Name[ja]=新規ウインドウ
Name[kn]=ಹೊಸ ವಿಂಡೊ
Name[ko]=새 창
Name[lt]=Naujas langas
Name[lv]=Jauns logs
Name[ml]=പുതിയ വിന്‍ഡോ
Name[mr]=नवीन विंडो
Name[nl]=Nieuw venster
Name[no]=Nytt vindu
Name[pl]=Nowe okno
Name[pt]=Nova janela
Name[pt_BR]=Nova janela
Name[ro]=Fereastră nouă
Name[ru]=Новое окно
Name[sk]=Nové okno
Name[sl]=Novo okno
Name[sr]=Нови прозор
Name[sv]=Nytt fönster
Name[sw]=Dirisha Jipya
Name[ta]=புதிய சாளரம்
Name[te]=క్రొత్త విండో
Name[th]=หน้าต่างใหม่
Name[tr]=Yeni Pencere
Name[uk]=Нове вікно
Name[vi]=Cửa sổ Mới
Name[zh_CN]=新建窗口
Name[zh_TW]=開新視窗
Exec=/usr/bin/yandex-browser-stable
[Desktop Action new-private-window]
Name=New Incognito Window
Name[ar]=نافذة جديدة للتصفح المتخفي
Name[bg]=Нов прозорец „инкогнито“
Name[bn]=নতুন ছদ্মবেশী উইন্ডো
Name[ca]=Finestra d'incògnit nova
Name[cs]=Nové anonymní okno
Name[da]=Nyt inkognitovindue
Name[de]=Neues Inkognito-Fenster
Name[el]=Νέο παράθυρο για ανώνυμη περιήγηση
Name[en_GB]=New Incognito window
Name[es]=Nueva ventana de incógnito
Name[et]=Uus inkognito aken
Name[fa]=پنجره جدید حالت ناشناس
Name[fi]=Uusi incognito-ikkuna
Name[fil]=Bagong Incognito window
Name[fr]=Nouvelle fenêtre de navigation privée
Name[gu]=નવી છુપી વિંડો
Name[hi]=नई गुप्त विंडो
Name[hr]=Novi anoniman prozor
Name[hu]=Új Inkognitóablak
Name[id]=Jendela Penyamaran baru
Name[it]=Nuova finestra di navigazione in incognito
Name[iw]=חלון חדש לגלישה בסתר
Name[ja]=新しいシークレット ウィンドウ
Name[kn]=ಹೊಸ ಅಜ್ಞಾತ ವಿಂಡೋ
Name[ko]=새 시크릿 창
Name[lt]=Naujas inkognito langas
Name[lv]=Jauns inkognito režīma logs
Name[ml]=പുതിയ വേഷ പ്രച്ഛന്ന വിന്‍ഡോ
Name[mr]=नवीन गुप्त विंडो
Name[nl]=Nieuw incognitovenster
Name[no]=Nytt inkognitovindu
Name[pl]=Nowe okno incognito
Name[pt]=Nova janela de navegação anónima
Name[pt_BR]=Nova janela anônima
Name[ro]=Fereastră nouă incognito
Name[ru]=Новое окно в режиме инкогнито
Name[sk]=Nové okno inkognito
Name[sl]=Novo okno brez beleženja zgodovine
Name[sr]=Нови прозор за прегледање без архивирања
Name[sv]=Nytt inkognitofönster
Name[ta]=புதிய மறைநிலைச் சாளரம்
Name[te]=క్రొత్త అజ్ఞాత విండో
Name[th]=หน้าต่างใหม่ที่ไม่ระบุตัวตน
Name[tr]=Yeni Gizli pencere
Name[uk]=Нове вікно в режимі анонімного перегляду
Name[vi]=Cửa sổ ẩn danh mới
Name[zh_CN]=新建隐身窗口
Name[zh_TW]=新增無痕式視窗
Exec=/usr/bin/yandex-browser-stable --incognito

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

@ -0,0 +1,55 @@
Племя: Собаки Роль: Выживший Внешность: Лиса
Дар предков: Мутация:
Достоинства: Циник (+2 против стресса)
Характеристики 14
*Телосложение ++++
*Ловкость ++
Смекалка +++
Инстинкт ++
Навыки 10
Выносливость (Тело) +
Драка (Тело) ++
Наблюдательность(СМ) +
Понимание(Смекалка) +
Лечение (Инстинкт)
Стойкость (Тело) ++
Знание зоны (Смекалка) +
Снаряжение:д6 еды,д6 воды,шипованная бита / мотоциклетная цепь
-------------------------------------------
Племя: Кошки Роль: Охотник Внешность: Белый тигр
Дар предков: Мутация:
Достоинства: Кожевенник
Характеристики 14
*Телосложение +++
*Ловкость +++
Смекалка ++
Инстинкт +++
Навыки 10
Выносливость (Тело) +
Драка (Тело) ++
Проницательность(Инст) +
Скрытность(Ловкость) +
Знание зоны(Смекалка) +
Охота (Ловк) ++
Снаряжение:д6 еды, 2д6 воды, два из: нож, копье, праща, лук+д6 стрел
----------------------------------------------
Племя: Кошки Роль: Лекарь Внешность: Гиена
Дар предков: Клич
Мутация: Эмокинез=лечение/урон эмпатии/инстинктам
Достоинства: Хирург (+2 при поднятии из нулей по урону)
Характеристики 14
Телосложение ++++
*Ловкость +++
Смекалка ++
*Инстинкт +++++
Навыки 10
Драка (Тело) ++
Проворство (Ловкость) +
Скрытность (Ловкость) ++
Зельеварение (Инстинкт) +
Лечение (Инстинкт) ++
Доминирование (Инстинкт) ++
Снаряжение:д6 еды,д6 воды,нож

@ -0,0 +1,575 @@
-- SQL Manager for PostgreSQL 6.4.1.56163
-- ---------------------------------------
-- Host : eci-db1-dev.eci.local
-- Database : cscd
-- Version : PostgreSQL 14.7 on x86_64-pc-linux-gnu, compiled by gcc (AstraLinuxSE 8.3.0-6) 8.3.0, 64-bit
CREATE SCHEMA pls AUTHORIZATION d79276;
SET check_function_bodies = false;
--
-- Structure for table entity :
--
SET search_path = pls, pg_catalog;
CREATE TABLE pls.entity (
entity_id integer DEFAULT nextval('entity_ent_id_seq'::regclass) NOT NULL,
rentity_type_id integer,
ts_deleted timestamp without time zone,
user_deleted varchar(50),
chatroom_uuid uuid
)
WITH (oids = false);
--
-- Structure for table ref_entity_type :
--
CREATE TABLE pls.ref_entity_type (
rentity_type_id integer DEFAULT nextval('entity_types_ent_type_id_seq'::regclass) NOT NULL,
rentity_type_name varchar(255),
rentity_type_label varchar(255),
rroute_id integer
)
WITH (oids = false);
--
-- Definition for type attr_type :
--
CREATE TYPE pls.attr_type AS ENUM (
'string', 'date', 'number', 'dict', 'outer', 'longstring', 'bool', 'file'
);
--
-- Structure for table ref_attr :
--
CREATE TABLE pls.ref_attr (
rattr_id serial NOT NULL,
rattr_name varchar(255),
rattr_type attr_type,
rattr_label varchar(255),
rattr_required boolean,
rattr_system boolean,
rattr_group_id integer,
rattr_no smallint,
rattr_view boolean,
rattr_multilple boolean
)
WITH (oids = false);
--
-- Structure for table entity_attr :
--
CREATE TABLE pls.entity_attr (
entity_attr_id integer DEFAULT nextval('entity_attr_ent_attr_id_seq'::regclass) NOT NULL,
rattr_id integer,
entity_id integer,
entity_attr_value varchar
)
WITH (oids = false);
--
-- Structure for table ref_attr_group :
--
CREATE TABLE pls.ref_attr_group (
rattr_group_id integer DEFAULT nextval('ref_attr_group_rag_id_seq'::regclass) NOT NULL,
rattr_group_name varchar(255),
rattr_group_label varchar(255),
rattr_group_no smallint,
rentity_type_id integer
)
WITH (oids = false);
--
-- Structure for table entity_stage :
--
CREATE TABLE pls.entity_stage (
entity_stage_id serial NOT NULL,
rstage_id integer,
entity_id integer
)
WITH (oids = false);
--
-- Structure for table ref_stage :
--
CREATE TABLE pls.ref_stage (
rstage_id serial NOT NULL,
rstage_name varchar(255),
rstage_label varchar(255),
rentity_type_id integer,
rstage_wait_others boolean,
rroute_id integer NOT NULL
)
WITH (oids = false);
--
-- Structure for table ref_actor :
--
CREATE TABLE pls.ref_actor (
ractor_id serial NOT NULL,
ractor_auth_group_name varchar(255),
ractor_label varchar(255)
)
WITH (oids = false);
--
-- Structure for table ref_stage_action :
--
CREATE TABLE pls.ref_stage_action (
rstage_action_id integer DEFAULT nextval('ref_stage_actor_ref_stage_actor_id_seq'::regclass) NOT NULL,
rstage_id integer,
raction_id integer
)
WITH (oids = false);
--
-- Structure for table ref_attr_dict :
--
CREATE TABLE pls.ref_attr_dict (
rattr_dict_id serial NOT NULL,
rattr_id integer,
rattr_dict_no smallint,
rattr_dict_name varchar(255),
rattr_dict_label varchar(255)
)
WITH (oids = false);
--
-- Structure for table ref_attr_outer :
--
CREATE TABLE pls.ref_attr_outer (
rattr_outer_id serial NOT NULL,
rattr_id integer,
rattr_outer_name varchar(255),
rattr_outer_label varchar(255),
rattr_outer_fields varchar(255),
rattr_outer_path varchar(255),
rattr_outer_key varchar(255),
rattr_outer_sort varchar(255)
)
WITH (oids = false);
--
-- Structure for table ref_action :
--
CREATE TABLE pls.ref_action (
raction_id integer DEFAULT nextval(('pls.ref_action_raction_id_seq'::text)::regclass) NOT NULL,
raction_name varchar(255),
raction_label varchar(255)
)
WITH (oids = false);
--
-- Definition for sequence ref_action_raction_id_seq :
--
CREATE SEQUENCE pls.ref_action_raction_id_seq
START WITH 1
INCREMENT BY 1
MAXVALUE 2147483647
NO MINVALUE
CACHE 1;
--
-- Structure for table ref_attr_actor :
--
CREATE TABLE pls.ref_attr_actor (
rattr_actor_id serial NOT NULL,
rattr_id integer,
ractor_id integer,
rstage_id integer
)
WITH (oids = false);
--
-- Definition for foreign data wrapper postgres_fdw :
--
CREATE FOREIGN DATA WRAPPER postgres_fdw
HANDLER public.postgres_fdw_handler
VALIDATOR public.postgres_fdw_validator;
--
-- Definition for foreign server test4_tsup_ecp :
--
CREATE SERVER test4_tsup_ecp
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (
host 'test4.tsup.ecp',
dbname 'tsup',
port '5432',
use_remote_estimate 'true',
updatable 'false',
truncatable 'false');
--
-- Definition for view entity_view_list :
--
CREATE VIEW pls.entity_view_list
AS
SELECT s.entity_id,
string_agg((s.rattr_label)::text, ';'::text) AS attr_list,
string_agg((s.entity_attr_value)::text, ';'::text) AS label_list
FROM (
SELECT ent.entity_id,
ea.entity_attr_value,
ra.rattr_label
FROM (((entity ent
LEFT JOIN ref_entity_type ret ON ((ret.rentity_type_id =
ent.rentity_type_id)))
LEFT JOIN entity_attr ea ON ((ea.entity_id = ent.entity_id)))
LEFT JOIN ref_attr ra ON ((ra.rattr_id = ea.rattr_id)))
WHERE (ra.rattr_view = true)
ORDER BY ent.entity_id, ra.rattr_no
) s
GROUP BY s.entity_id;
--
-- Definition for view request_view_list :
--
CREATE VIEW pls.request_view_list
AS
SELECT s.entity_id,
string_agg((s.rattr_label)::text, ';'::text) AS label_list,
string_agg((s.entity_attr_value)::text, ';'::text) AS attr_list
FROM (
SELECT ent.entity_id,
ea.entity_attr_value,
ra.rattr_label
FROM (((entity ent
LEFT JOIN ref_entity_type ret ON ((ret.rentity_type_id =
ent.rentity_type_id)))
LEFT JOIN entity_attr ea ON ((ea.entity_id = ent.entity_id)))
LEFT JOIN ref_attr ra ON ((ra.rattr_id = ea.rattr_id)))
WHERE (((ret.rentity_type_name)::text = 'request'::text) AND
(ra.rattr_view = true))
ORDER BY ent.entity_id, ra.rattr_no
) s
GROUP BY s.entity_id;
--
-- Definition for view candidate_view_list :
--
CREATE VIEW pls.candidate_view_list
AS
SELECT s.entity_id,
string_agg((s.rattr_label)::text, ';'::text) AS label_list,
string_agg((s.entity_attr_value)::text, ';'::text) AS attr_list
FROM (
SELECT ent.entity_id,
ea.entity_attr_value,
ra.rattr_label
FROM (((entity ent
LEFT JOIN ref_entity_type ret ON ((ret.rentity_type_id =
ent.rentity_type_id)))
LEFT JOIN entity_attr ea ON ((ea.entity_id = ent.entity_id)))
LEFT JOIN ref_attr ra ON ((ra.rattr_id = ea.rattr_id)))
WHERE (((ret.rentity_type_name)::text = 'candidate'::text) AND
(ra.rattr_view = true))
ORDER BY ent.entity_id, ra.rattr_no
) s
GROUP BY s.entity_id;
--
-- Structure for table entity_entity :
--
CREATE TABLE pls.entity_entity (
ent_ent_id serial NOT NULL,
entity_id integer,
entity_id_link integer,
ts_created timestamp without time zone,
ts_deleted timestamp without time zone
)
WITH (oids = false);
--
-- Definition for view entity_group :
--
CREATE VIEW pls.entity_group
AS
SELECT ea.entity_attr_value AS entity_id,
count(*) AS vacancy,
1 AS vacancy_move,
1 AS vacancy_out
FROM ((ref_entity_type ret
LEFT JOIN entity e ON ((e.rentity_type_id = ret.rentity_type_id)))
LEFT JOIN entity_attr ea ON (((ea.entity_id = e.entity_id) AND
(ea.rattr_id = 11))))
GROUP BY ea.entity_attr_value;
--
-- Structure for table ref_stage_action_actor :
--
CREATE TABLE pls.ref_stage_action_actor (
rstage_action_actor_id integer DEFAULT nextval('ref_stage_action_actor_ref_stage_action_actor_id_seq'::regclass) NOT NULL,
rstage_action_id integer,
ractor_id integer
)
WITH (oids = false);
--
-- Structure for table ref_stage_action_stage :
--
CREATE TABLE pls.ref_stage_action_stage (
rstage_action_stage_id integer DEFAULT nextval('ref_stage_actor_stage_rstage_action_stage_id_seq'::regclass) NOT NULL,
rstage_action_id integer,
rstage_id integer
)
WITH (oids = false);
--
-- Structure for table ref_route :
--
CREATE TABLE pls.ref_route (
rroute_id serial NOT NULL,
rroute_name varchar(255),
rroute_label varchar(255),
rstage_id_start integer
)
WITH (oids = false);
ALTER TABLE ONLY pls.ref_route ALTER COLUMN rroute_id SET STATISTICS 0;
--
-- Structure for table ref_attr_group_actor :
--
CREATE TABLE pls.ref_attr_group_actor (
rattr_group_actor_id serial NOT NULL,
rattr_group_id integer,
ractor_id integer,
can_edit boolean DEFAULT false,
can_read boolean DEFAULT true
)
WITH (oids = false);
--
-- Structure for table entity_attr_log :
--
CREATE TABLE pls.entity_attr_log (
entity_attr_log_id serial NOT NULL,
rattr_id integer,
entity_id integer,
entity_attr_value varchar,
ts_change timestamp without time zone,
user_change varchar(50)
)
WITH (oids = false);
--
-- Definition for index entity_pkey :
--
ALTER TABLE ONLY pls.entity
ADD CONSTRAINT entity_pkey
PRIMARY KEY (entity_id);
--
-- Definition for index entity_types_pkey :
--
ALTER TABLE ONLY pls.ref_entity_type
ADD CONSTRAINT entity_types_pkey
PRIMARY KEY (rentity_type_id);
--
-- Definition for index ref_attr_pkey :
--
ALTER TABLE ONLY pls.ref_attr
ADD CONSTRAINT ref_attr_pkey
PRIMARY KEY (rattr_id);
--
-- Definition for index entity_attr_pkey :
--
ALTER TABLE ONLY pls.entity_attr
ADD CONSTRAINT entity_attr_pkey
PRIMARY KEY (entity_attr_id);
--
-- Definition for index ref_attr_group_pkey :
--
ALTER TABLE ONLY pls.ref_attr_group
ADD CONSTRAINT ref_attr_group_pkey
PRIMARY KEY (rattr_group_id);
--
-- Definition for index entity_stage_pkey :
--
ALTER TABLE ONLY pls.entity_stage
ADD CONSTRAINT entity_stage_pkey
PRIMARY KEY (entity_stage_id);
--
-- Definition for index ref_stage_pkey :
--
ALTER TABLE ONLY pls.ref_stage
ADD CONSTRAINT ref_stage_pkey
PRIMARY KEY (rstage_id);
--
-- Definition for index ref_actor_pkey :
--
ALTER TABLE ONLY pls.ref_actor
ADD CONSTRAINT ref_actor_pkey
PRIMARY KEY (ractor_id);
--
-- Definition for index ref_stage_actor_pkey :
--
ALTER TABLE ONLY pls.ref_stage_action
ADD CONSTRAINT ref_stage_actor_pkey
PRIMARY KEY (rstage_action_id);
--
-- Definition for index ref_attr_dict_pkey :
--
ALTER TABLE ONLY pls.ref_attr_dict
ADD CONSTRAINT ref_attr_dict_pkey
PRIMARY KEY (rattr_dict_id);
--
-- Definition for index ref_attr_outer_pkey :
--
ALTER TABLE ONLY pls.ref_attr_outer
ADD CONSTRAINT ref_attr_outer_pkey
PRIMARY KEY (rattr_outer_id);
--
-- Definition for index ref_action_pkey :
--
ALTER TABLE ONLY pls.ref_action
ADD CONSTRAINT ref_action_pkey
PRIMARY KEY (raction_id);
--
-- Definition for index ref_attr_actor_pkey :
--
ALTER TABLE ONLY pls.ref_attr_actor
ADD CONSTRAINT ref_attr_actor_pkey
PRIMARY KEY (rattr_actor_id);
--
-- Definition for index entity_attr_fk :
--
ALTER TABLE ONLY pls.entity_attr
ADD CONSTRAINT entity_attr_fk
FOREIGN KEY (entity_id) REFERENCES entity(entity_id);
--
-- Definition for index entity_attr_fk1 :
--
ALTER TABLE ONLY pls.entity_attr
ADD CONSTRAINT entity_attr_fk1
FOREIGN KEY (rattr_id) REFERENCES ref_attr(rattr_id);
--
-- Definition for index entity_fk :
--
ALTER TABLE ONLY pls.entity
ADD CONSTRAINT entity_fk
FOREIGN KEY (rentity_type_id) REFERENCES ref_entity_type(rentity_type_id);
--
-- Definition for index ref_attr_fk :
--
ALTER TABLE ONLY pls.ref_attr
ADD CONSTRAINT ref_attr_fk
FOREIGN KEY (rattr_group_id) REFERENCES ref_attr_group(rattr_group_id);
--
-- Definition for index entity_entity_pkey :
--
ALTER TABLE ONLY pls.entity_entity
ADD CONSTRAINT entity_entity_pkey
PRIMARY KEY (ent_ent_id);
--
-- Definition for index entity_entity_idx :
--
ALTER TABLE ONLY pls.entity_entity
ADD CONSTRAINT entity_entity_idx
UNIQUE (entity_id, entity_id_link);
--
-- Definition for index entity_entity_fk :
--
ALTER TABLE ONLY pls.entity_entity
ADD CONSTRAINT entity_entity_fk
FOREIGN KEY (entity_id) REFERENCES entity(entity_id);
--
-- Definition for index entity_entity_fk1 :
--
ALTER TABLE ONLY pls.entity_entity
ADD CONSTRAINT entity_entity_fk1
FOREIGN KEY (entity_id_link) REFERENCES entity(entity_id);
--
-- Definition for index ref_stage_action_actor_pkey :
--
ALTER TABLE ONLY pls.ref_stage_action_actor
ADD CONSTRAINT ref_stage_action_actor_pkey
PRIMARY KEY (rstage_action_actor_id);
--
-- Definition for index ref_stage_actor_stage_pkey :
--
ALTER TABLE ONLY pls.ref_stage_action_stage
ADD CONSTRAINT ref_stage_actor_stage_pkey
PRIMARY KEY (rstage_action_stage_id);
--
-- Definition for index ref_route_pkey :
--
ALTER TABLE ONLY pls.ref_route
ADD CONSTRAINT ref_route_pkey
PRIMARY KEY (rroute_id);
--
-- Definition for index ref_route_fk :
--
ALTER TABLE ONLY pls.ref_route
ADD CONSTRAINT ref_route_fk
FOREIGN KEY (rstage_id_start) REFERENCES ref_stage(rstage_id) DEFERRABLE;
--
-- Definition for index ref_stage_fk :
--
ALTER TABLE ONLY pls.ref_stage
ADD CONSTRAINT ref_stage_fk
FOREIGN KEY (rroute_id) REFERENCES ref_route(rroute_id) DEFERRABLE;
--
-- Definition for index ref_attr_group_actor_pkey :
--
ALTER TABLE ONLY pls.ref_attr_group_actor
ADD CONSTRAINT ref_attr_group_actor_pkey
PRIMARY KEY (rattr_group_actor_id);
--
-- Definition for index ref_attr_group_actor_fk :
--
ALTER TABLE ONLY pls.ref_attr_group_actor
ADD CONSTRAINT ref_attr_group_actor_fk
FOREIGN KEY (ractor_id) REFERENCES ref_actor(ractor_id) DEFERRABLE;
--
-- Definition for index ref_attr_group_actor_fk1 :
--
ALTER TABLE ONLY pls.ref_attr_group_actor
ADD CONSTRAINT ref_attr_group_actor_fk1
FOREIGN KEY (rattr_group_id) REFERENCES ref_attr_group(rattr_group_id) DEFERRABLE;
--
-- Definition for index entity_attr_log_pkey :
--
ALTER TABLE ONLY pls.entity_attr_log
ADD CONSTRAINT entity_attr_log_pkey
PRIMARY KEY (entity_attr_log_id);
--
-- Definition for index entity_attr_log_fk :
--
ALTER TABLE ONLY pls.entity_attr_log
ADD CONSTRAINT entity_attr_log_fk
FOREIGN KEY (entity_id) REFERENCES entity(entity_id);
--
-- Definition for index entity_attr_log_fk1 :
--
ALTER TABLE ONLY pls.entity_attr_log
ADD CONSTRAINT entity_attr_log_fk1
FOREIGN KEY (rattr_id) REFERENCES ref_attr(rattr_id);
--
-- Comments
--
COMMENT ON COLUMN pls.entity.rentity_type_id IS 'ref_entity_type';
COMMENT ON COLUMN pls.entity.ts_deleted IS 'пометка, что сущность удалена в корзину';
COMMENT ON COLUMN pls.entity.chatroom_uuid IS 'ссылка на чат в мессенджере';
COMMENT ON COLUMN pls.ref_entity_type.rroute_id IS 'указатель маршрута, там будет с какого этапа начинается';
COMMENT ON COLUMN pls.ref_attr.rattr_label IS 'отображаемое имя';
COMMENT ON COLUMN pls.ref_attr.rattr_required IS 'обязательный';
COMMENT ON COLUMN pls.ref_attr.rattr_system IS 'служебный';
COMMENT ON COLUMN pls.ref_attr.rattr_group_id IS 'группа атрибутов';
COMMENT ON COLUMN pls.ref_attr.rattr_no IS 'порядковый номер';
COMMENT ON COLUMN pls.ref_attr.rattr_view IS 'это атрибут используется для отображения и идентификации сущности';
COMMENT ON COLUMN pls.ref_attr.rattr_multilple IS 'сущность может иметь несколько значений (копий) этого атрибута. Например, у укандидата несколько образований.';
COMMENT ON COLUMN pls.ref_attr_group.rattr_group_no IS 'порядковый номер для отображения';
COMMENT ON COLUMN pls.ref_attr_group.rentity_type_id IS 'указатель какой тип сущности обладает этой группа атрибутов';
COMMENT ON COLUMN pls.entity_stage.rstage_id IS 'из справочника этапов';
COMMENT ON COLUMN pls.entity_stage.entity_id IS 'какая сущность соединена с этим этапом';
COMMENT ON COLUMN pls.ref_stage.rentity_type_id IS 'какой тип сущности создавать при создании этого этапа';
COMMENT ON COLUMN pls.ref_stage.rstage_wait_others IS 'когда этап переходит на этот, если True, то всегда проверяет, есть ли потенциальные другие этапы, которые в этот переходят. Если такие есть - ждет. Если таких нет (или они закончились и перешли в этот), то включает этот этап.';
COMMENT ON COLUMN pls.ref_stage.rroute_id IS 'маршрут, который объединяет все этапы';
COMMENT ON COLUMN pls.ref_actor.ractor_auth_group_name IS 'соответствие auth.auth_groups.name';
COMMENT ON TABLE pls.ref_stage_action IS 'на этапе можно совершить разные действия разным акторам';
COMMENT ON COLUMN pls.ref_stage_action.rstage_id IS 'на каком этапе';
COMMENT ON COLUMN pls.ref_stage_action.raction_id IS 'какое действие может выполнить';
COMMENT ON COLUMN pls.ref_attr_dict.rattr_dict_no IS 'порядковый номер при отображении';
COMMENT ON COLUMN pls.ref_attr_dict.rattr_dict_name IS '!! После использования нельзя редактировать. Именно это поле записывается в значения атрибутов';
COMMENT ON COLUMN pls.ref_attr_dict.rattr_dict_label IS 'Отображаемый текст варианта выбора';
COMMENT ON COLUMN pls.ref_attr_outer.rattr_outer_fields IS 'какие поля показывать при выборе из справочника';
COMMENT ON COLUMN pls.ref_attr_outer.rattr_outer_path IS 'где находится этот справочник';
COMMENT ON COLUMN pls.ref_attr_outer.rattr_outer_key IS 'какое поле записывается в значение атрибута';
COMMENT ON COLUMN pls.ref_attr_outer.rattr_outer_sort IS 'по каким полям сортируется при отображении справочника';
COMMENT ON TABLE pls.ref_attr_actor IS 'Какой атрибут на каком этапе может редактирвоать';
COMMENT ON COLUMN pls.ref_attr_actor.rattr_id IS 'какой атрибут';
COMMENT ON COLUMN pls.ref_attr_actor.ractor_id IS 'какой актор';
COMMENT ON COLUMN pls.ref_attr_actor.rstage_id IS 'на каком конкретном этапе (NULL=на всех)';
COMMENT ON SERVER test4_tsup_ecp IS 'Используется для внешних таблиц в схеме egt';
COMMENT ON TABLE pls.entity_entity IS 'Связь двух сущностей';
COMMENT ON COLUMN pls.entity_entity.ent_ent_id IS 'уникальный ключ связки';
COMMENT ON COLUMN pls.entity_entity.entity_id IS 'сущность_родитель';
COMMENT ON COLUMN pls.entity_entity.entity_id_link IS 'сущность_дитя';
COMMENT ON TABLE pls.ref_stage_action_actor IS 'какое действие на каком этапе может выполнить какой актор';
COMMENT ON COLUMN pls.ref_stage_action_actor.rstage_action_id IS 'указатель на этап и действие';
COMMENT ON COLUMN pls.ref_stage_action_actor.ractor_id IS 'указатель на актора';
COMMENT ON COLUMN pls.ref_stage_action_stage.rstage_action_id IS 'после какого действия другого этапа';
COMMENT ON COLUMN pls.ref_stage_action_stage.rstage_id IS 'какие новые этапы начинаются (возможна развилка и распаллеливание)';
COMMENT ON TABLE pls.ref_route IS 'Маршрут, который объединяет несколько этапов';
COMMENT ON COLUMN pls.ref_route.rstage_id_start IS 'Этап, с которого начинается этот маршрут';
COMMENT ON COLUMN pls.ref_attr_group_actor.rattr_group_id IS 'в какой группе атрибутов';
COMMENT ON COLUMN pls.ref_attr_group_actor.ractor_id IS 'какой актор (роль)';
COMMENT ON COLUMN pls.ref_attr_group_actor.can_edit IS 'может редактировать все атрибуты в этой группе (по умолчанию нет)';
COMMENT ON COLUMN pls.ref_attr_group_actor.can_read IS 'может видеть атрибуты в этой группе (по умолчанию да)';

Binary file not shown.

@ -0,0 +1,32 @@
раньше считали, что есть отдельно количество запуска, количество выпуска.
и запускали всю сумму с КЗУ.
теперь отдельно запускается строки матрицы, с количеством запуска=выпуска=требуемое по плану, идеальное.
и в дополнение строки с лишними, запасными деталями, с чуть меньшим приоритетом бронирования.
таким образом, работник знает, что ему нужно ЗАПУСТИТЬ N деталей в день X.
и сделать свою чертову работу.
А не ВЫПУСТИТЬ N деталей к X числу.
все, что он запустил - нужно. Все это про запас.
У строки матрицы есть признак, что это дополнительные детали, по КЗУ или испытаниям.
При бронировании с паспорта, в первую очередь привязываются годные детали с паспорта к строкам матрицы,
которые идут до конца, правильные, идеальные.
Паспорта с браком в первую очередь привязывается к строкам матрицы КЗУ.
К "испытательным" строкам матрицы тоже привязываются годные детали.
И наконец, если на паспорте еще есть годные детали, они привяжутся к строке матрицы с КЗУ и поедут дальше.
***Сохранение листа комплектации
-вызывается _мк_лист_комплектации_upd, там указано количество
внутри вызывается _мк_лист_комплектации_инфо_строки который подсчитывает количество.
изменяет мк_лист_комплектации_состав, сохраняя новое количество.
-затем вызывается _мк_лист_комплектации_пересчитать_ПЦ,
в котором по количеству определяется диапазон ПЦ
и проставляется производственный цикл в состав
-

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Loading…
Cancel
Save

Powered by TurnKey Linux.