Роман Семёнов написал: я выше все объяснил - почему и когда не обязательно выкладывать обновления и это вполне работает
А, ну если речь только о том, что можно забить, если модуль не платный и не коммерческий, то конечно же это понятно.
Но у меня модуль от коммерческой компании, он бесплатный, но поступать так с клиентами мы не можем. Тем не менее, всем спасибо за ответы, все стало намного понятнее!
Денис Диденко написал: И да, хорошим тоном считается не только выпускать обновления (это само собой) но и обновлять изначальную версию архива до последней версии. Таким образом для новых клиентов будет безболезненным ваш переход на 5.6
Так погодите, а что будет, если я самую первую версию в МП заменю на последнюю? По факту, обновления не будут установлены, так как не нужны? Так это же отличный выход и именно этот ответ я и искал! И да, странно, что либо я не заметил такое правильное поведение в доках по созданию модуля, ну или его там вообще и не было.
Роман Семёнов, здорово, но это и так понятно, и не слишком удобно и вообще верно.
Тем не менее, может быть вы знаете ответ на второй вопрос? Как бы сразу ограничить версию php, до попытки установки модуля пользователем? Иначе выходит, что он видит ошибки, и это естественно сразу отбивает весь настрой на установку. Хотя на самом деле просто нужна другая версия php, которую тупо негде указать как зависимость, ну или я не нашел где.
У меня есть модуль, я хотел бы протестировать его, в том числе его установку через Маркетплейс. Могу ли я как-то имитировать его работу? Или как-то еще протестировать установку модуля из Маркетплейса, без внесения изменений в последнем в код модуля?
Немного объясню ситуацию:
У модуля уже есть достаточно версий, и мы вдруг решили, что он должен поддерживать не php7, как было запланировано изначально, а php5.6. Но есть беда - в модуле сразу стал применяться синтаксис, не поддерживаемый последним. Соответственно, если вдруг новый клиент захочет получить наш модуль, у которого последняя версия будет целиком поддерживать php5.6, он все равно не сможет его получить - так как для этого будет нужно, чтобы все файлы установки (не всего модуля) всех версий нашего модуля были без этого синтаксиса, иначе при накатывании одной за другой версий в момент установки модуля будет ошибка в первый же раз, когда в файлах установки встретится что-то несовместимое с php5.6.
Соответственно, необходимо поправить все версии модуля, коих накопилось уже немало. И пробовать потом его устанавливать, что не совсем верно с точки зрения подхода к разработке, так как это будет происходить сразу там же, где и, возможно, в данный момент будут наши некие клиенты.
Так вот, вопрос: как же все-таки поступить в таком случае? Делать все наживую, или все же есть способ протестировать именно установку модуля из МП, но не трогая его самого?
PS: На самом деле, поддержка php5.6 у нас будет такая, что после того, как модуль до конца запустится, мы скажем клиенту, что вам нужно обновиться до версии php7. Но тем не менее, даже для этого она нужна. Поэтому, есть еще один вопрос: может быть, можно как-то сразу ограничить такие вещи, не правя все версии модуля? И как тогда наиболее аутентично для 1С-Битрикс сделать это?
Вот это как раз непонятно где искать. При подключении к виртуальной машине я вижу такое меню:
Код
Bitrix virtual appliance version 7.3.0
Pool Configuration manager on this host
Not found configured server's pool! May be You want to add new.
Server network interfaces:
------------------------------------------------------------------------------------
Int | Link | Speed | MAC | IPAddress
------------------------------------------------------------------------------------
enp0s3 | yes | 1000Mb/s | 08:00:27:30:1c:f1 | 10.0.2.15
enp0s8 | yes | 1000Mb/s | 08:00:27:ae:50:59 | 10.10.70.5
------------------------------------------------------------------------------------
If you want to add the server to an existing cluster
Use one of the addresses listed above on master server
Available actions:
1. Create Management pool of server
2. Manage localhost
0. Exit
Enter selection:
Я верно понимаю, что мне нужен 1 пункт, там создать этот пул серверов и далее попробовать добавить новый сайт? Или что-то еще?
Александр Суворов написал: создайте новый сайт и установите туда новую демку
Хорошо, а как это сделать, используя BitrixVM и ее функционал? Я понимаю, что могу заново сам руками поднять еще один сайт, но наверняка же должен быть способ через какой-то скрипт или иной автоматизированный способ сделать это?
Доки читал, ответ гуглил, не помогло. А теперь суть вопроса.
Ситуация. Скачал BitrixVM для VirtualBox, загрузил в него, установил 1С-Bitrix, начал там тестировать всякое свое. Потом это прекратилось, на достаточно длительный срок. Понадобилось заново запустить эту виртуальную машину и заново попробовать в ней потестировать всякое свое. Но при попытке захода по адресу, который привязан к этой виртуальной машине, я вижу такой вот текст:
"Срок работы пробной версии продукта истек. Вы можете купить полнофункциональную версию продукта на сайте www.1c-bitrix.ru. Регистрация."
Хорошо, прохожу по ссылке регистрации. Там три поля, логин и пароль администратора и лиц. ключ или купон. Пробую получить очередной демо-ключ, на соответствующей странице портала Битрикса. Ключ получается, пробую его ввести на форме, описанной выше, получаю ошибку, при этом она изначально выглядит вот так:
Пользуюсь декодером, получаю, что это следующий текст:
"Демо-лицензия не регистрируется."
Пробую поискать решение по этой фразе, предлагается в одном единственном месте заменить файл bitrix/modules/main/include.php на такой же с рабочего сайта - решение не помогает.
Вопрос. Как быть в такой ситуации? Понятно, что можно просто удалить виртуальную машину и создать новую, но это время, силы. Неужели нельзя как-то штатно продолжить использовать 1С-Bitrix с демо-ключом, при условии, что это все крутится вообще на локальной машине, с галкой в настройках про то, что это копия продукта для разработки, и все такое.
Нет, мне нужно дать в итоге выбрать человеку и тип инфоблока, и собственно потом сам инфоблок. Но, похоже, что тут этот вариант подойдет тоже. Сейчас проверю.
Как получить по определенному типу все инфоблоки, я уже знаю. А вот как получить сами типы инфоблоков (catalog, offers, news и тд), а точнее - их полный список в системе?
Антон Соловьев написал: Бизнес от малого бизнеса отличает количеством типов цен и складов.
Именно поэтому и нужно узнать, как отличить одну редакцию от другой, ну или хотя бы проверить, поддерживаются ли склады или типы цен. Впрочем, читайте выше, уже во всем разобрались.
На всякий случай: эта фича в редакцию Малый бизнес не входит. Об этом сообщает /bitrix/admin/sale_buyers.php Вообщем, обычное дело с битриксом - реверс инжиниринг)
Да уж, обычное дело А так да, я понял что там все перечисленные вещи не входят в Малый бизнес.
Александр Медведев, точно, я еще удивился, почему название незнакомое, когда его копировал, а это оказывается модуль:
Цитата
Современный интернет-магазин (bitrix.eshop) Мастер создания интернет-магазина
Хорошо, поискал по модулю sale. Там есть несколько всяких фич, но я честно говоря не могу понять ни по их названию, ни по их местоположению, в силу плохого знания данного модуля, какая из них меня должна интересовать. Вот их список, возможно, неполный:
Но в итоге я поискал более внимательно по данным фичам и нашел такой вот список:
SaleAccounts - профили покупателей SaleAffiliate - аффилиатские программы SaleCCards - работа с кредитными картами SaleReports - отчеты для интернет-магазина CatDiscountSave - накопительные скидки CatMultiPrice - многоценовость CatMultiStore - многоскладовость CatCompleteSet - наборы и комплекты SaleRecurring - подписка на поступление новых товаров
Реверс инжиниринг кода bitrix/modules/main.include.php показал, что еще есть CatMultiFactor. Ну и судя по всему, мне нужна фича CatMultiPrice. Проверил, действительно, на полной версии бизнеса она включена, на малой - отключена. Спасибо в очередной раз вам за помощь в погружении в Битрикс!
Александр Медведев, В итоге, может быть я дурак, но не смог найти в рамках модуля bitrix.eshop включение текста с IsFeatureEnabled, кроме одного - там проверяется фича SaleAccounts, но судя по месту ее встречи /bitrix/modules/bitrix.eshop/install/wizards/bitrix/eshop/site/public/ru/.personal.menu.php и по ее названию, это совсем не то.
Евгений Смолин написал: Хм, ну тогда читаем список модулей и на основе анализа определяем тип лицензии
Ну таких или примерно таких способов, включая тот, который про обращение к серверу лицензий, можно насчитать пяток. Но неужели нет какого-то достаточно нативного способа вычислить, какой тип редакции у клиента установлен? Вот как сам модуль интернет-магазина это делает, например?
Евгений Смолин написал: \bitrix\modules\main\classes\general\version.php определяет константу SM_VERSION с текущей версией системы и дату SM_VERSION_DATE
Или вы невнимательно прочитали мой вопрос, или я не понимаю, как мне по версии вроде 18.1.5 определить, Малый это бизнес, обычный, или вообще какой-нибудь Старт.
Станислав Беличенко написал: Может ли еще что-то, в зависимости от типа редакции Битрикс, повлиять на работу модуля, который работает с ценами и всем, что с ними рядом?
На этот вопрос ответ уже найден, более или менее, тут.
Алексей Волков написал: А разве не хватит ограничения размещения модуля?
Не хватит, так как наш модуль может как работать с типами цен, так и не работать. То есть, он может жить и на редакции Малый бизнес, и на редакции Бизнес, просто нужно как-то в коде определять, давать ли пользователю поддержку типов цен, или не давать. Как это сделать и от чего плясать, от определения типа редакции самого Битрикс или от определения чего-нибудь в модуле bitrix.eshop (Интернет-магазин) - непонятно.
Есть модуль, распространяется через Маркетплейс. Есть необходимость узнавать в его коде тип редакции установленного Битрикс. То есть Малый бизнес, Бизнес и тд. Как это реализовать без лишних плясок? Я нашел сначала на сайте, а потом в коде, где это реализуется: это страница обновлений платформы, там есть такой раздел, как "Ответ сервера обновлений" - и в коде, реализующем этот раздел, есть примерно такой кусок, который и выводит нужную нам информацию о типе редакции Битрикс:
Вроде бы все просто, взять место в коде, где этот формируется массив $arUpdateList, вот только судя по всему, это ответ сервера лицензий самого Битрикс, и как-то не здорово брать каждый раз при установке модуля ответ оттуда, тем более, что сервер может быть недоступен на текущий момент, да и вообще по какой-либо из причин ответ нам не отдать.
Соответственно, вопросы:
Как узнать тип редакции Битрикс? Если это невозможно, то почему?
А теперь сама проблема: наш модуль использует типы цен и соответственно на самом деле ему важен только момент, когда в модуле, реализующем "интернет-магазин", где установлен наш модуль, есть поддержка типов цен. Первой мыслью было определять по типу редакции, так как именно в зависимости от них интернет-магазин и выбирает, работать или нет ему с типами цен, но, может быть, есть какой-то более "прямой способ"?
По крайней мере, на текущий момент нам важен в контексте редакций Битрикс только этот момент, про типы цен. Возможно, правда, что потом всплывет что-то еще. Соответственно, еще вопросы, параллельные тем, что выше:
Как узнать, есть ли поддержка типов цен в модуле "интернет-магазин" (bitrix.eshop)? Может ли еще что-то, в зависимости от типа редакции Битрикс, повлиять на работу модуля, который работает с ценами и всем, что с ними рядом?
Без понятия, это же просто один из клиентов, установивших модуль. В таком случае хочу спросить, как верно тут поступать, предупреждать о чем-либо пользователей, пытаться сбросить какой-либо кеш? Но если нужно, я могу уточнить у конкретного клиента, как у него настроено в данный момент. Если это поможет решить проблему не у него, а у всех пользователей в целом.
Андрей Николаев написал: Если вы меняете закешированные данные, то вы должны позаботиться о сбросе кеширования.
Ага, ну то есть мы должны все-таки в модуле это сбрасывать. Хорошо, а как сбросить кеш цен, если такое вообще есть в Биртриксе? Так как мы обновляем ровно их и ничего более. Или как сбросить кеш тех страниц, где есть отображение цен. Извините за наверное наивный вопрос, но действительно первый раз слышу о таком.
Хм, оказалось, что на самом деле тот ключ не сохраняется, а просто остается в поле после обновления страницы и сообщения об ошибке, мол "ну попробуйте еще раз с ним сохранить". В итоге оказалось, что версия модуля, которая еще не опубликована, но загружена как основная, устанавливается нормально просто по кнопке "Установить" из раздела редактирования модуля и его подраздела "2. Тестирование". И пока модуль не опубликован, это работает нормально, нет смысла заливать именно обновления модуля, можно просто каждый раз заливать основную версию заново и тестировать ее, как описано выше. Однако, когда мы уже опубликовали модуль (прошли модерацию), у нас встает проблема с тестированием, так как лично у меня не получилось выпустить ключ для тестовой версии Битрикс и потом сохранить его в карточке партнера для тестирования альфа-обновлений, ключ не сохраняется и пишется, что "Указанный лицензионный ключ не валиден" - то ли нельзя использовать ключ для демо-версий, то ли еще что.
Суть такова. Есть модуль, который обновляет по расписанию цены из определенного источника вне сайта. После этого у одного из пользователей оказывается ситуация, когда они получили цены и они есть в БД сайта, но кеш страниц еще не сброшен и соответственно на сайте видны старые цены. Помогает такая кнопка, например:
Вопрос: это сам модуль обязан скидывать кеш, сам пользователь сайта, использующий модуль, или же просто работа кеша должна быть настроена таким образом, чтобы он автоматически скидывался после работы подобных модулей?