Тест: различия между версиями
LePacko (обсуждение | вклад) Нет описания правки Метка: отменено |
LePacko (обсуждение | вклад) Нет описания правки Метка: ручная отмена |
||
Строка 1: | Строка 1: | ||
[[#Test| Testing anchor]] | [[#Test| Testing anchor]] | ||
[[File: | [[File:]] | ||
<div style="box-shadow: 0 0 0.3em #999; border-radius: 2em solid red; margin: 1em 0 1em 0; padding: 1px;border-radius: 10px;"> | <div style="box-shadow: 0 0 0.3em #999; border-radius: 2em solid red; margin: 1em 0 1em 0; padding: 1px;border-radius: 10px;"> |
Версия от 18:55, 14 августа 2024
Testing anchor [[File:]]
ГОООООООЛ!
- Данные бланки предоставляются в качестве рекомендованных шаблонов для документирования большинства действий на станции. Многие документы могут быть дополнены или изменены с учётом конкретного случая.
- Документ имеет юридическую силу если соответствует ОПРС, КЗ и СРП, а также имеет печать отдела-отправителя либо принимающего в работу отдела.
- Допускается написание документов «от руки», если нет возможности использования бланка, а структура самого документа соответствует всем нормам кодификации.
- В случае несоответствия документа нормам кодификации или в случае отсутствия печати отдела-отправителя может быть отказано в принятии документа в работу.
- Печать Капитана станции заменяет собой любую печать отдела. Однако злоупотребление данным правом может нести для Капитана отрицательные последствия, вплоть до его отстранения от должности.
- Документы, направляемые центральным командованием, могут иметь любую кодификацию и вид, любой документ центрального командования, соответствующий ОПРС, КЗ и имеющий печать ЦК всегда имеет юридическую силу и должен быть принят в работу.
Нормы кодификации документа
Стандартный шаблон документа | |
---|---|
Данный шаблон является основой для всех остальных документов НаноТрейзен. При составлении документа, которого нету в перечне образцов необходимо придерживаться этого шаблона. Для написания документа от руки допустим также следующий вид документа, сохраняющий его структуру (если вы не можете скопировать образец бланка с оформлением): Station XX-000 КОД-КОД ============================================= НАИМЕНОВАНИЕ ДОКУМЕНТА ============================================= Время от начала смены и дата: Составитель документа: Должность составителя: Полное содержание документа со всей необходимой информацией и описанием ============================================= Место для печатей |
[color=#1b487e]███░███░░░░██░░░░[/color] [color=#1b487e]░██░████░░░██░░░░[/color] [head=3]Бланк документа[/head] [color=#1b487e]░░█░██░██░░██░█░░[/color] [head=3]НаноТрейзен[/head] [color=#1b487e]░░░░██░░██░██░██░[/color] [bold]Station XX-000 КОД-КОД[/bold] [color=#1b487e]░░░░██░░░████░███[/color] ============================================= НАИМЕНОВАНИЕ ДОКУМЕНТА ============================================= Время от начала смены и дата: Составитель документа: Должность составителя: Полное содержание документа со всей необходимой информацией и описанием ============================================= [italic]Место для печатей[/italic] |
- Station XX-000 указывает название станции, её буквенный и цифровой номер. Код станции можно посмотреть на главную страницу КПК или в программе «Манифест». Пример: Barratry LV-800.
- КОД-КОД указывает код отдела отправителя документа и код отдела, принимающего документ в работу. В случае, если документ предназначен для внутреннего использования в отделе (никому не направляется), пишется только код отдела, создавшего документ.
- Если документ создается или направляется конкретному лицу (не представителю определенной должности отдела, а имеет именно личный характер), необходимо вместо кода отдела указать ПД (персональный документ).
Коды отделов | |
---|---|
ЦК | Центральное командование |
КОМ |
Командование |
СБ | Служба Безопасности |
ИНЖ | Инженерный отдел |
МЕД | Медицинский отдел |
НИО | Научно-исследовательский отдел |
СНБ | Отдел Снабжения |
СРВ | Сервисный отдел |
ЮР | Юридический департамент |
ПД | Персональный (личный) документ |
- В любом документе обязаны быть указаны следующие данные:
- Время от начала смены и дата – можно посмотреть на главной странице КПК.
- Составитель документа – полное официальное имя (ФИО), соответствующее документам составителя.
- Должность составителя – полное наименование должности без сокращений.
- Время от начала смены и дата – можно посмотреть на главной странице КПК.
- АВД и Магистрат относится к Юридическому департаменту и не является членом командования.
- Если Глава отдела составляет документ для внутреннего использования (внутри отдела), то указывается код отдела, а не код командования. Документы командования практически всегда несут в себе отчётный характер или являются двусторонними.
- Большинство документов СБ имеет право заверить и Смотритель, если в комментарии к форме явно не указано обратное.
Связь с Центральным Командованием
Связь с Центральным Командованием осуществляется с помощью факсов дальнего действия, которые от станции к станции могут находится в разных местах. Обычно они расположены в каюте капитана и на мостик, также такие факсы могут присутствовать в кабинетах глав отделов. Следует помнить, что не стоит тревожить ЦК без веской на то причины, отправлять им множество одинаковых факсов за раз. Данные формы предназначены для связи станции с Секторальным Центральным Командованием.
Шаблоны документов
Сегодня 10/11/2567
▶ По отделам ◀
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
|
| ||||
| ||||
|
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
|
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
|
| ||||
| ||||
| ||||
| ||||
|
| ||||
| ||||
| ||||
| ||||
|
| ||||
| ||||
|
| ||||
| ||||
| ||||
|
▶ По видам ◀
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
|
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
|
| ||||
| ||||
| ||||
| ||||
|
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
| ||||
|
| ||||
|
| ||||
| ||||
| ||||
| ||||
| ||||
|
| ||||
| ||||
| ||||
| ||||
| ||||
|
| ||||
| ||||
| ||||
|
| ||||
| ||||
| ||||
| ||||
| ||||
|
{| class="wikitable mw-collapsible mw-collapsed" style="color: red; width: 100%; font-size: 20px; background:#383842;" </nowiki> !
|-
|
Обвинительное заключение | |
---|---|
|
[color=#1b487e]███░███░░░░██░░░░[/color] [color=#1b487e]░██░████░░░██░░░░[/color] [head=3]Бланк документа[/head] [color=#1b487e]░░█░██░██░░██░█░░[/color] [head=3]НаноТрейзен[/head] [color=#1b487e]░░░░██░░██░██░██░[/color] [bold]Station XX-000 СБ[/bold] [color=#1b487e]░░░░██░░░████░███[/color] ============================================= ОБВИНИТЕЛЬНОЕ ЗАКЛЮЧЕНИЕ ============================================= Время от начала смены и дата: Составитель документа: Должность составителя: Я, (ФИО), в должности (полное наименование должности), разрешаю произвести арест (ФИО), в должности (полное наименование должности) в связи с подозрением в совершении данным лицом следующих правонарушений: В ходе предварительного следствия были обнаружены доказательства, указывающие на совершение правонарушения данным лицом. Прямые доказательства: Косвенные доказательства: ============================================= [italic]Место для печатей[/italic] |
|- |
Приговор | |
---|---|
|
[color=#1b487e]███░███░░░░██░░░░[/color] [color=#1b487e]░██░████░░░██░░░░[/color] [head=3]Бланк документа[/head] [color=#1b487e]░░█░██░██░░██░█░░[/color] [head=3]НаноТрейзен[/head] [color=#1b487e]░░░░██░░██░██░██░[/color] [bold]Station XX-000 СБ[/bold] [color=#1b487e]░░░░██░░░████░███[/color] ============================================= ПРИГОВОР ============================================= Время от начала смены и дата: Составитель документа: Должность составителя: Я, (ФИО), в должности (полное название должности), выношу приговор согласно данным мне полномочиям в отношении (ФИО), в должности (полное название должности). Данное лицо нарушило следующие статьи Корпоративного Закона: (перечисление статей) С учетом всех смягчающих и отягчающих обстоятельств, правовое наказание данного лица представлено в виде: (суммарный срок, пожизненно заключение, либо приговор к казни) Административное наказание: (понижение в должности, увольнение) Срок заключения под стражу отсчитывается с: (время начала заключения) ============================================= [italic]Место для печатей[/italic] |
|- |
Заключение о состоянии здоровья | |
---|---|
|
[color=#1b487e]███░███░░░░██░░░░[/color] [color=#1b487e]░██░████░░░██░░░░[/color] [head=3]Бланк документа[/head] [color=#1b487e]░░█░██░██░░██░█░░[/color] [head=3]НаноТрейзен[/head] [color=#1b487e]░░░░██░░██░██░██░[/color] [bold]Station XX-000 МЕД-ПД[/bold] [color=#1b487e]░░░░██░░░████░███[/color] ============================================= ЗАКЛЮЧЕНИЕ О СОСТОЯНИИ ЗДОРОВЬЯ ============================================= Время от начала смены и дата: Составитель документа: Должность составителя: Пациент (ФИО), в должности (полное наименование должности), был направлен на медицинское обследование в связи с (причина прохождения обследования). Был произведён полный осмотр пациента, проведены необходимые исследования и анализы. Состав врачебной комиссии: (ФИО врача, полное наименование должности или специализации) Состояние пациента при поступлении: Поставленный диагноз: Психологическое состояние пациента: Оказанное лечение в ходе госпитализации: ============================================= [italic]Место для печатей[/italic] |
|-
|}
Загрузка... ██░░░░░░░░░░░░░░░░░░ 13% Оͬ͌̔̄̀Ш̫̼̈ͭͧͅИ̣̩̰̳Б̥̜̥̇͊̿͆̍̚̕К̫̽̍̋ͫ́͛͑А̛̼̚ классификации документов. Оͬ͌̔̄̀Ш̫̼̈ͭͧͅИ̣̩̰̳Б̥̜̥̇͊̿͆̍̚̕К̫̽̍̋ͫ́͛͑А̛̼̚ установления защищенного соединения. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Обнаружение неавторизированного канала связи. Подтвердить запрос?
| ||||
| ||||
| ||||
| ||||
|
Test
<button class="tablinks" onclick="openCity(event, 'Москва')">Москва</button> <button class="tablinks" onclick="openCity(event, 'Берлин')">Берлин</button> <button class="tablinks" onclick="openCity(event, 'Пекин')">Пекин</button>
p = {} p.chem = mw.text.jsonDecode(mw.title.new("User:IanComradeBot/chem_prototypes.json"):getContent()) p.react = mw.text.jsonDecode(mw.title.new("User:IanComradeBot/react_prototypes.json"):getContent())
p.fillReactTable = function(frame)
local out = ""
for _, reactPrototype in pairs(p.react) do if tablelength(reactPrototype.effects) ~= 0 then local reactants = {} local reactantTemplate = "%s %s"
for reactantId, reactantValue in pairs(reactPrototype.reactants) do
local reactantChemData = p.chem[reactantId]
local reactantText = string.format(reactantTemplate, reactantValue.amount, reactantChemData.id, reactantChemData.name)
if reactantValue.catalyst then
reactantText = reactantText .. " (катализатор)"
end
table.insert(reactants, reactantText)
end
local templateArgs = {}
templateArgs.reactants = table.concat(reactants, "
")
local products = {} local productTemplate = "%s %s"
for productId, productAmount in pairs(reactPrototype.products) do
local productChemData = p.chem[productId]
local productText = string.format(productTemplate, productAmount, productChemData.id, productChemData.name)
table.insert(products, productText)
end
-- Эффекты реакции
if tablelength(reactPrototype.effects) then
for _, effect in pairs(reactPrototype.effects) do
if effect.description ~= "" then
table.insert(products, effect.description)
end
end
end
templateArgs.products = table.concat(products, "
")
templateArgs.actions = getActions(reactPrototype)
local template = "Строка_реакции"
out = out .. frame:expandTemplate{ title = template, args = templateArgs} end end return out end
p.fillChemTable = function(frame)
local out = "" local group = frame.args.group local groups if group ~= nil and group ~= "" then groups = mw.text.split(group, ",") end
local additional = frame.args.additional if additional ~= nil and additional ~= "" then
local additionalChemPrototypeIds = mw.text.split(additional, ",") for _, chemPrototypeId in pairs(additionalChemPrototypeIds) do out = out .. fillChemistryRow(chemPrototypeId, frame) end end
for _, chemPrototype in pairs(p.chem) do
if group == nil or group == "" or contains(groups, chemPrototype.group) then out = out .. fillChemistryRow(chemPrototype.id, frame) end end
return out end
p.fillContentOfDispencer = function(frame) local dispencer = frame.args.dispencer local out = "" for _, chemId in pairs(dispencersContent()[dispencer]) do out = out .. frame:expandTemplate{ title = "Кнопка_реагента", args = {chemId, "y"}} end return out end
function dispencersContent() local content = { ["Химикатов"]={ "Aluminium","Carbon","Chlorine","Copper","Ethanol","Fluorine","Hydrogen","Iodine", "Iron","Lithium","Mercury","Nitrogen","Oxygen","Phosphorus","Potassium","Radium", "Silicon","Sodium","Sugar","Sulfur","SulfuricAcid" }, ["Соды"]={ "Water","Ice","Coffee","Cream","Tea","GreenTea","IcedTea","IcedGreenTea", "Cola","SpaceMountainWind","DrGibb","SpaceUp","TonicWater","SodaWater","LemonLime","Sugar", "JuiceOrange","JuiceLime","JuiceWatermelon" }, ["Алкоголя"]={ "LemonLime","Sugar","JuiceOrange","JuiceLime","SodaWater","TonicWater","Beer","CoffeeLiqueur", "Whiskey","Wine","Vodka","Gin","Rum","Tequila","Vermouth","Cognac", "Ale","Mead" } } return content end
p.readArg = function(frame)
return mw.text.nowiki(p.chem[frame.args[1]][frame.args[2]])
end
function contains(list, x)
for _, v in ipairs(list) do
if v == x then return true end
end
return false
end
fillChemistryRow = function(chemPrototypeId, frame)
local out = "" local chemPrototype = p.chem[chemPrototypeId] local templateArgs = {} templateArgs.id = chemPrototype.id templateArgs.name = chemPrototype.name templateArgs.description = chemPrototype.desc .. " На вид " .. chemPrototype.physicalDesc .. "." templateArgs.color = chemPrototype.color templateArgs.textColor = chemPrototype.textColor templateArgs.effects = getEffects(chemPrototype.id) templateArgs.recipes_count = tablelength(chemPrototype.recipes)
templateArgs.reactants = "" templateArgs.products = "" templateArgs.action = ""
if templateArgs.recipes_count == 0 then templateArgs.recipes_count = 1 -- Для заполнения параметра rowspan строки out = out .. frame:expandTemplate{ title = "Первая_строка_химического_вещества", args = templateArgs} else local firstReact = true for _, reactId in pairs(chemPrototype.recipes) do
local reactPrototype = p.react[reactId] local reactants = {} local reactantTemplate = "%s %s"
for reactantId, reactantValue in pairs(reactPrototype.reactants) do
local reactantChemData = p.chem[reactantId]
local reactantText = string.format(reactantTemplate, reactantValue.amount, reactantChemData.id, reactantChemData.name)
if reactantValue.catalyst then
reactantText = reactantText .. " (катализатор)"
end
table.insert(reactants, reactantText)
end
templateArgs.reactants = table.concat(reactants, "
")
local products = {} local productTemplate = "%s %s"
for productId, productAmount in pairs(reactPrototype.products) do
local productChemData = p.chem[productId]
local productText = string.format(productTemplate, productAmount, productChemData.id, productChemData.name)
table.insert(products, productText)
end
-- Эффекты реакции
if tablelength(reactPrototype.effects) then
for _, effect in pairs(reactPrototype.effects) do
if effect.description ~= "" then
table.insert(products, effect.description)
end
end
end
templateArgs.products = table.concat(products, "
")
templateArgs.actions = getActions(reactPrototype)
local template = "Строка_химического_вещества" if firstReact then template = "Первая_строка_химического_вещества" firstReact = false end
out = out .. frame:expandTemplate{ title = template, args = templateArgs} end end return out end
getActions = function(reactPrototype)
local actions = {}
-- Температура local minMaxTemplate = "выше %sК и ниже %sК" local minTemplate = "выше %sК" local maxTemplate = "ниже %sК"
local hasMin = reactPrototype.minTemp ~= 0 local hasMax = reactPrototype.hasMax
local tempString = "" if hasMax and hasMin then tempString = string.format(minMaxTemplate, reactPrototype.minTemp, reactPrototype.maxTemp) elseif hasMin then tempString = string.format(minTemplate, reactPrototype.minTemp) elseif hasMax then tempString = string.format(maxTemplate, reactPrototype.maxTemp) end
for _, mixingCategory in pairs(reactPrototype.mixingCategories) do local image = getMixingImage(mixingCategory.id) if image ~= nil then table.insert(actions, string.format("Файл:%s", image)) -- Картинка end
table.insert(actions, mixingCategory.name .. " " .. tempString) -- Название
end
return table.concat(actions, "
")
end
getMixingImage = function(mixingId)
local images = { ["DummyMix"] = "Beaker.png", -- Смешивание ["DummyGrind"] = "Blender.png", -- Измельчение ["DummyJuice"] = "Blender.png", -- Выжимка ["DummyCondense"] = "Конденсатор газа.png", ["Centrifuge"] = "Центрифуга.png", ["Electrolysis"] = "Электролизер.png", ["Holy"] = "Библия.png" }
return images[mixingId]
end
function getEffects(chemPrototypeId)
local effects = ""
local chemPrototype = p.chem[chemPrototypeId] if chemPrototype.metabolisms == nil then return effects end
for metabolismGroupKey, metabolismGroup in pairs(chemPrototype.metabolisms) do effects = attachAsNewLine(effects, string.format("* %s (%s единиц в секунду)", metabolismGroupKey, metabolismGroup.rate)) for _, effect in pairs(metabolismGroup.effects) do if effect.description ~= "" then effects = attachAsNewLine(effects, "** "..effect.description) end end end
return effects
end
function tablelength(T)
local count = 0 for _ in pairs(T) do count = count + 1 end return count
end
function attachAsNewLine(originalStr, joinStr) return originalStr .. "\n" .. joinStr end
return p