как сделать скрипт для фотошопа

Как записать действия в фотошопе в скрипт

Скрипты — это автоматизация действий по средствам написания кода на языке программирование JavaScript или Visual Basic. Если вы обладаете такими познаниями, то возможности фотошопа можно сильно расширить.

Перейдем к примеру. В интернете в свободном доступе есть скрипт по автоматическому добавлении даты. Скачав и установив его, в меню фотошопа Файл — Сценарии появится новая команда Добавить дату. Если ее применить, то на фотографии появится дата создания файла.

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

Но как бы то ни было, сейчас я вас научу как это делать.

Шаг 1

Скачиваем плагин для записи действий в фотошоп — ScriptListener.8li.

Шаг 2

Его нужно будет скопировать в системную папку программы: C:\Program Files\Adobe\Adobe Photoshop CS5\Plug-ins; для более ранних версий программы C:\Program Files\Adobe\Adobe Photoshop\Scripting\Utilities.

Шаг 3

Если в этот момент фотошоп был открыт — перезапустите его.

Шаг 4

Сделайте любое действие в программе, затем сверните ее. На рабочем столе автоматические появятся два файла: ScriptingListenerJS.log и ScriptingListenerVB.log. В этих двух файлах идет запись действий как раз на двух разных языках JavaScript и Visual Basic соответственно.

как сделать скрипт для фотошопа

Шаг 5

Выбираете язык, что вам более понятен. В моем случае это JavaScript.

Шаг 6

Прежде чем начать, откройте файл через блокнот и удалите из него все записи, а затем сохраните.

Шаг 7

Делайте в фотошопе то, что хотите впоследствии автоматизировать.

Шаг 8

Шаг 9

Установим новосозданный скрипт в фотошоп. Откройте системную папку C:\Program Files\Adobe\Adobe Photoshop CS5\Presets\Scripts и скопируйте в нее файл. Перезапустите фотошоп.

Шаг 10

Чтобы файлики на рабочем столе вас не донимали, когда не записываете скрипты, то удалите из системной папки сам плагин.

Источник

Запись действий в Photoshop CS6 и CC в скрипт

Скрипты в Photoshop не только предоставляют возможность автоматизировать повторяющиеся действия, но и позволяют записывать события, производимые в Фотошопе пользователем, в скрипт! Это очень полезно, когда не знаешь, как прописать в программном коде то или иное действие.

Примечание. Для лучшего понимания материала, смотрите видео внизу этой странички.

Для того, чтобы Photoshop записывал свои действия, следует в папку C:\Program Files\Adobe\Adobe Photoshop CS6\Plug-ins или C:\Program Files\Adobe\Adobe Photoshop CS6 (64 Bit)\Plug-ins для 64-х битного Фотошопа поместить файл ScriptListener.8li. В более ранних версиях программы этот файл размещался в директории Files\Adobe\Adobe Photoshop CS5\Scripting\Utilities, а для CS6 его придётся скачать на официальном сайте программы или по ссылкам внизу этой страницы.

как сделать скрипт для фотошопа

Я пользуюсь JavaScript, поэтому далее буду рассматривать второй вариант.

Итак, перед записью событий откройте файл ScriptingListenerJS.log в любом текстовом редакторе, удалите все имеющиеся в нём записи и сохраните его. Затем произведите нужные действия в Photoshop`е.

Теперь открываю файл ScriptingListenerJS.log и вижу следующий код:

Теперь давайте убедимся, что в коде содержатся именно те действия, которые я совершил.

Для этого можно скопировать код, сохранить его в файле с расширением jsx, затем просто мышкой перетащить этот файл в рабочее окно Фотошопа.

Либо открыть редактор Adobe ExtendScript Toolkit CS6, инсталлирующийся при установке Photoshop CS6, выбрать в левом верхнем углу «Adobe Photoshop CS6», затем нажать на кнопку «Start running the script» (зелёный треугольник).

В любом случае, Фотошоп воспроизведёт действия, которые я только что записал.

Смотрите видео по материалам статьи:

Скачать файлы ScriptListener.8li для Photocsop CS6 и CC для Win32 и win64:

Источник

Как создать свои собственные скрипты Photoshop

как сделать скрипт для фотошопа

Надоело делать повторяющиеся задачи в Photoshop? Создайте скрипты фотошоп для автоматизации. В этой статье вы узнаете как освободить свое время для творчества!
Если вы используете Photoshop более нескольких месяцев, вы, несомненно, сталкивались с необходимостью повторять одинаковые задачи.

Действия — это отличное решение, но у них есть одно серьезное ограничение: они “глупы” и не могут сделать ничего более сложного, чем воспроизводить предписанные серии шагов.
К счастью, Adobe уже давно распознала эту проблему и добавила поддержку скриптов в Photoshop и большинство других своих инструментов. Скриптовый движок Photoshop позволяет писать в Applescript, VBScript или JavaScript и выполнять сложные операции, которые обычно требуют вмешательства человека.

Готовые скрипты можно скачать с файлообменников, можно заказать их написание специалистам, либо создать самостоятельно.

Ваши скрипты могут делать все, что может Photoshop

Итак, каков пример того, что скрипт может сделать, а действие — нет? Возьмите самый простой пример включения и выключения видимости слоя. Действие может легко отключить видимость слоя (или включить его), но оно не может разумно переключать видимость. Скрипт может определить текущее состояние видимости данного слоя, а затем выполнить другую задачу в соответствии с этим состоянием.

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

Версии фотошопа

Если вы используете версию Photoshop более раннюю, чем CS5, руководство по созданию скриптов доступно в папке «Приложение»> «Photoshop»> «Скрипты». Если вы используете CS6, вы обнаружите, что он не установлен по умолчанию. Вам нужно скачать его здесь (https://www.adobe.com/devnet/photoshop/scripting.html?red=a). Вы также можете найти полные справочники скриптов в этой же ссылке.
Когда вы освоитесь со скриптами, вы сможете автоматизировать многие функции в Photoshop, будь то создание 1000 веб-изображений или автоматическое создание метаданных с вашими уведомлениями об авторских правах.

Действие или скрипт?

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

Сделайте свой собственный скрипт

Шаг 01

Вы можете создать свой скрипт в Textpad или Notepad. Вы найдете полное справочное руководство в каталоге установки Photoshop под названием «Руководство по написанию скриптов». Там же есть несколько примеров скриптов.
Использование JavaScript в качестве языка скриптов (Photoshop также поддерживает Visual Basic и AppleScript), эти языки обеспечат работу вашего скрипта на ПК и Mac. Для того, чтобы проиллюстрировать суть процесса, можно создать скрипт, который просто выводит сообщение.

Шаг 02

Введите следующий текст в ваш текстовый редактор:

var docRef = app.activeDocument; заменить на картинку
var dlg = new Window(‘dialog’, ‘My first script!’,[100,100,480,250]);
dlg.btnPnl = dlg.add(‘panel’, [25,15,365,125], ‘Hello world!’);
dlg.btnPnl.testBtn = dlg.btnPnl.add(‘button’, [15,30,305,50], ‘Finished’, );
dlg.btnPnl.testBtn.onClick = dobuild;
dlg.show();
function dobuild() <
alert(«Congratulations — it all worked!»);
dlg.close();
>

Сохраните документ как testscript.jsx, если вы используете Photoshop CS2, или testscript.js, если вы используете Photoshop CS3 и выше.

Шаг 03

В Photoshop откройте документ, над которым вы работаете. Выберите «Файл»> «Скрипты»> «Обзор» и найдите свой скрипт (или один из примеров скриптов, если вы еще не набрались смелости, чтобы создать свой собственный).

как сделать скрипт для фотошопа

Все хорошо, ваш скрипт откроется и выполнится. Если вы используете приведенный выше пример скрипта, вы увидите диалоговое окно с текстом и кнопкой.
Нажав на кнопку, вы увидите всплывающее сообщение, но при нажатии кнопки Photoshop сможет выполнять любые задачи. Вот где проявляется настоящая сила скриптов! Скрипты могут делать все, что может делать Photoshop: применять фильтры, изменять размеры документов, отображать или скрывать слои, добавлять корректирующие слои, а также сохранять и экспортировать документы.

Установите скрипты фотошоп на основе событий

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

Источник

Основы скриптов в Photoshop на примере выравнивания тона изображений товара

Предисловие: экшены в Photoshop школьники уже освоили, и без проблем добавляют логотипы своих пабликов на тысячи изображений, а некоторые девочки пакетно обрабатывают фото с пляжей. Пора бы выучить что-нибудь более сложное? Рынок, как видите, растет : )

В Photoshop для автоматизации работы существует ещё один, гораздо более продвинутый инструмент — язык программирования JavaScript. Для работы вам потребуется немного освоить скриптинг для автоматизации некоторых задач и избавления от рутины. Это ни в коем случае не программирование, не бойтесь. Для освоения вам потребуется лишь минимум Photoshop CS2 и максимум желания прокачать свои скилы.

Писать код мы будем в программе ExtendScript Toolkit, которая поставляется вместе с Photoshop, и большинство нормальных моушн-дизайнеров давно осведомлены об этой и ещё паре программ для написания кода. Я практик, поэтому и реализовывать скрипт будем под реальную задачу, которая передо мной стояли на работе.

Задача: в любых интернет-магазинах есть картинки товара, в крупных магазинах товар исчисляется десятками тысяч. Обычно сидят 2-3 девочки-ретушера и обрабатывают фотографии товара: обтравливают, добавляют белый фон, увеличивают контраст, добавляют отражения, ретушируют обложки… но упускают из вида очень важный момент – разная насыщенность, разный контраст, разный цветовой баланс отдельных изображений. Посмотрите на картинку ниже. Обложки явно отличаются по контрасту, цвету… если вывести средние тона, то корни проблемы бросаются в глаза.

как сделать скрипт для фотошопа

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

Начнем издалека. Что же такое JavaScript в Photoshop?
Я выбрал JS как язык для скриптования в продуктах Adobe, потому что он работает и на Windows, и на MAC. Если вы ярый приверженец винды, то используйте бейсик, если вы неукротимый фанат Мака, то AppleScript в помощь. А я за универсальность.

Основы:
DOM. Это та изнанка программы, которая дает нам возможность получат доступ к различным компонентам Photoshop через язык программирования. Это иерархическое представление Photoshop, каждой его части и возможности, включая работу с открытыми изображениями. Все то, что вы можете сделать мышкой, вы сможете сделать и скриптом. Например, если вы хотите получить доступ к прозрачности слоя, необходимо пройтись по пути Application> Document> Layer> Opacity, а код будет такой

Все довольно логично, например Layer Comp class отвечает за управление просмотром нескольких версий макета в одном файле, что в общем то и делает оригинальный инструмент Photoshop.

Важно понять, что подразумевается под объектами. Сам Photoshop это объект, текст это объект, направляющие это объект, каждый канал RGB является объектом. Все, что кликается мышкой — объекты. Допустим, вы создали новый документ, а с точки зрения программы вы создали новый объект.
как сделать скрипт для фотошопа
Основы программирования объяснять я не стану, слишком много людей с ними знакомы. Если вы не знакомы, то найдете необходимую информацию везде, начиная c Google play и заканчивая форумами школьников. Для затравки, откройте ExtendScript Toolkit и напишите: alert(«My first Hello Hell!» + app.version); Запустите через редактор скриптов, обрадуйтесь своему первому успешно скомпилированному приложению. Скрипты для Adobe Photoshop имеют расширение jsx.

Вводная информация:
Переменные обозначаются как var borderWidth = 10
var — переменная. А borderWidth — имя переменной (как думаете, что оно означает?).
Затем переменной нужно присвоить значение: = 10

В заголовке скрипта иногда имеет смысл писать строчку #target photoshop, которая будет указывать, что данный скрипт только для Photoshop.

Активный объект
Когда Вы работает в Photoshop, Вы можете рисовать только на слое, который активен в данный момент. Для скриптов тоже важно, какой объект выбран, т.к. скрипты тоже могут и будут рисовать. Ниже приведен пример создания документа и выбор слоя активным:

var doc_nmb_1 = documents.add(500, 500) var doc_nmb_2 = documents.add(500, 500) //Установим Document 1 как активный документ activeDocument = doc_nmb_1 //Сделаем Document 2 активным activeDocument = doc_nmb_2 //Добавим слоев к документам var layer1 = doc_nmb_2.artLayers.add() var layer2 = doc_nmb_2.artLayers.add() //Сделаем 1-ой слой документа 2 активным. ActiveLayer отвечает за чтение и запись выбранного слоя. doc_nmb_2.ActiveLayer = layer1 //Делаем 2-ой слой документа 2 активным doc_nmb_2.ActiveLayer = layer2

Создание нового документа происходит благодаря следующему коду, создаются квадратные изображения в размерах 72 и 144.

var docRef = app.documents.add(72, 72) var otherDocRef = app.documents.add (144,144)

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

Главная фишка: конструкция If Else, которая и позволяет добавлять условия, которых не хватает в action. Уверен, многие уже, увидев зарплаты программистов, пытались освоить программирование и if else наверняка писали, поэтому по основам мы просто пробежимся:

if(!content) content =”404”;

Мы проверяем, есть ли у переменной content значение, и если его нет, то присваиваем значение 404. Можно расписать и более сложную обработку, например:

С If мы разобрались, а что же делает else? В конструкции else мы указываем, что выполнять в том случае, если в if значение будет false.

Учитывая это, мы уже может написать необходимый код с событийностью:

Как вы видите, если изображение равняется по высоте 2480px, то просто выскакивает ругающееся на дизайнера окошко. Если изображение вертикальное, то применяется определенная группа экшенов для подготовки контента, если горизонтальная, то другая группа экшенов.

Какие ещё возможности можно добавить в скрипт, или могли бы быть просто интересны?
Создание нового документа нужного формат делается довольно просто:

var docRef = app.documents.add(297, 210, 300, «A4_gorizontal», NewDocumentMode.LAB, DocumentFill.BACKGROUNDCOLOR, 1)

Расшифруем конструкцию: (width, height, resolution, name, mode, initialFill, pixelAspectRatio)
В данном случае в конце можно добавить bitsPerChannel и colorProfileName, но думаю, для начала нам хватит и имеющейся конструкции. Единицы измерения по умолчанию пиксели, давайте поменяем. Меняем на миллиметры:

Мы же не хотим сидеть около монитора и тыкать Enter? Мы хотим быстренько перекинуть все таски в баг-трекере на программиста! Давайте не дадим Photoshop’у возможность о чем либо сообщать и ждать нажатия ОК, делается это так:

Далее копирайты внутри файла. Мы должны добавить информацию о том, что файл сделан нами а не начальником. Добавим метаданные в File info.

docInfoRef = docRef.info docInfoRef.copyrighted = CopyrightedType.COPYRIGHTEDWORK docInfoRef.ownerUrl = «http://www.your-scorpion.ru» docRef.info.author = «Your-scorpion» docRef.info.country = «Russia»

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

Итоговый работающий код:

Если подытожить, то мы получили скрипт, который в зависимости от условий применяет те или иные экшены. А также, научились создавать документы и применять основные действия на JS. В общем то, для решения поставленной задачи вышеописанной техники достаточно. Примерно такое решение, сделанное как плагин, я отдавал подчиненным. Результат:

как сделать скрипт для фотошопа

Небольшая жизненная мудрость: мы можем записать действия пользователя в файл скрипта.
1. Берем файл «ScriptListener.8li» с сайта Adobe и закидываем в %ProgramFiles%Adobe\Adobe Photoshop CS5\Plug-ins\Automate\
2. Запускаем Photoshop
3. Делаем необходимые действия.
4. На рабочем столе забираем файлики ScriptListener.jsx и ScriptListener.vbs
5. (!)Удаляем ScriptListener.8li!
И мы получаем работающий говно-код, который никому нельзя показывать, но можно использовать в своих технических интересах.

Если вам нужно уменьшить размер файла, то можно удалить мета-данные. Которые иногда весят больше, чем сам файл. Вот скрипт:

function deleteDocumentAncestorsMetadata() < whatApp = String(app.name); if(whatApp.search("Photoshop") >0) < if(!documents.length) < alert("There are no open documents. Please open a file to run this script.") return; >if (ExternalObject.AdobeXMPScript == undefined) ExternalObject.AdobeXMPScript = new ExternalObject(«lib:AdobeXMPScript»); var xmp = new XMPMeta( activeDocument.xmpMetadata.rawData); xmp.deleteProperty(XMPConst.NS_PHOTOSHOP, «DocumentAncestors»); app.activeDocument.xmpMetadata.rawData = xmp.serialize(); > > deleteDocumentAncestorsMetadata();

Либо попробуйте оригинальный скрипт для удаления история работы над SmartObject.

Скрипты не только экономят ваше время, но и не дают вам совершить ошибку с названиями, параметрами и прочими важными вещами. Удачи!

15 комментариев

У меня аналогичная задача, скажи, как тебе удалось решить вопрос с ресайзом картинок и подгонкой их под нужный формат? Мне тут задачку одну подкинули по подготовке постеров, а ты вроде единственный, кто эту задачу смог грамотно автоматизировать.

Итак, есть 1500 постеров от фильмов. И есть 5 разных форматов для телефонов, планшетов, телевизор и т.п. Там они могут быть и квадратные, и вытянутые… разные. Так вот эти постеры нужно как то кадрировать и подгонять под эти форматы.
Подскажешь, как лучше решить такую задачу?

Всех секретов я раскрывать не буду, трудовой договор не позволяет) Я бы на вашем месте действовал так:
Допустим, нужны постеры размером 1000x600px.

1. сначала нужно создать папку со всеми исходными картинками. Копируешь код скрипта в файл формата jsx, в коде увидишь размер картинки в пикселях, 500 на 500px. Меняешь на 1000x600px, сохраняешь, и запускаешь через file-script. Картинка ужмется/отмаштабируется до размеров 1000px.

doc = app.activeDocument; doc.changeMode(ChangeMode.RGB); // тут менять размер var fWidth = 500; var fHeight = 500; if (doc.height > doc.width) < doc.resizeImage(null,UnitValue(fHeight,"px"),null,ResampleMethod.BICUBIC); >else < doc.resizeImage(UnitValue(fWidth,"px"),null,null,ResampleMethod.BICUBIC); >// а тут настройки сохранения var options = new ExportOptionsSaveForWeb(); options.quality = 70; options.format = SaveDocumentType.JPEG; options.optimized = true; var newName = ‘web-‘+doc.name+’.jpg’; doc.exportDocument(File(doc.path+’/’+newName),ExportType.SAVEFORWEB,options);

2. Скрипт подгоняет и сразу сохраняет все картинки, поэтому не забудь сделать бэкапы фоток (параметры сохранения в скрипте тоже есть и редактируются). После того, как скрипт отработает, делаешь фотошопский экшен, который приведет картинку к пропорциям 100% на 60%. (через image —> canvas).

Либо:
1) взять инструмент Crop tool, установить у него в опциях нужные пропорции
2) закинуть несколько файлов в фотошоп и сразу их обрезать в нужном соотношение, часть фото все равно пришлось бы в ручную переделывать после скрипта.
3) и сохранять, сохранять, сохранять.

Источник

Погружаемся в скриптинг
для Фотошопа

как сделать скрипт для фотошопа

Писать скрипты для Фотошопа, зачастую, нудно и больно (привет многочисленным багам и индийским разработчикам). Но бывает увлекательно и полезно. А если вы знакомы с JavaScript, то и достаточно легко.

Подготовка

Вам понадобится программа Adobe ExtendScript Toolkit, ваш Фотошоп и немного усердия.

После установки запускаем ExtendScript Toolkit и в левом-верхнем углу меняем “ExtendScript Toolkit CC” из выпадающего меню на Фотошоп. Делаем это для того, что бы по нажатию зелёной стрелочки наш скрипт запускался в Фотошопе.

как сделать скрипт для фотошопа

Не будем вникать в объектную модель Фотошопа и прочие сложные термины, про которые вы сможете прочитать в официальной документации (даже с картинками). Ссылки есть в конце поста.

Работа с активным слоем

Чаще всего мы хотим что-либо сделать с активным слоем. Для этого необходимо обратиться к Фотошопу ( app), затем к активному документу ( activeDocument) и, наконец, к нашему слою ( activeLayer).

У слоя есть свойства и методы (выполняемые действия), как и у остальных объектов (документов, каналов, текста, векторных шейпов, …).

Например, что бы узнать имя слоя — нужно обратиться к свойству name.

А что бы переименовать слой:

Скрыть или показать слой — свойство visible.

Подвигать содержимое слоя по холсту — метод translate.

А так же можно узнавать границы содержимого ( bounds), изменять прозрачность слоя ( opacity) и заливки ( fillOpacity), дублировать ( duplicate), масштабировать ( resize) и так далее.

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

Усложняем задачу

Допустим, у нас есть документ с текстовым слоем (в нём что-то написано).

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

После выполнения такого скрипта имя нашего слоя превратится в нечто подобное:

ArialMT, 14 pt, #000000

Или ничего не произойдёт, так как мы можем встретиться с нашим первым багом Фотошопа. ☺

Дело в том, что если создать новый текстовый слой и не изменять ему цвет, а оставить дефолтный чёрный (#000000), то по какой-то причине Фотошоп не может получить это значение. Подобный баг далеко не единственный, но, зачастую, они побеждаются довольно легко — при помощи javascript-конструкции “try…catch”. Данная синтаксическая конструкция пытается выполнить кусок кода прописанный в try, а если возникает ошибка — выполняет кусок кода из catch.

Итак, фиксим возможную ошибку с определением цвета:

Теперь наш код точно сработает.

Это уже что-то похожее на нужный результат, но мы пойдём дальше и добавим ещё немного магии.

Ниже финальная версия скрипта в которой я предлагаю вам разобраться самостоятельно.

В итоге, имя нашего слоя превратится в нечто похожее:

Arial Bold Italic 30px/40px #333000
или
PT Sans 18px #ff0000

Про запуск скриптов и назначение их на горячие клавиши повторять не буду. Лучше почитайте в статье Сергея Пехтерева.

Полезные материалы

P. S. Не обращайте внимание на даты материалов, так как возможность написания скриптов в Фотошопе появилась ещё в версии CS2 (2005 год) и с тех пор ничего не изменилось. Во всех версиях, с CS2 до сегодняшней, код работает одинаково.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *