<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.umisoft.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aposio</id>
	<title>Umicms - Вклад участника [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.umisoft.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aposio"/>
	<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Aposio"/>
	<updated>2026-04-09T19:14:34Z</updated>
	<subtitle>Вклад участника</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Installator.zip&amp;diff=9418</id>
		<title>Файл:Installator.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Installator.zip&amp;diff=9418"/>
		<updated>2025-02-10T18:49:55Z</updated>

		<summary type="html">&lt;p&gt;Aposio: Aposio загрузил новую версию Файл:Installator.zip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Installator.zip&amp;diff=9417</id>
		<title>Файл:Installator.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Installator.zip&amp;diff=9417"/>
		<updated>2025-02-10T15:00:27Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8_(%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8)&amp;diff=9416</id>
		<title>Установка из консоли (командной строки)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8_(%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8)&amp;diff=9416"/>
		<updated>2025-02-10T15:00:15Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
Выполнить установку UMI.CMS, используя средства командной строки сервера.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
&lt;br /&gt;
1) Проверка соответствия сервера [http://www.umi-cms.ru/support/umi_cms_system_requirements/ системным требованиям UMI.CMS]&lt;br /&gt;
&lt;br /&gt;
Консольный инсталлятор проверяет соответствие системным требованиям при установке.&lt;br /&gt;
Если вы используете отдельно консольный php и отдельно модуль apache - обратите внимание, что требования должны соблюдаться для обоих из них (иногда они используют разные конфигурационные файлы).&lt;br /&gt;
&lt;br /&gt;
2) Загрузка консольного инсталлятора:&lt;br /&gt;
&lt;br /&gt;
[[Файл:installator.zip]]&lt;br /&gt;
&lt;br /&gt;
Файл installer.php должен быть помещён в корневую директорию сайта, на который производится установка UMI.CMS. Рекомендуется, чтобы эта директория была пустой. Необходимо чтобы она имела права на чтение и запись из php (если затрудняетесь выбрать - ставьте 777).&lt;br /&gt;
Права на сам файл installer.php должны быть такими, чтобы php мог его переписать.&lt;br /&gt;
Инсталлятор обращается к внешним ресурсам для скачивания необходимых файлов и проверки аутентификационных данных. На хостинге для консольного php должны быть разрешены исходящие соединения.&lt;br /&gt;
&lt;br /&gt;
3) Загрузка и подготовка файла install.ini с настройками для установки:&lt;br /&gt;
&lt;br /&gt;
[[Файл:install.zip]]&lt;br /&gt;
&lt;br /&gt;
Права на файл install.ini должны быть такими, чтобы php мог его переписать. Файл install.ini должен быть помещён в ту же директорию, где находится installer.php, до начала установки.&lt;br /&gt;
В файле указаны доступы к базе данных. Перед началом установки она уже должна существовать. Рекомендуется, чтобы она была пустая.&lt;br /&gt;
&lt;br /&gt;
Файл должен быть сохранен в кодировке utf-8. Значения параметров, содержащие не латинские символы, а также спецсимволы необходимо брать в двойные кавычки &amp;quot;&amp;quot;; (например, пароль)&lt;br /&gt;
&lt;br /&gt;
Пример файла:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
;=======================================================&lt;br /&gt;
;= Инструкции для инсталлятора UMI.CMS в режиме CLI&lt;br /&gt;
;= Обязательные секции и их опции отмечены *&lt;br /&gt;
;=======================================================&lt;br /&gt;
&lt;br /&gt;
[SERVER]&lt;br /&gt;
; phppath=&amp;quot;php7.3&amp;quot; ;необходимо указать, если версия php в консоли по умолчанию &amp;lt; 7.0&lt;br /&gt;
&lt;br /&gt;
;Информация о лицензии *&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[LICENSE]&lt;br /&gt;
domain = &amp;quot;&amp;quot;; Домен *&lt;br /&gt;
ip = &amp;quot;&amp;quot;; ip Адрес *&lt;br /&gt;
key = &amp;quot;&amp;quot;; Лицензионный ключ *&lt;br /&gt;
&lt;br /&gt;
;Доступ к базе данных. *&lt;br /&gt;
;База данных должна быть создана&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[DB]&lt;br /&gt;
host = &amp;quot;&amp;quot;; Хост *&lt;br /&gt;
port= &amp;quot;&amp;quot;; Порт&lt;br /&gt;
user = &amp;quot;&amp;quot;; Логин *&lt;br /&gt;
password = &amp;quot;&amp;quot;; Пароль *&lt;br /&gt;
dbname = &amp;quot;&amp;quot;; Имя базы данных *&lt;br /&gt;
&lt;br /&gt;
[DEMOSITE]&lt;br /&gt;
name = &amp;quot;_blank&amp;quot;; Имя устанавливаемого решения&lt;br /&gt;
&lt;br /&gt;
;Информация о супервайзере *&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[SUPERVISOR]&lt;br /&gt;
login = &amp;quot;sv&amp;quot;; Логин *&lt;br /&gt;
password = &amp;quot;1&amp;quot;; Пароль *&lt;br /&gt;
lname = &amp;quot;&amp;quot;; Фамилия&lt;br /&gt;
fname = &amp;quot;&amp;quot;; Имя&lt;br /&gt;
mname = &amp;quot;&amp;quot;; Отчество&lt;br /&gt;
email = &amp;quot;&amp;quot;; Почтовый ящик&lt;br /&gt;
&lt;br /&gt;
[SETUP]&lt;br /&gt;
sleep=0 ; Время простоя для снижения нагрузки на сервер. Указывается в миллисекундах. Одна миллисекунда - одна тясячная одной секунды (500 = полсекунды)&lt;br /&gt;
download_by=4096 ; Размер запрашиваемого пакета с сервера обновлений. Указывается в килобайтах.&lt;br /&gt;
split_block_size=100000&lt;br /&gt;
&lt;br /&gt;
[UPDATES]&lt;br /&gt;
update-database-by-parts = &amp;quot;0&amp;quot;&lt;br /&gt;
keep-installer = &amp;quot;0&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Важно:&amp;#039;&amp;#039;&amp;#039; процесс установки с дефолтными значениями специально замедлен для слабых хостингов, поэтому с ними система может ставиться долго. Используйте следующие параметры для более быстрой установки или (наоборот) для экономии ресурсов сервера:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[SETUP]&lt;br /&gt;
sleep=1 ; Пауза между запросами в миллисекундах, чем меньше - тем быстрее.&lt;br /&gt;
download_by=4096 ; Размер запрашиваемого пакета с сервера обновлений. Указывается в килобайтах, чем больше - тем быстрее.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4) Выбор соответствующего демо-сайта для установки:&lt;br /&gt;
&lt;br /&gt;
Консольный установщик может устанавливать любой из демо-сайтов UMI.CMS, с учётом ограничений, описанных далее. Примеры этих сайтов можно увидеть в [http://demo.umi-cms.ru/ демо-центре].&lt;br /&gt;
Клиент вправе выбирать любой демо-сайт для любой редакции UMI.CMS. Однако следует учесть, что некоторые демосайты (например интернет-магазины) неразумно использовать для младших редакций, в которых нет соответствующих модулей (например модуля &amp;quot;Интернет-магазин&amp;quot;). Но с другой стороны, если клиент докупил необходимые модули, то он сможет получить соответствующий демо-сайт (набор модулей определяется по лицензионному ключу). В силу этих причин установщик может выдать [http://errors.umi-cms.ru/14022/ ошибку], если данный демосайт не подходит.&lt;br /&gt;
&lt;br /&gt;
Варианты демо-шаблонов:&amp;lt;br&amp;gt;&lt;br /&gt;
- &amp;quot;demomarket&amp;quot; - [https://demo.umi-cms.ru/category:all:commerce Адаптивный интернет-магазин]&amp;lt;br&amp;gt;&lt;br /&gt;
- &amp;quot;_blank&amp;quot; - без демо-шаблона&lt;br /&gt;
&lt;br /&gt;
5) Установка UMI.CMS:&lt;br /&gt;
&lt;br /&gt;
* Загрузите файл installer.php в корень сервера (DOCUMENT_ROOT) &lt;br /&gt;
* Создайте файл install.ini в (DOCUMENT_ROOT), укажите в нем все необходимые данные. Кодировка файла utf-8&lt;br /&gt;
* Зайдите на сервер по ssh.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh example.com -llogin&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Сделайте корневую директорию сервера (DOCUMENT_ROOT) текущей.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/www/example.com/htdocs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Запустите инсталлятор&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php -f installer.php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если консольный инсталлятор потребляет слишком много ресурсов сервера (процессор, память и т.д.) - обратитесь к специальным настройкам install.ini, позволяющих умерить их потребление.&lt;br /&gt;
&lt;br /&gt;
5) Коды ошибок:&lt;br /&gt;
&lt;br /&gt;
Практически все коды доступны по ссылке вида errors.umi-cms.ru/15000&lt;br /&gt;
где 15000 - числовой код ошибки.&lt;br /&gt;
&lt;br /&gt;
6) Персональный гейт для выдачи лицензионных ключей UMI.CMS:&lt;br /&gt;
&lt;br /&gt;
Со стороны компании &amp;quot;Юмисофт&amp;quot; существует специальный гейт, выдающий лицензионные ключи необходимого типа (Commerce Trial). При регистрации хостера на гейте ему выдаётся уникальный идентификатор (ID), а также инструкции, куда отсылать запросы на получение лицензионных ключей.&lt;br /&gt;
Если вы уже пользуетесь таким гейтом, то в 99% случаев вам не нужно ничего менять.&lt;br /&gt;
Если вы НЕ регистрировались на этом гейте и НЕ получали свой уникальный ID, обратитесь на partner@umisoft.ru за ним. Полученный ID нужно будет использовать в запросе лицензионных ключей UMI.CMS (см. ниже).&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Справочная информация:&lt;br /&gt;
&lt;br /&gt;
Описание гейта для выдачи ключей:&lt;br /&gt;
Хостер должен получать очередной ключ на каждый очередной экземпляр системы, устанавливаемой клиенту. Для получения ключа нужно обращаться по URL:&lt;br /&gt;
для редакции Commerce Trial:&lt;br /&gt;
http://updateserver.umihost.ru/udata/custom/generateLicenseGate/SFNUFTDJYFT/client@email.ru/FirstName/LastName/client.domain.ru/client.ip.address/trial&lt;br /&gt;
&lt;br /&gt;
SFNUFTDJYFT - пример уникального ID вашего хостинга (см. выше про выдачу ключа персонального гейта)&lt;br /&gt;
следующие параметры по порядку:&lt;br /&gt;
e-mail клиента&lt;br /&gt;
имя клиента&lt;br /&gt;
фамилия клиента&lt;br /&gt;
домен клиента&lt;br /&gt;
IP-адрес, на котором расположен сайт с этим доменом&lt;br /&gt;
&lt;br /&gt;
В результате выполнения этого запроса вы получаете XML-данные. Из них вам нужно извлечь значение параметра &amp;quot;domain-keycode&amp;quot; - это доменный ключ, который нужно записать в файл install.ini для инсталлятора UMI.CMS. После этого запустить инсталлятор.&lt;br /&gt;
[[Категория:Вопросы установки настройки и переноса]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Installer.zip&amp;diff=9415</id>
		<title>Файл:Installer.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Installer.zip&amp;diff=9415"/>
		<updated>2025-02-10T14:48:05Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Installer.zip&amp;diff=9414</id>
		<title>Файл:Installer.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Installer.zip&amp;diff=9414"/>
		<updated>2025-02-10T14:45:39Z</updated>

		<summary type="html">&lt;p&gt;Aposio: Aposio загрузил новую версию Файл:Installer.zip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Файл для установки сиистемы в консольном режиме&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=Google_reCAPTCHA&amp;diff=9412</id>
		<title>Google reCAPTCHA</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=Google_reCAPTCHA&amp;diff=9412"/>
		<updated>2020-06-18T07:06:21Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
В этой статье мы рассмотрим добавление Google reCAPTCHA на сайт.&lt;br /&gt;
&lt;br /&gt;
== Регистрация на сервисе Google reCaptcha ==&lt;br /&gt;
* Если у Вас нет аккаунта Google, Вы можете создать его на [https://accounts.google.com/signup/v2/webcreateaccount?hl=ru&amp;amp;flowName=GlifWebSignIn&amp;amp;flowEntry=SignUp странице регистрации].&lt;br /&gt;
* Переходим на страницу [https://www.google.com/recaptcha Google reCAPTCHA] и нажимаем My reCAPTCHA в правом верхнем углу. При необходимости авторизуемся в своем Google-аккаунте.&lt;br /&gt;
* Вводим название настроек капчи, отмечаем пункт reCAPTCHA v2, в текстовом поле перечисляем домены сайтов, к которым будут применены данные настройки, каждый с новой строки. &lt;br /&gt;
* Примнимаем условия использования reCAPTCHA, нажимаем &amp;quot;Регистрация&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Файл:ReCaptcha.png]]&lt;br /&gt;
&lt;br /&gt;
== Применение настроек в административной панели UMI.CMS ==&lt;br /&gt;
&lt;br /&gt;
* После регистрации автоматически переходим на страницу добавления капчи на сайт. Из пункта &amp;quot;Ключи&amp;quot; нужно скопировать Ключ и Секретный ключ.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
[[Файл:Google_reCaptcha_code.png]]&lt;br /&gt;
&lt;br /&gt;
* В административной панели Вашего сайта, в модуле &amp;quot;Конфигурация&amp;quot; переходим на вкладку &amp;quot;CAPTCHA&amp;quot;, отмечаем &amp;quot;Использовать настройки сайта&amp;quot;, выбираем тип &amp;quot;CAPTCHA&amp;quot; - &amp;quot;Google reCAPTCHA&amp;quot;, вставляем Ключ и Секретный ключ. Сохраняем изменения.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
[[Файл:ReCaptcha_admin.png]]&lt;br /&gt;
&lt;br /&gt;
*При необходимости, на странице редактирования настроек Google reCAPTCHA, в настройках ключа, изменяем настройки безопасности. &amp;quot;Самый надежный&amp;quot; - при данных настройках пользователю нужно будет отмечать все изображения, на которых изображен определенный объект, для прохождения проверки. Если ползунок установлен в среднем положении, от пользователя требуется лишь отметить галочкой пункт &amp;quot;Я не робот&amp;quot;.&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
[[Файл:Google reCaptcha option.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[category:Модуль Конфигурация]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85_%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%BE%D0%B2_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86&amp;diff=9411</id>
		<title>Кастомизация сохранения псевдостатических адресов страниц</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85_%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%BE%D0%B2_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86&amp;diff=9411"/>
		<updated>2020-05-29T13:47:43Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
Сохранять псевдостатические адреса страниц в произвольном виде.&amp;lt;br&amp;gt;&lt;br /&gt;
Например: необходимо сохранить страницу с адресом site.ru/page.html, но система автоматически преобразует такой адрес в site.ru/page-html.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
1. Создаем файл classes/components/content/custom_events.php, регистрируем в нем слушателя события:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
new umiEventListener(&amp;#039;systemModifyElement&amp;#039;, &amp;#039;content&amp;#039;, &amp;#039;changeAltName&amp;#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
2. В файле classes/components/content/customMacros.php описываем метод, который будет изменять псевдостатический адрес именно на тот, который мы указали:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function changeAltName(iUmiEventPoint $event) {&lt;br /&gt;
    if ($event-&amp;gt;getMode() == &amp;#039;after&amp;#039;) {&lt;br /&gt;
        if (is_string(getRequest(&amp;#039;alt-name&amp;#039;))) {&lt;br /&gt;
            $altName = getRequest(&amp;#039;alt-name&amp;#039;) !== &amp;#039;&amp;#039; ? getRequest(&amp;#039;alt-name&amp;#039;) : getRequest(&amp;#039;name&amp;#039;);&lt;br /&gt;
            $element = $event-&amp;gt;getRef(&amp;#039;element&amp;#039;);&lt;br /&gt;
            $element-&amp;gt;setAltName($altName, false);&lt;br /&gt;
            $element-&amp;gt;commit();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Теперь если в поле страницы &amp;quot;Псевдостатический адрес&amp;quot; написать &amp;quot;page.html&amp;quot;, то это значение сохранится без преобразования и страница будет открываться по данному адресу.&lt;br /&gt;
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]][[category:Написание кастомных макросов]][[category:Модуль Структура]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85_%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%BE%D0%B2_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86&amp;diff=9410</id>
		<title>Кастомизация сохранения псевдостатических адресов страниц</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D1%85_%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%BE%D0%B2_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86&amp;diff=9410"/>
		<updated>2020-05-29T13:45:59Z</updated>

		<summary type="html">&lt;p&gt;Aposio: Новая страница: «&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21&amp;#039;&amp;#039;&amp;#039;  == Задача == Сохранять псевдостатические адреса страниц в прои…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
Сохранять псевдостатические адреса страниц в произвольном виде.&amp;lt;br&amp;gt;&lt;br /&gt;
Например необходимо сохранить страницу с адресом site.ru/page.html, но система автоматически преобразует такой адрес в site.ru/page-html.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
1. Создаем файл classes/components/content/custom_events.php, регистрируем в нем слушателя события:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
new umiEventListener(&amp;#039;systemModifyElement&amp;#039;, &amp;#039;content&amp;#039;, &amp;#039;changeAltName&amp;#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
2. В файле classes/components/content/customMacros.php описываем метод, который будет изменять псевдостатический адрес именно на тот, который мы указали:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function changeAltName(iUmiEventPoint $event) {&lt;br /&gt;
    if ($event-&amp;gt;getMode() == &amp;#039;after&amp;#039;) {&lt;br /&gt;
        if (is_string(getRequest(&amp;#039;alt-name&amp;#039;))) {&lt;br /&gt;
            $altName = getRequest(&amp;#039;alt-name&amp;#039;) !== &amp;#039;&amp;#039; ? getRequest(&amp;#039;alt-name&amp;#039;) : getRequest(&amp;#039;name&amp;#039;);&lt;br /&gt;
            $element = $event-&amp;gt;getRef(&amp;#039;element&amp;#039;);&lt;br /&gt;
            $element-&amp;gt;setAltName($altName, false);&lt;br /&gt;
            $element-&amp;gt;commit();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Теперь если в поле страницы &amp;quot;Псевдостатический адрес&amp;quot; написать &amp;quot;page.html&amp;quot;, то это значение сохранится без преобразования и страница будет открываться по данному адресу.&lt;br /&gt;
[[category:Вопросы и уроки разработки сайтов на UMI.CMS]][[category:Написание кастомных макросов]][[category:Модуль Структура]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F_%D0%BE_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%B0%D0%B3%D0%B5%D0%BD%D1%82%D0%B5_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%BE%D0%B2&amp;diff=9409</id>
		<title>Расширенная информация о контрагенте для выгрузки заказов</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F_%D0%BE_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%B0%D0%B3%D0%B5%D0%BD%D1%82%D0%B5_%D0%B4%D0%BB%D1%8F_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%BE%D0%B2&amp;diff=9409"/>
		<updated>2020-05-18T14:04:28Z</updated>

		<summary type="html">&lt;p&gt;Aposio: Новая страница: «&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21&amp;#039;&amp;#039;&amp;#039;  == Задача == Добавить в файл с заказами, который выгружается с с…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
Добавить в файл с заказами, который выгружается с сайта в 1С, более подробную информацию о контрагенте.&amp;lt;br&amp;gt;&lt;br /&gt;
В рамках данной статьи будет показано, как добавить в файл следующую информацию:&lt;br /&gt;
* телефон&lt;br /&gt;
* email&lt;br /&gt;
* адрес&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
Вся работа будет производиться в файле styles\common\xsl\export\custom\ordersCommerceML.xsl&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
1. Копируем в файл styles\common\xsl\export\custom\ordersCommerceML.xsl из файла styles\common\xsl\export\ordersCommerceML.xsl следующие шаблоны:&lt;br /&gt;
* &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:template match=&amp;quot;object&amp;quot; mode=&amp;quot;order&amp;quot;&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
* &amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:template match=&amp;quot;object&amp;quot; mode=&amp;quot;customer&amp;quot;&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
Примечание: шаблон - это блок кода, начинающийся с &amp;lt;xsl:template...&amp;gt; и заканчивающийся &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
2. Добавляем в шаблон &amp;lt;xsl:template match=&amp;quot;object&amp;quot; mode=&amp;quot;order&amp;quot;&amp;gt; параметр delivery_id:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;xsl:param name=&amp;quot;delivery_id&amp;quot; select=&amp;quot;string(properties/group/property[@name=&amp;#039;delivery_address&amp;#039;]/value/item/@id)&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
3. Заменяем содержимое тега &amp;lt;Контрагенты&amp;gt; на следующее:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Контрагенты&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:apply-templates select=&amp;quot;document(concat(&amp;#039;uobject://&amp;#039;, $customer_id))/udata/object&amp;quot; mode=&amp;quot;customer&amp;quot; &amp;gt;&lt;br /&gt;
        &amp;lt;xsl:with-param name=&amp;quot;delivery_id&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:value-of select=&amp;quot;$delivery_id&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/xsl:with-param&amp;gt;&lt;br /&gt;
    &amp;lt;/xsl:apply-templates&amp;gt;&lt;br /&gt;
&amp;lt;/Контрагенты&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
4. Заменяем код шаблона &amp;lt;xsl:template match=&amp;quot;object&amp;quot; mode=&amp;quot;customer&amp;quot;&amp;gt; следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;object&amp;quot; mode=&amp;quot;customer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:param name=&amp;quot;delivery_id&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;index&amp;quot; select=&amp;quot;document(concat(&amp;#039;uobject://&amp;#039;, $delivery_id))//property[@name=&amp;#039;index&amp;#039;]/value&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;city&amp;quot; select=&amp;quot;document(concat(&amp;#039;uobject://&amp;#039;, $delivery_id))//property[@name=&amp;#039;city&amp;#039;]/value&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;street&amp;quot; select=&amp;quot;document(concat(&amp;#039;uobject://&amp;#039;, $delivery_id))//property[@name=&amp;#039;street&amp;#039;]/value&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;house&amp;quot; select=&amp;quot;document(concat(&amp;#039;uobject://&amp;#039;, $delivery_id))//property[@name=&amp;#039;house&amp;#039;]/value&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;xsl:variable name=&amp;quot;full_address&amp;quot; select=&amp;quot;concat($index, &amp;#039;, &amp;#039;, $city, &amp;#039;, &amp;#039;,  $street, &amp;#039;, &amp;#039;, $house)&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Контрагент&amp;gt;&lt;br /&gt;
        &amp;lt;Ид&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@id&amp;quot; /&amp;gt;&amp;lt;/Ид&amp;gt;&lt;br /&gt;
        &amp;lt;Наименование&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;//property[@name=&amp;#039;fname&amp;#039;]/value&amp;quot; /&amp;gt;&amp;amp;#160;&amp;lt;xsl:value-of select=&amp;quot;//property[@name=&amp;#039;lname&amp;#039;]/value&amp;quot; /&amp;gt;&amp;lt;/Наименование&amp;gt;&lt;br /&gt;
        &amp;lt;ПолноеНаименование&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;//property[@name=&amp;#039;fname&amp;#039;]/value&amp;quot; /&amp;gt;&amp;amp;#160;&amp;lt;xsl:value-of select=&amp;quot;//property[@name=&amp;#039;lname&amp;#039;]/value&amp;quot; /&amp;gt;&amp;lt;/ПолноеНаименование&amp;gt;&lt;br /&gt;
        &amp;lt;Роль&amp;gt;Покупатель&amp;lt;/Роль&amp;gt;&lt;br /&gt;
        &amp;lt;Фамилия&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;//property[@name=&amp;#039;lname&amp;#039;]/value&amp;quot; /&amp;gt;&amp;lt;/Фамилия&amp;gt;&lt;br /&gt;
        &amp;lt;Имя&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;//property[@name=&amp;#039;fname&amp;#039;]/value&amp;quot; /&amp;gt;&amp;lt;/Имя&amp;gt;&lt;br /&gt;
        &amp;lt;Контакты&amp;gt;&lt;br /&gt;
            &amp;lt;Контакт&amp;gt;&lt;br /&gt;
                &amp;lt;Тип&amp;gt;Телефон рабочий&amp;lt;/Тип&amp;gt;&lt;br /&gt;
                &amp;lt;Значение&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;//property[@name=&amp;#039;phone&amp;#039;]/value&amp;quot; /&amp;gt;&amp;lt;/Значение&amp;gt;&lt;br /&gt;
            &amp;lt;/Контакт&amp;gt;&lt;br /&gt;
            &amp;lt;Контакт&amp;gt;&lt;br /&gt;
                &amp;lt;Тип&amp;gt;Электронная почта&amp;lt;/Тип&amp;gt;&lt;br /&gt;
                &amp;lt;Значение&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;//property[@name=&amp;#039;email&amp;#039;]/value&amp;quot; /&amp;gt;&amp;lt;/Значение&amp;gt;&lt;br /&gt;
            &amp;lt;/Контакт&amp;gt;&lt;br /&gt;
        &amp;lt;/Контакты&amp;gt;&lt;br /&gt;
        &amp;lt;АдресРегистрации&amp;gt;&lt;br /&gt;
            &amp;lt;Представление&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$full_address&amp;quot; /&amp;gt;&amp;lt;/Представление&amp;gt;&lt;br /&gt;
            &amp;lt;АдресноеПоле&amp;gt;&lt;br /&gt;
                &amp;lt;Тип&amp;gt;Почтовый индекс&amp;lt;/Тип&amp;gt;&lt;br /&gt;
                &amp;lt;Значение&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$index&amp;quot; /&amp;gt;&amp;lt;/Значение&amp;gt;&lt;br /&gt;
            &amp;lt;/АдресноеПоле&amp;gt;&lt;br /&gt;
            &amp;lt;АдресноеПоле&amp;gt;&lt;br /&gt;
                &amp;lt;Тип&amp;gt;Город&amp;lt;/Тип&amp;gt;&lt;br /&gt;
                &amp;lt;Значение&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$city&amp;quot; /&amp;gt;&amp;lt;/Значение&amp;gt;&lt;br /&gt;
            &amp;lt;/АдресноеПоле&amp;gt;&lt;br /&gt;
            &amp;lt;АдресноеПоле&amp;gt;&lt;br /&gt;
                &amp;lt;Тип&amp;gt;Улица&amp;lt;/Тип&amp;gt;&lt;br /&gt;
                &amp;lt;Значение&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$street&amp;quot; /&amp;gt;&amp;lt;/Значение&amp;gt;&lt;br /&gt;
            &amp;lt;/АдресноеПоле&amp;gt;&lt;br /&gt;
            &amp;lt;АдресноеПоле&amp;gt;&lt;br /&gt;
                &amp;lt;Тип&amp;gt;Дом&amp;lt;/Тип&amp;gt;&lt;br /&gt;
                &amp;lt;Значение&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$house&amp;quot; /&amp;gt;&amp;lt;/Значение&amp;gt;&lt;br /&gt;
            &amp;lt;/АдресноеПоле&amp;gt;&lt;br /&gt;
        &amp;lt;/АдресРегистрации&amp;gt;&lt;br /&gt;
    &amp;lt;/Контрагент&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
В итоге информация о контрагенте будет выглядеть следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Контрагенты&amp;gt;&lt;br /&gt;
    &amp;lt;Контрагент&amp;gt;&lt;br /&gt;
        &amp;lt;Ид&amp;gt;1695&amp;lt;/Ид&amp;gt;&lt;br /&gt;
        &amp;lt;Наименование&amp;gt;Василий Пупкин&amp;lt;/Наименование&amp;gt;&lt;br /&gt;
        &amp;lt;ПолноеНаименование&amp;gt;Василий Пупкин&amp;lt;/ПолноеНаименование&amp;gt;&lt;br /&gt;
        &amp;lt;Роль&amp;gt;Покупатель&amp;lt;/Роль&amp;gt;&lt;br /&gt;
        &amp;lt;Фамилия&amp;gt;Пупкин&amp;lt;/Фамилия&amp;gt;&lt;br /&gt;
        &amp;lt;Имя&amp;gt;Василий&amp;lt;/Имя&amp;gt;&lt;br /&gt;
        &amp;lt;Контакты&amp;gt;&lt;br /&gt;
            &amp;lt;Контакт&amp;gt;&lt;br /&gt;
                &amp;lt;Тип&amp;gt;Телефон рабочий&amp;lt;/Тип&amp;gt;&lt;br /&gt;
                &amp;lt;Значение&amp;gt;+7-999-888-77-66&amp;lt;/Значение&amp;gt;&lt;br /&gt;
            &amp;lt;/Контакт&amp;gt;&lt;br /&gt;
            &amp;lt;Контакт&amp;gt;&lt;br /&gt;
                &amp;lt;Тип&amp;gt;Электронная почта&amp;lt;/Тип&amp;gt;&lt;br /&gt;
                &amp;lt;Значение&amp;gt;mail@mail.ru&amp;lt;/Значение&amp;gt;&lt;br /&gt;
            &amp;lt;/Контакт&amp;gt;&lt;br /&gt;
        &amp;lt;/Контакты&amp;gt;&lt;br /&gt;
        &amp;lt;АдресРегистрации&amp;gt;&lt;br /&gt;
            &amp;lt;Представление&amp;gt;197110, Санкт-Петербург, Красного Курсанта, 25&amp;lt;/Представление&amp;gt;&lt;br /&gt;
            &amp;lt;АдресноеПоле&amp;gt;&lt;br /&gt;
                &amp;lt;Тип&amp;gt;Почтовый индекс&amp;lt;/Тип&amp;gt;&lt;br /&gt;
                &amp;lt;Значение&amp;gt;197110&amp;lt;/Значение&amp;gt;&lt;br /&gt;
            &amp;lt;/АдресноеПоле&amp;gt;&lt;br /&gt;
            &amp;lt;АдресноеПоле&amp;gt;&lt;br /&gt;
                &amp;lt;Тип&amp;gt;Город&amp;lt;/Тип&amp;gt;&lt;br /&gt;
                &amp;lt;Значение&amp;gt;Санкт-Петербург&amp;lt;/Значение&amp;gt;&lt;br /&gt;
            &amp;lt;/АдресноеПоле&amp;gt;&lt;br /&gt;
            &amp;lt;АдресноеПоле&amp;gt;&lt;br /&gt;
                &amp;lt;Тип&amp;gt;Улица&amp;lt;/Тип&amp;gt;&lt;br /&gt;
                &amp;lt;Значение&amp;gt;Красного Курсанта&amp;lt;/Значение&amp;gt;&lt;br /&gt;
            &amp;lt;/АдресноеПоле&amp;gt;&lt;br /&gt;
            &amp;lt;АдресноеПоле&amp;gt;&lt;br /&gt;
                &amp;lt;Тип&amp;gt;Дом&amp;lt;/Тип&amp;gt;&lt;br /&gt;
                &amp;lt;Значение&amp;gt;25&amp;lt;/Значение&amp;gt;&lt;br /&gt;
            &amp;lt;/АдресноеПоле&amp;gt;&lt;br /&gt;
        &amp;lt;/АдресРегистрации&amp;gt;&lt;br /&gt;
    &amp;lt;/Контрагент&amp;gt;&lt;br /&gt;
&amp;lt;/Контрагенты&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Информация о структуре xml-файла взята из документации для разработчиков: [https://dev.1c-bitrix.ru/api_help/sale/xml/contragents.php XML-файлы для обмена данными]&lt;br /&gt;
 [[category:Модуль Обмен данными]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D0%B0%D0%BB%D0%B8%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%82%D0%B5%D0%B3%D0%BE%D0%B2_%D0%B2_TinyMCE&amp;diff=9407</id>
		<title>Отключение валидации тегов в TinyMCE</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D0%B0%D0%BB%D0%B8%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%82%D0%B5%D0%B3%D0%BE%D0%B2_%D0%B2_TinyMCE&amp;diff=9407"/>
		<updated>2020-04-02T09:39:21Z</updated>

		<summary type="html">&lt;p&gt;Aposio: Aposio переименовал страницу Отключение модерации тегов в TinyMCE в Отключение валидации тегов в TinyMCE&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
Отключить изменение тегов визуальным редактором.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
Добавить нужные элементы в список допустимых элементов.&lt;br /&gt;
&lt;br /&gt;
Например, имеется следующий код, который нужно добавить через визуальный редактор:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;example.com&amp;quot; width=&amp;quot;100&amp;quot; height=&amp;quot;100&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;autoplay;fullscreen&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Из данного тега редактор автоматически удалит атрибуты frameborder, allow и allowfullscreen, так как посчитает их невалидными.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Кастомизацию визуального редактора нужно производить в фале styles/common/js/cms/wysiwyg/tinymce47/tinymce_custom.js.&amp;lt;br&amp;gt;&lt;br /&gt;
Для разрешения отдельных атрибутов можно указать их по-отдельности:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
extended_valid_elements : &amp;#039;iframe[frameborder|allow]&amp;#039;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
А можно разрешить для тега iframe любые атрибуты:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
extended_valid_elements : &amp;#039;iframe[*]&amp;#039;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
После внесения нужных правок содержимое файла tinymce_custom.js  будет выглядеть следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
window.mceCustomSettings = {&lt;br /&gt;
	content_css : &amp;#039;/styles/common/js/cms/wysiwyg/tinymce47/tinymce_custom.css&amp;#039;,&lt;br /&gt;
	extended_valid_elements : &amp;#039;iframe[*]&amp;#039; // элементы можно перечислять через запятую&lt;br /&gt;
};&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для более тонкой настройки редактора можно обратиться к официальной документации: [https://www.tiny.cloud/docs/configure TinyMCE configuration options reference]&lt;br /&gt;
[[Категория:Решение проблем и ошибок]][[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D0%B0%D0%BB%D0%B8%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%82%D0%B5%D0%B3%D0%BE%D0%B2_%D0%B2_TinyMCE&amp;diff=9406</id>
		<title>Отключение валидации тегов в TinyMCE</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9E%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D0%B0%D0%BB%D0%B8%D0%B4%D0%B0%D1%86%D0%B8%D0%B8_%D1%82%D0%B5%D0%B3%D0%BE%D0%B2_%D0%B2_TinyMCE&amp;diff=9406"/>
		<updated>2020-04-02T09:38:36Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
Отключить изменение тегов визуальным редактором.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
Добавить нужные элементы в список допустимых элементов.&lt;br /&gt;
&lt;br /&gt;
Например, имеется следующий код, который нужно добавить через визуальный редактор:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;example.com&amp;quot; width=&amp;quot;100&amp;quot; height=&amp;quot;100&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;autoplay;fullscreen&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Из данного тега редактор автоматически удалит атрибуты frameborder, allow и allowfullscreen, так как посчитает их невалидными.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Кастомизацию визуального редактора нужно производить в фале styles/common/js/cms/wysiwyg/tinymce47/tinymce_custom.js.&amp;lt;br&amp;gt;&lt;br /&gt;
Для разрешения отдельных атрибутов можно указать их по-отдельности:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
extended_valid_elements : &amp;#039;iframe[frameborder|allow]&amp;#039;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
А можно разрешить для тега iframe любые атрибуты:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
extended_valid_elements : &amp;#039;iframe[*]&amp;#039;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
После внесения нужных правок содержимое файла tinymce_custom.js  будет выглядеть следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
window.mceCustomSettings = {&lt;br /&gt;
	content_css : &amp;#039;/styles/common/js/cms/wysiwyg/tinymce47/tinymce_custom.css&amp;#039;,&lt;br /&gt;
	extended_valid_elements : &amp;#039;iframe[*]&amp;#039; // элементы можно перечислять через запятую&lt;br /&gt;
};&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для более тонкой настройки редактора можно обратиться к официальной документации: [https://www.tiny.cloud/docs/configure TinyMCE configuration options reference]&lt;br /&gt;
[[Категория:Решение проблем и ошибок]][[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_%D0%B2_%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5&amp;diff=9405</id>
		<title>Фотография товара в уведомлении о заказе</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_%D0%B2_%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5&amp;diff=9405"/>
		<updated>2020-03-18T12:29:27Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
Добавить в почтовое уведомление о заказе изображение товара, используя модуль &amp;quot;Шаблоны уведомлений&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
Отображение информации о товарном наименовании настраивается в блоке &amp;quot;Шаблон товарного наименования&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
По-умолчанию в шаблоне можно использовать только следующие переменные:&amp;lt;br&amp;gt;&lt;br /&gt;
%link% - ссылка на страницу товара&amp;lt;br&amp;gt;&lt;br /&gt;
%name% - наименование товара&amp;lt;br&amp;gt;&lt;br /&gt;
%price% - цена&amp;lt;br&amp;gt;&lt;br /&gt;
%amount% - количество данного товара в заказе&amp;lt;br&amp;gt;&lt;br /&gt;
%suffix% - валюта&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. Для того, чтобы можно было добавлять в шаблон уведомления информацию о других характеристиках, нужно кастомизировать метод EmarketNotification::getOrderItems(). Его нужно скопировать из файла classes/components/emarket/notification.php в файл classes/components/emarket/customMacros.php, а затем внести в него правки.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function getOrderItems(order $order, $suffix) {&lt;br /&gt;
    $umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
    $items = [];&lt;br /&gt;
&lt;br /&gt;
    foreach ($order-&amp;gt;getItems() as $item) {&lt;br /&gt;
        $productPage = $item-&amp;gt;getItemElement();&lt;br /&gt;
        $link = &amp;#039;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
        if ($productPage instanceof iUmiHierarchyElement) {&lt;br /&gt;
            $link = $umiHierarchy-&amp;gt;getPathById($productPage-&amp;gt;getId());&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Определяем путь до изображения.&lt;br /&gt;
        // Подразумевается, что изображение установлено в поле типа &amp;quot;Изображение&amp;quot; с идентификатором &amp;quot;photo&amp;quot;&lt;br /&gt;
        $imgObj = $productPage-&amp;gt;getValue(&amp;#039;photo&amp;#039;);&lt;br /&gt;
        if ($imgObj instanceof iUmiImageFile) {&lt;br /&gt;
            $img = $imgObj-&amp;gt;getFilePath();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        $items[] = [&lt;br /&gt;
            &amp;#039;link&amp;#039; =&amp;gt; $link,&lt;br /&gt;
            &amp;#039;name&amp;#039; =&amp;gt; $item-&amp;gt;getName(),&lt;br /&gt;
            &amp;#039;price&amp;#039; =&amp;gt; $item-&amp;gt;getTotalActualPrice(),&lt;br /&gt;
            &amp;#039;amount&amp;#039; =&amp;gt; $item-&amp;gt;getAmount(),&lt;br /&gt;
            &amp;#039;suffix&amp;#039; =&amp;gt; $suffix,&lt;br /&gt;
            // Добавляем путь до изображения в возвращаемый массив&lt;br /&gt;
            &amp;#039;img&amp;#039; =&amp;gt; (isset($img)) ? $img : &amp;#039;/images/nophoto.jpg&amp;#039;					&lt;br /&gt;
        ];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return $items;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь в &amp;quot;Шаблоне товарного наименования&amp;quot; можно использовать переменную %img%. При добавлении следующего кода в шаблон, в письме будет отображаться изображение:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;%img%&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[category:Написание кастомных макросов]][[category:Модуль Шаблоны уведомлений]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_%D0%B2_%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5&amp;diff=9404</id>
		<title>Фотография товара в уведомлении о заказе</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_%D0%B2_%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5&amp;diff=9404"/>
		<updated>2020-03-18T12:07:21Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
Добавить в почтовое уведомление о заказе изображение товара, используя модуль &amp;quot;Шаблоны уведомлений&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
Отображение информации о товарном наименовании настраивается в блоке &amp;quot;Шаблон товарного наименования&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
По-умолчанию в шаблоне можно использовать только следующие переменные:&amp;lt;br&amp;gt;&lt;br /&gt;
%link% - ссылка на страницу товара&amp;lt;br&amp;gt;&lt;br /&gt;
%name% - наименование товара&amp;lt;br&amp;gt;&lt;br /&gt;
%price% - цена&amp;lt;br&amp;gt;&lt;br /&gt;
%amount% - количество данного товара в заказе&amp;lt;br&amp;gt;&lt;br /&gt;
%suffix% - валюта&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. Для того, чтобы можно было добавлять в шаблон уведомления информацию о других характеристиках, нужно кастомизировать метод EmarketNotification::getOrderItems(). Его нужно скопировать из файла classes/components/emarket/notification.php в файл classes/components/emarket/customMacros.php, а затем внести в него правки.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function getOrderItems(order $order, $suffix) {&lt;br /&gt;
    $umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
    $items = [];&lt;br /&gt;
&lt;br /&gt;
    foreach ($order-&amp;gt;getItems() as $item) {&lt;br /&gt;
        $productPage = $item-&amp;gt;getItemElement();&lt;br /&gt;
        $link = &amp;#039;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
        if ($productPage instanceof iUmiHierarchyElement) {&lt;br /&gt;
            $link = $umiHierarchy-&amp;gt;getPathById($productPage-&amp;gt;getId());&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Определяем путь до изображения.&lt;br /&gt;
        // Подразумевается, что изображение установлено в поле типа &amp;quot;Изображение&amp;quot; с идентификатором &amp;quot;photo&amp;quot;&lt;br /&gt;
        $imgObj = $productPage-&amp;gt;getValue(&amp;#039;photo&amp;#039;);&lt;br /&gt;
        if ($imgObj instanceof iUmiImageFile) {&lt;br /&gt;
            $img = $imgObj-&amp;gt;getFilePath();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        $items[] = [&lt;br /&gt;
            &amp;#039;link&amp;#039; =&amp;gt; $link,&lt;br /&gt;
            &amp;#039;name&amp;#039; =&amp;gt; $item-&amp;gt;getName(),&lt;br /&gt;
            &amp;#039;price&amp;#039; =&amp;gt; $item-&amp;gt;getTotalActualPrice(),&lt;br /&gt;
            &amp;#039;amount&amp;#039; =&amp;gt; $item-&amp;gt;getAmount(),&lt;br /&gt;
            &amp;#039;suffix&amp;#039; =&amp;gt; $suffix,&lt;br /&gt;
            // Добавляем путь до изображения в возвращаемый массив&lt;br /&gt;
            &amp;#039;img&amp;#039; =&amp;gt; $img					&lt;br /&gt;
            ];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return $items;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь в &amp;quot;Шаблоне товарного наименования&amp;quot; можно использовать переменную %img%. При добавлении следующего кода в шаблон, в письме будет отображаться изображение:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;%img%&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[category:Написание кастомных макросов]][[category:Модуль Шаблоны уведомлений]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B_%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B9&amp;diff=9403</id>
		<title>Категория:Модуль Шаблоны уведомлений</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B_%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B9&amp;diff=9403"/>
		<updated>2020-03-18T12:06:49Z</updated>

		<summary type="html">&lt;p&gt;Aposio: Aposio переименовал страницу Категория:Шаблоны уведомлений в Категория:Модуль Шаблоны уведомлений без оставления перенаправления&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B_%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B9&amp;diff=9402</id>
		<title>Категория:Модуль Шаблоны уведомлений</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B_%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B9&amp;diff=9402"/>
		<updated>2020-03-18T12:06:09Z</updated>

		<summary type="html">&lt;p&gt;Aposio: Создана пустая страница&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_%D0%B2_%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5&amp;diff=9401</id>
		<title>Фотография товара в уведомлении о заказе</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F_%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0_%D0%B2_%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5&amp;diff=9401"/>
		<updated>2020-03-18T12:05:42Z</updated>

		<summary type="html">&lt;p&gt;Aposio: Новая страница: «&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21&amp;#039;&amp;#039;&amp;#039;  == Задача == Добавить в почтовое уведомление о заказе изображен…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
Добавить в почтовое уведомление о заказе изображение товара, используя модуль &amp;quot;Шаблоны уведомлений&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
Отображение информации о товарном наименовании настраивается в блоке &amp;quot;Шаблон товарного наименования&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
По-умолчанию в шаблоне можно использовать только следующие переменные:&amp;lt;br&amp;gt;&lt;br /&gt;
%link% - ссылка на страницу товара&amp;lt;br&amp;gt;&lt;br /&gt;
%name% - наименование товара&amp;lt;br&amp;gt;&lt;br /&gt;
%price% - цена&amp;lt;br&amp;gt;&lt;br /&gt;
%amount% - количество данного товара в заказе&amp;lt;br&amp;gt;&lt;br /&gt;
%suffix% - валюта&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. Для того, чтобы можно было добавлять в шаблон уведомления информацию о других характеристиках, нужно кастомизировать метод EmarketNotification::getOrderItems(). Его нужно скопировать из файла classes/components/emarket/notification.php в файл classes/components/emarket/customMacros.php, а затем внести в него правки.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
public function getOrderItems(order $order, $suffix) {&lt;br /&gt;
    $umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
    $items = [];&lt;br /&gt;
&lt;br /&gt;
    foreach ($order-&amp;gt;getItems() as $item) {&lt;br /&gt;
        $productPage = $item-&amp;gt;getItemElement();&lt;br /&gt;
        $link = &amp;#039;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
        if ($productPage instanceof iUmiHierarchyElement) {&lt;br /&gt;
            $link = $umiHierarchy-&amp;gt;getPathById($productPage-&amp;gt;getId());&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Определяем путь до изображения.&lt;br /&gt;
        // Подразумевается, что изображение установлено в поле типа &amp;quot;Изображение&amp;quot; с идентификатором &amp;quot;photo&amp;quot;&lt;br /&gt;
        $imgObj = $productPage-&amp;gt;getValue(&amp;#039;photo&amp;#039;);&lt;br /&gt;
        if ($imgObj instanceof iUmiImageFile) {&lt;br /&gt;
            $img = $imgObj-&amp;gt;getFilePath();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        $items[] = [&lt;br /&gt;
            &amp;#039;link&amp;#039; =&amp;gt; $link,&lt;br /&gt;
            &amp;#039;name&amp;#039; =&amp;gt; $item-&amp;gt;getName(),&lt;br /&gt;
            &amp;#039;price&amp;#039; =&amp;gt; $item-&amp;gt;getTotalActualPrice(),&lt;br /&gt;
            &amp;#039;amount&amp;#039; =&amp;gt; $item-&amp;gt;getAmount(),&lt;br /&gt;
            &amp;#039;suffix&amp;#039; =&amp;gt; $suffix,&lt;br /&gt;
            // Добавляем путь до изображения в возвращаемый массив&lt;br /&gt;
            &amp;#039;img&amp;#039; =&amp;gt; $img					&lt;br /&gt;
            ];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return $items;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь в &amp;quot;Шаблоне товарного наименования&amp;quot; можно использовать переменную %img%. При добавлении следующего кода в шаблон, в письме будет отображаться изображение:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;%img%&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [[category:Написание кастомных макросов]][[category:Шаблоны уведомлений]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8_(%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8)&amp;diff=9400</id>
		<title>Установка из консоли (командной строки)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8_(%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8)&amp;diff=9400"/>
		<updated>2020-03-11T14:05:15Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
Выполнить установку UMI.CMS, используя средства командной строки сервера.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
&lt;br /&gt;
1) Проверка соответствия сервера [http://www.umi-cms.ru/support/umi_cms_system_requirements/ системным требованиям UMI.CMS]&lt;br /&gt;
&lt;br /&gt;
Консольный инсталлятор проверяет соответствие системным требованиям при установке.&lt;br /&gt;
Если вы используете отдельно консольный php и отдельно модуль apache - обратите внимание, что требования должны соблюдаться для обоих из них (иногда они используют разные конфигурационные файлы).&lt;br /&gt;
&lt;br /&gt;
2) Загрузка консольного инсталлятора:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Installer.zip]]&lt;br /&gt;
&lt;br /&gt;
Файл installer.php должен быть помещён в корневую директорию сайта, на который производится установка UMI.CMS. Рекомендуется, чтобы эта директория была пустой. Необходимо чтобы она имела права на чтение и запись из php (если затрудняетесь выбрать - ставьте 777).&lt;br /&gt;
Права на сам файл installer.php должны быть такими, чтобы php мог его переписать.&lt;br /&gt;
Инсталлятор обращается к внешним ресурсам для скачивания необходимых файлов и проверки аутентификационных данных. На хостинге для консольного php должны быть разрешены исходящие соединения.&lt;br /&gt;
&lt;br /&gt;
3) Загрузка и подготовка файла install.ini с настройками для установки:&lt;br /&gt;
&lt;br /&gt;
[[Файл:install.zip]]&lt;br /&gt;
&lt;br /&gt;
Права на файл install.ini должны быть такими, чтобы php мог его переписать. Файл install.ini должен быть помещён в ту же директорию, где находится installer.php, до начала установки.&lt;br /&gt;
В файле указаны доступы к базе данных. Перед началом установки она уже должна существовать. Рекомендуется, чтобы она была пустая.&lt;br /&gt;
&lt;br /&gt;
Файл должен быть сохранен в кодировке utf-8. Значения параметров, содержащие не латинские символы, а также спецсимволы необходимо брать в двойные кавычки &amp;quot;&amp;quot;; (например, пароль)&lt;br /&gt;
&lt;br /&gt;
Пример файла:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
;=======================================================&lt;br /&gt;
;= Инструкции для инсталлятора UMI.CMS в режиме CLI&lt;br /&gt;
;= Обязательные секции и их опции отмечены *&lt;br /&gt;
;=======================================================&lt;br /&gt;
&lt;br /&gt;
[SERVER]&lt;br /&gt;
; phppath=&amp;quot;php7.3&amp;quot; ;необходимо указать, если версия php в консоли по умолчанию &amp;lt; 7.0&lt;br /&gt;
&lt;br /&gt;
;Информация о лицензии *&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[LICENSE]&lt;br /&gt;
domain = &amp;quot;&amp;quot;; Домен *&lt;br /&gt;
ip = &amp;quot;&amp;quot;; ip Адрес *&lt;br /&gt;
key = &amp;quot;&amp;quot;; Лицензионный ключ *&lt;br /&gt;
&lt;br /&gt;
;Доступ к базе данных. *&lt;br /&gt;
;База данных должна быть создана&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[DB]&lt;br /&gt;
host = &amp;quot;&amp;quot;; Хост *&lt;br /&gt;
port= &amp;quot;&amp;quot;; Порт&lt;br /&gt;
user = &amp;quot;&amp;quot;; Логин *&lt;br /&gt;
password = &amp;quot;&amp;quot;; Пароль *&lt;br /&gt;
dbname = &amp;quot;&amp;quot;; Имя базы данных *&lt;br /&gt;
&lt;br /&gt;
[DEMOSITE]&lt;br /&gt;
name = &amp;quot;_blank&amp;quot;; Имя устанавливаемого решения&lt;br /&gt;
&lt;br /&gt;
;Информация о супервайзере *&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[SUPERVISOR]&lt;br /&gt;
login = &amp;quot;sv&amp;quot;; Логин *&lt;br /&gt;
password = &amp;quot;1&amp;quot;; Пароль *&lt;br /&gt;
lname = &amp;quot;&amp;quot;; Фамилия&lt;br /&gt;
fname = &amp;quot;&amp;quot;; Имя&lt;br /&gt;
mname = &amp;quot;&amp;quot;; Отчество&lt;br /&gt;
email = &amp;quot;&amp;quot;; Почтовый ящик&lt;br /&gt;
&lt;br /&gt;
[SETUP]&lt;br /&gt;
sleep=0 ; Время простоя для снижения нагрузки на сервер. Указывается в миллисекундах. Одна миллисекунда - одна тясячная одной секунды (500 = полсекунды)&lt;br /&gt;
download_by=4096 ; Размер запрашиваемого пакета с сервера обновлений. Указывается в килобайтах.&lt;br /&gt;
split_block_size=100000&lt;br /&gt;
&lt;br /&gt;
[UPDATES]&lt;br /&gt;
update-database-by-parts = &amp;quot;0&amp;quot;&lt;br /&gt;
keep-installer = &amp;quot;0&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Важно:&amp;#039;&amp;#039;&amp;#039; процесс установки с дефолтными значениями специально замедлен для слабых хостингов, поэтому с ними система может ставиться долго. Используйте следующие параметры для более быстрой установки или (наоборот) для экономии ресурсов сервера:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[SETUP]&lt;br /&gt;
sleep=1 ; Пауза между запросами в миллисекундах, чем меньше - тем быстрее.&lt;br /&gt;
download_by=4096 ; Размер запрашиваемого пакета с сервера обновлений. Указывается в килобайтах, чем больше - тем быстрее.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4) Выбор соответствующего демо-сайта для установки:&lt;br /&gt;
&lt;br /&gt;
Консольный установщик может устанавливать любой из демо-сайтов UMI.CMS, с учётом ограничений, описанных далее. Примеры этих сайтов можно увидеть в [http://demo.umi-cms.ru/ демо-центре].&lt;br /&gt;
Клиент вправе выбирать любой демо-сайт для любой редакции UMI.CMS. Однако следует учесть, что некоторые демосайты (например интернет-магазины) неразумно использовать для младших редакций, в которых нет соответствующих модулей (например модуля &amp;quot;Интернет-магазин&amp;quot;). Но с другой стороны, если клиент докупил необходимые модули, то он сможет получить соответствующий демо-сайт (набор модулей определяется по лицензионному ключу). В силу этих причин установщик может выдать [http://errors.umi-cms.ru/14022/ ошибку], если данный демосайт не подходит.&lt;br /&gt;
&lt;br /&gt;
Варианты демо-шаблонов:&amp;lt;br&amp;gt;&lt;br /&gt;
- &amp;quot;demomarket&amp;quot; - [https://demo.umi-cms.ru/category:all:commerce Адаптивный интернет-магазин]&amp;lt;br&amp;gt;&lt;br /&gt;
- &amp;quot;_blank&amp;quot; - без демо-шаблона&lt;br /&gt;
&lt;br /&gt;
5) Установка UMI.CMS:&lt;br /&gt;
&lt;br /&gt;
* Загрузите файл installer.php в корень сервера (DOCUMENT_ROOT) &lt;br /&gt;
* Создайте файл install.ini в (DOCUMENT_ROOT), укажите в нем все необходимые данные. Кодировка файла utf-8&lt;br /&gt;
* Зайдите на сервер по ssh.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh example.com -llogin&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Сделайте корневую директорию сервера (DOCUMENT_ROOT) текущей.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/www/example.com/htdocs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Запустите инсталлятор&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php -f installer.php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если консольный инсталлятор потребляет слишком много ресурсов сервера (процессор, память и т.д.) - обратитесь к специальным настройкам install.ini, позволяющих умерить их потребление.&lt;br /&gt;
&lt;br /&gt;
5) Коды ошибок:&lt;br /&gt;
&lt;br /&gt;
Практически все коды доступны по ссылке вида errors.umi-cms.ru/15000&lt;br /&gt;
где 15000 - числовой код ошибки.&lt;br /&gt;
&lt;br /&gt;
6) Персональный гейт для выдачи лицензионных ключей UMI.CMS:&lt;br /&gt;
&lt;br /&gt;
Со стороны компании &amp;quot;Юмисофт&amp;quot; существует специальный гейт, выдающий лицензионные ключи необходимого типа (Commerce Trial). При регистрации хостера на гейте ему выдаётся уникальный идентификатор (ID), а также инструкции, куда отсылать запросы на получение лицензионных ключей.&lt;br /&gt;
Если вы уже пользуетесь таким гейтом, то в 99% случаев вам не нужно ничего менять.&lt;br /&gt;
Если вы НЕ регистрировались на этом гейте и НЕ получали свой уникальный ID, обратитесь на partner@umisoft.ru за ним. Полученный ID нужно будет использовать в запросе лицензионных ключей UMI.CMS (см. ниже).&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Справочная информация:&lt;br /&gt;
&lt;br /&gt;
Описание гейта для выдачи ключей:&lt;br /&gt;
Хостер должен получать очередной ключ на каждый очередной экземпляр системы, устанавливаемой клиенту. Для получения ключа нужно обращаться по URL:&lt;br /&gt;
для редакции Commerce Trial:&lt;br /&gt;
http://updateserver.umihost.ru/udata/custom/generateLicenseGate/SFNUFTDJYFT/client@email.ru/FirstName/LastName/client.domain.ru/client.ip.address/trial&lt;br /&gt;
&lt;br /&gt;
SFNUFTDJYFT - пример уникального ID вашего хостинга (см. выше про выдачу ключа персонального гейта)&lt;br /&gt;
следующие параметры по порядку:&lt;br /&gt;
e-mail клиента&lt;br /&gt;
имя клиента&lt;br /&gt;
фамилия клиента&lt;br /&gt;
домен клиента&lt;br /&gt;
IP-адрес, на котором расположен сайт с этим доменом&lt;br /&gt;
&lt;br /&gt;
В результате выполнения этого запроса вы получаете XML-данные. Из них вам нужно извлечь значение параметра &amp;quot;domain-keycode&amp;quot; - это доменный ключ, который нужно записать в файл install.ini для инсталлятора UMI.CMS. После этого запустить инсталлятор.&lt;br /&gt;
[[Категория:Вопросы установки настройки и переноса]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8_(%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8)&amp;diff=9399</id>
		<title>Установка из консоли (командной строки)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8_(%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8)&amp;diff=9399"/>
		<updated>2020-03-11T14:03:26Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
Выполнить установку UMI.CMS, используя средства командной строки сервера.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
&lt;br /&gt;
1) Проверка соответствия сервера [http://www.umi-cms.ru/support/umi_cms_system_requirements/ системным требованиям UMI.CMS]&lt;br /&gt;
&lt;br /&gt;
Консольный инсталлятор проверяет соответствие системным требованиям при установке.&lt;br /&gt;
Если вы используете отдельно консольный php и отдельно модуль apache - обратите внимание, что требования должны соблюдаться для обоих из них (иногда они используют разные конфигурационные файлы).&lt;br /&gt;
&lt;br /&gt;
2) Загрузка консольного инсталлятора:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Installer.zip]]&lt;br /&gt;
&lt;br /&gt;
Файл installer.php должен быть помещён в корневую директорию сайта, на который производится установка UMI.CMS. Рекомендуется, чтобы эта директория была пустой. Необходимо чтобы она имела права на чтение и запись из php (если затрудняетесь выбрать - ставьте 777).&lt;br /&gt;
Права на сам файл installer.php должны быть такими, чтобы php мог его переписать.&lt;br /&gt;
Инсталлятор обращается к внешним ресурсам для скачивания необходимых файлов и проверки аутентификационных данных. На хостинге для консольного php должны быть разрешены исходящие соединения.&lt;br /&gt;
&lt;br /&gt;
3) Загрузка и подготовка файла install.ini с настройками для установки:&lt;br /&gt;
&lt;br /&gt;
[[Файл:install.zip]]&lt;br /&gt;
&lt;br /&gt;
Права на файл install.ini должны быть такими, чтобы php мог его переписать. Файл install.ini должен быть помещён в ту же директорию, где находится installer.php, до начала установки.&lt;br /&gt;
В файле указаны доступы к базе данных. Перед началом установки она уже должна существовать. Рекомендуется, чтобы она была пустая.&lt;br /&gt;
&lt;br /&gt;
Файл должен быть сохранен в кодировке utf-8. Значения параметров, содержащие не латинские символы, а также спецсимволы необходимо брать в двойные кавычки &amp;quot;&amp;quot;; (например, пароль)&lt;br /&gt;
&lt;br /&gt;
Пример файла:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
;=======================================================&lt;br /&gt;
;= Инструкции для инсталлятора UMI.CMS в режиме CLI&lt;br /&gt;
;= Обязательные секции и их опции отмечены *&lt;br /&gt;
;=======================================================&lt;br /&gt;
&lt;br /&gt;
[SERVER]&lt;br /&gt;
; phppath=&amp;quot;php7.3&amp;quot; ;необходимо указать, если версия php в консоли по умолчанию &amp;lt; 7.0&lt;br /&gt;
&lt;br /&gt;
;Информация о лицензии *&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[LICENSE]&lt;br /&gt;
domain = &amp;quot;&amp;quot;; Домен *&lt;br /&gt;
ip = &amp;quot;&amp;quot;; ip Адрес *&lt;br /&gt;
key = &amp;quot;&amp;quot;; Лицензионный ключ *&lt;br /&gt;
&lt;br /&gt;
;Доступ к базе данных. *&lt;br /&gt;
;База данных должна быть создана&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[DB]&lt;br /&gt;
host = &amp;quot;&amp;quot;; Хост *&lt;br /&gt;
port= &amp;quot;&amp;quot;; Порт&lt;br /&gt;
user = &amp;quot;&amp;quot;; Логин *&lt;br /&gt;
password = &amp;quot;&amp;quot;; Пароль *&lt;br /&gt;
dbname = &amp;quot;&amp;quot;; Имя базы данных *&lt;br /&gt;
&lt;br /&gt;
[DEMOSITE]&lt;br /&gt;
name = &amp;quot;_blank&amp;quot;; Имя устанавливаемого решения&lt;br /&gt;
&lt;br /&gt;
;Информация о супервайзере *&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[SUPERVISOR]&lt;br /&gt;
login = &amp;quot;sv&amp;quot;; Логин *&lt;br /&gt;
password = &amp;quot;1&amp;quot;; Пароль *&lt;br /&gt;
lname = &amp;quot;&amp;quot;; Фамилия&lt;br /&gt;
fname = &amp;quot;&amp;quot;; Имя&lt;br /&gt;
mname = &amp;quot;&amp;quot;; Отчество&lt;br /&gt;
email = &amp;quot;&amp;quot;; Почтовый ящик&lt;br /&gt;
&lt;br /&gt;
[SETUP]&lt;br /&gt;
sleep=0 ; Время простоя для снижения нагрузки на сервер. Указывается в миллисекундах. Одна миллисекунда - одна тясячная одной секунды (500 = полсекунды)&lt;br /&gt;
download_by=4096 ; Размер запрашиваемого пакета с сервера обновлений. Указывается в килобайтах.&lt;br /&gt;
split_block_size=100000&lt;br /&gt;
&lt;br /&gt;
[UPDATES]&lt;br /&gt;
update-database-by-parts = &amp;quot;0&amp;quot;&lt;br /&gt;
keep-installer = &amp;quot;0&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Важно:&amp;#039;&amp;#039;&amp;#039; процесс установки с дефолтными значениями специально замедлен для слабых хостингов, поэтому с ними система может ставиться долго. Используйте следующие параметры для более быстрой установки или (наоборот) для экономии ресурсов сервера:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[SETUP]&lt;br /&gt;
sleep=1 ; Пауза между запросами в миллисекундах, чем меньше - тем быстрее.&lt;br /&gt;
download_by=4096 ; Размер запрашиваемого пакета с сервера обновлений. Указывается в килобайтах, чем больше - тем быстрее.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4) Выбор соответствующего демо-сайта для установки:&lt;br /&gt;
&lt;br /&gt;
Консольный установщик может устанавливать любой из демо-сайтов UMI.CMS, с учётом ограничений, описанных далее. Примеры этих сайтов можно увидеть в [http://demo.umi-cms.ru/ демо-центре].&lt;br /&gt;
Клиент вправе выбирать любой демо-сайт для любой редакции UMI.CMS. Однако следует учесть, что некоторые демосайты (например интернет-магазины) неразумно использовать для младших редакций, в которых нет соответствующих модулей (например модуля &amp;quot;Интернет-магазин&amp;quot;). Но с другой стороны, если клиент докупил необходимые модули, то он сможет получить соответствующий демо-сайт (набор модулей определяется по лицензионному ключу). В силу этих причин установщик может выдать [http://errors.umi-cms.ru/14022/ ошибку], если данный демосайт не подходит.&lt;br /&gt;
&lt;br /&gt;
Варианты демо-шаблонов:&lt;br /&gt;
- &amp;quot;demomarket&amp;quot; - [https://demo.umi-cms.ru/category:all:commerce Адаптивный интернет-магазин]&lt;br /&gt;
- &amp;quot;_blank&amp;quot; - без демо-шаблона&lt;br /&gt;
&lt;br /&gt;
5) Установка UMI.CMS:&lt;br /&gt;
&lt;br /&gt;
* Загрузите файл installer.php в корень сервера (DOCUMENT_ROOT) &lt;br /&gt;
* Создайте файл install.ini в (DOCUMENT_ROOT), укажите в нем все необходимые данные. Кодировка файла utf-8&lt;br /&gt;
* Зайдите на сервер по ssh.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh example.com -llogin&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Сделайте корневую директорию сервера (DOCUMENT_ROOT) текущей.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/www/example.com/htdocs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Запустите инсталлятор&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php -f installer.php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если консольный инсталлятор потребляет слишком много ресурсов сервера (процессор, память и т.д.) - обратитесь к специальным настройкам install.ini, позволяющих умерить их потребление.&lt;br /&gt;
&lt;br /&gt;
5) Коды ошибок:&lt;br /&gt;
&lt;br /&gt;
Практически все коды доступны по ссылке вида errors.umi-cms.ru/15000&lt;br /&gt;
где 15000 - числовой код ошибки.&lt;br /&gt;
&lt;br /&gt;
6) Персональный гейт для выдачи лицензионных ключей UMI.CMS:&lt;br /&gt;
&lt;br /&gt;
Со стороны компании &amp;quot;Юмисофт&amp;quot; существует специальный гейт, выдающий лицензионные ключи необходимого типа (Commerce Trial). При регистрации хостера на гейте ему выдаётся уникальный идентификатор (ID), а также инструкции, куда отсылать запросы на получение лицензионных ключей.&lt;br /&gt;
Если вы уже пользуетесь таким гейтом, то в 99% случаев вам не нужно ничего менять.&lt;br /&gt;
Если вы НЕ регистрировались на этом гейте и НЕ получали свой уникальный ID, обратитесь на partner@umisoft.ru за ним. Полученный ID нужно будет использовать в запросе лицензионных ключей UMI.CMS (см. ниже).&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Справочная информация:&lt;br /&gt;
&lt;br /&gt;
Описание гейта для выдачи ключей:&lt;br /&gt;
Хостер должен получать очередной ключ на каждый очередной экземпляр системы, устанавливаемой клиенту. Для получения ключа нужно обращаться по URL:&lt;br /&gt;
для редакции Commerce Trial:&lt;br /&gt;
http://updateserver.umihost.ru/udata/custom/generateLicenseGate/SFNUFTDJYFT/client@email.ru/FirstName/LastName/client.domain.ru/client.ip.address/trial&lt;br /&gt;
&lt;br /&gt;
SFNUFTDJYFT - пример уникального ID вашего хостинга (см. выше про выдачу ключа персонального гейта)&lt;br /&gt;
следующие параметры по порядку:&lt;br /&gt;
e-mail клиента&lt;br /&gt;
имя клиента&lt;br /&gt;
фамилия клиента&lt;br /&gt;
домен клиента&lt;br /&gt;
IP-адрес, на котором расположен сайт с этим доменом&lt;br /&gt;
&lt;br /&gt;
В результате выполнения этого запроса вы получаете XML-данные. Из них вам нужно извлечь значение параметра &amp;quot;domain-keycode&amp;quot; - это доменный ключ, который нужно записать в файл install.ini для инсталлятора UMI.CMS. После этого запустить инсталлятор.&lt;br /&gt;
[[Категория:Вопросы установки настройки и переноса]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8_(%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8)&amp;diff=9398</id>
		<title>Установка из консоли (командной строки)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8_(%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8)&amp;diff=9398"/>
		<updated>2020-03-11T13:45:51Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Для установки потребуется:&lt;br /&gt;
&lt;br /&gt;
0) Соответствие сервера [http://www.umi-cms.ru/support/umi_cms_system_requirements/ системным требованиям UMI.CMS]&lt;br /&gt;
&lt;br /&gt;
Консольный инсталлятор проверяет соответствие системным требованиям при установке.&lt;br /&gt;
Если вы используете отдельно консольный php и отдельно модуль apache - обратите внимание, что требования должны соблюдаться для обоих из них (иногда они используют разные конфигурационные файлы).&lt;br /&gt;
&lt;br /&gt;
1) Консольный инсталлятор:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Installer.zip]]&lt;br /&gt;
&lt;br /&gt;
Файл installer.php должен быть помещён в корневую директорию сайта, на который производится установка UMI.CMS. Рекомендуется, чтобы эта директория была пустой. Необходимо чтобы она имела права на чтение и запись из php (если затрудняетесь выбрать - ставьте 777).&lt;br /&gt;
Права на сам файл installer.php должны быть такими, чтобы php мог его переписать.&lt;br /&gt;
Инсталлятор обращается к внешним ресурсам для скачивания необходимых файлов и проверки аутентификационных данных. На хостинге для консольного php должны быть разрешены исходящие соединения.&lt;br /&gt;
&lt;br /&gt;
2) Файл install.ini с настройками для установки конкретного сайта:&lt;br /&gt;
&lt;br /&gt;
[[Файл:install.zip]]&lt;br /&gt;
&lt;br /&gt;
Права на файл install.ini должны быть такими, чтобы php мог его переписать. Файл install.ini должен быть помещён в ту же директорию, где находится installer.php, до начала установки.&lt;br /&gt;
В файле указаны доступы к базе данных. Перед началом установки она уже должна существовать. Рекомендуется, чтобы она была пустая.&lt;br /&gt;
&lt;br /&gt;
Файл должен быть сохранен в кодировке utf-8. Значения параметров, содержащие не латинские символы, а также спецсимволы необходимо брать в двойные кавычки &amp;quot;&amp;quot;; (например, пароль)&lt;br /&gt;
&lt;br /&gt;
Пример файла:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
;=======================================================&lt;br /&gt;
;= Инструкции для инсталлятора UMI.CMS в режиме CLI&lt;br /&gt;
;= Обязательные секции и их опции отмечены *&lt;br /&gt;
;=======================================================&lt;br /&gt;
&lt;br /&gt;
[SERVER]&lt;br /&gt;
; phppath=&amp;quot;php7.3&amp;quot; ;необходимо указать, если версия php в консоли по умолчанию &amp;lt; 7.0&lt;br /&gt;
&lt;br /&gt;
;Информация о лицензии *&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[LICENSE]&lt;br /&gt;
domain = &amp;quot;&amp;quot;; Домен *&lt;br /&gt;
ip = &amp;quot;&amp;quot;; ip Адрес *&lt;br /&gt;
key = &amp;quot;&amp;quot;; Лицензионный ключ *&lt;br /&gt;
&lt;br /&gt;
;Доступ к базе данных. *&lt;br /&gt;
;База данных должна быть создана&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[DB]&lt;br /&gt;
host = &amp;quot;&amp;quot;; Хост *&lt;br /&gt;
port= &amp;quot;&amp;quot;; Порт&lt;br /&gt;
user = &amp;quot;&amp;quot;; Логин *&lt;br /&gt;
password = &amp;quot;&amp;quot;; Пароль *&lt;br /&gt;
dbname = &amp;quot;&amp;quot;; Имя базы данных *&lt;br /&gt;
&lt;br /&gt;
[DEMOSITE]&lt;br /&gt;
name = &amp;quot;_blank&amp;quot;; Имя устанавливаемого решения&lt;br /&gt;
&lt;br /&gt;
;Информация о супервайзере *&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[SUPERVISOR]&lt;br /&gt;
login = &amp;quot;sv&amp;quot;; Логин *&lt;br /&gt;
password = &amp;quot;1&amp;quot;; Пароль *&lt;br /&gt;
lname = &amp;quot;&amp;quot;; Фамилия&lt;br /&gt;
fname = &amp;quot;&amp;quot;; Имя&lt;br /&gt;
mname = &amp;quot;&amp;quot;; Отчество&lt;br /&gt;
email = &amp;quot;&amp;quot;; Почтовый ящик&lt;br /&gt;
&lt;br /&gt;
[SETUP]&lt;br /&gt;
sleep=0 ; Время простоя для снижения нагрузки на сервер. Указывается в миллисекундах. Одна миллисекунда - одна тясячная одной секунды (500 = полсекунды)&lt;br /&gt;
download_by=4096 ; Размер запрашиваемого пакета с сервера обновлений. Указывается в килобайтах.&lt;br /&gt;
split_block_size=100000&lt;br /&gt;
&lt;br /&gt;
[UPDATES]&lt;br /&gt;
update-database-by-parts = &amp;quot;0&amp;quot;&lt;br /&gt;
keep-installer = &amp;quot;0&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Важно:&amp;#039;&amp;#039;&amp;#039; процесс установки с дефолтными значениями специально замедлен для слабых хостингов, поэтому с ними система может ставиться долго. Используйте следующие параметры для более быстрой установки или (наоборот) для экономии ресурсов сервера:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[SETUP]&lt;br /&gt;
sleep=1 ; Пауза между запросами в миллисекундах, чем меньше - тем быстрее.&lt;br /&gt;
download_by=4096 ; Размер запрашиваемого пакета с сервера обновлений. Указывается в килобайтах, чем больше - тем быстрее.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3) Выбор соответствующего демо-сайта для установки:&lt;br /&gt;
&lt;br /&gt;
Консольный установщик может устанавливать любой из демо-сайтов UMI.CMS, с учётом ограничений, описанных далее. Примеры этих сайтов можно увидеть в [http://demo.umi-cms.ru/ демо-центре].&lt;br /&gt;
Клиент вправе выбирать любой демо-сайт для любой редакции UMI.CMS. Однако следует учесть, что некоторые демосайты (например интернет-магазины) неразумно использовать для младших редакций, в которых нет соответствующих модулей (например модуля &amp;quot;Интернет-магазин&amp;quot;). Но с другой стороны, если клиент докупил необходимые модули, то он сможет получить соответствующий демо-сайт (набор модулей определяется по лицензионному ключу). В силу этих причин установщик может выдать [http://errors.umi-cms.ru/14022/ ошибку], если данный демосайт не подходит.&lt;br /&gt;
&lt;br /&gt;
Варианты демо-шаблонов:&lt;br /&gt;
- &amp;quot;demomarket&amp;quot; - [https://demo.umi-cms.ru/category:all:commerce Адаптивный интернет-магазин]&lt;br /&gt;
- &amp;quot;_blank&amp;quot; - без демо-шаблона&lt;br /&gt;
&lt;br /&gt;
4) Персональный гейт для выдачи лицензионных ключей UMI.CMS:&lt;br /&gt;
&lt;br /&gt;
Со стороны компании &amp;quot;Юмисофт&amp;quot; существует специальный гейт, выдающий лицензионные ключи необходимого типа (Commerce Trial). При регистрации хостера на гейте ему выдаётся уникальный идентификатор (ID), а также инструкции, куда отсылать запросы на получение лицензионных ключей.&lt;br /&gt;
Если вы уже пользуетесь таким гейтом, то в 99% случаев вам не нужно ничего менять.&lt;br /&gt;
Если вы НЕ регистрировались на этом гейте и НЕ получали свой уникальный ID, обратитесь на partner@umisoft.ru за ним. Полученный ID нужно будет использовать в запросе лицензионных ключей UMI.CMS (см. ниже).&lt;br /&gt;
&lt;br /&gt;
5) Инструкция по консольной установке UMI.CMS:&lt;br /&gt;
&lt;br /&gt;
* Загрузите файл installer.php в корень сервера (DOCUMENT_ROOT) &lt;br /&gt;
* Создайте файл install.ini в (DOCUMENT_ROOT), укажите в нем все необходимые данные. Кодировка файла utf-8&lt;br /&gt;
* Зайдите на сервер по ssh.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh example.com -llogin&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Сделайте корневую директорию сервера (DOCUMENT_ROOT) текущей.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/www/example.com/htdocs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Запустите инсталлятор&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php -f installer.php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если консольный инсталлятор потребляет слишком много ресурсов сервера (процессор, память и т.д.) - обратитесь к специальным настройкам install.ini, позволяющих умерить их потребление. &lt;br /&gt;
&lt;br /&gt;
6) Коды ошибок:&lt;br /&gt;
&lt;br /&gt;
Практически все коды доступны по ссылке вида errors.umi-cms.ru/15000&lt;br /&gt;
где 15000 - числовой код ошибки.&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Справочная информация:&lt;br /&gt;
&lt;br /&gt;
Описание гейта для выдачи ключей:&lt;br /&gt;
Хостер должен получать очередной ключ на каждый очередной экземпляр системы, устанавливаемой клиенту. Для получения ключа нужно обращаться по URL:&lt;br /&gt;
для редакции Commerce Trial:&lt;br /&gt;
http://updateserver.umihost.ru/udata/custom/generateLicenseGate/SFNUFTDJYFT/client@email.ru/FirstName/LastName/client.domain.ru/client.ip.address/trial&lt;br /&gt;
&lt;br /&gt;
SFNUFTDJYFT - пример уникального ID вашего хостинга (см. выше про выдачу ключа персонального гейта)&lt;br /&gt;
следующие параметры по порядку:&lt;br /&gt;
e-mail клиента&lt;br /&gt;
имя клиента&lt;br /&gt;
фамилия клиента&lt;br /&gt;
домен клиента&lt;br /&gt;
IP-адрес, на котором расположен сайт с этим доменом&lt;br /&gt;
&lt;br /&gt;
В результате выполнения этого запроса вы получаете XML-данные. Из них вам нужно извлечь значение параметра &amp;quot;domain-keycode&amp;quot; - это доменный ключ, который нужно записать в файл install.ini для инсталлятора UMI.CMS. После этого запустить инсталлятор.&lt;br /&gt;
[[Категория:Вопросы установки настройки и переноса]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8_(%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8)&amp;diff=9397</id>
		<title>Установка из консоли (командной строки)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8_(%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8)&amp;diff=9397"/>
		<updated>2020-03-11T13:45:09Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Для установки потребуется:&lt;br /&gt;
&lt;br /&gt;
0) Соответствие сервера [http://www.umi-cms.ru/support/umi_cms_system_requirements/ системным требованиям UMI.CMS]&lt;br /&gt;
&lt;br /&gt;
Консольный инсталлятор проверяет соответствие системным требованиям при установке.&lt;br /&gt;
Если вы используете отдельно консольный php и отдельно модуль apache - обратите внимание, что требования должны соблюдаться для обоих из них (иногда они используют разные конфигурационные файлы).&lt;br /&gt;
&lt;br /&gt;
1) Консольный инсталлятор:&lt;br /&gt;
&lt;br /&gt;
[[Файл:Installer.zip]]&lt;br /&gt;
&lt;br /&gt;
Файл installer.php должен быть помещён в корневую директорию сайта, на который производится установка UMI.CMS. Рекомендуется, чтобы эта директория была пустой. Необходимо чтобы она имела права на чтение и запись из php (если затрудняетесь выбрать - ставьте 777).&lt;br /&gt;
Права на сам файл installer.php должны быть такими, чтобы php мог его переписать.&lt;br /&gt;
Инсталлятор обращается к внешним ресурсам для скачивания необходимых файлов и проверки аутентификационных данных. На хостинге для консольного php должны быть разрешены исходящие соединения.&lt;br /&gt;
&lt;br /&gt;
2) Файл install.ini с настройками для установки конкретного сайта:&lt;br /&gt;
&lt;br /&gt;
[[Файл:install.ini]]&lt;br /&gt;
&lt;br /&gt;
Права на файл install.ini должны быть такими, чтобы php мог его переписать. Файл install.ini должен быть помещён в ту же директорию, где находится installer.php, до начала установки.&lt;br /&gt;
В файле указаны доступы к базе данных. Перед началом установки она уже должна существовать. Рекомендуется, чтобы она была пустая.&lt;br /&gt;
&lt;br /&gt;
Файл должен быть сохранен в кодировке utf-8. Значения параметров, содержащие не латинские символы, а также спецсимволы необходимо брать в двойные кавычки &amp;quot;&amp;quot;; (например, пароль)&lt;br /&gt;
&lt;br /&gt;
Пример файла:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
;=======================================================&lt;br /&gt;
;= Инструкции для инсталлятора UMI.CMS в режиме CLI&lt;br /&gt;
;= Обязательные секции и их опции отмечены *&lt;br /&gt;
;=======================================================&lt;br /&gt;
&lt;br /&gt;
[SERVER]&lt;br /&gt;
; phppath=&amp;quot;php7.3&amp;quot; ;необходимо указать, если версия php в консоли по умолчанию &amp;lt; 7.0&lt;br /&gt;
&lt;br /&gt;
;Информация о лицензии *&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[LICENSE]&lt;br /&gt;
domain = &amp;quot;&amp;quot;; Домен *&lt;br /&gt;
ip = &amp;quot;&amp;quot;; ip Адрес *&lt;br /&gt;
key = &amp;quot;&amp;quot;; Лицензионный ключ *&lt;br /&gt;
&lt;br /&gt;
;Доступ к базе данных. *&lt;br /&gt;
;База данных должна быть создана&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[DB]&lt;br /&gt;
host = &amp;quot;&amp;quot;; Хост *&lt;br /&gt;
port= &amp;quot;&amp;quot;; Порт&lt;br /&gt;
user = &amp;quot;&amp;quot;; Логин *&lt;br /&gt;
password = &amp;quot;&amp;quot;; Пароль *&lt;br /&gt;
dbname = &amp;quot;&amp;quot;; Имя базы данных *&lt;br /&gt;
&lt;br /&gt;
[DEMOSITE]&lt;br /&gt;
name = &amp;quot;_blank&amp;quot;; Имя устанавливаемого решения&lt;br /&gt;
&lt;br /&gt;
;Информация о супервайзере *&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[SUPERVISOR]&lt;br /&gt;
login = &amp;quot;sv&amp;quot;; Логин *&lt;br /&gt;
password = &amp;quot;1&amp;quot;; Пароль *&lt;br /&gt;
lname = &amp;quot;&amp;quot;; Фамилия&lt;br /&gt;
fname = &amp;quot;&amp;quot;; Имя&lt;br /&gt;
mname = &amp;quot;&amp;quot;; Отчество&lt;br /&gt;
email = &amp;quot;&amp;quot;; Почтовый ящик&lt;br /&gt;
&lt;br /&gt;
[SETUP]&lt;br /&gt;
sleep=0 ; Время простоя для снижения нагрузки на сервер. Указывается в миллисекундах. Одна миллисекунда - одна тясячная одной секунды (500 = полсекунды)&lt;br /&gt;
download_by=4096 ; Размер запрашиваемого пакета с сервера обновлений. Указывается в килобайтах.&lt;br /&gt;
split_block_size=100000&lt;br /&gt;
&lt;br /&gt;
[UPDATES]&lt;br /&gt;
update-database-by-parts = &amp;quot;0&amp;quot;&lt;br /&gt;
keep-installer = &amp;quot;0&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Важно:&amp;#039;&amp;#039;&amp;#039; процесс установки с дефолтными значениями специально замедлен для слабых хостингов, поэтому с ними система может ставиться долго. Используйте следующие параметры для более быстрой установки или (наоборот) для экономии ресурсов сервера:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[SETUP]&lt;br /&gt;
sleep=1 ; Пауза между запросами в миллисекундах, чем меньше - тем быстрее.&lt;br /&gt;
download_by=4096 ; Размер запрашиваемого пакета с сервера обновлений. Указывается в килобайтах, чем больше - тем быстрее.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3) Выбор соответствующего демо-сайта для установки:&lt;br /&gt;
&lt;br /&gt;
Консольный установщик может устанавливать любой из демо-сайтов UMI.CMS, с учётом ограничений, описанных далее. Примеры этих сайтов можно увидеть в [http://demo.umi-cms.ru/ демо-центре].&lt;br /&gt;
Клиент вправе выбирать любой демо-сайт для любой редакции UMI.CMS. Однако следует учесть, что некоторые демосайты (например интернет-магазины) неразумно использовать для младших редакций, в которых нет соответствующих модулей (например модуля &amp;quot;Интернет-магазин&amp;quot;). Но с другой стороны, если клиент докупил необходимые модули, то он сможет получить соответствующий демо-сайт (набор модулей определяется по лицензионному ключу). В силу этих причин установщик может выдать [http://errors.umi-cms.ru/14022/ ошибку], если данный демосайт не подходит.&lt;br /&gt;
&lt;br /&gt;
Варианты демо-шаблонов:&lt;br /&gt;
- &amp;quot;demomarket&amp;quot; - [https://demo.umi-cms.ru/category:all:commerce Адаптивный интернет-магазин]&lt;br /&gt;
- &amp;quot;_blank&amp;quot; - без демо-шаблона&lt;br /&gt;
&lt;br /&gt;
4) Персональный гейт для выдачи лицензионных ключей UMI.CMS:&lt;br /&gt;
&lt;br /&gt;
Со стороны компании &amp;quot;Юмисофт&amp;quot; существует специальный гейт, выдающий лицензионные ключи необходимого типа (Commerce Trial). При регистрации хостера на гейте ему выдаётся уникальный идентификатор (ID), а также инструкции, куда отсылать запросы на получение лицензионных ключей.&lt;br /&gt;
Если вы уже пользуетесь таким гейтом, то в 99% случаев вам не нужно ничего менять.&lt;br /&gt;
Если вы НЕ регистрировались на этом гейте и НЕ получали свой уникальный ID, обратитесь на partner@umisoft.ru за ним. Полученный ID нужно будет использовать в запросе лицензионных ключей UMI.CMS (см. ниже).&lt;br /&gt;
&lt;br /&gt;
5) Инструкция по консольной установке UMI.CMS:&lt;br /&gt;
&lt;br /&gt;
* Загрузите файл installer.php в корень сервера (DOCUMENT_ROOT) &lt;br /&gt;
* Создайте файл install.ini в (DOCUMENT_ROOT), укажите в нем все необходимые данные. Кодировка файла utf-8&lt;br /&gt;
* Зайдите на сервер по ssh.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh example.com -llogin&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Сделайте корневую директорию сервера (DOCUMENT_ROOT) текущей.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/www/example.com/htdocs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Запустите инсталлятор&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php -f installer.php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если консольный инсталлятор потребляет слишком много ресурсов сервера (процессор, память и т.д.) - обратитесь к специальным настройкам install.ini, позволяющих умерить их потребление. &lt;br /&gt;
&lt;br /&gt;
6) Коды ошибок:&lt;br /&gt;
&lt;br /&gt;
Практически все коды доступны по ссылке вида errors.umi-cms.ru/15000&lt;br /&gt;
где 15000 - числовой код ошибки.&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Справочная информация:&lt;br /&gt;
&lt;br /&gt;
Описание гейта для выдачи ключей:&lt;br /&gt;
Хостер должен получать очередной ключ на каждый очередной экземпляр системы, устанавливаемой клиенту. Для получения ключа нужно обращаться по URL:&lt;br /&gt;
для редакции Commerce Trial:&lt;br /&gt;
http://updateserver.umihost.ru/udata/custom/generateLicenseGate/SFNUFTDJYFT/client@email.ru/FirstName/LastName/client.domain.ru/client.ip.address/trial&lt;br /&gt;
&lt;br /&gt;
SFNUFTDJYFT - пример уникального ID вашего хостинга (см. выше про выдачу ключа персонального гейта)&lt;br /&gt;
следующие параметры по порядку:&lt;br /&gt;
e-mail клиента&lt;br /&gt;
имя клиента&lt;br /&gt;
фамилия клиента&lt;br /&gt;
домен клиента&lt;br /&gt;
IP-адрес, на котором расположен сайт с этим доменом&lt;br /&gt;
&lt;br /&gt;
В результате выполнения этого запроса вы получаете XML-данные. Из них вам нужно извлечь значение параметра &amp;quot;domain-keycode&amp;quot; - это доменный ключ, который нужно записать в файл install.ini для инсталлятора UMI.CMS. После этого запустить инсталлятор.&lt;br /&gt;
[[Категория:Вопросы установки настройки и переноса]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8_(%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8)&amp;diff=9396</id>
		<title>Установка из консоли (командной строки)</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8_(%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8)&amp;diff=9396"/>
		<updated>2020-03-11T13:43:33Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 21.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Для установки потребуется:&lt;br /&gt;
&lt;br /&gt;
0) Соответствие сервера [http://www.umi-cms.ru/support/umi_cms_system_requirements/ системным требованиям UMI.CMS]&lt;br /&gt;
&lt;br /&gt;
Консольный инсталлятор проверяет соответствие системным требованиям при установке.&lt;br /&gt;
Если вы используете отдельно консольный php и отдельно модуль apache - обратите внимание, что требования должны соблюдаться для обоих из них (иногда они используют разные конфигурационные файлы).&lt;br /&gt;
&lt;br /&gt;
1) Консольный инсталлятор:&lt;br /&gt;
&lt;br /&gt;
[[Скачать:Installer.zip]]&lt;br /&gt;
&lt;br /&gt;
Файл installer.php должен быть помещён в корневую директорию сайта, на который производится установка UMI.CMS. Рекомендуется, чтобы эта директория была пустой. Необходимо чтобы она имела права на чтение и запись из php (если затрудняетесь выбрать - ставьте 777).&lt;br /&gt;
Права на сам файл installer.php должны быть такими, чтобы php мог его переписать.&lt;br /&gt;
Инсталлятор обращается к внешним ресурсам для скачивания необходимых файлов и проверки аутентификационных данных. На хостинге для консольного php должны быть разрешены исходящие соединения.&lt;br /&gt;
&lt;br /&gt;
2) Файл install.ini с настройками для установки конкретного сайта:&lt;br /&gt;
&lt;br /&gt;
[[Скачать:Install.zip]]&lt;br /&gt;
&lt;br /&gt;
Права на файл install.ini должны быть такими, чтобы php мог его переписать. Файл install.ini должен быть помещён в ту же директорию, где находится installer.php, до начала установки.&lt;br /&gt;
В файле указаны доступы к базе данных. Перед началом установки она уже должна существовать. Рекомендуется, чтобы она была пустая.&lt;br /&gt;
&lt;br /&gt;
Файл должен быть сохранен в кодировке utf-8. Значения параметров, содержащие не латинские символы, а также спецсимволы необходимо брать в двойные кавычки &amp;quot;&amp;quot;; (например, пароль)&lt;br /&gt;
&lt;br /&gt;
Пример файла:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
;=======================================================&lt;br /&gt;
;= Инструкции для инсталлятора UMI.CMS в режиме CLI&lt;br /&gt;
;= Обязательные секции и их опции отмечены *&lt;br /&gt;
;=======================================================&lt;br /&gt;
&lt;br /&gt;
[SERVER]&lt;br /&gt;
; phppath=&amp;quot;php7.3&amp;quot; ;необходимо указать, если версия php в консоли по умолчанию &amp;lt; 7.0&lt;br /&gt;
&lt;br /&gt;
;Информация о лицензии *&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[LICENSE]&lt;br /&gt;
domain = &amp;quot;&amp;quot;; Домен *&lt;br /&gt;
ip = &amp;quot;&amp;quot;; ip Адрес *&lt;br /&gt;
key = &amp;quot;&amp;quot;; Лицензионный ключ *&lt;br /&gt;
&lt;br /&gt;
;Доступ к базе данных. *&lt;br /&gt;
;База данных должна быть создана&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[DB]&lt;br /&gt;
host = &amp;quot;&amp;quot;; Хост *&lt;br /&gt;
port= &amp;quot;&amp;quot;; Порт&lt;br /&gt;
user = &amp;quot;&amp;quot;; Логин *&lt;br /&gt;
password = &amp;quot;&amp;quot;; Пароль *&lt;br /&gt;
dbname = &amp;quot;&amp;quot;; Имя базы данных *&lt;br /&gt;
&lt;br /&gt;
[DEMOSITE]&lt;br /&gt;
name = &amp;quot;_blank&amp;quot;; Имя устанавливаемого решения&lt;br /&gt;
&lt;br /&gt;
;Информация о супервайзере *&lt;br /&gt;
;-------------------------------------------------------&lt;br /&gt;
[SUPERVISOR]&lt;br /&gt;
login = &amp;quot;sv&amp;quot;; Логин *&lt;br /&gt;
password = &amp;quot;1&amp;quot;; Пароль *&lt;br /&gt;
lname = &amp;quot;&amp;quot;; Фамилия&lt;br /&gt;
fname = &amp;quot;&amp;quot;; Имя&lt;br /&gt;
mname = &amp;quot;&amp;quot;; Отчество&lt;br /&gt;
email = &amp;quot;&amp;quot;; Почтовый ящик&lt;br /&gt;
&lt;br /&gt;
[SETUP]&lt;br /&gt;
sleep=0 ; Время простоя для снижения нагрузки на сервер. Указывается в миллисекундах. Одна миллисекунда - одна тясячная одной секунды (500 = полсекунды)&lt;br /&gt;
download_by=4096 ; Размер запрашиваемого пакета с сервера обновлений. Указывается в килобайтах.&lt;br /&gt;
split_block_size=100000&lt;br /&gt;
&lt;br /&gt;
[UPDATES]&lt;br /&gt;
update-database-by-parts = &amp;quot;0&amp;quot;&lt;br /&gt;
keep-installer = &amp;quot;0&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Важно:&amp;#039;&amp;#039;&amp;#039; процесс установки с дефолтными значениями специально замедлен для слабых хостингов, поэтому с ними система может ставиться долго. Используйте следующие параметры для более быстрой установки или (наоборот) для экономии ресурсов сервера:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[SETUP]&lt;br /&gt;
sleep=1 ; Пауза между запросами в миллисекундах, чем меньше - тем быстрее.&lt;br /&gt;
download_by=4096 ; Размер запрашиваемого пакета с сервера обновлений. Указывается в килобайтах, чем больше - тем быстрее.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3) Выбор соответствующего демо-сайта для установки:&lt;br /&gt;
&lt;br /&gt;
Консольный установщик может устанавливать любой из демо-сайтов UMI.CMS, с учётом ограничений, описанных далее. Примеры этих сайтов можно увидеть в [http://demo.umi-cms.ru/ демо-центре].&lt;br /&gt;
Клиент вправе выбирать любой демо-сайт для любой редакции UMI.CMS. Однако следует учесть, что некоторые демосайты (например интернет-магазины) неразумно использовать для младших редакций, в которых нет соответствующих модулей (например модуля &amp;quot;Интернет-магазин&amp;quot;). Но с другой стороны, если клиент докупил необходимые модули, то он сможет получить соответствующий демо-сайт (набор модулей определяется по лицензионному ключу). В силу этих причин установщик может выдать [http://errors.umi-cms.ru/14022/ ошибку], если данный демосайт не подходит.&lt;br /&gt;
&lt;br /&gt;
Варианты демо-шаблонов:&lt;br /&gt;
- &amp;quot;demomarket&amp;quot; - [https://demo.umi-cms.ru/category:all:commerce Адаптивный интернет-магазин]&lt;br /&gt;
- &amp;quot;_blank&amp;quot; - без демо-шаблона&lt;br /&gt;
&lt;br /&gt;
4) Персональный гейт для выдачи лицензионных ключей UMI.CMS:&lt;br /&gt;
&lt;br /&gt;
Со стороны компании &amp;quot;Юмисофт&amp;quot; существует специальный гейт, выдающий лицензионные ключи необходимого типа (Commerce Trial). При регистрации хостера на гейте ему выдаётся уникальный идентификатор (ID), а также инструкции, куда отсылать запросы на получение лицензионных ключей.&lt;br /&gt;
Если вы уже пользуетесь таким гейтом, то в 99% случаев вам не нужно ничего менять.&lt;br /&gt;
Если вы НЕ регистрировались на этом гейте и НЕ получали свой уникальный ID, обратитесь на partner@umisoft.ru за ним. Полученный ID нужно будет использовать в запросе лицензионных ключей UMI.CMS (см. ниже).&lt;br /&gt;
&lt;br /&gt;
5) Инструкция по консольной установке UMI.CMS:&lt;br /&gt;
&lt;br /&gt;
* Загрузите файл installer.php в корень сервера (DOCUMENT_ROOT) &lt;br /&gt;
* Создайте файл install.ini в (DOCUMENT_ROOT), укажите в нем все необходимые данные. Кодировка файла utf-8&lt;br /&gt;
* Зайдите на сервер по ssh.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
ssh example.com -llogin&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Сделайте корневую директорию сервера (DOCUMENT_ROOT) текущей.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /home/www/example.com/htdocs&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Запустите инсталлятор&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php -f installer.php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если консольный инсталлятор потребляет слишком много ресурсов сервера (процессор, память и т.д.) - обратитесь к специальным настройкам install.ini, позволяющих умерить их потребление. &lt;br /&gt;
&lt;br /&gt;
6) Коды ошибок:&lt;br /&gt;
&lt;br /&gt;
Практически все коды доступны по ссылке вида errors.umi-cms.ru/15000&lt;br /&gt;
где 15000 - числовой код ошибки.&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Справочная информация:&lt;br /&gt;
&lt;br /&gt;
Описание гейта для выдачи ключей:&lt;br /&gt;
Хостер должен получать очередной ключ на каждый очередной экземпляр системы, устанавливаемой клиенту. Для получения ключа нужно обращаться по URL:&lt;br /&gt;
для редакции Commerce Trial:&lt;br /&gt;
http://updateserver.umihost.ru/udata/custom/generateLicenseGate/SFNUFTDJYFT/client@email.ru/FirstName/LastName/client.domain.ru/client.ip.address/trial&lt;br /&gt;
&lt;br /&gt;
SFNUFTDJYFT - пример уникального ID вашего хостинга (см. выше про выдачу ключа персонального гейта)&lt;br /&gt;
следующие параметры по порядку:&lt;br /&gt;
e-mail клиента&lt;br /&gt;
имя клиента&lt;br /&gt;
фамилия клиента&lt;br /&gt;
домен клиента&lt;br /&gt;
IP-адрес, на котором расположен сайт с этим доменом&lt;br /&gt;
&lt;br /&gt;
В результате выполнения этого запроса вы получаете XML-данные. Из них вам нужно извлечь значение параметра &amp;quot;domain-keycode&amp;quot; - это доменный ключ, который нужно записать в файл install.ini для инсталлятора UMI.CMS. После этого запустить инсталлятор.&lt;br /&gt;
[[Категория:Вопросы установки настройки и переноса]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Install.zip&amp;diff=9395</id>
		<title>Файл:Install.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Install.zip&amp;diff=9395"/>
		<updated>2020-03-11T13:25:44Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Installer.zip&amp;diff=9394</id>
		<title>Файл:Installer.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Installer.zip&amp;diff=9394"/>
		<updated>2020-03-10T07:14:55Z</updated>

		<summary type="html">&lt;p&gt;Aposio: Aposio загрузил новую версию Файл:Installer.zip&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Файл для установки сиистемы в консольном режиме&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0_%D0%B8%D0%B7_1%D0%A1_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BF%D0%BE_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BC&amp;diff=9387</id>
		<title>Выгрузка из 1С информации по складам</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0_%D0%B8%D0%B7_1%D0%A1_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BF%D0%BE_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BC&amp;diff=9387"/>
		<updated>2019-12-20T08:59:48Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
Импортировать из 1С в карточки товара информацию о количестве на складах из тегов:&lt;br /&gt;
&amp;lt;source lang=&amp;#039;xml&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;Склад ИдСклада=&amp;quot;6257b501-c90c-11e2-bd93-001e67494c74&amp;quot; КоличествоНаСкладе=&amp;quot;84&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;Склад ИдСклада=&amp;quot;885f414e-4d67-11e5-ac2e-001e67494c75&amp;quot; КоличествоНаСкладе=&amp;quot;20&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
===Добавляем шаблон в файл /xsl/import/custom/commerceML2.xsl===&lt;br /&gt;
&amp;lt;source lang=&amp;#039;xml&amp;#039;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;ПакетПредложений&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;objects&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:for-each select=&amp;quot;Склады/Склад&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;object id=&amp;quot;{Ид}&amp;quot; type-id=&amp;quot;81&amp;quot; name=&amp;quot;{Наименование}&amp;quot; /&amp;gt; &amp;lt;!-- type-id - идентификатор справочника &amp;quot;Склад&amp;quot; --&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
		&amp;lt;/objects&amp;gt;&lt;br /&gt;
		&amp;lt;pages&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;Предложения/Предложение&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/pages&amp;gt;&lt;br /&gt;
		&amp;lt;options&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;Предложения/Предложение&amp;quot; mode=&amp;quot;stores_state&amp;quot; /&amp;gt;&lt;br /&gt;
   		&amp;lt;/options&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;Предложения/Предложение&amp;quot; mode=&amp;quot;stores_state&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;entity page-id=&amp;quot;{Ид}&amp;quot; field-name=&amp;quot;stores_state&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:for-each select=&amp;quot;Склад&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;option int=&amp;quot;{@КоличествоНаСкладе}&amp;quot; float=&amp;quot;0&amp;quot; object-id=&amp;quot;{@ИдСклада}&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
		&amp;lt;/entity&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Добавляем в базу данных запись в таблицу cms3_import_types:===&lt;br /&gt;
&amp;lt;source lang=&amp;#039;sql&amp;#039;&amp;gt;&lt;br /&gt;
INSERT INTO `cms3_import_types` (`source_id`, `old_id`, `new_id`)&lt;br /&gt;
VALUES (&amp;#039;5&amp;#039;, &amp;#039;71&amp;#039;, &amp;#039;71&amp;#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для source_id нужно указать id записи из таблицы cms3_import_sources, где source_name имеет значение &amp;#039;commerceML2&amp;#039;. Получить это значение можно запросом:&lt;br /&gt;
&amp;lt;source lang=&amp;#039;sql&amp;#039;&amp;gt;&lt;br /&gt;
SELECT id FROM cms3_import_sources WHERE source_name = &amp;#039;commerceML2&amp;#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для `old_id` и `new_id` нужно указать идентификатор справочника &amp;quot;Склад&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[category:Интеграция с 1С]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0_%D0%B8%D0%B7_1%D0%A1_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BF%D0%BE_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BC&amp;diff=9386</id>
		<title>Выгрузка из 1С информации по складам</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0_%D0%B8%D0%B7_1%D0%A1_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BF%D0%BE_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BC&amp;diff=9386"/>
		<updated>2019-12-20T08:44:35Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
Импортировать из 1С в карточки товара информацию о количестве на складах из тегов, например:&lt;br /&gt;
&amp;lt;source lang=&amp;#039;xml&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;Склад ИдСклада=&amp;quot;6257b501-c90c-11e2-bd93-001e67494c74&amp;quot; КоличествоНаСкладе=&amp;quot;84&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;Склад ИдСклада=&amp;quot;885f414e-4d67-11e5-ac2e-001e67494c75&amp;quot; КоличествоНаСкладе=&amp;quot;20&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
===Добавляем следующий шаблон в файл /xsl/import/custom/commerceML2.xsl===&lt;br /&gt;
&amp;lt;source lang=&amp;#039;xml&amp;#039;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;ПакетПредложений&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;objects&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:for-each select=&amp;quot;Склады/Склад&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;object id=&amp;quot;{Ид}&amp;quot; type-id=&amp;quot;81&amp;quot; name=&amp;quot;{Наименование}&amp;quot; /&amp;gt; &amp;lt;!-- type-id - идентификатор справочника &amp;quot;Склад&amp;quot; --&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
		&amp;lt;/objects&amp;gt;&lt;br /&gt;
		&amp;lt;pages&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;Предложения/Предложение&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/pages&amp;gt;&lt;br /&gt;
		&amp;lt;options&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;Предложения/Предложение&amp;quot; mode=&amp;quot;stores_state&amp;quot; /&amp;gt;&lt;br /&gt;
   		&amp;lt;/options&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;xsl:template match=&amp;quot;Предложения/Предложение&amp;quot; mode=&amp;quot;stores_state&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;entity page-id=&amp;quot;{Ид}&amp;quot; field-name=&amp;quot;stores_state&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:for-each select=&amp;quot;Склад&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;option int=&amp;quot;{@КоличествоНаСкладе}&amp;quot; float=&amp;quot;0&amp;quot; object-id=&amp;quot;{@ИдСклада}&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
		&amp;lt;/entity&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Добавляем в базу данных запись в таблицу cms3_import_types:===&lt;br /&gt;
&amp;lt;source lang=&amp;#039;sql&amp;#039;&amp;gt;&lt;br /&gt;
INSERT INTO `cms3_import_types` (`source_id`, `old_id`, `new_id`)&lt;br /&gt;
VALUES (&amp;#039;5&amp;#039;, &amp;#039;71&amp;#039;, &amp;#039;71&amp;#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для source_id нужно указать id записи из таблицы cms3_import_sources, где source_name имеет значение &amp;#039;commerceML2&amp;#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;#039;sql&amp;#039;&amp;gt;&lt;br /&gt;
SELECT id FROM cms3_import_sources WHERE source_name = &amp;#039;commerceML2&amp;#039;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для `old_id` и `new_id` нужно указать идентификатор справочника &amp;quot;Склад&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[category:Интеграция с 1С]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BE_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%BE%D0%B2&amp;diff=9379</id>
		<title>Списание со складов</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BE_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%BE%D0%B2&amp;diff=9379"/>
		<updated>2019-11-22T08:27:23Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
В системе UMI.CMS склады введены в основном для наглядности и для удобства менеджерам, обрабатывающим заказ. В этой статье мы добавим данным параметрам функциональности и организуем списание со склада.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача:&amp;#039;&amp;#039;&amp;#039; Реализовать функционал автоматического списания или возврата товара со склада.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Внимание:&amp;#039;&amp;#039;&amp;#039; Данная реализация списывает количество товаров со склада только в условии, если &amp;quot;Статус заказа&amp;quot; изменяется в самом &amp;quot;Свойстве заказа&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Условия работы макроса:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;В модуле &amp;quot;Шаблоны данных&amp;quot; в типе данных &amp;quot;Заказ&amp;quot; должно присутствовать невидимое поле типа &amp;quot;Кнопка-флажок&amp;quot; с идентификатором &amp;#039;&amp;#039;current_mode&amp;#039;&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;В модуле &amp;quot;Шаблоны данных&amp;quot; в типе данных &amp;quot;Объекты каталога&amp;quot; должно присутствовать поле типа &amp;quot;Составное&amp;quot; с идентификатором &amp;#039;&amp;#039;stores_state&amp;#039;&amp;#039; (&amp;quot;Состояние на складах&amp;quot;)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Реализация:&amp;#039;&amp;#039;&amp;#039; Напишем обработчик события для точки вызова systemModifyObject, которое вызывается при сохранении объекта в административной панели. Вся логика списания или возврата будет находиться в обработчике события. Списание происходит, если статус заказа был изменен на &amp;quot;Готов&amp;quot; (статус &amp;#039;ready&amp;#039;); возврат товара со склада, если статус заказа был изменен на &amp;quot;Отменен&amp;quot; (статус &amp;#039;canceled&amp;#039;).&amp;lt;br&amp;gt;&lt;br /&gt;
Код состоит из четырех методов, описание которых представлено ниже:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;public function &amp;#039;&amp;#039;&amp;#039;storesReact ($event)&amp;#039;&amp;#039;&amp;#039;: обработчик события для точки вызова systemModifyObject &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$event - параметр, экземпляр iUmiEventPoint &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;changeAmount($mode = &amp;#039;w&amp;#039;, $itemId, $storeId, $amount = 1):&amp;#039;&amp;#039;&amp;#039; Метод списания или возврата на склад&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$mode - режим, списание - &amp;#039;w&amp;#039;, возврат &amp;#039;b&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$itemId - id объекта каталога&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$storeId - id элемента склада&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$amount - количество товара для списания или возврата&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;changeAllAmounts($mode=&amp;#039;w&amp;#039;, $data):&amp;#039;&amp;#039;&amp;#039; метод списания или возврата всех товаров со складов&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$mode - режим, списание - &amp;#039;w&amp;#039;, возврат &amp;#039;b&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$data - массив, ключами которого являются id объекта каталога, а значениями количество товара для списания или возврата&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;getStoreId ($stores):&amp;#039;&amp;#039;&amp;#039; метод определения id элемента склада, то есть с какого склада списывать&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$stores - массив, предоставляющий результат работы метода getValue(&amp;#039;stores_state&amp;#039;) &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Добавим в директорию classes\modules\emarket файл с названием custom_events.php или если у Вас новая реализация модулей то в директорию classes\components\emarket файл с названием custom_events.php и содержанием:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    new umiEventListener(&amp;quot;systemModifyObject&amp;quot;, &amp;quot;emarket&amp;quot;, &amp;quot;storesReact&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файл classes\modules\emarket\__custom_adm.php или classes\components\emarket\customAdmin.php в зависимости от реализации модулей, добавим код обработчика события:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
		public function storesReact($event){&lt;br /&gt;
			$mode = $event-&amp;gt;getMode();&lt;br /&gt;
			&lt;br /&gt;
			if ($mode == &amp;#039;after&amp;#039;){&lt;br /&gt;
				$subject = $event-&amp;gt;getRef(&amp;#039;object&amp;#039;);&lt;br /&gt;
				$typesCollection = umiObjectTypesCollection::getInstance();&lt;br /&gt;
				$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
				$subjectTypeId = $subject-&amp;gt;getTypeId();&lt;br /&gt;
				$subjectType = $typesCollection-&amp;gt;getType($subjectTypeId);&lt;br /&gt;
				$subjectModule = $subjectType-&amp;gt;getModule();&lt;br /&gt;
				$subjectMethod = $subjectType-&amp;gt;getMethod();&lt;br /&gt;
				&lt;br /&gt;
				if ($subjectModule == &amp;#039;emarket&amp;#039; &amp;amp;&amp;amp; $subjectMethod == &amp;#039;order&amp;#039;){&lt;br /&gt;
                                        $subjectOrder = order::get($subject-&amp;gt;id);&lt;br /&gt;
					$orderStatusId = $subject-&amp;gt;getValue(&amp;#039;status_id&amp;#039;);&lt;br /&gt;
					$orderStatus = order::getCodeByStatus($orderStatusId);&lt;br /&gt;
					$currentSwitchMode = $subject-&amp;gt;getValue(&amp;#039;current_mode&amp;#039;);&lt;br /&gt;
					&lt;br /&gt;
					if (is_null($currentSwitchMode))&lt;br /&gt;
						$currentSwitchMode = false;&lt;br /&gt;
					&lt;br /&gt;
					$itemsArray = $subjectOrder-&amp;gt;getItems();&lt;br /&gt;
					&lt;br /&gt;
					$data = array();&lt;br /&gt;
					&lt;br /&gt;
					foreach($itemsArray as $item){&lt;br /&gt;
						$catalogObject = $item-&amp;gt;getItemElement();&lt;br /&gt;
						$catalogObjectId = $catalogObject-&amp;gt;id;&lt;br /&gt;
						$itemAmount = $item-&amp;gt;getAmount();&lt;br /&gt;
						$data[$catalogObjectId] = $itemAmount;&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					if ($orderStatus == &amp;#039;ready&amp;#039;){&lt;br /&gt;
					&lt;br /&gt;
						if (!$currentSwitchMode){&lt;br /&gt;
							$changed = self::changeAllAmounts(&amp;#039;w&amp;#039;, $data);&lt;br /&gt;
							&lt;br /&gt;
							if ($changed)&lt;br /&gt;
								$subject-&amp;gt;setValue(&amp;#039;current_mode&amp;#039;, 1);&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					if ($orderStatus == &amp;#039;canceled&amp;#039;){&lt;br /&gt;
&lt;br /&gt;
						if ($currentSwitchMode){&lt;br /&gt;
							$changed = self::changeAllAmounts(&amp;#039;b&amp;#039;, $data);&lt;br /&gt;
							&lt;br /&gt;
							if ($changed)&lt;br /&gt;
								$subject-&amp;gt;setValue(&amp;#039;current_mode&amp;#039;, 0);&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		protected function changeAmount($mode = &amp;#039;w&amp;#039;, $itemId, $storeId, $amount = 1){&lt;br /&gt;
			// mode &amp;#039;w&amp;#039; - write off&lt;br /&gt;
			// mode &amp;#039;b&amp;#039; - get back&lt;br /&gt;
			$amount = intval($amount);&lt;br /&gt;
			&lt;br /&gt;
			$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			$item = $umiHierarchy-&amp;gt;getElement($itemId);&lt;br /&gt;
			&lt;br /&gt;
			$data = array();&lt;br /&gt;
			&lt;br /&gt;
			if ($item instanceof umiHierarchyElement){&lt;br /&gt;
				$stores = $item-&amp;gt;getValue(&amp;#039;stores_state&amp;#039;);&lt;br /&gt;
				&lt;br /&gt;
				foreach ($stores as $key =&amp;gt; $store){&lt;br /&gt;
					&lt;br /&gt;
					if (in_array($storeId, $store)){&lt;br /&gt;
						$currentIndex = $key;&lt;br /&gt;
						$currentValue = $store[&amp;#039;int&amp;#039;];&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				if (!isset($currentValue) || !isset($key))&lt;br /&gt;
					return false;&lt;br /&gt;
				&lt;br /&gt;
				$amountNow = $currentValue;&lt;br /&gt;
				&lt;br /&gt;
				if ($mode == &amp;#039;w&amp;#039;)&lt;br /&gt;
					$amountNow = $currentValue - $amount;&lt;br /&gt;
				else &lt;br /&gt;
					$amountNow = $currentValue + $amount;&lt;br /&gt;
				&lt;br /&gt;
				$storesNow = array();&lt;br /&gt;
				$stores[$currentIndex][&amp;#039;int&amp;#039;] = $amountNow;&lt;br /&gt;
				&lt;br /&gt;
				foreach ($stores as $store){&lt;br /&gt;
					$storesNow[] = array(&amp;#039;int&amp;#039; =&amp;gt; $store[&amp;#039;int&amp;#039;], &amp;#039;rel&amp;#039; =&amp;gt; $store[&amp;#039;rel&amp;#039;]);&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				$item-&amp;gt;setValue(&amp;#039;stores_state&amp;#039;, $storesNow);&lt;br /&gt;
				return true;&lt;br /&gt;
			}&lt;br /&gt;
				&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		protected function changeAllAmounts($mode=&amp;#039;w&amp;#039;, $data){&lt;br /&gt;
			$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			&lt;br /&gt;
			foreach ($data as $id =&amp;gt; $amount){&lt;br /&gt;
				$catalogItem = $umiHierarchy-&amp;gt;getElement($id);&lt;br /&gt;
				$stores = $catalogItem-&amp;gt;getValue(&amp;#039;stores_state&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
				$storeId = self::getStoreId($stores);&lt;br /&gt;
				$changed = self::changeAmount($mode, $id, $storeId, $amount);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if ($changed)&lt;br /&gt;
				return true;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		protected function getStoreId($stores){&lt;br /&gt;
			if (!is_array($stores))&lt;br /&gt;
				return false;&lt;br /&gt;
			&lt;br /&gt;
			// Insert Your store id choosing logic&lt;br /&gt;
			&lt;br /&gt;
			$currentKey = 0;&lt;br /&gt;
			foreach ($stores as $key =&amp;gt; $store){&lt;br /&gt;
				if (intval($store[&amp;#039;int&amp;#039;]) &amp;gt; 0){&lt;br /&gt;
					$currentKey = $key;&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			if (is_numeric($stores[$currentKey][&amp;#039;rel&amp;#039;]))&lt;br /&gt;
				return $stores[$currentKey][&amp;#039;rel&amp;#039;];&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В метод getStoreId() Вы можете добавить свой код для определения id склада. По умолчанию списывание происходит с первого склада, товаров на котором больше нуля.&lt;br /&gt;
&lt;br /&gt;
[[category:Написание кастомных макросов]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BE_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%BE%D0%B2&amp;diff=9378</id>
		<title>Списание со складов</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%BE_%D1%81%D0%BA%D0%BB%D0%B0%D0%B4%D0%BE%D0%B2&amp;diff=9378"/>
		<updated>2019-11-22T08:24:21Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 18 ревизия 85081&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
В системе UMI.CMS склады введены в основном для наглядности и для удобства менеджерам, обрабатывающим заказ. В этой статье мы добавим данным параметрам функциональности и организуем списание со склада.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Задача:&amp;#039;&amp;#039;&amp;#039; Реализовать функционал автоматического списания или возврата товара со склада.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Внимание:&amp;#039;&amp;#039;&amp;#039; Данная реализация списывает количество товаров со склада только в условии, если &amp;quot;Статус заказа&amp;quot; изменяется в самом &amp;quot;Свойстве заказа&amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Условия работы макроса:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;В модуле &amp;quot;Шаблоны данных&amp;quot; в типе данных &amp;quot;Заказ&amp;quot; должно присутствовать невидимое поле типа &amp;quot;Кнопка-флажок&amp;quot; с идентификатором &amp;#039;&amp;#039;current_mode&amp;#039;&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;В модуле &amp;quot;Шаблоны данных&amp;quot; в типе данных &amp;quot;Объекты каталога&amp;quot; должно присутствовать поле типа &amp;quot;Составное&amp;quot; с идентификатором &amp;#039;&amp;#039;stores_state&amp;#039;&amp;#039; (&amp;quot;Состояние на складах&amp;quot;)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Реализация:&amp;#039;&amp;#039;&amp;#039; Напишем обработчик события для точки вызова systemModifyObject, которое вызывается при сохранении объекта в административной панели. Вся логика списания или возврата будет находиться в обработчике события. Списание происходит, если статус заказа был изменен на &amp;quot;Готов&amp;quot; (статус &amp;#039;ready&amp;#039;); возврат товара со склада, если статус заказа был изменен на &amp;quot;Отменен&amp;quot; (статус &amp;#039;canceled&amp;#039;).&amp;lt;br&amp;gt;&lt;br /&gt;
Код состоит из четырех методов, описание которых представлено ниже:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;public function &amp;#039;&amp;#039;&amp;#039;storesReact ($event)&amp;#039;&amp;#039;&amp;#039;: обработчик события для точки вызова systemModifyObject &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$event - параметр, экземпляр iUmiEventPoint &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;changeAmount($mode = &amp;#039;w&amp;#039;, $itemId, $storeId, $amount = 1):&amp;#039;&amp;#039;&amp;#039; Метод списания или возврата на склад&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$mode - режим, списание - &amp;#039;w&amp;#039;, возврат &amp;#039;b&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$itemId - id объекта каталога&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$storeId - id элемента склада&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$amount - количество товара для списания или возврата&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;changeAllAmounts($mode=&amp;#039;w&amp;#039;, $data):&amp;#039;&amp;#039;&amp;#039; метод списания или возврата всех товаров со складов&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$mode - режим, списание - &amp;#039;w&amp;#039;, возврат &amp;#039;b&amp;#039;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;$data - массив, ключами которого являются id объекта каталога, а значениями количество товара для списания или возврата&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;protected function &amp;#039;&amp;#039;&amp;#039;getStoreId ($stores):&amp;#039;&amp;#039;&amp;#039; метод определения id элемента склада, то есть с какого склада списывать&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;$stores - массив, предоставляющий результат работы метода getValue(&amp;#039;stores_state&amp;#039;) &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Добавим в директорию classes\modules\emarket файл с названием custom_events.php или если у Вас новая реализация модулей то в директорию classes\components\emarket файл с названием custom_events.php и содержанием:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    new umiEventListener(&amp;quot;systemModifyObject&amp;quot;, &amp;quot;emarket&amp;quot;, &amp;quot;storesReact&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файл classes\modules\emarket\__custom_adm.php или classes\components\emarket\customAdmin в зависимости от реализации модулей, добавим код обработчика события:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
		public function storesReact($event){&lt;br /&gt;
			$mode = $event-&amp;gt;getMode();&lt;br /&gt;
			&lt;br /&gt;
			if ($mode == &amp;#039;after&amp;#039;){&lt;br /&gt;
				$subject = $event-&amp;gt;getRef(&amp;#039;object&amp;#039;);&lt;br /&gt;
				$typesCollection = umiObjectTypesCollection::getInstance();&lt;br /&gt;
				$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
				$subjectTypeId = $subject-&amp;gt;getTypeId();&lt;br /&gt;
				$subjectType = $typesCollection-&amp;gt;getType($subjectTypeId);&lt;br /&gt;
				$subjectModule = $subjectType-&amp;gt;getModule();&lt;br /&gt;
				$subjectMethod = $subjectType-&amp;gt;getMethod();&lt;br /&gt;
				&lt;br /&gt;
				if ($subjectModule == &amp;#039;emarket&amp;#039; &amp;amp;&amp;amp; $subjectMethod == &amp;#039;order&amp;#039;){&lt;br /&gt;
                                        $subjectOrder = order::get($subject-&amp;gt;id);&lt;br /&gt;
					$orderStatusId = $subject-&amp;gt;getValue(&amp;#039;status_id&amp;#039;);&lt;br /&gt;
					$orderStatus = order::getCodeByStatus($orderStatusId);&lt;br /&gt;
					$currentSwitchMode = $subject-&amp;gt;getValue(&amp;#039;current_mode&amp;#039;);&lt;br /&gt;
					&lt;br /&gt;
					if (is_null($currentSwitchMode))&lt;br /&gt;
						$currentSwitchMode = false;&lt;br /&gt;
					&lt;br /&gt;
					$itemsArray = $subjectOrder-&amp;gt;getItems();&lt;br /&gt;
					&lt;br /&gt;
					$data = array();&lt;br /&gt;
					&lt;br /&gt;
					foreach($itemsArray as $item){&lt;br /&gt;
						$catalogObject = $item-&amp;gt;getItemElement();&lt;br /&gt;
						$catalogObjectId = $catalogObject-&amp;gt;id;&lt;br /&gt;
						$itemAmount = $item-&amp;gt;getAmount();&lt;br /&gt;
						$data[$catalogObjectId] = $itemAmount;&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					if ($orderStatus == &amp;#039;ready&amp;#039;){&lt;br /&gt;
					&lt;br /&gt;
						if (!$currentSwitchMode){&lt;br /&gt;
							$changed = self::changeAllAmounts(&amp;#039;w&amp;#039;, $data);&lt;br /&gt;
							&lt;br /&gt;
							if ($changed)&lt;br /&gt;
								$subject-&amp;gt;setValue(&amp;#039;current_mode&amp;#039;, 1);&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					if ($orderStatus == &amp;#039;canceled&amp;#039;){&lt;br /&gt;
&lt;br /&gt;
						if ($currentSwitchMode){&lt;br /&gt;
							$changed = self::changeAllAmounts(&amp;#039;b&amp;#039;, $data);&lt;br /&gt;
							&lt;br /&gt;
							if ($changed)&lt;br /&gt;
								$subject-&amp;gt;setValue(&amp;#039;current_mode&amp;#039;, 0);&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		protected function changeAmount($mode = &amp;#039;w&amp;#039;, $itemId, $storeId, $amount = 1){&lt;br /&gt;
			// mode &amp;#039;w&amp;#039; - write off&lt;br /&gt;
			// mode &amp;#039;b&amp;#039; - get back&lt;br /&gt;
			$amount = intval($amount);&lt;br /&gt;
			&lt;br /&gt;
			$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			$item = $umiHierarchy-&amp;gt;getElement($itemId);&lt;br /&gt;
			&lt;br /&gt;
			$data = array();&lt;br /&gt;
			&lt;br /&gt;
			if ($item instanceof umiHierarchyElement){&lt;br /&gt;
				$stores = $item-&amp;gt;getValue(&amp;#039;stores_state&amp;#039;);&lt;br /&gt;
				&lt;br /&gt;
				foreach ($stores as $key =&amp;gt; $store){&lt;br /&gt;
					&lt;br /&gt;
					if (in_array($storeId, $store)){&lt;br /&gt;
						$currentIndex = $key;&lt;br /&gt;
						$currentValue = $store[&amp;#039;int&amp;#039;];&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				if (!isset($currentValue) || !isset($key))&lt;br /&gt;
					return false;&lt;br /&gt;
				&lt;br /&gt;
				$amountNow = $currentValue;&lt;br /&gt;
				&lt;br /&gt;
				if ($mode == &amp;#039;w&amp;#039;)&lt;br /&gt;
					$amountNow = $currentValue - $amount;&lt;br /&gt;
				else &lt;br /&gt;
					$amountNow = $currentValue + $amount;&lt;br /&gt;
				&lt;br /&gt;
				$storesNow = array();&lt;br /&gt;
				$stores[$currentIndex][&amp;#039;int&amp;#039;] = $amountNow;&lt;br /&gt;
				&lt;br /&gt;
				foreach ($stores as $store){&lt;br /&gt;
					$storesNow[] = array(&amp;#039;int&amp;#039; =&amp;gt; $store[&amp;#039;int&amp;#039;], &amp;#039;rel&amp;#039; =&amp;gt; $store[&amp;#039;rel&amp;#039;]);&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				$item-&amp;gt;setValue(&amp;#039;stores_state&amp;#039;, $storesNow);&lt;br /&gt;
				return true;&lt;br /&gt;
			}&lt;br /&gt;
				&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
		protected function changeAllAmounts($mode=&amp;#039;w&amp;#039;, $data){&lt;br /&gt;
			$umiHierarchy = umiHierarchy::getInstance();&lt;br /&gt;
			&lt;br /&gt;
			foreach ($data as $id =&amp;gt; $amount){&lt;br /&gt;
				$catalogItem = $umiHierarchy-&amp;gt;getElement($id);&lt;br /&gt;
				$stores = $catalogItem-&amp;gt;getValue(&amp;#039;stores_state&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
				$storeId = self::getStoreId($stores);&lt;br /&gt;
				$changed = self::changeAmount($mode, $id, $storeId, $amount);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if ($changed)&lt;br /&gt;
				return true;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		protected function getStoreId($stores){&lt;br /&gt;
			if (!is_array($stores))&lt;br /&gt;
				return false;&lt;br /&gt;
			&lt;br /&gt;
			// Insert Your store id choosing logic&lt;br /&gt;
			&lt;br /&gt;
			$currentKey = 0;&lt;br /&gt;
			foreach ($stores as $key =&amp;gt; $store){&lt;br /&gt;
				if (intval($store[&amp;#039;int&amp;#039;]) &amp;gt; 0){&lt;br /&gt;
					$currentKey = $key;&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			if (is_numeric($stores[$currentKey][&amp;#039;rel&amp;#039;]))&lt;br /&gt;
				return $stores[$currentKey][&amp;#039;rel&amp;#039;];&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В метод getStoreId() Вы можете добавить свой код для определения id склада. По умолчанию списывание происходит с первого склада, товаров на котором больше нуля.&lt;br /&gt;
&lt;br /&gt;
[[category:Написание кастомных макросов]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9C%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D1%8C&amp;diff=9377</id>
		<title>Мультисайтовость</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9C%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D1%8C&amp;diff=9377"/>
		<updated>2019-11-21T07:47:18Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Система UMI.CMS поддерживает мультидоменность. Что это значит? Это значит, что под управлением одной системы UMI.CMS может работать сразу несколько сайтов на разных доменах*, что особенно удобно при организации бизнес-порталов, многоязычных сайтов, расположенных в разных доменных зонах, или больших интернет магазинов. Кроме того, Вы получаете единый центр управления всеми сайтами, а гибкая система настройки прав пользователей, позволяет назначить каждому порталу своих, независимых, контент-менеджеров.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Как организовать мультидоменность на UMI.CMS?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# 	Для начала, необходимо зарегистрировать новый домен. &lt;br /&gt;
# 	В &amp;#039;&amp;#039;&amp;#039;панели управления доменом&amp;#039;&amp;#039;&amp;#039; прописываете Name Server (NS) хостинга. Обратите внимание, что должен быть прописан NS того хостинга, на котором уже установлена и работает система UMI.CMS**&lt;br /&gt;
# 	В &amp;#039;&amp;#039;&amp;#039;панели управления хостингом&amp;#039;&amp;#039;&amp;#039; указываете, чтобы сервер при запросе нового домена, смотрел в ту же папку, где уже стоит и работает UMI.CMS. Другими словами — делаете новый домен зеркалом уже работающего (т.е. новый домен делаете алиасом уже работающего).&lt;br /&gt;
# 	Заходите в административную панель системы UMI.CMS, в модуле &amp;quot;Конфигурация&amp;quot; в разделе &amp;quot;Домены&amp;quot; прописываете новый домен***. Можно прописывать как с “www”, так и без “www”. Нажмите «Сохранить».****&lt;br /&gt;
&lt;br /&gt;
С этого момента система будет считать, что к ней подключены два домена. В этом можно убедиться, перейдя в модуль «Структура». Под корневым деревом основного домена появилось новое дерево структуры с названием домена, который Вы только что создали.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Вернитесь в модуль «Конфигурация», раздел «Домены». Рядом с записью нового домена после того, как Вы сохранили изменения, появится иконка редактирования. Нажмите на неё. Откроется раздел, в котором Вы можете дописать зеркала для только что созданного домена. К примеру, если Вы решили дописать на предыдущей странице домен без «www», то здесь можно указать с “www”. Это необходимо, чтобы Ваша страница открывалась на запрос в адресной строке браузера как вида &amp;#039;&amp;#039;www.my-site.com&amp;#039;&amp;#039;, так и &amp;#039;&amp;#039;my-site.com&amp;#039;&amp;#039;. Также Вы можете указать здесь другие домены, которые являются зеркалом только что добавленного домена.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для установки готового решения (шаблона) на добавленный домен перейдите в модуль &amp;quot;Конфигурация&amp;quot;, в раздел &amp;quot;Решения&amp;quot; и напротив домена нажмите на кнопку &amp;quot;Установить&amp;quot;. После этого откроется окно, в котором Вы сможете выбрать шаблон из списка бесплатных или приобретенных Вами. Дополнительная информация: [http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_konfiguraciya/vkladka_solutions раздел &amp;quot;Решения&amp;quot;]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;em&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; При условии соблюдения лицензионного соглашения, скачать и ознакомиться с которым Вы можете здесь: [https://www.umi-cms.ru/buy/licence_agreement Лицензионное соглашение]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt; Заметим, что некоторые редакции не поддерживают возможность мультидоменности. Ознакомиться с редакциями и сравнить их можно здесь: [https://www.umi-cms.ru/editions/compare Редакции UMI.CMS]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;***&amp;lt;/nowiki&amp;gt; Если Вам необходимо сменить привязку Вашего лицензионного ключа с одного домена, зарегистрированного в системе UMI.CMS, на другой, необходимо ознакомиться со следующей статьёй: [http://wiki.umisoft.ru/Переактивация Переактивация]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;****&amp;lt;/nowiki&amp;gt; Более подробное описание модуля «Конфигурация» Вы можете найти здесь: [http://help.umi-cms.ru Руководство пользователя UMI.CMS]&amp;lt;br/&amp;gt;&amp;lt;/em&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Вопросы установки настройки и переноса]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D1%81_%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B0_%D0%BD%D0%B0_%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80&amp;diff=9370</id>
		<title>Перенос сайта с хостинга на локальный компьютер</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D1%81_%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B0_%D0%BD%D0%B0_%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80&amp;diff=9370"/>
		<updated>2019-11-15T11:59:20Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
&lt;br /&gt;
Перенести сайт с другого сервера (с хостинга) на локальную машину.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Для того, чтобы сайт работал на локальной машине, нужно иметь на ней &amp;#039;&amp;#039;серверное программное обеспечение&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Варианты свободного программного обеспечения:&lt;br /&gt;
*Для ОС Linux, Вы можете использовать [https://ru.wikipedia.org/wiki/LAMP LAMP]&lt;br /&gt;
*Для ОС Windows самым простым решением будет [https://ospanel.io OpenServer]&lt;br /&gt;
&lt;br /&gt;
Вы можете использовать любое другое ПО на Ваш выбор. Главное, чтобы оно соответствовало &amp;#039;&amp;#039;[http://help.docs.umi-cms.ru/vvedenie/ustanovka_i_nastrojka/sistemnie_trebovaniya системным требованиям UMI.CMS]&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Процесс переноса сайта:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Переносим файловую систему сайта.&amp;#039;&amp;#039;&amp;#039; Обычно на хостинге в личном кабинете есть возможность архивировать файлы. Это позволяет скачать всю файловую систему Вашего сайта одним архивом, что очень удобно.&lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Переносим базу данных.&amp;#039;&amp;#039;&amp;#039; Работа с базой данных на хостинге обычно выполняется с помощью [https://www.phpmyadmin.net Phpmyadmin]. Из свободных альтернативных вариантов можно выделить легковесный [https://www.adminer.org Adminer]. Перенос выполняется в 2 этапа:&lt;br /&gt;
##Экспорт базы данных Вашего сайта.&lt;br /&gt;
##Импорт базы данных на локальный сервер.&lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Подключаем сайт к базе данных.&amp;#039;&amp;#039;&amp;#039; В файле config.ini, который расположен в корневой директории файловой системы, находим секцию [connections] и указываем корректные данные в следующих строчках: &amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
core.host = &amp;quot;&amp;quot;&lt;br /&gt;
core.login = &amp;quot;&amp;quot;&lt;br /&gt;
core.password = &amp;quot;&amp;quot;&lt;br /&gt;
core.dbname = &amp;quot;&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Изменяем в базе данных основной домен сайта.&amp;#039;&amp;#039;&amp;#039; Открываем таблицу cms3_domains и заменяем значение в столбце &amp;quot;host&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если в процессе использования UMI.CMS есть потребность обновлять систему, нужно выполнить &amp;#039;&amp;#039;[http://wiki.umisoft.ru/Переактивация Переактивацию системы]&amp;#039;&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B4%D0%B5%D0%B1%D0%B0%D0%B6%D0%B8%D1%82%D1%8C_XSLT&amp;diff=9343</id>
		<title>Как дебажить XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B4%D0%B5%D0%B1%D0%B0%D0%B6%D0%B8%D1%82%D1%8C_XSLT&amp;diff=9343"/>
		<updated>2019-10-01T08:20:17Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Задача===&lt;br /&gt;
Разобраться, каким образом можно дебажить XSLT.&lt;br /&gt;
&lt;br /&gt;
===Решение===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====С помощью вывода значения переменной====&lt;br /&gt;
Для выведения переменной можно воспользоваться следующей конструкцией, где в select необходимо указать переменную, которую хотим вывести на экран:&lt;br /&gt;
&amp;lt;source lang=&amp;#039;xslt&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:value-of select=&amp;quot; &amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Используя встроенный в систему режим отладки====&lt;br /&gt;
Также, дебажить XSLT удобно с включенным режимом дебага (включить его можно в файле config.ini -&amp;gt; секция debug). При таком подходе система сама сообщит, в каком файле проблема. Может получиться так, что проблема появляется до передачи данных в файл, тогда необходимо последовательно проверять схему работы данного участка кода.&lt;br /&gt;
&lt;br /&gt;
 [[category:Решение проблем и ошибок]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B4%D0%B5%D0%B1%D0%B0%D0%B6%D0%B8%D1%82%D1%8C_XSLT&amp;diff=9342</id>
		<title>Как дебажить XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B4%D0%B5%D0%B1%D0%B0%D0%B6%D0%B8%D1%82%D1%8C_XSLT&amp;diff=9342"/>
		<updated>2019-10-01T08:19:23Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Задача===&lt;br /&gt;
Разобраться, каким образом можно дебажить XSLT.&lt;br /&gt;
&lt;br /&gt;
===Решение===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===С помощью вывода значения переменной===&lt;br /&gt;
Для выведения переменной можно воспользоваться следующей конструкцией, где в select необходимо указать переменную, которую хотим вывести на экран:&lt;br /&gt;
&amp;lt;source lang=&amp;#039;xslt&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:value-of select=&amp;quot; &amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Используя встроенный в систему режим отладки===&lt;br /&gt;
Также, дебажить XSLT удобно с включенным режимом дебага (включить его можно в файле config.ini -&amp;gt; секция debug). При таком подходе система сама сообщит, в каком файле проблема. Может получиться так, что проблема появляется до передачи данных в файл, тогда необходимо последовательно проверять схему работы данного участка кода.&lt;br /&gt;
&lt;br /&gt;
===Результат===&lt;br /&gt;
Как итог имеем четкое понимание того, в каком именно месте искать причину ошибки.&lt;br /&gt;
&lt;br /&gt;
 [[category:Решение проблем и ошибок]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B4%D0%B5%D0%B1%D0%B0%D0%B6%D0%B8%D1%82%D1%8C_XSLT&amp;diff=9341</id>
		<title>Как дебажить XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B4%D0%B5%D0%B1%D0%B0%D0%B6%D0%B8%D1%82%D1%8C_XSLT&amp;diff=9341"/>
		<updated>2019-10-01T08:19:09Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Задача===&lt;br /&gt;
Разобраться, каким образом можно дебажить XSLT.&lt;br /&gt;
&lt;br /&gt;
===Решение===&lt;br /&gt;
Используя XSLT шаблонизатор, порой, не сразу удается найти файл, который отвечает за тот или иной блок на сайте.&lt;br /&gt;
&lt;br /&gt;
===С помощью вывода значения переменной===&lt;br /&gt;
Для выведения переменной можно воспользоваться следующей конструкцией, где в select необходимо указать переменную, которую хотим вывести на экран:&lt;br /&gt;
&amp;lt;source lang=&amp;#039;xslt&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:value-of select=&amp;quot; &amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Используя встроенный в систему режим отладки===&lt;br /&gt;
Также, дебажить XSLT удобно с включенным режимом дебага (включить его можно в файле config.ini -&amp;gt; секция debug). При таком подходе система сама сообщит, в каком файле проблема. Может получиться так, что проблема появляется до передачи данных в файл, тогда необходимо последовательно проверять схему работы данного участка кода.&lt;br /&gt;
&lt;br /&gt;
===Результат===&lt;br /&gt;
Как итог имеем четкое понимание того, в каком именно месте искать причину ошибки.&lt;br /&gt;
&lt;br /&gt;
 [[category:Решение проблем и ошибок]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B4%D0%B5%D0%B1%D0%B0%D0%B6%D0%B8%D1%82%D1%8C_XSLT&amp;diff=9340</id>
		<title>Как дебажить XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B4%D0%B5%D0%B1%D0%B0%D0%B6%D0%B8%D1%82%D1%8C_XSLT&amp;diff=9340"/>
		<updated>2019-10-01T08:18:55Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Задача===&lt;br /&gt;
Разобраться, каким образом можно дебажить XSLT.&lt;br /&gt;
&lt;br /&gt;
===Решение===&lt;br /&gt;
Используя XSLT шаблонизатор, порой, не сразу удается найти файл, который отвечает за тот или иной блок на сайте.&lt;br /&gt;
&lt;br /&gt;
===С помощью вывода значения переменной===&lt;br /&gt;
Для выведения переменной можно воспользоваться следующей конструкцией, где в select необходимо указать переменную, которую хотим вывести на экран:&lt;br /&gt;
&amp;lt;source lang=&amp;#039;xslt&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:value-of select=&amp;quot; &amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Используя встроенный в систему режим дебага===&lt;br /&gt;
Также, дебажить XSLT удобно с включенным режимом дебага (включить его можно в файле config.ini -&amp;gt; секция debug). При таком подходе система сама сообщит, в каком файле проблема. Может получиться так, что проблема появляется до передачи данных в файл, тогда необходимо последовательно проверять схему работы данного участка кода.&lt;br /&gt;
&lt;br /&gt;
===Результат===&lt;br /&gt;
Как итог имеем четкое понимание того, в каком именно месте искать причину ошибки.&lt;br /&gt;
&lt;br /&gt;
 [[category:Решение проблем и ошибок]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B4%D0%B5%D0%B1%D0%B0%D0%B6%D0%B8%D1%82%D1%8C_XSLT&amp;diff=9339</id>
		<title>Как дебажить XSLT</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%B4%D0%B5%D0%B1%D0%B0%D0%B6%D0%B8%D1%82%D1%8C_XSLT&amp;diff=9339"/>
		<updated>2019-10-01T08:17:25Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Задача===&lt;br /&gt;
Разобраться, каким образом можно дебажить XSLT.&lt;br /&gt;
&lt;br /&gt;
===Решение===&lt;br /&gt;
Используя XSLT шаблонизатор, порой, не сразу удается найти файл, который отвечает за тот или иной блок на сайте.&lt;br /&gt;
&lt;br /&gt;
===С помощью вывода значения переменной===&lt;br /&gt;
После нахождения файла, можно приступать к непосредственной отладке. Для выведения переменной можно воспользоваться следующей конструкцией, где в select необходимо указать переменную, которую хотим вывести на экран:&lt;br /&gt;
&amp;lt;source lang=&amp;#039;xslt&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
 &amp;lt;xsl:value-of select=&amp;quot;  &amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Используя встроенный в систему режим дебага===&lt;br /&gt;
Также, дебажить XSLT удобно с включенным режимом дебага (включить его можно в файле config.ini -&amp;gt; секция debug). При таком подходе система сама сообщит, в каком файле проблема. Может получиться так, что проблема появляется до передачи данных в файл, тогда необходимо последовательно проверять схему работы данного участка кода.&lt;br /&gt;
&lt;br /&gt;
===Результат===&lt;br /&gt;
Как итог имеем четкое понимание того, в каком именно месте искать причину ошибки.&lt;br /&gt;
&lt;br /&gt;
 [[category:Решение проблем и ошибок]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9_%D0%B2_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA_Sphinx&amp;diff=9330</id>
		<title>Добавление полей в поиск Sphinx</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9_%D0%B2_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA_Sphinx&amp;diff=9330"/>
		<updated>2019-09-23T11:28:43Z</updated>

		<summary type="html">&lt;p&gt;Aposio: Новая страница: «&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20&amp;#039;&amp;#039;&amp;#039;  == Задача == Нужно решить 2 проблемы:&amp;lt;br&amp;gt; 1. По умолчанию Sphinx не инд…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
Нужно решить 2 проблемы:&amp;lt;br&amp;gt;&lt;br /&gt;
1. По умолчанию Sphinx не индексирует кастомные поля.&amp;lt;br&amp;gt;&lt;br /&gt;
2. По умолчанию Sphinx выполняет индексацию полей объектов тех типов данных, которые являются дочерними для типа данных &amp;quot;Раздел сайта&amp;quot;. Если на сайте имеются, например, объекты, дочерние типу &amp;quot;Объект каталога&amp;quot;, их поля не попадут в индекс.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
Подразумевается, что Sphinx уже настроен и используется UMI.CMS.&amp;lt;br&amp;gt;&lt;br /&gt;
В модуле &amp;quot;Поиск&amp;quot;, при нажатии на кнопку &amp;quot;Генерация конфигурации&amp;quot; происходит добавление полей в индексную таблицу, а также запускается событие sphinxCreateView.&amp;lt;br&amp;gt;&lt;br /&gt;
=== Создадим слушатель события sphinxCreateView ===&lt;br /&gt;
в файле /classes/components/search/custom_events.php&lt;br /&gt;
&amp;lt;source lang=&amp;#039;php&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	new UmiEventListener(&amp;quot;sphinxCreateView&amp;quot;, &amp;quot;search&amp;quot;, &amp;quot;customCreateView&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Создадим обработчик события customCreateView ===&lt;br /&gt;
в файле /classes/components/search/customMacros.php&lt;br /&gt;
&amp;lt;source lang=&amp;#039;php&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
public function customCreateView(iUmiEventPoint $event) {&lt;br /&gt;
    if($event-&amp;gt;getMode() == &amp;#039;before&amp;#039;) {&lt;br /&gt;
        $contentIndex = $event-&amp;gt;getRef(&amp;#039;contentIndex&amp;#039;);&lt;br /&gt;
        if ($contentIndex instanceof SphinxIndexGenerator) {&lt;br /&gt;
            $types = umiObjectTypesCollection::getInstance();&lt;br /&gt;
&lt;br /&gt;
            // Получаем типы данных, дочерние типу &amp;quot;Раздел сайта&amp;quot;&lt;br /&gt;
            // &amp;#039;root-pages-type&amp;#039; - это guid типа данных &amp;quot;Раздел сайта&amp;quot; в БД в таблице cms3_object_types&lt;br /&gt;
            $subRootPages = $types-&amp;gt;getSubTypesList($types-&amp;gt;getType(&amp;#039;root-pages-type&amp;#039;)-&amp;gt;getId());&lt;br /&gt;
&lt;br /&gt;
            // Получаем типы данных, дочерние типу данных &amp;quot;Объект каталога&amp;quot;&lt;br /&gt;
            // &amp;#039;catalog-object&amp;#039; - это guid типа данных &amp;quot;Объект каталога&amp;quot; в БД в таблице cms3_object_types&lt;br /&gt;
            $subCatalogPages = $types-&amp;gt;getSubTypesList($types-&amp;gt;getType(&amp;#039;catalog-object&amp;#039;)-&amp;gt;getId());&lt;br /&gt;
&lt;br /&gt;
            // Объединяем полученные типы данных в один массив&lt;br /&gt;
            $pagesType = array_merge($subRootPages, $subCatalogPages);&lt;br /&gt;
					&lt;br /&gt;
            // Перечисляем идентификаторы полей, которые хотим добавить в индекс&lt;br /&gt;
            $indexFields = [&lt;br /&gt;
                &amp;#039;testovoe&amp;#039;,&lt;br /&gt;
                &amp;#039;volume&amp;#039;,&lt;br /&gt;
                &amp;#039;portability&amp;#039;&lt;br /&gt;
            ];&lt;br /&gt;
&lt;br /&gt;
            $contentIndex-&amp;gt;addPagesList($pagesType, $types, $indexFields);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таким образом все типы данных, дочерние типу &amp;quot;Объект каталога&amp;quot;, а также поля, перечисленные в массиве $indexFields, попадут в индексную таблицу и по ним будет работать поиск на сайте. &lt;br /&gt;
&lt;br /&gt;
 [[category:Модуль Поиск]] [[category:Вопросы и уроки разработки сайтов на UMI.CMS]] [[category:Написание кастомных макросов]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BD%D0%BE%D0%B2%D1%8B%D1%85_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9_%D0%B2_%D1%84%D0%BE%D1%80%D0%BC%D1%83_%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B5_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0_Demomarket&amp;diff=9329</id>
		<title>Добавление новых полей в форму регистрации на примере шаблона Demomarket</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BD%D0%BE%D0%B2%D1%8B%D1%85_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9_%D0%B2_%D1%84%D0%BE%D1%80%D0%BC%D1%83_%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B5_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0_Demomarket&amp;diff=9329"/>
		<updated>2019-09-12T15:02:35Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Задача ==&lt;br /&gt;
Реализовать добавление новых полей в форму регистрации в шаблоне Demomarket.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
Необходимо внести небольшие изменения в файл шаблона /templates/demomarket/php/users/registrate.phtml:&lt;br /&gt;
&lt;br /&gt;
За основу верстки новых полей возьмем следующий элемент из файла registrate.phtml: &lt;br /&gt;
&amp;lt;source lang=&amp;#039;php&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;important&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;login&amp;quot; placeholder=&amp;quot;&amp;lt;?= $this-&amp;gt;translate(&amp;#039;login&amp;#039;) ?&amp;gt;&amp;quot; required&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;sub_text&amp;quot;&amp;gt;&amp;lt;?= $this-&amp;gt;translate(&amp;#039;login&amp;#039;) ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Его необходимо вставить в нужное место в шаблоне и добавить в атрибут &amp;#039;&amp;#039;&amp;#039;name&amp;#039;&amp;#039;&amp;#039; значение идентификатора нужного Вам поля из типа данных &amp;quot;Незарегистрированный покупатель&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Для примера возьмём идентификатор &amp;quot;data[new][fname]&amp;quot; - идентификатор поля &amp;quot;Имя&amp;quot;. С остальными доступными полями Вы можете ознакомиться в админке сайта, в модуле &amp;quot;Шаблоны данных&amp;quot;, в типе данных &amp;quot;Незарегистрированный покупатель&amp;quot;. В этом типе данных Вы также можете добавить свои поля.&lt;br /&gt;
&lt;br /&gt;
Вот так должна выглядеть верстка нового поля:&lt;br /&gt;
&amp;lt;source lang=&amp;#039;php&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;important&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;data[new][fname]&amp;quot; placeholder=&amp;quot;Имя&amp;quot; required&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;sub_text&amp;quot;&amp;gt;Имя&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:Верстка в PHP]][[category:Вопросы и уроки разработки сайтов на UMI.CMS]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BD%D0%BE%D0%B2%D1%8B%D1%85_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9_%D0%B2_%D1%84%D0%BE%D1%80%D0%BC%D1%83_%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B5_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0_Demomarket&amp;diff=9327</id>
		<title>Добавление новых полей в форму регистрации на примере шаблона Demomarket</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BD%D0%BE%D0%B2%D1%8B%D1%85_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9_%D0%B2_%D1%84%D0%BE%D1%80%D0%BC%D1%83_%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8_%D0%BD%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B5_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0_Demomarket&amp;diff=9327"/>
		<updated>2019-09-12T14:45:05Z</updated>

		<summary type="html">&lt;p&gt;Aposio: Aposio переименовал страницу Добавление новых полей в форму регистрации шаблона Demomarket в [[Добавление новых полей в форму регистрации на п…&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Задача ==&lt;br /&gt;
Реализовать добавление новых регистрационных полей в шаблоне Demomarket.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
Для этого необходимо внести небольшие изменения в один файл шаблона:&lt;br /&gt;
&lt;br /&gt;
===registrate.phtml===&lt;br /&gt;
Файл находится по адресу &amp;lt;code&amp;gt;/templates/demomarket/php/users/registrate.phtml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для начала в файле необходимо скопировать следующий элемент : &lt;br /&gt;
&amp;lt;source lang=&amp;#039;php&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;important&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;login&amp;quot; placeholder=&amp;quot;&amp;lt;?= $this-&amp;gt;translate(&amp;#039;login&amp;#039;) ?&amp;gt;&amp;quot; required&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;sub_text&amp;quot;&amp;gt;&amp;lt;?= $this-&amp;gt;translate(&amp;#039;login&amp;#039;) ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Далее его необходимо вставить прямо над элементом который был скопирован и изменить метод &amp;#039;&amp;#039;&amp;#039;name=&amp;quot;&amp;quot;&amp;#039;&amp;#039;&amp;#039;,на тот который требуется. В дальнейшем его можно будет переместить куда вам необходимо.&lt;br /&gt;
&lt;br /&gt;
Для примера возьмём метод &amp;quot;data[new][fname]&amp;quot; - добавление поля &amp;quot;Имя&amp;quot;, с остальными методами вы можете ознакомиться по адресу &amp;lt;code&amp;gt;ваш_домен.ru/admin/data/type_edit/88/&amp;lt;/code&amp;gt;  или в админке сайта Модули&amp;gt;Шаблоны данных&amp;gt;  и справа в строке поиска вписать нужный тип данных.&lt;br /&gt;
&lt;br /&gt;
Базовая конструкция шаблона data[new]+требуемый метод, исходя из этого скрипт будет выглядеть следующим образом:&lt;br /&gt;
&amp;lt;source lang=&amp;#039;php&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;important&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;data[new][fname]&amp;quot; placeholder=&amp;quot;&amp;lt;?= $this-&amp;gt;translate(&amp;#039;login&amp;#039;) ?&amp;gt;&amp;quot; required&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;sub_text&amp;quot;&amp;gt;&amp;lt;?= $this-&amp;gt;translate(&amp;#039;login&amp;#039;) ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Нам осталось только поменять то что находится в скобках перед селектором &amp;quot;translate&amp;quot; вместо &amp;#039;login&amp;#039; необходимо написать слово &amp;#039;Имя&amp;#039; в двух местах.&lt;br /&gt;
&lt;br /&gt;
Вот как у вас должен выглядеть итоговый скрипт:&lt;br /&gt;
&amp;lt;source lang=&amp;#039;php&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;important&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;data[new][fname]&amp;quot; placeholder=&amp;quot;&amp;lt;?= $this-&amp;gt;translate(&amp;#039;Имя&amp;#039;) ?&amp;gt;&amp;quot; required&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;sub_text&amp;quot;&amp;gt;&amp;lt;?= $this-&amp;gt;translate(&amp;#039;Имя&amp;#039;) ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Этот скрипт можно будет вставить над любым регистрационным полем куда вам требуется.&lt;br /&gt;
&lt;br /&gt;
===Результат===&lt;br /&gt;
Если все сделано правильно, в поле для регистрации над вводом &amp;#039;логина&amp;#039; появится &amp;#039;Имя&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Верстка в PHP]][[category:Вопросы и уроки разработки сайтов на UMI.CMS]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[category:Верстка в PHP]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BD%D0%BE%D0%B2%D1%8B%D1%85_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9_%D0%B2_%D1%84%D0%BE%D1%80%D0%BC%D1%83_%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0_Demomarket&amp;diff=9328</id>
		<title>Добавление новых полей в форму регистрации шаблона Demomarket</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BD%D0%BE%D0%B2%D1%8B%D1%85_%D0%BF%D0%BE%D0%BB%D0%B5%D0%B9_%D0%B2_%D1%84%D0%BE%D1%80%D0%BC%D1%83_%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0_Demomarket&amp;diff=9328"/>
		<updated>2019-09-12T14:45:05Z</updated>

		<summary type="html">&lt;p&gt;Aposio: Aposio переименовал страницу Добавление новых полей в форму регистрации шаблона Demomarket в [[Добавление новых полей в форму регистрации на п…&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Добавление новых полей в форму регистрации на примере шаблона Demomarket]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D1%81_%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B0_%D0%BD%D0%B0_%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80&amp;diff=9307</id>
		<title>Перенос сайта с хостинга на локальный компьютер</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D1%81_%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B0_%D0%BD%D0%B0_%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80&amp;diff=9307"/>
		<updated>2019-08-30T09:53:31Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
&lt;br /&gt;
Перенести сайт с другого сервера (с хостинга) на локальную машину.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Для того, чтобы сайт работал на локальной машине, нужно иметь на ней &amp;#039;&amp;#039;серверное программное обеспечение&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Варианты свободного программного обеспечения:&lt;br /&gt;
*Для ОС Linux, Вы можете использовать [https://ru.wikipedia.org/wiki/LAMP LAMP]&lt;br /&gt;
*Для ОС Windows самым простым решением будет [https://ospanel.io OpenServer]&lt;br /&gt;
&lt;br /&gt;
Вы можете использовать любое другое ПО на Ваш выбор. Главное, чтобы оно соответствовало &amp;#039;&amp;#039;[http://help.docs.umi-cms.ru/vvedenie/ustanovka_i_nastrojka/sistemnie_trebovaniya системным требованиям UMI.CMS]&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Процесс переноса сайта:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Переносим файловую систему сайта.&amp;#039;&amp;#039;&amp;#039; Обычно на хостинге личном кабинете есть возможность архивировать файлы. Это позволяет скачать всю файловую систему Вашего сайта одним архивом, что очень удобно.&lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Переносим базу данных.&amp;#039;&amp;#039;&amp;#039; Работа с базой данных на хостинге обычно выполняется с помощью [https://www.phpmyadmin.net Phpmyadmin]. Из свободных альтернативных вариантов можно выделить легковесный [https://www.adminer.org Adminer]. Перенос выполняется в 2 этапа:&lt;br /&gt;
##Экспорт базы данных Вашего сайта.&lt;br /&gt;
##Импорт базы данных на локальный сервер.&lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Подключаем сайт к базе данных.&amp;#039;&amp;#039;&amp;#039; В файле config.ini, который расположен в корневой директории файловой системы, находим секцию [connections] и указываем корректные данные в следующих строчках: &amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
core.host = &amp;quot;&amp;quot;&lt;br /&gt;
core.login = &amp;quot;&amp;quot;&lt;br /&gt;
core.password = &amp;quot;&amp;quot;&lt;br /&gt;
core.dbname = &amp;quot;&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Изменяем в базе данных основной домен сайта.&amp;#039;&amp;#039;&amp;#039; Открываем таблицу cms3_domains и заменяем значение в столбце &amp;quot;host&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если в процессе использования UMI.CMS есть потребность обновлять систему, нужно выполнить &amp;#039;&amp;#039;[http://wiki.umisoft.ru/Переактивация Переактивацию системы]&amp;#039;&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D1%81_%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B0_%D0%BD%D0%B0_%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80&amp;diff=9306</id>
		<title>Перенос сайта с хостинга на локальный компьютер</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D1%81_%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B0_%D0%BD%D0%B0_%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80&amp;diff=9306"/>
		<updated>2019-08-30T09:52:33Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
&lt;br /&gt;
Перенести сайт с другого сервера (с хостинга) на локальную машину.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Для того, чтобы сайт работал на локальной машине, нужно иметь на ней &amp;#039;&amp;#039;серверное программное обеспечение&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Варианты свободного программного обеспечения:&lt;br /&gt;
*Для ОС Linux, Вы можете использовать [https://ru.wikipedia.org/wiki/LAMP LAMP]&lt;br /&gt;
*Для ОС Windows самым простым решением будет [https://ospanel.io OpenServer]&lt;br /&gt;
&lt;br /&gt;
Вы можете использовать любое другое ПО на Ваш выбор. Главное, чтобы оно соответствовало &amp;#039;&amp;#039;[http://help.docs.umi-cms.ru/vvedenie/ustanovka_i_nastrojka/sistemnie_trebovaniya системным требованиям UMI.CMS]&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Процесс переноса сайта:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Переносим файловую систему сайта.&amp;#039;&amp;#039;&amp;#039; Обычно на хостинге личном кабинете есть возможность архивировать файлы. Это позволяет скачать всю файловую систему Вашего сайта одним архивом, что очень удобно.&lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Переносим базу данных.&amp;#039;&amp;#039;&amp;#039; Работа с базой данных на хостинге обычно выполняется с помощью [https://www.phpmyadmin.net Phpmyadmin]. Из свободных альтернативных вариантов можно выделить легковесный [https://www.adminer.org Adminer]. Перенос выполняется в 2 этапа:&lt;br /&gt;
##Экспорт базы данных Вашего сайта&lt;br /&gt;
##Импорт базы данных на локальный сервер&lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Подключаем сайт к базе данных.&amp;#039;&amp;#039;&amp;#039; В файле config.ini, который расположен в корневой директории файловой системы находим секцию [connections] и указываем корректные данные в следующих строчках: &amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
core.host = &amp;quot;&amp;quot;&lt;br /&gt;
core.login = &amp;quot;&amp;quot;&lt;br /&gt;
core.password = &amp;quot;&amp;quot;&lt;br /&gt;
core.dbname = &amp;quot;&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Изменяем в базе данных основной домен сайта.&amp;#039;&amp;#039;&amp;#039; Открываем таблицу cms3_domains и заменяем значение в столбце &amp;quot;host&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если в процессе использования UMI.CMS есть потребность обновлять систему, нужно выполнить &amp;#039;&amp;#039;[http://wiki.umisoft.ru/Переактивация Переактивацию системы]&amp;#039;&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D1%81_%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B0_%D0%BD%D0%B0_%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80&amp;diff=9305</id>
		<title>Перенос сайта с хостинга на локальный компьютер</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D1%81_%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B0_%D0%BD%D0%B0_%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80&amp;diff=9305"/>
		<updated>2019-08-30T09:52:07Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
&lt;br /&gt;
Перенести сайт с другого сервера (с хостинга) на локальную машину.&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Для того, чтобы сайт работал на локальной машине, нужно иметь на ней &amp;#039;&amp;#039;серверное программное обеспечение&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Варианты свободного программного обеспечения:&lt;br /&gt;
*Для ОС Linux, Вы можете использовать [https://ru.wikipedia.org/wiki/LAMP LAMP]&lt;br /&gt;
*Для ОС Windows самым простым решением будет [https://ospanel.io OpenServer]&lt;br /&gt;
&lt;br /&gt;
Вы можете использовать любое другое ПО на Ваш выбор. Главное, чтобы оно соответствовало &amp;#039;&amp;#039;[http://help.docs.umi-cms.ru/vvedenie/ustanovka_i_nastrojka/sistemnie_trebovaniya системным требованиям UMI.CMS]&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Процесс переноса сайта:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;ереносим файловую систему сайта.&amp;#039;&amp;#039;&amp;#039; Обычно на хостинге личном кабинете есть возможность архивировать файлы. Это позволяет скачать всю файловую систему Вашего сайта одним архивом, что очень удобно.&lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Переносим базу данных.&amp;#039;&amp;#039;&amp;#039; Работа с базой данных на хостинге обычно выполняется с помощью [https://www.phpmyadmin.net Phpmyadmin]. Из свободных альтернативных вариантов можно выделить легковесный [https://www.adminer.org Adminer]. Перенос выполняется в 2 этапа:&lt;br /&gt;
##Экспорт базы данных Вашего сайта&lt;br /&gt;
##Импорт базы данных на локальный сервер&lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Подключаем сайт к базе данных.&amp;#039;&amp;#039;&amp;#039; В файле config.ini, который расположен в корневой директории файловой системы находим секцию [connections] и указываем корректные данные в следующих строчках: &amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
core.host = &amp;quot;&amp;quot;&lt;br /&gt;
core.login = &amp;quot;&amp;quot;&lt;br /&gt;
core.password = &amp;quot;&amp;quot;&lt;br /&gt;
core.dbname = &amp;quot;&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
#&amp;#039;&amp;#039;&amp;#039;Изменяем в базе данных основной домен сайта.&amp;#039;&amp;#039;&amp;#039; Открываем таблицу cms3_domains и заменяем значение в столбце &amp;quot;host&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если в процессе использования UMI.CMS есть потребность обновлять систему, нужно выполнить &amp;#039;&amp;#039;[http://wiki.umisoft.ru/Переактивация Переактивацию системы]&amp;#039;&amp;#039;.&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D1%81_%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B0_%D0%BD%D0%B0_%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80&amp;diff=9304</id>
		<title>Перенос сайта с хостинга на локальный компьютер</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D1%81_%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B0_%D0%BD%D0%B0_%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80&amp;diff=9304"/>
		<updated>2019-08-30T09:09:24Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
&lt;br /&gt;
Перенести сайт с другого сервера (с хостинга) на локальную машину&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Для того, чтобы Ваш сайт работал на локальной машине, нужно иметь на ней &amp;#039;&amp;#039;серверное программное обеспечение&amp;#039;&amp;#039;. ===&lt;br /&gt;
Варианты свободного программного обеспечения:&lt;br /&gt;
-- Для ОС Linux, Вы можете использовать [https://ru.wikipedia.org/wiki/LAMP LAMP]&lt;br /&gt;
-- Для ОС Windows самым простым решением будет [https://ospanel.io/ OpenServer]&lt;br /&gt;
&lt;br /&gt;
Вы можете использовать любое другое ПО, на Ваш выбор. Главное, чтобы оно соответствовало &amp;#039;&amp;#039;[http://help.docs.umi-cms.ru/vvedenie/ustanovka_i_nastrojka/sistemnie_trebovaniya/ системным требованиям UMI.CMS]&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
2. Процесс переноса сайта:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Скачиваем Локалпак:&amp;lt;br /&amp;gt;http://www.umi-cms.ru/product/downloads/local/&lt;br /&gt;
# Проводим установку Локалпак (без установки системы UMI.CMS)&lt;br /&gt;
# Копируем файлы с хостинга в бинарном режиме в папку:&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;C:\UMI.CMS_Localpack\localhost\htdocs&amp;#039;&amp;#039;&lt;br /&gt;
# Сохраняем дамп базы данных в папку:&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;C:\UMI.CMS_Localpack\components\mysql\bin&amp;#039;&amp;#039;&lt;br /&gt;
# Открываем cmd (Командная строка) в директории&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;C:\UMI.CMS_Localpack\components\mysql\bin&amp;#039;&amp;#039;&lt;br /&gt;
# В командной строке выполняем следующую команду для импорта базы данных:&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mysql -uumi -pumi umi &amp;lt; dump.sql&amp;lt;/source&amp;gt;&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;&amp;#039;dump.sql&amp;#039;&amp;#039;&amp;#039; - это имя файла дампа базы данных&amp;lt;br /&amp;gt;Импорт базы данных может занять продолжительное время в зависимости от размеров базы данных.&lt;br /&gt;
# Меняем настройки подключения к базе данных:&amp;lt;br /&amp;gt;Файл config.ini, секция connections.&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;core.login = &amp;quot;umi&amp;quot;&lt;br /&gt;
core.password = &amp;quot;umi&amp;quot;&lt;br /&gt;
core.dbname = &amp;quot;umi&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Примечание:&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Путь &amp;#039;&amp;#039;C:\UMI.CMS_Localpack\&amp;#039;&amp;#039; используется при установке по умолчанию если при установке был указан другой путь, то необходимо использовать его.&lt;br /&gt;
[[Категория:Вопросы установки настройки и переноса]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D1%81_%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B0_%D0%BD%D0%B0_%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80&amp;diff=9303</id>
		<title>Перенос сайта с хостинга на локальный компьютер</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%81%D0%B0%D0%B9%D1%82%D0%B0_%D1%81_%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B0_%D0%BD%D0%B0_%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80&amp;diff=9303"/>
		<updated>2019-08-30T09:08:37Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
&lt;br /&gt;
Перенести сайт с другого сервера (с хостинга) на локальную машину&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
&lt;br /&gt;
1. Для того, чтобы Ваш сайт работал на локальной машине, нужно иметь на ней &amp;#039;&amp;#039;серверное программное обеспечение&amp;#039;&amp;#039;.&lt;br /&gt;
Варианты свободного программного обеспечения:&lt;br /&gt;
-- Для ОС Linux, Вы можете использовать [https://ru.wikipedia.org/wiki/LAMP LAMP]&lt;br /&gt;
-- Для ОС Windows самым простым решением будет [https://ospanel.io/ OpenServer]&lt;br /&gt;
&lt;br /&gt;
Вы можете использовать любое другое ПО, на Ваш выбор. Главное, чтобы оно соответствовало &amp;#039;&amp;#039;[http://help.docs.umi-cms.ru/vvedenie/ustanovka_i_nastrojka/sistemnie_trebovaniya/ системным требованиям UMI.CMS]&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
2. Процесс переноса сайта:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Скачиваем Локалпак:&amp;lt;br /&amp;gt;http://www.umi-cms.ru/product/downloads/local/&lt;br /&gt;
# Проводим установку Локалпак (без установки системы UMI.CMS)&lt;br /&gt;
# Копируем файлы с хостинга в бинарном режиме в папку:&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;C:\UMI.CMS_Localpack\localhost\htdocs&amp;#039;&amp;#039;&lt;br /&gt;
# Сохраняем дамп базы данных в папку:&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;C:\UMI.CMS_Localpack\components\mysql\bin&amp;#039;&amp;#039;&lt;br /&gt;
# Открываем cmd (Командная строка) в директории&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;C:\UMI.CMS_Localpack\components\mysql\bin&amp;#039;&amp;#039;&lt;br /&gt;
# В командной строке выполняем следующую команду для импорта базы данных:&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;mysql -uumi -pumi umi &amp;lt; dump.sql&amp;lt;/source&amp;gt;&amp;lt;br /&amp;gt;&amp;#039;&amp;#039;&amp;#039;dump.sql&amp;#039;&amp;#039;&amp;#039; - это имя файла дампа базы данных&amp;lt;br /&amp;gt;Импорт базы данных может занять продолжительное время в зависимости от размеров базы данных.&lt;br /&gt;
# Меняем настройки подключения к базе данных:&amp;lt;br /&amp;gt;Файл config.ini, секция connections.&amp;lt;br /&amp;gt;&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;core.login = &amp;quot;umi&amp;quot;&lt;br /&gt;
core.password = &amp;quot;umi&amp;quot;&lt;br /&gt;
core.dbname = &amp;quot;umi&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Примечание:&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Путь &amp;#039;&amp;#039;C:\UMI.CMS_Localpack\&amp;#039;&amp;#039; используется при установке по умолчанию если при установке был указан другой путь, то необходимо использовать его.&lt;br /&gt;
[[Категория:Вопросы установки настройки и переноса]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%BF%D1%83%D1%82%D0%B5%D0%B9_%D0%B2_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B5&amp;diff=9302</id>
		<title>Кастомизация маршрутизации путей в системе</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_%D0%BF%D1%83%D1%82%D0%B5%D0%B9_%D0%B2_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B5&amp;diff=9302"/>
		<updated>2019-08-28T13:19:24Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
Иногда появляется необходимость, что-бы по определенному пути открывалась определенная страница или вызывался определенный макрос.&lt;br /&gt;
&lt;br /&gt;
Например сделать чтобы по адресу site.ru/order/ открывалось &amp;quot;Оформление заказа в один клик&amp;quot; site.ru/emarket/purchasing_one_step/&lt;br /&gt;
&lt;br /&gt;
== Решение ==&lt;br /&gt;
Эту задачу можно решить при помощи кастомизации роутинга (маршрутизации) в системе. Для этого мы воспользуемся событием &amp;#039;routing&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Создать слушатель этого события можно в любом модуле, но лучше создавать его в рамках того модуля для которого необходимо выполнить маршрутизацию. &lt;br /&gt;
&lt;br /&gt;
Создадим слушатель в модуле Интернет-магазин (emarket), для этого в директории /classes/components/emarket/ добавим файл &amp;#039;&amp;#039;&amp;#039;custom_events.php&amp;#039;&amp;#039;&amp;#039; со следующим содержимым:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	new umiEventListener(&amp;quot;routing&amp;quot;, &amp;quot;emarket&amp;quot;, &amp;quot;route&amp;quot;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В файл &amp;#039;&amp;#039;&amp;#039;customMacros.php&amp;#039;&amp;#039;&amp;#039; добавляем метод для обработки события и класс &amp;#039;&amp;#039;&amp;#039;FakeRouter&amp;#039;&amp;#039;&amp;#039; с методом &amp;#039;&amp;#039;&amp;#039;analyzePath&amp;#039;&amp;#039;&amp;#039; для обработки адреса:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
	use UmiCms\Service;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Класс пользовательских макросов&lt;br /&gt;
	 */&lt;br /&gt;
	class EmarketCustomMacros {&lt;br /&gt;
		/**&lt;br /&gt;
		 * @var emarket $module&lt;br /&gt;
		 */&lt;br /&gt;
		public $module;&lt;br /&gt;
 &lt;br /&gt;
		public function route(iUmiEventPoint $eventPoint) {&lt;br /&gt;
			if (Service::Request()-&amp;gt;isAdmin() || $eventPoint-&amp;gt;getMode() !== &amp;#039;before&amp;#039;) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
 &lt;br /&gt;
			$request = Service::Request();&lt;br /&gt;
			$path = $request-&amp;gt;getPath();&lt;br /&gt;
 &lt;br /&gt;
			if ($path == &amp;#039;order&amp;#039;) {&lt;br /&gt;
				$router = new FakeRouter(&amp;#039;emarket&amp;#039;,&amp;#039;purchasing_one_step&amp;#039;);&lt;br /&gt;
				$eventPoint-&amp;gt;setParam(&amp;#039;router&amp;#039;, $router);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
 &lt;br /&gt;
	class FakeRouter {&lt;br /&gt;
 &lt;br /&gt;
		private $module;&lt;br /&gt;
 &lt;br /&gt;
		private $method;&lt;br /&gt;
 &lt;br /&gt;
		private $elementId;&lt;br /&gt;
 &lt;br /&gt;
		function __construct($module, $method, $elementId = false) {&lt;br /&gt;
			$this-&amp;gt;module = $module;&lt;br /&gt;
			$this-&amp;gt;method = $method;&lt;br /&gt;
			$this-&amp;gt;elementId = $elementId;			&lt;br /&gt;
		}&lt;br /&gt;
 &lt;br /&gt;
		public function analyzePath() {&lt;br /&gt;
			$cmsController = cmsController::getInstance();&lt;br /&gt;
			$cmsController-&amp;gt;setCurrentModule($this-&amp;gt;module);&lt;br /&gt;
			$cmsController-&amp;gt;setCurrentMethod($this-&amp;gt;method);&lt;br /&gt;
			$cmsController-&amp;gt;setCurrentElementId($this-&amp;gt;elementId);		&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь при переходе по адресу site.ru/order/ будет открываться страница &amp;quot;Оформление заказа в один клик&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[category:Написание кастомных макросов]][[category:Вопросы и уроки разработки сайтов на UMI.CMS]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B5_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D1%82%D1%8C_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B8%D0%B7_1%D0%A1_%D0%B2_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8F,_%D0%B5%D1%81%D0%BB%D0%B8_%D1%8D%D1%82%D0%B8_%D0%BF%D0%BE%D0%BB%D1%8F_%D1%83%D0%B6%D0%B5_%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D1%8B&amp;diff=9299</id>
		<title>Как не выгружать данные из 1С в определенные поля, если эти поля уже заполнены</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B5_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D1%82%D1%8C_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B8%D0%B7_1%D0%A1_%D0%B2_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8F,_%D0%B5%D1%81%D0%BB%D0%B8_%D1%8D%D1%82%D0%B8_%D0%BF%D0%BE%D0%BB%D1%8F_%D1%83%D0%B6%D0%B5_%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D1%8B&amp;diff=9299"/>
		<updated>2019-07-31T09:14:07Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
При импорте из 1С выполнять проверку на стороне UMI.CMS: заполнено ли определенное поле у объектов каталога. Если не заполнено — записывать в него данные, а если заполнено — не изменять его значение. &lt;br /&gt;
 &lt;br /&gt;
== Решение ==&lt;br /&gt;
Рассмотрим вариант выполнения нашей задачи на примере поля с идентификатором &amp;quot;name&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
1. Открываем файл &amp;lt;b&amp;gt;~/xsl/import/commerceML2.xsl&amp;lt;/b&amp;gt; и копируем из него шаблон: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;Товары/Товар&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Копируем в файл &amp;lt;b&amp;gt;~/xsl/import/custom/commerceML2.xsl&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Добавляем параметры в начало шаблона:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Получаем системный идентификатор объекта каталога, он совпадает с &amp;quot;Ид&amp;quot; товара в файле import.xml --&amp;gt;&lt;br /&gt;
&amp;lt;xsl:param name=&amp;quot;pageId&amp;quot; select=&amp;quot;Ид&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- Получаем значение поля с идентификатором &amp;quot;name&amp;quot; объекта каталога --&amp;gt;&lt;br /&gt;
&amp;lt;xsl:param name=&amp;quot;objectName&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, $pageId))/udata/page/name&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Выполняем проверку:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Если у объекта каталога поле с идентификатором &amp;quot;name&amp;quot; пустое (пустая строка), мы добавляем в него значение при импорте --&amp;gt;&lt;br /&gt;
&amp;lt;xsl:if test=&amp;quot;not(string-length($objectName))&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$objectName&amp;quot; /&amp;gt;&amp;lt;/name&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В результате шаблон в файле ~/xsl/import/custom/commerceML2.xsl будет выглядеть так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;Товары/Товар&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;group_id&amp;quot; select=&amp;quot;string(Группы/Ид)&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!-- Получаем системный идентификатор объекта каталога, он совпадает с &amp;quot;Ид&amp;quot; товара в файле import.xml --&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;pageId&amp;quot; select=&amp;quot;Ид&amp;quot;/&amp;gt;		&lt;br /&gt;
	&amp;lt;!-- Получаем значение поля с идентификатором &amp;quot;name&amp;quot; объекта каталога --&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;objectName&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, $pageId))/udata/page/name&amp;quot; /&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;name&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:when test=&amp;quot;string-length(ПолноеНаименование)&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;ПолноеНаименование&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;Наименование&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:param&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;page id=&amp;quot;{Ид}&amp;quot; parentId=&amp;quot;{$group_id}&amp;quot; type-id=&amp;quot;{$group_id}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:when test=&amp;quot;Статус = &amp;#039;Удален&amp;#039;&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:attribute name=&amp;quot;is-deleted&amp;quot;&amp;gt;1&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:when test=&amp;quot;$isCatalogItemsRestoreOnImport = 1&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:attribute name=&amp;quot;is-deleted&amp;quot;&amp;gt;0&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
		&amp;lt;!-- Если у объекта каталога поле с идентификатором &amp;quot;name&amp;quot; пустое (пустая строка), мы добавляем в него значение при импорте --&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;not(string-length($objectName))&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;name&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$objectName&amp;quot;/&amp;gt;&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;not(Группы/Ид)&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;parentId&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$catalog-id&amp;quot; /&amp;gt;&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;type-id&amp;quot;&amp;gt;root-catalog-object-type&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;default-active&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:value-of select=&amp;quot;$catalog_item_activity&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/default-active&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;default-visible&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:value-of select=&amp;quot;$catalog_item_visible&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/default-visible&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;basetype module=&amp;quot;catalog&amp;quot; method=&amp;quot;object&amp;quot;&amp;gt;Объекты каталога&amp;lt;/basetype&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;string-length($catalog_item_template)&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;default-template&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;$catalog_item_template&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/default-template&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;properties&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:call-template name=&amp;quot;common-group&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:with-param name=&amp;quot;name&amp;quot; select=&amp;quot;$name&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;group name=&amp;quot;product&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;title&amp;gt;1C: Общие свойства&amp;lt;/title&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
				&amp;lt;xsl:if test=&amp;quot;string-length(Описание)&amp;quot;&amp;gt;&lt;br /&gt;
					&lt;br /&gt;
					&amp;lt;property name=&amp;quot;description&amp;quot; title=&amp;quot;Описание&amp;quot; type=&amp;quot;wysiwyg&amp;quot; allow-runtime-add=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;type data-type=&amp;quot;wysiwyg&amp;quot; /&amp;gt;&lt;br /&gt;
						&amp;lt;title&amp;gt;Описание&amp;lt;/title&amp;gt;&lt;br /&gt;
						&amp;lt;value&amp;gt;&lt;br /&gt;
							&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:when test=&amp;quot;Описание/@ФорматHTML = &amp;#039;true&amp;#039;&amp;quot;&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:value-of select=&amp;quot;Описание&amp;quot;/&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:value-of select=&amp;quot;php:function(&amp;#039;nl2br&amp;#039;, string(Описание))&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
							&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
						&amp;lt;/value&amp;gt;&lt;br /&gt;
					&amp;lt;/property&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;1c_catalog_id&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Идентификатор каталога 1С&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$catalog-id&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;1c_product_id&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Идентификатор в 1С&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Ид&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;artikul&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Артикул&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Артикул&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;bar_code&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Штрих-код&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Штрихкод&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;weight&amp;quot; type=&amp;quot;float&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Вес&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;ЗначенияРеквизитов/ЗначениеРеквизита[Наименование = &amp;#039;Вес&amp;#039;]/Значение&amp;quot;/&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;xsl:apply-templates select=&amp;quot;Картинка&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;ЗначенияСвойств&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/properties&amp;gt;&lt;br /&gt;
	&amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:Интеграция с 1С]]&lt;br /&gt;
[[category:Модуль Обмен данными]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B5_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D1%82%D1%8C_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5,_%D0%B5%D1%81%D0%BB%D0%B8_%D0%BE%D0%BD%D0%B8_%D1%83%D0%B6%D0%B5_%D0%B5%D1%81%D1%82%D1%8C_%D0%BD%D0%B0_%D1%81%D0%B0%D0%B9%D1%82%D0%B5&amp;diff=9298</id>
		<title>Как не выгружать данные, если они уже есть на сайте</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B5_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D1%82%D1%8C_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5,_%D0%B5%D1%81%D0%BB%D0%B8_%D0%BE%D0%BD%D0%B8_%D1%83%D0%B6%D0%B5_%D0%B5%D1%81%D1%82%D1%8C_%D0%BD%D0%B0_%D1%81%D0%B0%D0%B9%D1%82%D0%B5&amp;diff=9298"/>
		<updated>2019-07-11T14:10:52Z</updated>

		<summary type="html">&lt;p&gt;Aposio: Aposio переименовал страницу Как не выгружать данные, если они уже есть на сайте в [[Как не выгружать данные из 1С в определенные поля, если…&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[Как не выгружать данные из 1С в определенные поля, если эти поля уже заполнены]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B5_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D1%82%D1%8C_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B8%D0%B7_1%D0%A1_%D0%B2_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8F,_%D0%B5%D1%81%D0%BB%D0%B8_%D1%8D%D1%82%D0%B8_%D0%BF%D0%BE%D0%BB%D1%8F_%D1%83%D0%B6%D0%B5_%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D1%8B&amp;diff=9297</id>
		<title>Как не выгружать данные из 1С в определенные поля, если эти поля уже заполнены</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B5_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D1%82%D1%8C_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B8%D0%B7_1%D0%A1_%D0%B2_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8F,_%D0%B5%D1%81%D0%BB%D0%B8_%D1%8D%D1%82%D0%B8_%D0%BF%D0%BE%D0%BB%D1%8F_%D1%83%D0%B6%D0%B5_%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D1%8B&amp;diff=9297"/>
		<updated>2019-07-11T14:10:51Z</updated>

		<summary type="html">&lt;p&gt;Aposio: Aposio переименовал страницу Как не выгружать данные, если они уже есть на сайте в [[Как не выгружать данные из 1С в определенные поля, если…&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
При импорте из 1С выполнять проверку на стороне UMI.CMS: заполнено ли определенное поле у объектов каталога. Если не заполнено — записывать в него данные, а если заполнено — не изменять его значение. &lt;br /&gt;
 &lt;br /&gt;
== Решение ==&lt;br /&gt;
Рассмотрим вариант выполнения нашей задачи на примере поля с идентификатором &amp;quot;name&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
1. Открываем файл &amp;lt;b&amp;gt;~/xsl/import/commerceML2.xsl&amp;lt;/b&amp;gt; и копируем из него шаблон: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;Товары/Товар&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Копируем в файл &amp;lt;b&amp;gt;~/xsl/import/custom/commerceML2.xsl&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Добавляем параметры в начало шаблона:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Получаем системный идентификатор объекта каталога, он совпадает с &amp;quot;Ид&amp;quot; товара в файле import.xml --&amp;gt;&lt;br /&gt;
&amp;lt;xsl:param name=&amp;quot;pageId&amp;quot; select=&amp;quot;Ид&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- Получаем значение поля с идентификатором &amp;quot;name&amp;quot; объекта каталога --&amp;gt;&lt;br /&gt;
&amp;lt;xsl:param name=&amp;quot;objectName&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, $pageId))/udata/page/name&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Выполняем проверку:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Если у объекта каталога поле с идентификатором &amp;quot;name&amp;quot; пустое (пустая строка), мы добавляем в него значение при импорте --&amp;gt;&lt;br /&gt;
&amp;lt;xsl:if test=&amp;quot;not(string-length($objectName))&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$objectName&amp;quot; /&amp;gt;&amp;lt;/name&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В результате шаблон в файле ~/xsl/import/custom/commerceML2.xsl будет выглядеть так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;Товары/Товар&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;group_id&amp;quot; select=&amp;quot;string(Группы/Ид)&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!-- Получаем системный идентификатор объекта каталога, он совпадает с &amp;quot;Ид&amp;quot; товара в файле import.xml --&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;pageId&amp;quot; select=&amp;quot;Ид&amp;quot;/&amp;gt;		&lt;br /&gt;
	&amp;lt;!-- Получаем значение поля с идентификатором &amp;quot;name&amp;quot; объекта каталога --&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;objectName&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, $pageId))/udata/page/name&amp;quot; /&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;name&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:when test=&amp;quot;string-length(ПолноеНаименование)&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;ПолноеНаименование&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;Наименование&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:param&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;page id=&amp;quot;{Ид}&amp;quot; parentId=&amp;quot;{$group_id}&amp;quot; type-id=&amp;quot;{$group_id}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:when test=&amp;quot;Статус = &amp;#039;Удален&amp;#039;&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:attribute name=&amp;quot;is-deleted&amp;quot;&amp;gt;1&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:when test=&amp;quot;$isCatalogItemsRestoreOnImport = 1&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:attribute name=&amp;quot;is-deleted&amp;quot;&amp;gt;0&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
		&amp;lt;!-- Если у объекта каталога поле с идентификатором &amp;quot;name&amp;quot; пустое (пустая строка), мы добавляем в него значение при импорте --&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;not(string-length($objectName))&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;name&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$objectName&amp;quot;/&amp;gt;&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;not(Группы/Ид)&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;parentId&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$catalog-id&amp;quot; /&amp;gt;&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;type-id&amp;quot;&amp;gt;root-catalog-object-type&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;default-active&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:value-of select=&amp;quot;$catalog_item_activity&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/default-active&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;default-visible&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:value-of select=&amp;quot;$catalog_item_visible&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/default-visible&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;basetype module=&amp;quot;catalog&amp;quot; method=&amp;quot;object&amp;quot;&amp;gt;Объекты каталога&amp;lt;/basetype&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;string-length($catalog_item_template)&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;default-template&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;$catalog_item_template&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/default-template&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;properties&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:call-template name=&amp;quot;common-group&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:with-param name=&amp;quot;name&amp;quot; select=&amp;quot;$name&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;group name=&amp;quot;product&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;title&amp;gt;1C: Общие свойства&amp;lt;/title&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
				&amp;lt;xsl:if test=&amp;quot;string-length(Описание)&amp;quot;&amp;gt;&lt;br /&gt;
					&lt;br /&gt;
					&amp;lt;property name=&amp;quot;description&amp;quot; title=&amp;quot;Описание&amp;quot; type=&amp;quot;wysiwyg&amp;quot; allow-runtime-add=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;type data-type=&amp;quot;wysiwyg&amp;quot; /&amp;gt;&lt;br /&gt;
						&amp;lt;title&amp;gt;Описание&amp;lt;/title&amp;gt;&lt;br /&gt;
						&amp;lt;value&amp;gt;&lt;br /&gt;
							&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:when test=&amp;quot;Описание/@ФорматHTML = &amp;#039;true&amp;#039;&amp;quot;&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:value-of select=&amp;quot;Описание&amp;quot;/&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:value-of select=&amp;quot;php:function(&amp;#039;nl2br&amp;#039;, string(Описание))&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
							&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
						&amp;lt;/value&amp;gt;&lt;br /&gt;
					&amp;lt;/property&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;1c_catalog_id&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Идентификатор каталога 1С&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$catalog-id&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;1c_product_id&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Идентификатор в 1С&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Ид&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;artikul&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Артикул&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Артикул&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;bar_code&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Штрих-код&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Штрихкод&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;weight&amp;quot; type=&amp;quot;float&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Вес&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;ЗначенияРеквизитов/ЗначениеРеквизита[Наименование = &amp;#039;Вес&amp;#039;]/Значение&amp;quot;/&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;xsl:apply-templates select=&amp;quot;Картинка&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;ЗначенияСвойств&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/properties&amp;gt;&lt;br /&gt;
	&amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:Интеграция с 1С]]&lt;br /&gt;
[[category:Модуль Обмен Данными]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B5_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D1%82%D1%8C_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B8%D0%B7_1%D0%A1_%D0%B2_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8F,_%D0%B5%D1%81%D0%BB%D0%B8_%D1%8D%D1%82%D0%B8_%D0%BF%D0%BE%D0%BB%D1%8F_%D1%83%D0%B6%D0%B5_%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D1%8B&amp;diff=9296</id>
		<title>Как не выгружать данные из 1С в определенные поля, если эти поля уже заполнены</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B5_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D1%82%D1%8C_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B8%D0%B7_1%D0%A1_%D0%B2_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8F,_%D0%B5%D1%81%D0%BB%D0%B8_%D1%8D%D1%82%D0%B8_%D0%BF%D0%BE%D0%BB%D1%8F_%D1%83%D0%B6%D0%B5_%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D1%8B&amp;diff=9296"/>
		<updated>2019-07-11T14:09:03Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
При импорте из 1С выполнять проверку на стороне UMI.CMS: заполнено ли определенное поле у объектов каталога. Если не заполнено — записывать в него данные, а если заполнено — не изменять его значение. &lt;br /&gt;
 &lt;br /&gt;
== Решение ==&lt;br /&gt;
Рассмотрим вариант выполнения нашей задачи на примере поля с идентификатором &amp;quot;name&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
1. Открываем файл &amp;lt;b&amp;gt;~/xsl/import/commerceML2.xsl&amp;lt;/b&amp;gt; и копируем из него шаблон: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;Товары/Товар&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Копируем в файл &amp;lt;b&amp;gt;~/xsl/import/custom/commerceML2.xsl&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Добавляем параметры в начало шаблона:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Получаем системный идентификатор объекта каталога, он совпадает с &amp;quot;Ид&amp;quot; товара в файле import.xml --&amp;gt;&lt;br /&gt;
&amp;lt;xsl:param name=&amp;quot;pageId&amp;quot; select=&amp;quot;Ид&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- Получаем значение поля с идентификатором &amp;quot;name&amp;quot; объекта каталога --&amp;gt;&lt;br /&gt;
&amp;lt;xsl:param name=&amp;quot;objectName&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, $pageId))/udata/page/name&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Выполняем проверку:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Если у объекта каталога поле с идентификатором &amp;quot;name&amp;quot; пустое (пустая строка), мы добавляем в него значение при импорте --&amp;gt;&lt;br /&gt;
&amp;lt;xsl:if test=&amp;quot;not(string-length($objectName))&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$objectName&amp;quot; /&amp;gt;&amp;lt;/name&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В результате шаблон в файле ~/xsl/import/custom/commerceML2.xsl будет выглядеть так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;Товары/Товар&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;group_id&amp;quot; select=&amp;quot;string(Группы/Ид)&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!-- Получаем системный идентификатор объекта каталога, он совпадает с &amp;quot;Ид&amp;quot; товара в файле import.xml --&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;pageId&amp;quot; select=&amp;quot;Ид&amp;quot;/&amp;gt;		&lt;br /&gt;
	&amp;lt;!-- Получаем значение поля с идентификатором &amp;quot;name&amp;quot; объекта каталога --&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;objectName&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, $pageId))/udata/page/name&amp;quot; /&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;name&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:when test=&amp;quot;string-length(ПолноеНаименование)&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;ПолноеНаименование&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;Наименование&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:param&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;page id=&amp;quot;{Ид}&amp;quot; parentId=&amp;quot;{$group_id}&amp;quot; type-id=&amp;quot;{$group_id}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:when test=&amp;quot;Статус = &amp;#039;Удален&amp;#039;&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:attribute name=&amp;quot;is-deleted&amp;quot;&amp;gt;1&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:when test=&amp;quot;$isCatalogItemsRestoreOnImport = 1&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:attribute name=&amp;quot;is-deleted&amp;quot;&amp;gt;0&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
		&amp;lt;!-- Если у объекта каталога поле с идентификатором &amp;quot;name&amp;quot; пустое (пустая строка), мы добавляем в него значение при импорте --&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;not(string-length($objectName))&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;name&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$objectName&amp;quot;/&amp;gt;&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;not(Группы/Ид)&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;parentId&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$catalog-id&amp;quot; /&amp;gt;&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;type-id&amp;quot;&amp;gt;root-catalog-object-type&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;default-active&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:value-of select=&amp;quot;$catalog_item_activity&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/default-active&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;default-visible&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:value-of select=&amp;quot;$catalog_item_visible&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/default-visible&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;basetype module=&amp;quot;catalog&amp;quot; method=&amp;quot;object&amp;quot;&amp;gt;Объекты каталога&amp;lt;/basetype&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;string-length($catalog_item_template)&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;default-template&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;$catalog_item_template&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/default-template&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;properties&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:call-template name=&amp;quot;common-group&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:with-param name=&amp;quot;name&amp;quot; select=&amp;quot;$name&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;group name=&amp;quot;product&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;title&amp;gt;1C: Общие свойства&amp;lt;/title&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
				&amp;lt;xsl:if test=&amp;quot;string-length(Описание)&amp;quot;&amp;gt;&lt;br /&gt;
					&lt;br /&gt;
					&amp;lt;property name=&amp;quot;description&amp;quot; title=&amp;quot;Описание&amp;quot; type=&amp;quot;wysiwyg&amp;quot; allow-runtime-add=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;type data-type=&amp;quot;wysiwyg&amp;quot; /&amp;gt;&lt;br /&gt;
						&amp;lt;title&amp;gt;Описание&amp;lt;/title&amp;gt;&lt;br /&gt;
						&amp;lt;value&amp;gt;&lt;br /&gt;
							&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:when test=&amp;quot;Описание/@ФорматHTML = &amp;#039;true&amp;#039;&amp;quot;&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:value-of select=&amp;quot;Описание&amp;quot;/&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:value-of select=&amp;quot;php:function(&amp;#039;nl2br&amp;#039;, string(Описание))&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
							&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
						&amp;lt;/value&amp;gt;&lt;br /&gt;
					&amp;lt;/property&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;1c_catalog_id&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Идентификатор каталога 1С&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$catalog-id&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;1c_product_id&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Идентификатор в 1С&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Ид&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;artikul&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Артикул&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Артикул&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;bar_code&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Штрих-код&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Штрихкод&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;weight&amp;quot; type=&amp;quot;float&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Вес&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;ЗначенияРеквизитов/ЗначениеРеквизита[Наименование = &amp;#039;Вес&amp;#039;]/Значение&amp;quot;/&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;xsl:apply-templates select=&amp;quot;Картинка&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;ЗначенияСвойств&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/properties&amp;gt;&lt;br /&gt;
	&amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:Интеграция с 1С]]&lt;br /&gt;
[[category:Модуль Обмен Данными]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B5_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D1%82%D1%8C_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B8%D0%B7_1%D0%A1_%D0%B2_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8F,_%D0%B5%D1%81%D0%BB%D0%B8_%D1%8D%D1%82%D0%B8_%D0%BF%D0%BE%D0%BB%D1%8F_%D1%83%D0%B6%D0%B5_%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D1%8B&amp;diff=9295</id>
		<title>Как не выгружать данные из 1С в определенные поля, если эти поля уже заполнены</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B5_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D1%82%D1%8C_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B8%D0%B7_1%D0%A1_%D0%B2_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8F,_%D0%B5%D1%81%D0%BB%D0%B8_%D1%8D%D1%82%D0%B8_%D0%BF%D0%BE%D0%BB%D1%8F_%D1%83%D0%B6%D0%B5_%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D1%8B&amp;diff=9295"/>
		<updated>2019-07-11T14:05:35Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
При импорте из 1С выполнять проверку на стороне UMI.CMS, заполнено ли определенное поле у объектов каталога. Если не заполнено — записывать в него данные, а если заполнено — не изменять его значение. &lt;br /&gt;
 &lt;br /&gt;
== Решение ==&lt;br /&gt;
Рассмотрим вариант выполнения нашей задачи на примере поля с идентификатором &amp;quot;name&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
1. Открываем файл &amp;lt;b&amp;gt;~/xsl/import/commerceML2.xsl&amp;lt;/b&amp;gt; и копируем из него шаблон: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;Товары/Товар&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Копируем в файл &amp;lt;b&amp;gt;~/xsl/import/custom/commerceML2.xsl&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Добавляем параметры в начало шаблона:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Получаем системный идентификатор объекта каталога, он совпадает с &amp;quot;Ид&amp;quot; товара в файле import.xml --&amp;gt;&lt;br /&gt;
&amp;lt;xsl:param name=&amp;quot;pageId&amp;quot; select=&amp;quot;Ид&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;!-- Получаем значение поля с идентификатором &amp;quot;name&amp;quot; объекта каталога --&amp;gt;&lt;br /&gt;
&amp;lt;xsl:param name=&amp;quot;systemName&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, $pageId))/udata/page/name&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Выполняем проверку:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Если у объекта каталога поле с идентификатором &amp;quot;name&amp;quot; пустое (пустая строка), мы добавляем в него значение при импорте --&amp;gt;&lt;br /&gt;
&amp;lt;xsl:if test=&amp;quot;not(string-length($systemName))&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$systemName&amp;quot; /&amp;gt;&amp;lt;/name&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В результате код в файле ~/xsl/import/custom/commerceML2.xsl будет выглядеть так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;Товары/Товар&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;group_id&amp;quot; select=&amp;quot;string(Группы/Ид)&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!-- Получаем системный идентификатор объекта каталога, он совпадает с &amp;quot;Ид&amp;quot; товара в файле import.xml --&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;pageId&amp;quot; select=&amp;quot;Ид&amp;quot;/&amp;gt;		&lt;br /&gt;
	&amp;lt;!-- Получаем значение поля с идентификатором &amp;quot;name&amp;quot; объекта каталога --&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;pageName&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, $pageId))/udata/page/name&amp;quot; /&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;name&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:when test=&amp;quot;string-length(ПолноеНаименование)&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;ПолноеНаименование&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;Наименование&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:param&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;page id=&amp;quot;{Ид}&amp;quot; parentId=&amp;quot;{$group_id}&amp;quot; type-id=&amp;quot;{$group_id}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:when test=&amp;quot;Статус = &amp;#039;Удален&amp;#039;&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:attribute name=&amp;quot;is-deleted&amp;quot;&amp;gt;1&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:when test=&amp;quot;$isCatalogItemsRestoreOnImport = 1&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:attribute name=&amp;quot;is-deleted&amp;quot;&amp;gt;0&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
		&amp;lt;!-- Если у объекта каталога поле с идентификатором &amp;quot;name&amp;quot; пустое (пустая строка), мы добавляем в него значение при импорте --&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;not(string-length($pageName))&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;name&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$pageName&amp;quot;/&amp;gt;&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;not(Группы/Ид)&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;parentId&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$catalog-id&amp;quot; /&amp;gt;&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;type-id&amp;quot;&amp;gt;root-catalog-object-type&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;default-active&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:value-of select=&amp;quot;$catalog_item_activity&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/default-active&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;default-visible&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:value-of select=&amp;quot;$catalog_item_visible&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/default-visible&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;basetype module=&amp;quot;catalog&amp;quot; method=&amp;quot;object&amp;quot;&amp;gt;Объекты каталога&amp;lt;/basetype&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;string-length($catalog_item_template)&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;default-template&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;$catalog_item_template&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/default-template&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;properties&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:call-template name=&amp;quot;common-group&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:with-param name=&amp;quot;name&amp;quot; select=&amp;quot;$name&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;group name=&amp;quot;product&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;title&amp;gt;1C: Общие свойства&amp;lt;/title&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
				&amp;lt;xsl:if test=&amp;quot;string-length(Описание)&amp;quot;&amp;gt;&lt;br /&gt;
					&lt;br /&gt;
					&amp;lt;property name=&amp;quot;description&amp;quot; title=&amp;quot;Описание&amp;quot; type=&amp;quot;wysiwyg&amp;quot; allow-runtime-add=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;type data-type=&amp;quot;wysiwyg&amp;quot; /&amp;gt;&lt;br /&gt;
						&amp;lt;title&amp;gt;Описание&amp;lt;/title&amp;gt;&lt;br /&gt;
						&amp;lt;value&amp;gt;&lt;br /&gt;
							&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:when test=&amp;quot;Описание/@ФорматHTML = &amp;#039;true&amp;#039;&amp;quot;&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:value-of select=&amp;quot;Описание&amp;quot;/&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:value-of select=&amp;quot;php:function(&amp;#039;nl2br&amp;#039;, string(Описание))&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
							&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
						&amp;lt;/value&amp;gt;&lt;br /&gt;
					&amp;lt;/property&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;1c_catalog_id&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Идентификатор каталога 1С&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$catalog-id&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;1c_product_id&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Идентификатор в 1С&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Ид&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;artikul&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Артикул&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Артикул&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;bar_code&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Штрих-код&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Штрихкод&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;weight&amp;quot; type=&amp;quot;float&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Вес&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;ЗначенияРеквизитов/ЗначениеРеквизита[Наименование = &amp;#039;Вес&amp;#039;]/Значение&amp;quot;/&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;xsl:apply-templates select=&amp;quot;Картинка&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;ЗначенияСвойств&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/properties&amp;gt;&lt;br /&gt;
	&amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:Интеграция с 1С]]&lt;br /&gt;
[[category:Модуль Обмен Данными]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B5_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D1%82%D1%8C_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B8%D0%B7_1%D0%A1_%D0%B2_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8F,_%D0%B5%D1%81%D0%BB%D0%B8_%D1%8D%D1%82%D0%B8_%D0%BF%D0%BE%D0%BB%D1%8F_%D1%83%D0%B6%D0%B5_%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D1%8B&amp;diff=9294</id>
		<title>Как не выгружать данные из 1С в определенные поля, если эти поля уже заполнены</title>
		<link rel="alternate" type="text/html" href="https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B5_%D0%B2%D1%8B%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D1%82%D1%8C_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B8%D0%B7_1%D0%A1_%D0%B2_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8F,_%D0%B5%D1%81%D0%BB%D0%B8_%D1%8D%D1%82%D0%B8_%D0%BF%D0%BE%D0%BB%D1%8F_%D1%83%D0%B6%D0%B5_%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D1%8B&amp;diff=9294"/>
		<updated>2019-07-11T14:04:30Z</updated>

		<summary type="html">&lt;p&gt;Aposio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Актуально для версии 20&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Задача ==&lt;br /&gt;
При импорте из 1С выполнять проверку на стороне UMI.CMS, заполнено ли определенное поле у объектов каталога. Если не заполнено — записывать в него данные, а если заполнено — не изменять его значение. &lt;br /&gt;
 &lt;br /&gt;
== Решение ==&lt;br /&gt;
Рассмотрим вариант выполнения нашей задачи на примере поля с идентификатором &amp;quot;name&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
1. Открываем файл &amp;lt;b&amp;gt;~/xsl/import/commerceML2.xsl&amp;lt;/b&amp;gt; и копируем из него шаблон: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;Товары/Товар&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Копируем в файл &amp;lt;b&amp;gt;~/xsl/import/custom/commerceML2.xsl&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Добавляем параметры в начало шаблона:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Получаем системный идентификатор объекта каталога, он совпадает с &amp;quot;Ид&amp;quot; товара в файле import.xml --&amp;gt;&lt;br /&gt;
&amp;lt;xsl:param name=&amp;quot;pageId&amp;quot; select=&amp;quot;Ид&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Получаем значение поля с идентификатором &amp;quot;name&amp;quot; объекта каталога --&amp;gt;&lt;br /&gt;
&amp;lt;xsl:param name=&amp;quot;systemName&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, $pageId))/udata/page/name&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Выполняем проверку:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Если у объекта каталога поле с идентификатором &amp;quot;name&amp;quot; пустое (пустая строка), мы добавляем в него значение при импорте --&amp;gt;&lt;br /&gt;
&amp;lt;xsl:if test=&amp;quot;not(string-length($systemName))&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$systemName&amp;quot; /&amp;gt;&amp;lt;/name&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В результате код в файле ~/xsl/import/custom/commerceML2.xsl будет выглядеть так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;xsl:template match=&amp;quot;Товары/Товар&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;group_id&amp;quot; select=&amp;quot;string(Группы/Ид)&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Получаем &amp;quot;Ид&amp;quot; товара из файла import.xml --&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;pageId&amp;quot; select=&amp;quot;Ид&amp;quot;/&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
	&amp;lt;!-- Получаем в переменную значение поля name с страницы --&amp;gt;&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;pageName&amp;quot; select=&amp;quot;document(concat(&amp;#039;upage://&amp;#039;, $pageId))/udata/page/name&amp;quot; /&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;xsl:param name=&amp;quot;name&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:when test=&amp;quot;string-length(ПолноеНаименование)&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;ПолноеНаименование&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;Наименование&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
	&amp;lt;/xsl:param&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;page id=&amp;quot;{Ид}&amp;quot; parentId=&amp;quot;{$group_id}&amp;quot; type-id=&amp;quot;{$group_id}&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:when test=&amp;quot;Статус = &amp;#039;Удален&amp;#039;&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:attribute name=&amp;quot;is-deleted&amp;quot;&amp;gt;1&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:when test=&amp;quot;$isCatalogItemsRestoreOnImport = 1&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:attribute name=&amp;quot;is-deleted&amp;quot;&amp;gt;0&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
		&amp;lt;!-- Здесь мы задаем условие. Если поле $nameChecker пустое, тогда мы добавляем в него значение из файла import.xml --&amp;gt;&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;not(string-length($pageName))&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;name&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$pageName&amp;quot;/&amp;gt;&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;not(Группы/Ид)&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;parentId&amp;quot;&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$catalog-id&amp;quot; /&amp;gt;&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:attribute name=&amp;quot;type-id&amp;quot;&amp;gt;root-catalog-object-type&amp;lt;/xsl:attribute&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;default-active&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:value-of select=&amp;quot;$catalog_item_activity&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/default-active&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;default-visible&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:value-of select=&amp;quot;$catalog_item_visible&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/default-visible&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;basetype module=&amp;quot;catalog&amp;quot; method=&amp;quot;object&amp;quot;&amp;gt;Объекты каталога&amp;lt;/basetype&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;xsl:if test=&amp;quot;string-length($catalog_item_template)&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;default-template&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:value-of select=&amp;quot;$catalog_item_template&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/default-template&amp;gt;&lt;br /&gt;
		&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;properties&amp;gt;&lt;br /&gt;
			&amp;lt;xsl:call-template name=&amp;quot;common-group&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;xsl:with-param name=&amp;quot;name&amp;quot; select=&amp;quot;$name&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/xsl:call-template&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;group name=&amp;quot;product&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;title&amp;gt;1C: Общие свойства&amp;lt;/title&amp;gt;&lt;br /&gt;
			&lt;br /&gt;
				&amp;lt;xsl:if test=&amp;quot;string-length(Описание)&amp;quot;&amp;gt;&lt;br /&gt;
					&lt;br /&gt;
					&amp;lt;property name=&amp;quot;description&amp;quot; title=&amp;quot;Описание&amp;quot; type=&amp;quot;wysiwyg&amp;quot; allow-runtime-add=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
						&amp;lt;type data-type=&amp;quot;wysiwyg&amp;quot; /&amp;gt;&lt;br /&gt;
						&amp;lt;title&amp;gt;Описание&amp;lt;/title&amp;gt;&lt;br /&gt;
						&amp;lt;value&amp;gt;&lt;br /&gt;
							&amp;lt;xsl:choose&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:when test=&amp;quot;Описание/@ФорматHTML = &amp;#039;true&amp;#039;&amp;quot;&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:value-of select=&amp;quot;Описание&amp;quot;/&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:when&amp;gt;&lt;br /&gt;
								&amp;lt;xsl:otherwise&amp;gt;&lt;br /&gt;
									&amp;lt;xsl:value-of select=&amp;quot;php:function(&amp;#039;nl2br&amp;#039;, string(Описание))&amp;quot; disable-output-escaping=&amp;quot;yes&amp;quot; /&amp;gt;&lt;br /&gt;
								&amp;lt;/xsl:otherwise&amp;gt;&lt;br /&gt;
							&amp;lt;/xsl:choose&amp;gt;&lt;br /&gt;
						&amp;lt;/value&amp;gt;&lt;br /&gt;
					&amp;lt;/property&amp;gt;&lt;br /&gt;
				&amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;1c_catalog_id&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Идентификатор каталога 1С&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;$catalog-id&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;1c_product_id&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Идентификатор в 1С&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Ид&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;artikul&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Артикул&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Артикул&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;bar_code&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Штрих-код&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;Штрихкод&amp;quot; /&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;property name=&amp;quot;weight&amp;quot; type=&amp;quot;float&amp;quot;&amp;gt;&lt;br /&gt;
					&amp;lt;title&amp;gt;Вес&amp;lt;/title&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;ЗначенияРеквизитов/ЗначениеРеквизита[Наименование = &amp;#039;Вес&amp;#039;]/Значение&amp;quot;/&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/property&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;xsl:apply-templates select=&amp;quot;Картинка&amp;quot; /&amp;gt;&lt;br /&gt;
			&amp;lt;/group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;xsl:apply-templates select=&amp;quot;ЗначенияСвойств&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;/properties&amp;gt;&lt;br /&gt;
	&amp;lt;/page&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:Интеграция с 1С]]&lt;br /&gt;
[[category:Модуль Обмен Данными]]&lt;/div&gt;</summary>
		<author><name>Aposio</name></author>
		
	</entry>
</feed>