---
id: Provisions
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI]
title: Основные положения
sidebar_position: 3
---

В этом разделе содержится глоссарий основных терминов и положений, связанных с настройкой и администрированием решения на базе Melezh

### Проект

Основным объектом при работе с Melezh является **Проект** - файл с произвольным расширением, представляющий собой SQLite базу с определенным набором таблиц, в которых хранится информация об общих настройках и параметрах обработчиков конкретного решения на базе Melezh

Создать проект можно только из консоли (командной строки) при помощи команды `СоздатьПроект` с указанием пути сохранения файла проекта (см. *Консольный интерфейс*). После создания файла проекта, он будет иметь стандартную конфигурацию, которую можно изменять в дальнейшем при помощи консольных команд или веб-интерфейса (требуется запуск проекта, см. Web-интерфейс)

### Обработчик

**Обработчик** - часть проекта, отвечающая за обработку запросов на одном конкретном пути URL. Характеризуется обработчик уникальным ключом, методом HTTP, библиотекой и функцией обработки из набора ОПИ или стороннего расширения:

+ **Ключ** обработчика служит для его идентификации при настройке, удалении или получении логов. Также ключ равен пути, по которому обработчик принимает запросы. Т.е. обработчик с ключом `0d17ad53c` будет принимать запросы на `localhost:<port>/0d17ad53c`
+ **Метод HTTP** определяет, какие запросы может принимать обработчик. Всего их три на выбор: Get, Post c JSON телом (`JSON`), Post с form-data телом (`FORM`). Запросы, отправляемые на обработчик с form-data телом, могут иметь как тело в формате `application/x-www-form-urlencoded`, так и в формате `multipart/form-data`. Запросы, приходящие в формате, отличном от установленного, будут отклонены
+ **Библиотека** или **Команда** является идентификатором набора функций из Открытого пакета интеграций или подключаемого расширения. Она определяет, в каком модуле находится функция, отвечающая за основную обработку запроса
+ **Функция** обработчика - это имя метода, отвечающего за основную обработку приходящих по пути обработчика запросов. Как уже было сказано, это может быть функция одной из библиотек ОПИ или метод из подключаемого расширения. Функция не отвечает за принятие, разбор или логирование запроса, но только за формирование ответа из уже обработанных данных на основе собственной логики

### Аргумент

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

Несмотря на то, что все аргументы заполняются и хранятся в текстовом виде, в Melezh работает та же система приведения типов во время вызова функций, что и в других поставках Открытого пакета интеграций:

+ Коллекции могут быть указаны в виде JSON-строки, URL или путей к JSON-файлам на сервере 
+ Двоичные данные могут быть указаны как пути к файлам на сервере или URL
+ Даты могут быть указаны в формате ISO 8601
+ Значения типа Булево могут быть указаны как строки `true` или `false`

