<?xml version="1.0" encoding="utf-8"?>

<rss version="2.0">
 <channel>
	<title>Алексей Кирсанов</title>
	<link>http://dev.1c-bitrix.ru/community/blogs/components2/</link>
	<description>Блог преимущественно о разных технологиях разработки Web приложений с помощью продуктов Битрикс</description>
	<language>ru</language>
	<docs>http://backend.userland.com/rss2</docs>
	<pubDate>Sat, 14 Mar 2026 05:46:04 +0300</pubDate>

    <item>
      <title>Объединенные скидки торгового каталога и магазина</title>
      <description><![CDATA[Совсем недавно мы выпустили в альфу обновления <b>sale 16.6.0</b>, <b>catalog 16.6.0</b> и <b>iblock 16.6.0</b>. <br />Альфа-версии доступны по NFR ключам только партнерам. Цель альфа-версий в том, чтобы вы заранее могли посмотреть, что у нас получается, подготовиться к выпуску обновления клиентам и повлиять на нас в плане доработки решения.<br /><br />Итак, теперь вам доступны объединенные скидки торгового каталога и магазина. Что это означает? <br />Это позволит гибко управлять зависимостями между скидками, даст возможность в нужный момент останавливать выполнение скидок или устанавливать необходимый приоритет выполнения. <br /><br /><a href="http://dev.1c-bitrix.ru/community/blogs/components2/20039.php">Подробнее...</a>]]></description>
      <link>http://dev.1c-bitrix.ru/community/blogs/components2/20039.php</link>
      <guid>http://dev.1c-bitrix.ru/community/blogs/components2/20039.php</guid>
      <pubDate>Thu, 10 Nov 2016 18:03:34 +0300</pubDate>
    </item>

    <item>
      <title>БП и PHP код</title>
      <description><![CDATA[Это сообщение будет, прежде всего, полезно тем, кто разрабатывает шаблоны БП на коробочной версии КП и БУС. Потому что речь в нем пойдет о действии PHP код, которое недоступно в облаке.<br /><br />Рассмотрим следующий кейс: допустим у нас есть параметр БП типа множественный список, который содержит проекты. Соответственно при запуске БП можно выбрать один или несколько проектов из этого списка. Далее допустим у нас в БП для каждого проекта есть переменная, в которой хранится руководитель или руководители данного проекта.<br />Задача - отправить сообщение / поставить задание всем руководителям всех проектов, которые были выбраны при запуске БП.<br /><br />Задачу конечно можно решить пачкой условных конструкций. Но это решение будет громоздким. <br />А можно воспользоваться действием PHP кода. Давайте посмотрим, как это сделать.<br /><br /><a href="http://dev.1c-bitrix.ru/community/blogs/components2/18303.php">Подробнее...</a>]]></description>
      <link>http://dev.1c-bitrix.ru/community/blogs/components2/18303.php</link>
      <guid>http://dev.1c-bitrix.ru/community/blogs/components2/18303.php</guid>
      <pubDate>Thu, 16 Jun 2016 09:18:09 +0300</pubDate>
    </item>

    <item>
      <title>Калькулятор в БП</title>
      <description><![CDATA[Как вы знаете, БП поддерживают вычисление значений выражений в параметрах действий. Для практически любого параметра действия можно в качестве значения указать не только какое-то фиксированное значение (например, &quot;Привет&quot;<img src="http://dev.1c-bitrix.ru/upload/main/smiles/3/bx_smile_wink.png" border="0" data-code=";)" data-definition="UHD" alt=";)" style="width:20px;height:20px;" title="Шутливо" class="bx-smile" />, не только переменную, параметр или поле документа (например, {=Variable:myVar}), но и вычисляемое выражение<br />
====code====
<pre>="Автор: " &#38; {=Document:CREATED_BY} &#38; ", " &#38; "Конечный срок: " &#38; Dateadd({=Document:DATE_CREATE}, "1d")</pre>
=============
<br />Этот функционал можно использовать, например, чтобы задать период ожидания (жизни) действия ознакомления с документом не в секундах, а какой-то датой со временем. Это может быть полезно, если ждать выполнения действия ознакомления надо не определенное время, а до какого-то времени. Например, нет смысла ждать ознакомления с отгулом после даты отгула.<br /><br />С использованием вычисляемых выражений эту задачу можно решить так: в поле ввода &quot;Период ознакомления&quot; нужно написать строку вида<br />
====code====
<pre>={=Template:Parameter1 &#62; int}-{=System:Now &#62; int} </pre>
=============
<br />где Template:Parameter1 надо поменять на ту сущность, где хранится время. Например, это может быть Variable:MyVariable, если дата/время хранится в переменной, или Document:CREATE_DATE, если дата/время хранится в поле документа.<br />Тип периода надо оставить в секундах.<br />Обратите внимание, чтобы нигде у вас не было суффиксов _printable.<br />Если с таймзонами все в порядке, то вы сразу получите ожидаемый результат. В противном случае надо будет прибавить или отнять столько секунд, чтобы компенсировать сдвиг.<br /><a href="http://dev.1c-bitrix.ru/community/blogs/components2/the-calculator-in-the-psu.php">Подробнее...</a>]]></description>
      <link>http://dev.1c-bitrix.ru/community/blogs/components2/the-calculator-in-the-psu.php</link>
      <guid>http://dev.1c-bitrix.ru/community/blogs/components2/the-calculator-in-the-psu.php</guid>
      <pubDate>Thu, 10 Mar 2016 11:57:43 +0300</pubDate>
    </item>

    <item>
      <title>Особенности совместимости нового магазина со старым</title>
      <description><![CDATA[Мы готовимся к выпуску нового модуля Интернет-магазина. Физически это - тот же самый модуль sale, но существенно переработанный. В новом магазине у одного заказа может быть множество отгрузок и оплат/счетов, систематизирована оплата с внутреннего счета, переработаны платежные системы и службы доставки с целью их универсализации и поддержки новых возможностей, переработан жизненный цикл заказа, доработаны публичные компоненты и добавлено множество других улучшений и функциональных возможностей. <br /><br />При разработке мы старались максимально обеспечить совместимость нового магазина со старыми версиями, но обеспечить 100% совместимость при такой масштабной переработке невозможно. Ниже в статье я опишу места, на которые надо обратить особое внимание при переходе на новый магазин. Если у вас есть вопросы, предложения, пожелания или требуется консультация - обращайтесь к нам через службу техподдержки. <br /><br />Существенно изменилась структура таблиц в базе данных. <br />Мы всегда говорили, что прямой доступ к таблицам - это не правильный вариант работы с обновляемым продуктом. Но если вы все же по тем или иным причинам напрямую запрашиваете базу данных, то велика вероятность, что вам придется внести изменения в свои алгоритмы. Правильный доступ к данным должен производиться через АПИ модуля. <br /><br />Заказ, оплаты, доставки – связь «один-ко-многим». <br />Раньше в магазине была одна сущность - заказ, который представлял собой одну запись в таблице заказов. В этой таблице было поле, в котором хранился код платежной системы, поле со статусом оплаты и т.д. В новом магазине у каждого заказа может быть неограниченное число (частичных) оплат/счетов, а так же неограниченное число отгрузок. У каждой оплаты свой статус оплаченности, своя дата оплаты и т.п. <br />Другими словами появляется связь «один-ко-многим» между заказом и оплатами/отгрузками. Соответственно если выбрать из базы пару значений "заказ - оплата", то либо оплата там будет какая-то одна из имеющихся (не все), либо один и тот же заказ будет в нескольких парах (по числу оплат). <br />Мы постарались обеспечить максимально возможную совместимость. Если у вас не используется разделение на несколько оплат для одного заказа, то через старый АПИ можно выбрать сразу и заказ и его одну оплату. Но как только у вас появится разделение - результат выборки может оказаться не такой, на который вы рассчитываете. <br />Все, что сказано про оплаты, верно и для отгрузок. <br />Рекомендовать тут можно только либо постепенно переходить на новый АПИ в ваших решениях (рекомендуется), либо всегда для одного заказа иметь только одну оплату и только одну отгрузку. <br /><br />Оплата с внутреннего счета. <br />Раньше при оплате с внутреннего счета просто в таблице заказа проставлялась соответствующая сумма. В новом магазине внутренний счет - такая же платежная система, как и все остальные. Соответственно оплата с внутреннего счета - такая же запись (частичной) оплаты, как и для любой другой платежной системы. Таким образом облегчается отслеживание оплат, а кроме того на внутренний счет можно наложить условия и ограничения (как на любую другую платежную систему). <br /><br />Полностью переработан жизненный цикл заказа. <br />Так как изменилась структура и работа заказа, то соответственно изменился и жизненный цикл заказа. Мы восстановили основные события того жизненного цикла, который был раньше. Они включаются и выключаются в настройках модуля. Но места вызова старых событий в новом магазине не соответствуют старым местам вызова (потому что старых мест уже нет). В большинстве случаев это не должно повлиять на успешное выполнение вашего обработчика события, но лучше после перехода на новый магазин перепроверить, что все работает правильно. Еще лучше, конечно, перейти на новые события. <br /><br />Новый АПИ автоматически всегда поддерживает арифметическую целостность заказа. <br />Раньше программно можно было записать в любые поля заказа любые значения, и это успешно сохранялось, даже если логически данные не соответствовали друг другу. Например, при использовании старого АПИ можно было создать заказ стоимостью 1 руб., в котором было товаров на 500 руб. В новом магазине стоимость такого заказа будет 500 руб. (плюс возможно стоимость доставки). <br /><br />Меняются реальные ID платежных систем и служб доставок. <br />В связи с изменением структуры и работы платежных систем и служб доставок, меняются их реальные ID. У служб доставок теперь нет архитектурного разделения на настраиваемые и автоматизированные, соответственно нет и строковых идентификаторов, они теперь числовые. Все внутренние данные и сущности сами переходят на новые ID при конвертации. Если вы где-то используете связывание внешних по отношению к модулю данных с платежными системами или службами доставок, то вам необходимо убедиться в корректном сохранении связей. А вообще правильнее такие связи делать через внешние ключи или мнемонические коды. <br /><br />Ограничения платежных систем и служб доставок. <br />Раньше ограничения платежных систем и служб доставок (например, по сайтам, типам плательщика и т.п.) – были поля в таблицах соответственно платежных систем и служб доставок. Как следствие схема была не множественной и не расширяемой. Сейчас ограничения задаются с помощью новой сущности - ограничений. Они стали набираемыми для каждой службы доставки и платежной системы. Соответственно они могут быть множественными, можно расширять набор ограничений и т.д. Но следует учитывать, что это - больше не поля в таблице. <br /><br />Пользовательские платежные системы. <br />Обратите внимание, что пользовательские обработчики платежных систем должны лежать в папке /bitrix/php_interface/include/sale_payment/. Они не могут лежать внутри /bitrix/modules/sale/. Внутри ядра продукта вы не должны ничего менять самостоятельно. Это прямо указано в документации. <br />Так же обратите внимание на то, что в общем случае нельзя напрямую (через include) подключать файлы из ядра продукта в свои скрипты. Если вы копировали какие-то обработчики в пользовательскую папку для изменения, то вы должны скопировать все файлы обработчика, а не подключать часть из них из ядра. <br /><br />Если у вас есть вопросы, предложения, пожелания или требуется консультация - обращайтесь к нам через службу техподдержки.<br /><a href="http://dev.1c-bitrix.ru/community/blogs/components2/16433.php">Подробнее...</a>]]></description>
      <link>http://dev.1c-bitrix.ru/community/blogs/components2/16433.php</link>
      <guid>http://dev.1c-bitrix.ru/community/blogs/components2/16433.php</guid>
      <pubDate>Mon, 15 Feb 2016 17:39:34 +0300</pubDate>
    </item>

    <item>
      <title>Бизнес-процессы и управление компанией</title>
      <description><![CDATA[Часто новое дело, новый бизнес организуется и начинает работу в виде небольшого "дружеского" объединения, сплоченного общей идеей. В коллективе единомышленников каждый выполняет свои действия творчески, ответственно и самостоятельно. Сотрудники работают не только за зарплату, но во многом за идею. Директор в курсе всех происходящих в коллективе процессов и может оперативно реагировать на возникающие проблемы. Такой стиль управления называется "стихийное руководство", "управление в зависимости от ситуации" или "ситуационный менеджмент".<br /><br />И этот стиль управления зачастую оправдывает себя при зарождении и становлении бизнеса, так как позволяет реагировать на различные ситуации более гибко. При этом он требует от руководителя знания эффективных методов управления, умения прогнозировать последствия применения разных методов управления, умения правильно распознать сложившуюся ситуацию, навыков выбора оптимального для данной ситуации решения. То есть накладывает на квалификацию и мотивацию руководителя довольно сильные ограничения.<br /><br />Но с ростом компании, с появлением большого числа наемных сотрудников, в том числе на руководящих должностях, в определенный момент наступает такая ситуация, когда управлять "как прежде" становится невозможно. Новые руководители и работники не всегда имеют достаточную квалификацию и/или мотивацию, чтобы эффективно, творчески, ответственно и самостоятельно действовать в меняющейся ситуации. Руководители зачастую оказываются завалены лавиной мелких вопросов, которые решались через них, когда компания была маленькой, но компания то растет. Отсутствие системы в работе компании приводит к ошибкам в управлении. Как следствие рентабельность бизнеса может постепенно начать снижаться.<br /><br />И в этой ситуации надо что-то менять. Один из вариантов - это внедрение в компании регулярного менеджмента. То есть такого менеджмента, при котором процессы внутри компании регулируются (регламентируются) строгими написанными правилами.<br /><br />При применении ситуационного менеджмента сотрудник может действовать по разному в одинаковых ситуациях, принимая решение на основании своего опыта, интуиции, настроения, фазы луны и т.п. При внедрении же регулярного менеджмента действия сотрудника будут регламентированы, сотрудник всегда будет действовать и принимать решения в соответствии с установленными руководством правилами и ценностями. Имея строгие написанные правила сотрудник всегда знает, что делать в той или иной ситуации и как это делать самостоятельно, не отвлекая руководство.<br /><br />Как составить оптимальные для компании правила и регламенты - это вопрос, выходящий за рамки данного текста. А вот инструментом для автоматизации создания, исполнения и контроля исполнения правил может стать модуль Бизнес-процессов.<br /><br />Модуль Бизнес-процессов позволяет визуально формировать процессы, правила и наборы правил, а так же исполнять их и контролировать их выполнение. При этом выполнение процесса всегда идет по заранее утвержденным регламентам так, что сотрудник не может ошибиться, обойти или игнорировать какие-либо действия. У сотрудника, в том числе нового, не возникает вопроса, как делать. Потому что ответ на него простой: запустить бизнес-процесс и следовать дальнейшим инструкциям. У руководителя же есть инструмент, с помощью которого он может оперативно видеть, как движутся процессы и где они тормозятся. Модуль Бизнес-процессов позволяет работать практически с любым видом информации на сайте. Конкретные процессы могут запускаться как автоматически при возникновении какого-то события, так и вручную конкретным сотрудником.<br /><br />Таким образом модуль Бизнес-процессов поддерживает основные принципы регулярного менеджмента: он позволяет задать набор правил и регламентов, при этом правила задаются в письменном виде, а ключевые моменты исполнения правил подконтрольны руководству.<br /><a href="http://dev.1c-bitrix.ru/community/blogs/components2/business-processes-and-management-of-the-company.php">Подробнее...</a>]]></description>
      <link>http://dev.1c-bitrix.ru/community/blogs/components2/business-processes-and-management-of-the-company.php</link>
      <guid>http://dev.1c-bitrix.ru/community/blogs/components2/business-processes-and-management-of-the-company.php</guid>
      <pubDate>Thu, 06 Aug 2015 16:45:52 +0300</pubDate>
    </item>

    <item>
      <title>Магазин и каталог 12.5</title>
      <description><![CDATA[Последние обновления привнесли существенные изменения в связь между магазином и каталогом. Базовые принципы остались неизменными: магазин ничего не знает о каталоге (точнее не знает основной функционал магазина), связь осуществляется через через специальный обратный вызов. Соответственно магазину все равно, кто кормит его товарами. Это может быть вовсе не модуль каталога. Магазину важно только, чтобы ему дали интерфейс, по которому он может актуализировать цены, проверять количество, сообщать о фактической продаже товара и т.п.<br /><br />И интерфейс этого канала изменился.<br /><br />Старый интерфейс представлял собой набор методов, имена которых записывались в поля соответствующего элемента корзины (для каждого элемента). Магазин по необходимости запускал соответствующие методы. Например, для актуализации цены и доступности товара он запускал метод из поля CALLBACK_FUNC, а при оформлении заказа - ORDER_CALLBACK_FUNC.<br /><br />Для реализации нового функционала каталога и магазина 12.5 (складской учет, резервирование и отгрузка товаров,...) нам потребовалось существенно расширить интерфейс общения между каталогом и магазином. И экстенсивное расширение путем добавления в корзину новых полей с новыми именами новых функций было признано не эффективным. <br />Магазин продолжает поддерживать старый интерфейс &nbsp;в старом объеме функционала. Но с текущей версии общение магазина и каталога базируется на новом интерфейсе. И новый функционал тоже основывается уже на новом интерфейсе.<br /><br />В корзину добавлено одно новое поле PRODUCT_PROVIDER_CLASS, которое содержит имя класса, реализующего интерфейс IBXSaleProductProvider. Этот интерфейс и определяет интерфейс общения магазина и сущностей, которые кормят магазин товарами. Каталог записывает в это поле имя класса CCatalogProductProvider.<br /><br />Обратите на это внимание, если вы пользовались какими-то хаками, чтобы добиться нужного вам поведения. Возможно вам потребуется отнаследоваться от класса CCatalogProductProvider или сделать свою собственную реализацию IBXSaleProductProvider.<br /><a href="http://dev.1c-bitrix.ru/community/blogs/components2/7416.php">Подробнее...</a>]]></description>
      <link>http://dev.1c-bitrix.ru/community/blogs/components2/7416.php</link>
      <guid>http://dev.1c-bitrix.ru/community/blogs/components2/7416.php</guid>
      <pubDate>Fri, 19 Apr 2013 15:45:56 +0400</pubDate>
    </item>

    <item>
      <title>Модуль Бизнес-процессов</title>
      <description><![CDATA[С момента выпуска модуля Бизнес-процессов прошло некоторое время. Мы смогли оценить его возможности. Поняли, что было сделано в модуле правильно, а что - не совсем. Узнали его сильные и слабые стороны. В результате анализа стало ясно, что сам движок модуля работает достаточно успешно. Но требуются некоторые изменения его окружения и оснастки. Часть из этих изменений должна быть направлена на обеспечение большей понятности и удобства пользования модулем, другая должна добавить модулю еще больше универсальности. Ну и конечно необходимо исправить накопившиеся ошибки.<br /><br />Сейчас пришло время очередных обновлений модуля Бизнес-процессов. <br /><br /><a href="http://dev.1c-bitrix.ru/community/blogs/components2/modul-biznesprotsessov.php">Подробнее...</a>]]></description>
      <link>http://dev.1c-bitrix.ru/community/blogs/components2/modul-biznesprotsessov.php</link>
      <guid>http://dev.1c-bitrix.ru/community/blogs/components2/modul-biznesprotsessov.php</guid>
      <pubDate>Tue, 13 Dec 2011 16:40:11 +0400</pubDate>
    </item>

    <item>
      <title>Бизнес-процессы: создание</title>
      <description><![CDATA[Компонент "Бизнес-процесс" (bitrix:bizproc.wizards) служит для создания и управления произвольными бизнес-процессами (далее <b>БП</b>). Такими БП могут быть оформление командировки, согласование отпуска или подотчетных денег, заявки на приобретение техники или материалов, организация технической поддержки пользователей и т.п.<br /><br />Компонент позволяет "не программистам" создавать и изменять произвольные БП с помощью визуальных средств. Он дает специалисту возможность отобразить его специфичные знания с помощью высокоуровневых абстракций. Другими словами, компонент позволяет изложить свое видение решения наглядным способом, который другой человек будет в состоянии понять (и изменить по необходимости).<br /><br />Рассмотрим процедуру создания БП на примере алгоритма согласования подотчетных денег. Пусть в нашей условной организации согласование подотчетных денег осуществляется следующим образом:<br />1. Составляется заявка на выдачу подотчетных денег;<br />2. Заявка согласуется с руководителем (или несколькими руководителями). Пусть согласование производится по очереди с двумя заранее известными руководителями;<br />3. Оформление заявки в бухгалтерии;<br />4. Выдача денег;<br />5. Предоставление отчета;<br />6. Проверка отчета в бухгалтерии.<br />Пусть при этом подать заявление на подотчетные деньги может любой сотрудник, а видеть все заявления может только руководство.<br /><br /><br /><a href="http://dev.1c-bitrix.ru/community/blogs/components2/1840.php">Подробнее...</a>]]></description>
      <link>http://dev.1c-bitrix.ru/community/blogs/components2/1840.php</link>
      <guid>http://dev.1c-bitrix.ru/community/blogs/components2/1840.php</guid>
      <pubDate>Wed, 21 Apr 2010 10:11:17 +0400</pubDate>
    </item>

    <item>
      <title>Добавление закладки в социальную сеть</title>
      <description><![CDATA[Появилась возможность добавить произвольную закладку в социальную сеть без изменения стандартных компонентов. Для этого необходимо написать обработчики специальных событий.<br /><br /><br /><a href="http://dev.1c-bitrix.ru/community/blogs/components2/1682.php">Подробнее...</a>]]></description>
      <link>http://dev.1c-bitrix.ru/community/blogs/components2/1682.php</link>
      <guid>http://dev.1c-bitrix.ru/community/blogs/components2/1682.php</guid>
      <pubDate>Fri, 26 Feb 2010 12:41:21 +0300</pubDate>
    </item>

    <item>
      <title>Очные курсы для программистов</title>
      <description><![CDATA[С 17 по 19 апреля в Москве прошли трехдневные очные курсы для разработчиков посвященные технологиям разработки Web приложений с помощью продукта "Битрикс: Управление сайтом". Курсы читал я <img src="http://dev.1c-bitrix.ru/upload/main/smiles/3/bx_smile_wink.png" border="0" data-code=";-)" data-definition="UHD" alt=";-)" style="width:20px;height:20px;" title="Шутливо" class="bx-smile" /><br /><br />Официальные результаты этого мероприятия должны быть сегодня опубликованы, а я хочу сказать несколько неофициальных слов. <br /><br /><a href="http://dev.1c-bitrix.ru/community/blogs/components2/162.php">Подробнее...</a>]]></description>
      <link>http://dev.1c-bitrix.ru/community/blogs/components2/162.php</link>
      <guid>http://dev.1c-bitrix.ru/community/blogs/components2/162.php</guid>
      <pubDate>Wed, 25 Apr 2007 12:51:43 +0400</pubDate>
    </item>

  </channel>
</rss>