Открыть главное меню

Empty file template
Файл:CommImportExampleV1.0.5.xlsx



Title
Operating name
Description
Acceptable values
Examples
id id Unique record number, can be taken from any database/system. It's optional parameter and isn't involved in any calculations (only for imformational purpose). any integer value 123
GDS validating carrier valCompanyId

Carrier (airline) code is compared to the airline that is offered by GDS as a validating one. Agency must have a contract with this airline. In case if there is a need to issue tickets and assign another airline stock, you can redefine the validating carrier using the next column ("redefined carrier"). If the GDS validating carrier isn't confirmed by Nemo pricing rules as an allowed carrier and isn't redefined, Nemo considers this сarrier as an unauthorized one. You can exclude such flights from search results using a special search filter.

empty value is ignored

2 letters/digits

SU

LH

redefined validating carrier manualVV

If an agency has no contract agreement with the GDS validating carrier (or it provides relatively low commission value), you can redefine the validating carrier on your side using this parameter. In this case the "validating carrier" value must be the same as the GDS validating carrier (or it can be empty).
Agency is responsible for this change and its allowability (because the flight will be priced by GDS according to the validating carrier offered by Nemo). Rules with redefined carrier have a higher priority than the usual ones.

empty value is ignored
2 letters/digits

SU
LH

first segment carriers airlines
List of allowed marketing carriers for the first route segment.

empty = any values
CODE,CODE...
<>CODE,CODE...(except)

SU,LH,BA

<>S7,SU

any segment carriers airlinesAny

List of allowed marketing carriers (interlines) for any segment.
Acceptable values:

  • CODE,CODE,CODE : at least 1 marketing carrier must be in the list.
  • CODE,CODE,CODE! : all marketing carriers must be in the list for this flight.
  • <>CODE,CODE,CODE : at least 1 marketing carrier must not be in the list.
  • <>CODE,CODE,CODE! : all marketing carriers must not be in the list for this flight.

empty = any values
- one or several values (see description)

SU,LH,BA
SU,LH!
<>S7,SU
<>S7,BA!

code-sharing codeSharing Code-sharing index (i.e. if a flight can or can't be operated by another airline).

empty = all flights
1 - code-sharing is mandatory
0 - code-sharing is prohibited

0

1

operators operatingAirlines

List of allowed operating carriers (for all segments)
Acceptable values:

  • CODE,CODE,CODE : at least 1 operating carrier must be in the list.
  • CODE,CODE,CODE! : all operating carriers must be in the list for this flight.
  • <>CODE,CODE,CODE : at least 1 operating carrier must not be in the list.
  • <>CODE,CODE,CODE! : all operating carriers must not be in the list for this flight.

empty = any values
- оne or several values (see the description)

SU,LH,BA
SU,LH!
<>S7,SU
<>S7,BA!

part of own segments ownPart Minimum allowed part of own flight segments (i.e. validating carrier is equal to a marketing carrier for these segments). It has to be greater than or equal to this value.
  • 1 - all segments are owned by the validating carrier
  • 0.5 - one half of the segments (ore more)are owned by the validating carrier
  • 0.25 - one quarter of the segments (ore more)are owned by the validating carrier
  • 0.01 - at least 1 segment is owned by the validating carrier
  • 0 - all segments are interline

empty = any values
any number from 0 to 1

0.88

part of interline segments interlinePart Minimum allowed part of interline flight segments (i.e. validating carrier is not equal to a marketing carrier for these segments). It has to be greater than or equal to this value.
  • 1 - all segments are interline
  • 0.5 - one half of the segments (ore more) are interline
  • 0.25 - one quarter of the segments (ore more) are are intrline
  • 0.01 - at least 1 segment is owned by interline carrier
  • 0 - all segments are owned by the validating carrier

empty = any values
any number from 0 to 1

0.88

contract type contractType BSP or TCH system

empty = any type,
BSP
TCH

TCH
GDS gds Here you can define the allowed GDS (Amadeus, Sabre, etc.), PCC or Nemo package ID for a specific pricing rule. Different types can be combined and listed in any sequence. For example, if you choose Sabre as the GDS, then there is no point to list all Sabre PCC's or packages you are going to use.

empty = any
SABRE, GALILEO, AMADEUS, SIRENA, SITA - GDS
[letters+digits] - PCC
[digits] - package ID

SABRE,670P,123

AMADEUS,GALILEO

start of selling paymentDateFrom Minimum allowed date of booking (it is NOT equal to the departure date). Pricing rule will be applied if current date is more or equal to the date defined in this column. empty = any date

DD.MM.YYYY

01.01.2012

31.01.2010

end of selling paymentDateTo Maximum allowed date of booking. Pricing rule will be applied if current date is less or equal to the date defined in this column. empty = any
DD.MM.YYYY
31.12.2022
flight type airlineType International or domestic flight (i.e. the whole flight with all transfers is within the same country. empty = any
IA (international airlines)
DA (domestic airlines)
IA
DA
flight numbers flightNumber

Allowed flight numbers, can be defined with the marketing carrier or code or without it.

Acceptable values:

  • NNN,NNN: at least 1 flight number must be in the list.
  • NNN,NNN! : all these flight numbers for all segments must be in the list for this flight.
  • <>NNN,NNN : at least 1 oflight number must not be in the list.
  • <>NNN,NNN! : all flight numbers must not be in the list for this flight.

empty = any
- 1 or several values (see the description)

SU 123,SU 345
123,345
<>LH 555
aircraft type aircraft

Allowed aircraft codes, should be defined as returned by the GDS

Acceptable values:

  • CODE,CODE,CODE : at least 1 aircraft code must be in the list.
  • CODE,CODE,CODE! : all aircraft codes must be in the list for this flight.
  • <>CODE,CODE,CODE : at least 1 aircraft code must not be in the list.
  • <>CODE,CODE,CODE! : all aircraft code must not be in the list for this flight.

empty = any
- 1 or several values (see the description)

73C,DH4
735
fare codes tariffs Allowed fare codes. Должен совпасть хотя бы один из перелета с одним из заданного списка. При правиле с отрицанием никаких совпадений быть не должно. Совпадение не точное: код из правила может содержаться в коде из перелета (к примеру введенное S1GREY26 совпадет с S1GREY26CH из перелета).


Варианты ввода:

  • КОД,КОД: должен совпасть любой тариф с одним из заданного списка.
  • КОД,КОД! : все тарифы перелета должны встречаться в этом списке
  • <>КОД,КОД : хотя бы один тариф из перелета не должен быть в этом списке
  • <>КОД,КОД! : все тарифы из перелета не должны встречаться в этом списке

Есть возможность указать регулярное выражение. Для этого нужно написать параметр в формате /XXX/ Примеры:

  • /ABC/ - код должен содержать "..ABC..", например "NBABCS"
  • /abc/i - регистронезависимая проверка, код может содержать символы в любом регистре, например "NBABCS" или "Abcof"
  • /^TN/ - код должен начинаться с "TN..", например "TNQRTY"
  • /OW$/ - код должен заканчиваться на "..OW", например "SRSOW"
  • /^.L/ - первая буква любая ( . - любой символ ), вторая буква в коде тарифа должна быть L, например "QLFST"
  • /OK.*RT/ - ( .* = любое количество любых символов) "..OK..RT..", например "ANOKURTN"

пустое = любые
- одно или несколько значений (см. описание)

WRUTH9PL,ARUTH9PL
/TN.*OW/

максимальный тариф maxTariff Ограничение на максимальное ценовое значение "базовой стоимости" (сумма всех тарифов от перевозчиков в перелете или стоимость от GDS за вычетом такс). Если параметр задан, то всё правило, записанное в строке, будет срабатывать только в том случае, если тариф перелета меньше указанного.

пустое = ограничения нет
xxxКОД (см примеры)

10000RUB
300EUR

конф. тариф privateFare Для срабатывания правила у перелета должен присутствовать тариф с признаком конфиденциального (приватного). Об этом сообщает ГДС. Если указание конкретного кода приватного тарифа достаточно для однозначного определения правила - признак выставлять необязательно.

пустое = любые тарифы
1 - должен присутствовать приватный
0 - приватных тарифов не должно быть

0
1

коды такс taxes Допустимые коды такс

Варианты ввода:

  • КОД,КОД: должна совпасть любая такса из перелета с одной из заданного списка.
  • КОД,КОД! : все таксы перелета должны встречаться в этом списке
  • <>КОД,КОД : хотя бы одна такса из перелета не должна быть в этом списке
  • <>КОД,КОД! : все таксы из перелета не должны встречаться в этом списке

где КОД - набор заглавных латинских букв

пустое = любые
- одно или несколько значений (см. описание)

YQ,YR
<>YQ!

цена подтверждена priceIsActual Проверяемый признак перелета. Цена в перелете после поиска считается не подтвержденной. Цена становится подтвержденной (актуальной) при создании реального PNR или при запросе актуализации цен в рамках вебсервисов Nemo2.0 (до создания PNR)

пустое = любые перелеты
1 - перелет в PNR или его цена проверена заранее
0 - перелет только что получен из результатов поиска

0
1

наличие сегментов вп во всех тарифах valSegmentsInTariff Проверка: среди сегментов любого тарифа должен присутствовать сегмент валидирующего перевозчика (минимум один)

пустое или 0 = любые тарифы
1 - условие должно выполняться

0
1


сервис классы serviceClass

Допустимые категории классов обслуживания
Варианты ввода:

  • КОД,КОД: должен совпасть класс из любого сегмента с одним из заданного списка.
  • КОД,КОД! : классы из всех сегметнов перелета должны встречаться в этом списке
  • <>КОД,КОД : хотя бы один класс из перелета не должен быть в этом списке
  • <>КОД,КОД! : все классы из перелета не должны встречаться в этом списке

где КОД:

  • B - бизнес
  • E - эконом
  • F - первый
  • EB - сочетание эконом + бизнес
  • EF - сочетание эконом + первый
  • BF - сочетание бизнес + первый

пустое = любые
- одно или несколько значений (см. описание)

B,E
F
EB,EF,F

классы бронирования (коды)

bookingClass

Допустимые литеры (однобуквенные коды) классов бронирования. Латинскими буквами, русские буквы допустимые только для правил поставщика Sirena.
Варианты ввода:

  • КОД,КОД: должен совпасть класс из любого сегмента с одним из заданного списка.
  • КОД,КОД! : классы из всех сегметнов перелета должны встречаться в этом списке
  • <>КОД,КОД : хотя бы один класс из перелета не должен быть в этом списке
  • <>КОД,КОД! : все классы из перелета не должны встречаться в этом списке

пустое = любые
- одно или несколько значений (см. описание)

A,B,C
<>A,B,C
перевозчики и классы airlinesAndClasses

Набор пар "маркетинговый перевозчик" + "класс бронирования" любого сегмента маршрута.

Допустимые варианты ввода:

  • КОД:КОД,КОД:КОД,КОД:КОД : хотя бы один сегмент из перелета должен подойти по авиакомпании+класс.
  • КОД:КОД,КОД:КОД,КОД:КОД! : все сегменты из перелета должны подойти по параметрам
  • <>КОД:КОД,КОД:КОД,КОД:КОД : если хотя бы один сегмент не подошел
  • <>КОД:КОД,КОД:КОД,КОД:КОД! : все сегменты из перелета не должны подходить

пустое = любые
- одно или несколько значений (см. описание)

SU:A,LH:B,BA:C
SU:A,LH:B!
<>S7:A,SU:B
<>S7:A,BA:B!

зоны zones

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

  • AF - Африка,
  • AN - Антарктика
  • AS - Азия
  • EU - Европа
  • NA - Северная Америка
  • OC - Австралия и Океания
  • SA - Южная Америка

перелет должен находиться в обеих зонах ( "EUSA, EUNA" - трансатлантический перелет ):

  • EUSA - Европа + Южная Америка,
  • EUNA - Европа + Северная Америка
  • EUAS - Европа + Азия
  • EUAF - Европа + Африка
  • EUOC - Европа + Австралия и Океания
  • AFNA - Африка + Северная Америка
  • ASNA - Азия + Северная Америка

пустое = любые
- одно или несколько значений

AS,EU
SA
EUSA, EUNA

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

КОД,КОД...

RU,IT,DE,FR
страны вылета depCountries Допустимые страны вылета для перелета (проверяется только страна вылета первого сегмента маршрута).

пустое = любые
КОД,КОД...
<>КОД,КОД...(кроме)

RU
<>LV,LT

страны назначения arrCountries Проверяется страна назначения (для OW и CR: это последняя страна последнего сегмента, для RT: это последняя страна первого плеча маршрута). К примеру для перелета MOW-PAR-MOW страна назначения FR, для MOW-PAR-LON - GB. Правило страна вылета=RU, страна назначения=RU не означает местный рейс - не забывайте указывать тип рейса DA (ВВЛ).

пустое = любые
КОД,КОД...
<>КОД,КОД...(кроме)

RU
<>LV,LT

прямой рейс isDirect Признак прямого рейса

пустое = любые
0 - только с пересадками
1 - только прямые
дополнительно:
2 - начальный перелет прямой
3 - начальный перелет с пересадками

0
1

тип маршрута routeType

Можно оставить поле пустым или указать одно значение:

  • В одну сторону - OW,
  • Туда и обратно - RT,
  • Сложный маршрут - CR,

пустое = любой
КОД(см. примеры)

OW
RT
CR

маршруты routeFull Цепочка из IATA кодов городов или аэропортов, описывающая весь маршрут перелета с учетом пересадок, без разрывов и повторов. Всегда следует использовать IATA код города, если он имеется (агрегирующий аэропорт). К примеру перелет VKO-ORY, ORY-VKO приводится к маршруту MOW-PAR-MOW.

пустое = любые
КОД-КОД,КОД-КОД,...
<>КОД-КОД,КОД-КОД,...(кроме)

MOW-LON,LON-MOW
<>MOW-BER-PAR

содержит маршруты routePart

Указывается только часть маршрута, составленного по аналогии с предыдущим.

пустое = любые
КОД-КОД,
-КОД-,...
<>-КОД-,...(кроме)

-CAI-
<>-PRG-,PRG-SVX

маршруты (из аэропортов) routeAirportsFull В правиле можно и нужно использовать IATA коды аэропортов (не городов). Остальное аналогично с "маршруты" см. описание см. описание
содержит маршруты (из аэропортов) routeAirportsPart В правиле можно и нужно использовать IATA коды аэропортов (не городов). Остальное аналогично с "содержит маршруты" см. описание см. описание
вылет (аэропорты, города) depAirports Проверяется только аэропорт вылета первого сегмента. При указании кодов аэропортов необходимо точное совпадение. При указании кодов городов (агрегирующий аэропортов) сопоставление происходит по внутреннему справочнику аэропоротов. Рекомендуется указывать коды конкретных аэропортов.

пустое = любые
КОД,КОД...
<>КОД,КОД...(кроме)

MOW,PAR,BER <>VKO,LON

прилет (аэропорты, города) arrAirports Аэропорт прилета определяется аналогично "стране назначения". Проверка на сопоставление происходит по аналогии с "вылетом (аэропорты, города)"

пустое = любые
КОД,КОД...
<>КОД,КОД...(кроме)

MOW,PAR,BER <>VKO,LON

начало вылета dateBegin Дата вылета первого сегмента должна быть больше или равна указанной дате пустое = игнорируется

DD.MM.YYYY

01.01.2012

31.01.2010

вылет через (в часах) dateDepartureAfter От текущей даты задается максимальное значение или диапазон вылета. Например, если необходимо выделить перелеты не позднее 5 дней до вылета, то задается диапазон [0,120]. пустое = ограничения нет
максимальное значение
[X,X] - диапазон
13

[10,100]

конец вылета dateEnd Дата вылета первого сегмента должна быть меньше или равна указанной дате пустое = игнорируется

DD.MM.YYYY

31.12.2022
возврат не ранее dateBackBegin Дата вылета последнего сегмента маршрута должна быть больше или равна указанной дате пустое = игнорируется

DD.MM.YYYY

31.12.2022
возврат не позднее dateBack Дата вылета последнего сегмента маршрута должна быть меньше или равна указанной дате пустое = игнорируется

DD.MM.YYYY

31.12.2022
длительность в днях daysDuration Ограничение на максимальный разрыв в днях между первой датой перелета и завершением маршрута.
Можно задавать диапазон

Длительность в днях считается, как математическая разность дат. При вылете и возврате в один день длительность равна 0 дней.

пустое = ограничения нет
число дней - максимальное значение (включительно)
[X,X] - диапазон

13
[3,13]

дни недели dayOfWeek Допустимые дни недели для даты вылета первого сегмента маршрута. Значения указываются числом, соответствующим порядку дня недели, начиная с понедельника. пустое = игнорируется

1 - понедельник
...
7 - воскресенье
- одно или несколько значений

2
3,5

типы пассажиров passengers Допустимые типы пассажиров в перелете. Для срабатывания правила в перелете обязательно должны присутствовать все перечисленные типы.

пустое = любые
ADT - взрослый
CLD - ребебок (2-12)
INF - младенец (0-2)
INS - младенец с местом (0-2)
- одно или несколько значений

INF
ADT,CLD

маска перелета

Формализованное описание полета в текстовом формате, для создания сложных правил
Будет добавлено в след. версии программы



приоритет priority Если срабатывает несколько правил, то выбирается одно с наибольшим приоритетом. Если существует несколько правил с одинаковым приоритетом (или приоритет не указан) выбирается более новое правило (расположено ниже в импортируемой таблице) целое число
пустое = 0
1
2


код акции Универсальный код промоакции. Создается в админ панели в разделе Программа лояльностиПромоакции и промокоды. любой набор букв/цифр/символов 12022014_Promo
utm source utmSource ID источника перехода, который отображается в поле «№» таблицы источников переходов в метрике.
Допустимо вводить несколько источников.
пустое = любые
КОД,КОД...
<>КОД,КОД...(кроме)
123,456
<>123,456
комиссия авиакомпании commission Прибыль агента, получаемая от авиакомпании за проданные билеты. Обязательное для правильного заполнение поле, должно соответствовать указанному в контракте. Значение передается через ГДС при выписке. Может указываться в процентах от тарифа или в абсолютной стоимости (за каждого пассажира)

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

"xxxКОД" (код валюты) или "XX%"

100RUB
13%
комиссия субагентам agencyCommission Часть прибыли от авиакомпании, которой агент готов поделится с субагентами. Указанное значение сразу действует как скидка только для субагентов, уменьшая стоимость авиабилетов. Можно указать идентификаторы отдельных субагентов. В случае, когда комиссия задана для всех субагентов, и задана комиссия для конкретного субагента X, то комиссия

субагента X = Комиссия субагента X + Комиссия установленная для всех субагентов.
Например: 5%,(123:6%), (345:8%)
Крмиссия субагента с ID 123 = 6% + 5%.
Формат:

  • "xxxКОД" (код валюты) или "XX%" (процент от тарифа) - значение применяется ко всем субагентам
  • (субъект:цена) : для применения к конкретным, указывается ID субагентства в Немо
  • (субъект:цена),(субъект:цена),(субъект:цена)... : комбинации

см. описание

100RUB
5%,(123:6%), (345:8%)
посегментный расчет комиссии modeForSegment Признак применения комиссии или бонуса за каждый сегмент перелета. Например 100 руб. за каждый сегмент.


пустое = 0
0 - комиссия одна на весь перелет
1 - комиссию необходимо умножить на кол-во сегментов

0
1

бонус авиакомпании bonus Дополнительная прибыль агента, получаемая от авиакомпании, но не участвующая в запросах к GDS. Задается и вычисляется полностью аналогично комиссиям (при вычислении учитывается параметр "посегментный расчет комиссии"). Используется для расчета "прибыльности" авиаперелета, влияет на работу микшера и может повлиять на сбор при установке параметра "минимальная прибыль".

Из всех сработавших правил бонус будет учтен только из одного по следующему приоритету:

  • Максимальный приоритет за сработавшим комиссионным правилом
  • Если в комиссионном правиле бонуса нет, будет использован бонус из другого сработавшего некомиссионного правила (дополнительного правила с пустой комиссией). Если таких правил несколько, используется правило с наибольшим идентификатором (ниже в таблице)

"xxxКОД" (код валюты) или "XX%"

100RUB
13%
бонус за сегмент (допустимые авиакомпании) modeForAirlines Установка текущего параметра принудительно включает режим расчета бонуса за каждый сегмент перелёта (для абсолютно заданного бонуса), но в расчете учитываются только сегменты с валидирующим или с интерлайновыми перевозчиками из заданного здесь списка.

пустое
КОД (код АК)
КОД,КОД...

SU
SU,FV

сбор агентства charge Здесь укываются все наценки/скидки, которые будут применены для описанного правилом перелета. В одном поле можно указать несколько ценовых правил, разделив их по типам пользователя.

формат = (субъект:сумма),(субъект:сумма),(субъект:сумма)...
субъект = ID групп, пользователей и два значения "B2C", "B2B" с возможностью <>отрицания
сумма = слагаемое + слагаемое + слагаемое...[ограничение]
ограничение = диапазон итоговой величины сбора, задается как [цена,цена]
слагаемое = цена*множитель*множитель...
цена = "xxxКОД" (код валюты) или "XX%" (проценты от итоговой стоимости ГДС)
множитель = одно из значений:

  • PAS - общее количество пассажиров
  • ADT - количество взрослых
  • CLD - количество детей(2-12)
  • INF - количество младенцев(0-2)
  • INS - количество младенцев с местом(0-2)
  • SEG - количество сегментов перелета(перелет из А в Б с 1 пересадкой => 2 сегмента)
  • LEG - количество плечей(перелет из А в Б с 1 пересадкой => 1 плечо)
  • TRF - для получения цены тарифа, равен сумме тарифов
  • SGV - количество сегментов валидирующего перевозчика


Примеры:

  • 100RUB*SEG : плюс 100 руб к стоимости заказа за каждый сегмент
  • 150RUB*SEG*PAS;: плюс 150 руб за каждый сегмент, на каждого пассажира. Например: перелет с двумя сегмента и двумя пассажирами = 600 руб.
  • -10%*TRF : 10% скидка от тарифа
  • 50RUB*LEG*ADT[,1000RUB] : 50 руб за каждый билет для взрослого на каждом плече перелета, но не более 1000RUB
  • (<>123,345: 100RUB), (123,345: -100RUB) : субъекты 123 и 345 получат скидку 100 руб., остальные наценку в 100 руб.
  • (B2B: 1000RUB*ADT - 100RUB*CLD[-10%,-1%]), (B2C: 10% [10USD,]), (123: -1000RUB) : B2B пользователи получают наценку 1000 руб. за каждый взрослый билет и 100 руб скидку за каждый детский билет, но не менее 1% от общей стоимости и не более 10%. B2C пользователи получают 10% наценку, но не менее 10 долларов. Пользователь ID=123 получит скидку 1000 руб

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

см. описание
см. описание
признак доп.сбора chargeExt

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

  • 0 - Стандартный сбор (значение по умолчанию). Из всех указанных сборов будет применен один по приоритету.
  • 1 - Дополнительный сбор. Сборы, указанные как дополнительные, проверяются отдельно. Аналогично применится один дополнительный сбор с максимальным приоритетом
  • 2 - Обязательный сбор. Будет обязательно применен, если все параметры сбора удовлетворены. Приоритет игнорируется.


пустое = 0
1
2

0
1

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

Формат аналогичен формату сбора агентства. Для расчетов будет применено значение из правила, по которому будет определена комиссия авиакомпании. Если требуется изменить это поведение, следует установить параметр "приоритет мин. прибыли" (см. ниже)

см. описание 50RUB*LEG*PAS
приоритет мин. прибыли minProfitPriority Дополнительный параметр, отвечающий за расчет минимальной прибыли. Сработает правило с наибольшим приоритетом, если приоритет совпадает, то будет использовано правило, которое находится ниже Положительные числовые значения. 1, 2, ...
округление chargeRounding Порядок арифметического округления сбора пустое = 0,
0 = до целого значения,
0.1 = до десятых,
0.01 = до сотых
0.1
0.01





Ценообразование. Импорт правил. Дополнительные параметры для Немо платформы

См. также

'