Pourquoi le projet devrait-il être transféré à bitrix. Transfert de contenu vers les infoblocks Bitrix. Remises sur les licences

  • 06.05.2020

Stanislav Shashalevitch

Le temps est venu où les propriétaires d'entreprise n'ont plus besoin d'expliquer pourquoi ils ont besoin d'un site Web ou d'une boutique en ligne. Maintenant, ils l'absorbent eux-mêmes au stade de la création d'entreprise. Il est temps d'expliquer au client : qu'est-ce CMS la plateforme est-elle mieux adaptée à son activité ? Et c'est beaucoup plus difficile à expliquer, lorsque le client a déjà un projet sur sa plateforme, alors le convaincre de la nécessité de passer sur une autre plateforme est une tâche très difficile. Mais, à notre avis, avec la plateforme 1C-Bitrix cette tâche est beaucoup plus facile à résoudre qu'avec d'autres commerce électronique plates-formes.

Par conséquent, nous vous invitons à considérer 10 raisons pourquoi vous devez passer à 1C-Bitrix.


1. Intégration 1C

C'est l'un des "goodies" les plus agréables de la plateforme 1C-Bitrix. En 2007 Bitrix créé une joint-venture avec "1C""1C-Bitrix". À notre avis, c'est ce fait qui a donné le développement actif de cette plate-forme. Une nouvelle ère est arrivée lorsque l'intégration 1C est passée d'une tâche complexe à un schéma clair d'actions simples.

Sur Internet, vous pouvez trouver des "histoires d'horreur" dans lesquelles l'intégration dans Bitrix est présentée comme quelque chose de compliqué et coûteux. En fait, de telles «histoires d'horreur» sont inventées par ceux qui ne connaissent pas très bien toutes les nuances de l'intégration et de 1C lui-même. Les problèmes d'intégration ne peuvent survenir que dans les cas suivants :

  • Le modèle de site a été développé sans comprendre les fonctionnalités Intégration 1C
  • 1C lui-même est déjà bien scié
  • Faible qualification des développeurs
Si nous avons un site standard de 1C-Bitrix et standard 1C, il ne devrait pas y avoir de problème d'intégration. Le caractère unique et la complexité de vos processus commerciaux internes ajoutent de la complexité à Intégration 1C. Mais ce n'est pas la faute Bitrix sont les caractéristiques de votre entreprise.

Et comme preuve de notre innocence, nous fournissons un tutoriel vidéo dans lequel nos experts montrent comment faire intégration avec1CSeulement pour30 minutes. Et pas de trucs. Que des faits !

2. Intégration CRM

Si un Intégration 1C ne surprenez plus personne et c'est une fonctionnalité obligatoire de tout commerce électronique systèmes, puis Intégration GRC ne fait que prendre de l'ampleur. Mais ici aussi Bitrix essayer d'être en avance sur tout le monde.

Dans la boite 1C-Bitrix il existe déjà une fonctionnalité standard pour synchroniser les données avec GRC Bitrix24. Cela permet à l'équipe commerciale de travailler plus efficacement avec les prospects, les offres et les nouveaux contacts. Dès la sortie de la boîte, vous obtenez un outil de vente prêt à l'emploi.

Un sujet très actuel en ce moment, qui est d'ailleurs le principal argument pour transférer le projet à Bitrix déjà en 2017.

DE 1 février 2017 de l'année matériel de caisse enregistreuse devrait envoyer versions électroniques chèques à l'opérateur de données fiscales - les nouvelles règles sont établies dans 54-FZ, article 2, paragraphe 2.

La loi entrera pleinement en vigueur 1 juillet 2017. Chaque boutique en ligne doit avoir distributeur de billets(KKT), connecté à Internet et connecté à l'opérateur de données fiscales (OFD).

Qu'est-ce que ça veut dire? Si un en termes simples, puis avec 1 juillet 2017 ans pour chaque commande payée en ligne (et non contre facture) via votre boutique en ligne, vous devez assommer Contrôle KKM, ajoutez-le à la base de données du site, envoyez-le à au format électronique l'acheteur, et même beaucoup de données à fournir immédiatement au bureau des impôts. Et tout cela prend tout 5 minutes sinon vous serez condamné à une amende.

Comment aimez-vous ce problème? À notre avis, il est très non trivial. Ce que nous aimons Bitrix est qu'il réagit rapidement à toutes les évolutions du marché. Il ne s'attarde pas sur l'idéalisation de son produit, mais mesure simplement le pouls de tous les composants commerce électronique et répond instantanément.

Ici et ici 1C-Bitrix une réponse rapide et une fonctionnalité immédiatement mise en œuvre qui satisfait à toutes les exigences 54-FZ. A notre connaissance, Bitrix teste actuellement le lien sur son propre site : boutique en ligne - caisse enregistreuse - administration fiscale. Par conséquent, à 1er juillet nous serons pleinement armés Bitrix.

Nous pensons que c'est un argument de poids pour transférer le projet sur la plateforme 1C-Bitrix exactement à 2017- conformité totale 54-FZ. Nous pensons qu'à cet égard, il y aura des problèmes pour de nombreux salariés commerce électronique plates-formes, sans parler des plates-formes gratuites. Le propriétaire de l'entreprise devra simplement faire attention à 1C-Bitrix pour fermer le problème en toute sécurité avec 54-FZ.

4. Outils marketing

Nous avons tous entendu parler des compétences en marketing. 1C-Bitrix. Quelqu'un, tranquillement envieux, dit que c'est la principale composante du succès de cette entreprise. Mais ne soyons pas envieux, mais apprenons simplement de l'expérience Bitrix. Heureusement, l'entreprise elle-même 1C-Bitrix partage volontiers tous ses outils directement sur la plateforme elle-même.

Maintenant, nous allons vous parler du plus intéressant, à notre avis, outils marketing, ce qui ajoutera des arguments en faveur de la décision de transférer le projet à Bitrix:

  • publicité par e-mail. Vous permettra de travailler avec les clients en mode automatique grâce à listes de diffusion. Des scripts déjà préparés pour les chaînes d'e-mails déclencheurs motivent le client à revenir sur le site et à passer de nouvelles commandes.
  • Commercialisation des marchandises. Motiver les clients avec des promotions et des remises a toujours eu un effet positif. Et Bitrix offre des options de configuration flexibles pour pouvoir influencer chaque groupe d'utilisateurs.
Mais le marketing de Bitrix ne sont pas que des outils cousus dans une boîte. Il s'agit d'un ensemble de supports destinés à améliorer la formation du client à la vente en ligne. Il s'agit d'un ensemble d'actions systématiques qui aideront votre magasin à prendre de l'ampleur.

5. Outils de référencement

référencement- était, est et sera un outil important pour attirer du trafic vers le site. Nous, en tant que développeurs de notre propre référencement solutions, nous y portons une attention particulière.

Malheureusement jusqu'en 2013 référencement composant de plate-forme 1C-Bitrixétait très peu développé. Il n'était pas possible de générer de manière flexible des balises méta régulières, sans parler des tâches plus complexes. Mais depuis la version 14 Bitrix tout a changé. À présent référencement les outils de la plate-forme incluent :

  • Modèles de balises méta
  • Génération de plan de site intelligent
  • Génération robots.txt
  • Envoi en cours texte unique vers Yandex
  • Et beaucoup plus
Maintenant, nous pouvons dire avec confiance que la plate-forme 1C-Bitrix sera d'une grande aide pour Spécialiste du référencement.

Big Data- c'est maintenant non seulement à la mode, mais aussi nécessaire. L'acheteur n'appréciera plus seulement une offre d'achat de biens dans une boutique en ligne. L'acheteur appréciera si le magasin offre exactement ce dont il a besoin. C'est à cela que servent ces services.

Compagnie Bitrix et a réagi rapidement dans ce sens et a lancé son propre service cloud "1C-Bitrix BigData". Cela permet de faire des offres personnalisées au client, c'est-à-dire en analysant ses actions comportementales selon certains algorithmes, de proposer les biens dont il a besoin. Le retrait des biens personnels peut se produire à la fois dans la partie publique du site et dans les listes de diffusion.

Veuillez noter qu'un service similaire de Bitrix augmentera non seulement vos ventes, mais aura également un effet positif sur la fidélité à votre boutique en ligne.

7. Réseau d'affiliation

Le réseau d'affiliation est ce qui le fait grandir 1C-Bitrix. Il y a maintenant plus de 13 000 partenaires dans le réseau. Et chaque jour, il y en a de plus en plus.

Qu'est-ce qu'un réseau aussi étendu apporte à une entreprise ?

Tout d'abord, vous avez la possibilité de sélectionner un développeur selon les paramètres suivants :

  • Budget du projet
  • Qualification et expertise du développeur
  • Régionalité
Deuxièmement, il n'y a pas de lien vers un développeur spécifique qui, en raison du système auto-écrit, vous permet de dicter vos conditions. Le réseau d'affiliation supprime ces restrictions et rend votre projet aliénable, c'est-à-dire que pratiquement n'importe quel partenaire peut l'accepter 1C-Bitrix.

Quant au choix d'un partenaire direct, il s'agit selon nous de l'étape la plus importante et la plus responsable. Cela dépend de lui comment votre projet se déroulera. Bitrix, bien sûr, essaie en quelque sorte de filtrer et de trouver des développeurs appropriés pour vous, mais, comme nous le pensons, jusqu'à présent, cela n'a pas toujours bien fonctionné. Même statut "Partenaire Or" ne donne aucune garantie à votre projet. Après tout, comme nous le pensons, le seuil d'entrée pour obtenir ce statut est trop bas et il vaudrait la peine de le relever.

Bien que ce ne soit pas le sujet de l'article actuel, néanmoins, sur la base de ce qui précède, nous pouvons vous donner quelques recommandations :

  • Cas partenaires. Familiarisez-vous soigneusement avec les projets que le développeur a déjà mis en œuvre, dont le thème est similaire au vôtre. Posez des questions de clarification sur les cas. Ne soyez pas timide.
  • Compétence. Assurez-vous de vérifier les qualifications du partenaire. Le test commence avec la première touche. Avec des questions éclairantes compétentes, le partenaire révélera votre projet, et avec ses réponses convaincantes aux questions, il dissipera tous vos doutes.
En détails ce sujet nous allons essayer de révéler dans les articles suivants. Le problème est très important. Après tout, souvent à cause de partenaires peu scrupuleux, tout le négatif se déverse sur le côté. Bitrix. Afin de se justifier d'une manière ou d'une autre, des défauts et des omissions présumés de la plate-forme elle-même sont inventés. Toute la communauté souffre de tels partenaires 1C-Bitrix. C'est après de tels développeurs que les propriétaires de boutiques en ligne ne veulent pas travailler avec Bitrix en général.

8. Plateforme de commerce électronique #1

C'est paradoxalement l'argument le plus simple et le plus important en faveur du passage à Bitrix.



D'après le graphique, on peut voir qu'environ 60% du marché commercial CMS aujourd'hui occupé par la société 1C-Bitrix. Et 6 sur 10 ont peu de chances de se tromper. Ils ont fait leur choix en analysant attentivement tous les avantages et inconvénients du produit. Maintenant, il vous est beaucoup plus facile de prendre la bonne décision en suivant leur exemple.

je voudrais souhaiter Bitrix pour qu'il ne s'arrête pas là et essaie non seulement de maintenir la part de marché actuelle, mais aussi de l'augmenter. Et il y a de la place pour grandir : 40% du marché CMS+ commercial systèmes libres. 1C-Bitrix simplement obligé de créer de telles conditions et une telle plate-forme vers laquelle vous souhaitez simplement basculer.

9. 1C-Bitrix.Marketplace

Nous avons décidé de garder le meilleur pour plus tard. Création de votre propre plateforme de vente Marché en 2011 ouvert avant 1C-Bitrix nouvelles opportunités. Après tout, grâce à cette étape, la vulgarisation Bitrix a augmenté à la fois parmi les développeurs et directement parmi les participants à la vente en ligne. Et il y a plusieurs raisons à cela :

  • Solutions types - Démarrage rapide des ventes. Après le lancement 1 DE-Bitrix.Marketplace il y a eu un grand boom dans les solutions de modèles standard. Grâce à cela, les clients ont vraiment lancé des boutiques en ligne de plusieurs jours à plusieurs semaines, au lieu de plusieurs mois et de projets coûteux à partir de zéro. Cela leur a permis d'acquérir rapidement de l'expérience dans la vente en ligne et d'avoir une attitude plus consciente et professionnelle face au développement de leur projet.
  • Augmenter la fonctionnalité de 1C-Bitrix. Maintenant, ce qu'il ne peut pas faire lui-même Bitrix sont faites par ses partenaires. Cela élargit les possibilités de la plate-forme et les rend presque illimitées.
  • Montée en compétence des développeurs.Le site a ouvert de nouvelles opportunités directement aux artistes interprètes. Ainsi, il a contribué à la croissance de la qualification des spécialistes techniques dans le développement de solutions pour 1C-Bitrix.
À présent Marché tout est également rempli de solutions et de modules prêts à l'emploi. Cependant, la qualité de beaucoup d'entre eux laisse beaucoup à désirer. Nous pouvons donc vous en offrir un gratuitement. Conseil utile: avant d'acheter une solution, pensez à tester son fonctionnement sur votre projet. Assurez-vous que le module a le mode de démonstration. S'il n'y a pas un tel mode, demandez au développeur l'opportunité de tester sa solution. Personnellement, nous ne considérons même pas les produits qui n'ont pas le mode de démonstration. Nous recommandons la même chose à tous nos clients. Il n'y a aucun désir d'acquérir un "cochon dans un sac". Le propriétaire d'une boutique en ligne doit : susciter, intéresser et convaincre. MAIS le mode de démonstration- juste l'outil qui peut le faire.

10. Développement et mises à jour constants

Comme mentionné ci-dessus, 1C-Bitrix surveille attentivement toutes les tendances et tous les changements commerce électronique marché. Vous obtenez non seulement un produit qui n'est pertinent que pour aujourd'hui, comme c'est le cas avec l'auto-écrit CMS– vous bénéficiez d'une plateforme en constante évolution.

Lorsque vous bénéficiez d'un an de mises à jour gratuites. Cela signifie que pendant cette période, votre projet sera toujours à jour. Et si vous achetez des produits 1C-Bitrix par notre intermédiaire, vous recevez également des bonus d'un montant de 20 % du montant de la commande, que vous pouvez dépenser pour l'achat de nos modules.

Je voudrais noter que le Bitrix il y a une certaine règle, qui est déjà pendant longtemps pas cassé : deux versions de mise à jour mondiales par an. Cela signifie que des dates et des délais précis pour la mise en œuvre de ces mises à jour sont déjà fixés à l'avance. Aux dates fixées, la présentation de la version est effectuée, et immédiatement après, sa mise en œuvre systématique. Ce modèle de travail est très efficace. Cela motive le service de développement à se débarrasser de l'idéalisation du code et aide à fournir rapidement des résultats directement au propriétaire de la boutique en ligne.

Ici, semble-t-il, on peut s'arrêter. Total 10 raisons mais toutes les raisons Bitrix"souffert". Chaque raison a résisté à l'épreuve du temps, des expériences ratées, des hypothèses ratées. Nous l'espérons 1C-Bitrix nous donnera de nouvelles raisons de travailler sur cette plate-forme particulière.

Pendant toute la durée de mon travail avec Bitrix, j'ai eu la chance de travailler avec un très grand nombre de projets que quelqu'un a développés avant moi. Voici des améliorations mineures, la correction de divers bogues et erreurs dans le fonctionnement de la logique, la refonte du site et des changements globaux dans les fonctionnalités existantes. Et, comme tout autre développeur, je déteste trier les ordures, les béquilles et les correctifs "temporaires" des autres qui se souviennent en fait de la 8e édition du produit.

Ici, je vais essayer de ne pas me concentrer sur les "pires pratiques" standard lors de la programmation en PHP, telles que ne pas se soucier du choix des noms de variables et de fonctions, requêtes inutiles à la base de données en boucle, manque de validation des données utilisateur dans formulaires, en ignorant les commentaires, etc. Je vais essayer de toucher exactement les moments inhérents au développement sur Bitrix, ce qui vous permettra plus tard d'éviter les indignations et les malédictions contre vous de la part du programmeur qui devait accompagner votre code. Et oui, souvent vous deviendrez vous-même ce programmeur dans un an ou plus, lorsque vous aurez complètement oublié pourquoi vous avez inséré telle ou telle béquille ici.

"Écrivez le code comme s'il était accompagné d'un psychopathe violent qui sait où vous habitez" (c) John F. Woods

Premièrement, et le plus, à mon avis, le plus important - pour l'amour du ciel, utiliser le dossier local. Ceci est tout simplement vital lors de l'utilisation du système de contrôle de version - tout ce dont vous avez besoin est d'ajouter le dossier /bitrix/ aux exclusions. Tout. De plus, presque tout le développement est effectué uniquement dans celui-ci. Cela simplifie grandement la recherche ultérieure des fichiers et composants nécessaires, aide à ne pas obstruer le référentiel avec des fichiers inutiles et, en général, donne à l'arborescence du projet un aspect plus soigné et «humain».

Ne modifiez pas le noyau. Même si vous êtes sûr qu'il ne sera pas mis à jour. Même si c'est plus rapide. Même si vous êtes paresseux. Oubliez cette pensée, comme un mauvais rêve. Si vous avez besoin de changer la logique d'un composant standard, déplacez-le vers un nouvel espace de noms /local/components/modify/ et travaillez avec. Il en va de même pour les modules, les gadgets et les activités de processus métier.

Ne pas polluer le fichier init.php. Combinez des fonctions pour travailler avec un module ou une fonctionnalité spécifique dans une classe, écrivez toute cette classe dans un fichier séparé, et dans init.php incluez simplement ces fichiers et écrivez des gestionnaires d'événements. J'ai vu des fichiers init.php de 500 Ko chacun, où les fonctions, les définitions constantes, les classes et l'initialisation des gestionnaires étaient mélangées dans un désordre. Bien sûr, quand j'ai eu à m'occuper de ces dossiers, j'ai maudit mes prédécesseurs.

Le point suivant ne s'applique pas au cas de développement des solutions toutes faites pour la Marketplace, lorsque l'objectif est de rendre la fonctionnalité la plus personnalisable de la partie publique pour l'utilisateur final. Si vous travaillez sur un projet spécifique, pour un TOR spécifique - vous ne devriez pas essayer de créer un modèle unifié pour un composant pour toutes les occasions. Personnellement, j'adhère à la philosophie - il vaut mieux avoir plusieurs modèles simples utilisés à des fins différentes qu'un modèle universel, mais dans lequel le diable lui-même se cassera la jambe plus tard. Bien sûr, dans chaque cas spécifique, vous devez vous baser sur ce qui est - les termes de référence, les options de mise en œuvre, etc., mais certains utilisent le rasoir d'Occam avec trop de zèle. À titre d'exemple, je donnerai un projet d'une société de leasing que j'ai édité. Le projet lui-même, bien sûr, a été terriblement mis en œuvre, la véritable horreur était dans les pages de la section catalogue de services. Chacune des cinq sections avait sa propre disposition, qui différait à la fois par la position des blocs sur la page et, en principe, par la présence de certains d'entre eux. Et pour les cinq pages, un modèle a été utilisé avec un tas d'appels de composants if-else, dupliquant, connectant des styles et des scripts, qui, de plus, étaient périodiquement en conflit les uns avec les autres. En conséquence, un énorme dossier, dans lequel c'était comme la mort de comprendre "sans un demi-litre". Cependant, semble-t-il, qu'est-ce qui vous a empêché de créer 5 modèles différents et de ne pas créer de difficultés à l'improviste ?

Utiliser l'API. Ne réinventez pas la roue là où elle n'est pas nécessaire. Utilisez la documentation - l'ensemble du produit est assez bien décrit, ainsi que chaque fonction peut être consultée en détail sur bxapi.ru.

Évitez les requêtes directes dans la base de données. ce cas particulier le paragraphe précédent - utilisez l'API. Les requêtes grossières et non sécurisées peuvent entraîner la corruption, la perte ou même la compromission des données.

Ne pas utiliser de composants CNC à partir de la racine du site. Les conséquences sont généralement assez fâcheuses, puisque la CNC utilise un fichier de gestionnaire d'adresses, essayer de l'utiliser depuis la racine vous casse facilement l'adressage d'autres composants, ainsi que 404 pages. Cela ne changera rien si vos articles sont adressés par rapport au dossier /articles/ et les produits par rapport au /catalog/.

Incluez css et js à l'aide de l'API. Jusqu'à présent, partout où je rencontre la connexion de scripts et de styles à l'aide de balises



Pendant toute la durée de mon travail avec Bitrix, j'ai eu la chance de travailler avec un très grand nombre de projets que quelqu'un a développés avant moi. Voici des améliorations mineures, la correction de divers bogues et erreurs dans le fonctionnement de la logique, la refonte du site et des changements globaux dans les fonctionnalités existantes. Et, comme tout autre développeur, je déteste trier les ordures, les béquilles et les correctifs "temporaires" des autres qui se souviennent en fait de la 8e édition du produit.

Ici, je vais essayer de ne pas me concentrer sur les "pires pratiques" standard lors de la programmation en PHP, telles que ne pas se soucier du choix des noms de variables et de fonctions, requêtes inutiles à la base de données en boucle, manque de validation des données utilisateur dans formulaires, en ignorant les commentaires, etc. Je vais essayer de toucher exactement les moments inhérents au développement sur Bitrix, ce qui vous permettra plus tard d'éviter les indignations et les malédictions contre vous de la part du programmeur qui devait accompagner votre code. Et oui, souvent vous deviendrez vous-même ce programmeur dans un an ou plus, lorsque vous aurez complètement oublié pourquoi vous avez inséré telle ou telle béquille ici.

"Écrivez le code comme s'il était accompagné d'un psychopathe violent qui sait où vous habitez" (c) John F. Woods
Premièrement, et le plus, à mon avis, le plus important - pour l'amour du ciel, utiliser le dossier local. Ceci est tout simplement vital lors de l'utilisation du système de contrôle de version - tout ce dont vous avez besoin est d'ajouter le dossier /bitrix/ aux exclusions. Tout. De plus, presque tout le développement est effectué uniquement dans celui-ci. Cela simplifie grandement la recherche ultérieure des fichiers et composants nécessaires, aide à ne pas obstruer le référentiel avec des fichiers inutiles et, en général, donne à l'arborescence du projet un aspect plus soigné et «humain».

Ne modifiez pas le noyau. Même si vous êtes sûr qu'il ne sera pas mis à jour. Même si c'est plus rapide. Même si vous êtes paresseux. Oubliez cette pensée, comme un mauvais rêve. Si vous avez besoin de changer la logique d'un composant standard, déplacez-le vers un nouvel espace de noms /local/components/modify/ et travaillez avec. Il en va de même pour les modules, les gadgets et les activités de processus métier.

Ne pas polluer le fichier init.php. Combinez des fonctions pour travailler avec un module ou une fonctionnalité spécifique dans une classe, écrivez toute cette classe dans un fichier séparé, et dans init.php incluez simplement ces fichiers et écrivez des gestionnaires d'événements. J'ai vu des fichiers init.php de 500 Ko chacun, où les fonctions, les définitions constantes, les classes et l'initialisation des gestionnaires étaient mélangées dans un désordre. Bien sûr, quand j'ai eu à m'occuper de ces dossiers, j'ai maudit mes prédécesseurs.

Le paragraphe suivant ne s'applique pas au cas de développement de solutions toutes faites pour la Marketplace, lorsque l'objectif est de rendre la fonctionnalité la plus personnalisable de la partie publique pour l'utilisateur final. Si vous travaillez sur un projet spécifique, pour un TOR spécifique - vous ne devriez pas essayer de créer un modèle unifié pour un composant pour toutes les occasions. Personnellement, j'adhère à la philosophie - il vaut mieux avoir plusieurs modèles simples utilisés à des fins différentes qu'un modèle universel, mais dans lequel le diable lui-même se cassera la jambe plus tard. Bien sûr, dans chaque cas spécifique, vous devez vous baser sur ce qui est - les termes de référence, les options de mise en œuvre, etc., mais vous ne devez toujours pas oublier le rasoir d'Occam. À titre d'exemple, je donnerai un projet d'une société de leasing que j'ai édité. Le projet lui-même, bien sûr, a été terriblement mis en œuvre, la véritable horreur était dans les pages de la section catalogue de services. Chacune des cinq sections avait sa propre disposition, qui différait à la fois par la position des blocs sur la page et, en principe, par la présence de certains d'entre eux. Et pour les cinq pages, un modèle a été utilisé avec un tas d'appels de composants if-else, dupliquant, connectant des styles et des scripts, qui, de plus, étaient périodiquement en conflit les uns avec les autres. En conséquence, un énorme dossier, dans lequel c'était comme la mort de comprendre "sans un demi-litre". Cependant, semble-t-il, qu'est-ce qui vous a empêché de créer 5 modèles différents et de ne pas créer de difficultés à l'improviste ?

Utiliser l'API. Ne réinventez pas la roue là où elle n'est pas nécessaire. Utilisez la documentation - l'ensemble du produit est assez bien décrit, ainsi que chaque fonction peut être consultée en détail sur bxapi.ru.

Évitez les requêtes directes dans la base de données. Ceci est un cas particulier du point précédent - utilisez l'API. Les requêtes grossières et non sécurisées peuvent entraîner la corruption, la perte ou même la compromission des données.

Ne pas utiliser de composants CNC à partir de la racine du site. Les conséquences sont généralement assez fâcheuses, puisque la CNC utilise un fichier de gestionnaire d'adresses, essayer de l'utiliser depuis la racine vous casse facilement l'adressage d'autres composants, ainsi que 404 pages. Cela ne changera rien si vos articles sont adressés par rapport au dossier /articles/ et les produits par rapport au /catalog/.

Incluez css et js à l'aide de l'API. Jusqu'à présent, partout où je rencontrais la connexion de scripts et de styles à l'aide de balises html. Utilisez l'objet de classe \Bitrix\Main\Page\Asset et les fonctions addJs() et addCss(). Cela vous permettra de fusionner des fichiers et, plus tard, de les mettre en cache en un clic de la case à cocher dans les paramètres du module principal

Et enfin, l'erreur ne concerne pas seulement Bitrix, mais trop souvent j'ai commencé à rencontrer des problèmes qui y sont associés. Vérifier le tableau vide avec des exemples de résultats. Par exemple, la dernière fois que j'ai rencontré ce problème, c'était lorsque je travaillais avec une boutique en ligne. Réclamation : les pages prennent parfois 16 secondes à se charger. Avec quoi il est connecté - ce n'est pas clair. Par essais et erreurs, j'ai découvert que les pages se chargent indécemment pendant longtemps uniquement lorsque le panier est vide. Il parait pourquoi ? Il s'est avéré qu'en survolant le panier, une fenêtre contextuelle est apparue dans laquelle des images du produit mis dans le panier étaient affichées. Alors, qu'a fait le développeur précédent ? J'ai pris le résultat du travail du composant "petit panier" et dans le fichier result_modifier.php j'ai fait un appel à GetList() des produits pour sélectionner les images avec un filtre parmi le tableau des ID produits, puis j'ai ajouté le src de l'image des résultats de la sélection au tableau du produit correspondant. En conséquence, lorsqu'il n'y avait pas de marchandises dans le panier, le filtre se vidait et le catalogue ENTIER des marchandises tombait dans la sélection. Eh bien, alors le cycle pour chacun et ... nous avons ce que nous avons. Il est clair qu'au stade du développement, avec 15 produits de test, cela était imperceptible et des problèmes se posaient déjà dans des conditions de combat. Cependant, il semblerait que cela valait la peine de cocher empty($arResult[‘ITEMS’])…

Ceci conclut mon top personnel des « pires pratiques » concernant le développement de Bitrix. Si au moins quelqu'un cette information aide à éviter les erreurs à l'avenir et à améliorer son style de développement, alors ce n'était pas en vain.

Vous pouvez aider et transférer des fonds pour le développement du site

Pendant toute la durée de mon travail avec Bitrix, j'ai eu la chance de travailler avec un très grand nombre de projets que quelqu'un a développés avant moi. Voici des améliorations mineures, la correction de divers bogues et erreurs dans le fonctionnement de la logique, la refonte du site et des changements globaux dans les fonctionnalités existantes. Et, comme tout autre développeur, je déteste trier les ordures, les béquilles et les correctifs "temporaires" des autres qui se souviennent en fait de la 8e édition du produit.

Ici, je vais essayer de ne pas me concentrer sur les "pires pratiques" standard lors de la programmation en PHP, telles que ne pas se soucier du choix des noms de variables et de fonctions, requêtes inutiles à la base de données en boucle, manque de validation des données utilisateur dans formulaires, en ignorant les commentaires, etc. Je vais essayer de toucher exactement les moments inhérents au développement sur Bitrix, ce qui vous permettra plus tard d'éviter les indignations et les malédictions contre vous de la part du programmeur qui devait accompagner votre code. Et oui, souvent vous deviendrez vous-même ce programmeur dans un an ou plus, lorsque vous aurez complètement oublié pourquoi vous avez inséré telle ou telle béquille ici.

"Écrivez le code comme s'il était accompagné d'un psychopathe violent qui sait où vous habitez" (c) John F. Woods

Premièrement, et le plus, à mon avis, le plus important - pour l'amour du ciel, utiliser le dossier local. Ceci est tout simplement vital lors de l'utilisation du système de contrôle de version - tout ce dont vous avez besoin est d'ajouter le dossier /bitrix/ aux exclusions. Tout. De plus, presque tout le développement est effectué uniquement dans celui-ci. Cela simplifie grandement la recherche ultérieure des fichiers et composants nécessaires, aide à ne pas obstruer le référentiel avec des fichiers inutiles et, en général, donne à l'arborescence du projet un aspect plus soigné et «humain».

Ne modifiez pas le noyau. Même si vous êtes sûr qu'il ne sera pas mis à jour. Même si c'est plus rapide. Même si vous êtes paresseux. Oubliez cette pensée, comme un mauvais rêve. Si vous avez besoin de changer la logique d'un composant standard, déplacez-le vers un nouvel espace de noms /local/components/modify/ et travaillez avec. Il en va de même pour les modules, les gadgets et les activités de processus métier.

Ne pas polluer le fichier init.php. Combinez des fonctions pour travailler avec un module ou une fonctionnalité spécifique dans une classe, écrivez toute cette classe dans un fichier séparé, et dans init.php incluez simplement ces fichiers et écrivez des gestionnaires d'événements. J'ai vu des fichiers init.php de 500 Ko chacun, où les fonctions, les définitions constantes, les classes et l'initialisation des gestionnaires étaient mélangées dans un désordre. Bien sûr, quand j'ai eu à m'occuper de ces dossiers, j'ai maudit mes prédécesseurs.

Le paragraphe suivant ne s'applique pas au cas de développement de solutions toutes faites pour la Marketplace, lorsque l'objectif est de rendre la fonctionnalité la plus personnalisable de la partie publique pour l'utilisateur final. Si vous travaillez sur un projet spécifique, pour un TOR spécifique - vous ne devriez pas essayer de créer un modèle unifié pour un composant pour toutes les occasions. Personnellement, j'adhère à la philosophie - il vaut mieux avoir plusieurs modèles simples utilisés à des fins différentes qu'un modèle universel, mais dans lequel le diable lui-même se cassera la jambe plus tard. Bien sûr, dans chaque cas spécifique, vous devez vous baser sur ce qui est - les termes de référence, les options de mise en œuvre, etc., mais vous ne devez toujours pas oublier le rasoir d'Occam. À titre d'exemple, je donnerai un projet d'une société de leasing que j'ai édité. Le projet lui-même, bien sûr, a été terriblement mis en œuvre, la véritable horreur était dans les pages de la section catalogue de services. Chacune des cinq sections avait sa propre disposition, qui différait à la fois par la position des blocs sur la page et, en principe, par la présence de certains d'entre eux. Et pour les cinq pages, un modèle a été utilisé avec un tas d'appels de composants if-else, dupliquant, connectant des styles et des scripts, qui, de plus, étaient périodiquement en conflit les uns avec les autres. En conséquence, un énorme dossier, dans lequel c'était comme la mort de comprendre "sans un demi-litre". Cependant, semble-t-il, qu'est-ce qui vous a empêché de créer 5 modèles différents et de ne pas créer de difficultés à l'improviste ?

Utiliser l'API. Ne réinventez pas la roue là où elle n'est pas nécessaire. Utilisez la documentation - l'ensemble du produit est assez bien décrit, ainsi que chaque fonction peut être consultée en détail sur bxapi.ru.

Évitez les requêtes directes dans la base de données. Ceci est un cas particulier du point précédent - utilisez l'API. Les requêtes grossières et non sécurisées peuvent entraîner la corruption, la perte ou même la compromission des données.

Ne pas utiliser de composants CNC à partir de la racine du site. Les conséquences sont généralement assez fâcheuses, puisque la CNC utilise un fichier de gestionnaire d'adresses, essayer de l'utiliser depuis la racine vous casse facilement l'adressage d'autres composants, ainsi que 404 pages. Cela ne changera rien si vos articles sont adressés par rapport au dossier /articles/ et les produits par rapport au /catalog/.

Incluez css et js à l'aide de l'API. Jusqu'à présent, partout où je rencontrais la connexion de scripts et de styles à l'aide de balises html. Utilisez l'objet de classe \Bitrix\Main\Page\Asset et les fonctions addJs() et addCss(). Cela vous permettra de fusionner des fichiers et, plus tard, de les mettre en cache en un clic de la case à cocher dans les paramètres du module principal

Et enfin, l'erreur ne concerne pas seulement Bitrix, mais trop souvent j'ai commencé à rencontrer des problèmes qui y sont associés. Vérifier le tableau vide avec des exemples de résultats. Par exemple, la dernière fois que j'ai rencontré ce problème, c'était lorsque je travaillais avec une boutique en ligne. Réclamation : les pages prennent parfois 16 secondes à se charger. Avec quoi il est connecté - ce n'est pas clair. Par essais et erreurs, j'ai découvert que les pages se chargent indécemment pendant longtemps uniquement lorsque le panier est vide. Il parait pourquoi ? Il s'est avéré qu'en survolant le panier, une fenêtre contextuelle est apparue dans laquelle des images du produit mis dans le panier étaient affichées. Alors, qu'a fait le développeur précédent ? J'ai pris le résultat du travail du composant "petit panier" et dans le fichier result_modifier.php j'ai fait un appel à GetList() des produits pour sélectionner les images avec un filtre parmi le tableau des ID produits, puis j'ai ajouté le src de l'image des résultats de la sélection au tableau du produit correspondant. En conséquence, lorsqu'il n'y avait pas de marchandises dans le panier, le filtre se vidait et le catalogue ENTIER des marchandises tombait dans la sélection. Eh bien, alors le cycle pour chacun et ... nous avons ce que nous avons. Il est clair qu'au stade du développement, avec 15 produits de test, cela était imperceptible et des problèmes se posaient déjà dans des conditions de combat. Cependant, il semblerait que cela valait la peine de cocher empty($arResult[‘ITEMS’])…

Ceci conclut mon top personnel des « pires pratiques » concernant le développement de Bitrix. Si au moins quelqu'un cette information aide à éviter les erreurs à l'avenir et à améliorer son style de développement, alors ce n'était pas en vain.

Pendant toute la durée de mon travail avec Bitrix, j'ai eu la chance de travailler avec un très grand nombre de projets que quelqu'un a développés avant moi. Voici des améliorations mineures, la correction de divers bogues et erreurs dans le fonctionnement de la logique, la refonte du site et des changements globaux dans les fonctionnalités existantes. Et, comme tout autre développeur, je déteste trier les ordures, les béquilles et les correctifs "temporaires" des autres qui se souviennent en fait de la 8e édition du produit.

Ici, je vais essayer de ne pas me concentrer sur les "pires pratiques" standard lors de la programmation en PHP, telles que ne pas se soucier du choix des noms de variables et de fonctions, requêtes inutiles à la base de données en boucle, manque de validation des données utilisateur dans formulaires, en ignorant les commentaires, etc. Je vais essayer de toucher exactement les moments inhérents au développement sur Bitrix, ce qui vous permettra plus tard d'éviter les indignations et les malédictions contre vous de la part du programmeur qui devait accompagner votre code. Et oui, souvent vous deviendrez vous-même ce programmeur dans un an ou plus, lorsque vous aurez complètement oublié pourquoi vous avez inséré telle ou telle béquille ici.

"Écrivez le code comme s'il était accompagné d'un psychopathe violent qui sait où vous habitez." © John F. Woods

Premièrement, et le plus, à mon avis, le plus important - pour l'amour du ciel, utiliser le dossier local. Ceci est tout simplement vital lors de l'utilisation du système de contrôle de version - tout ce dont vous avez besoin est d'ajouter le dossier /bitrix/ aux exclusions. Tout. De plus, presque tout le développement est effectué uniquement dans celui-ci. Cela simplifie grandement la recherche ultérieure des fichiers et composants nécessaires, aide à ne pas obstruer le référentiel avec des fichiers inutiles et, en général, donne à l'arborescence du projet un aspect plus soigné et «humain».

Ne modifiez pas le noyau. Même si vous êtes sûr qu'il ne sera pas mis à jour. Même si c'est plus rapide. Même si vous êtes paresseux. Oubliez cette pensée, comme un mauvais rêve. Si vous avez besoin de changer la logique d'un composant standard, déplacez-le vers un nouvel espace de noms /local/components/modify/ et travaillez avec. Il en va de même pour les modules, les gadgets et les activités de processus métier.

Ne pas polluer le fichier init.php. Combinez des fonctions pour travailler avec un module ou une fonctionnalité spécifique dans une classe, écrivez toute cette classe dans un fichier séparé, et dans init.php incluez simplement ces fichiers et écrivez des gestionnaires d'événements. J'ai vu des fichiers init.php de 500 Ko chacun, où les fonctions, les définitions constantes, les classes et l'initialisation des gestionnaires étaient mélangées dans un désordre. Bien sûr, quand j'ai eu à m'occuper de ces dossiers, j'ai maudit mes prédécesseurs.

Le paragraphe suivant ne s'applique pas au cas de développement de solutions toutes faites pour la Marketplace, lorsque l'objectif est de rendre la fonctionnalité la plus personnalisable de la partie publique pour l'utilisateur final. Si vous travaillez sur un projet spécifique, pour un TOR spécifique - vous ne devriez pas essayer de créer un modèle unifié pour un composant pour toutes les occasions. Personnellement, j'adhère à la philosophie - il vaut mieux avoir plusieurs modèles simples utilisés à des fins différentes qu'un modèle universel, mais dans lequel le diable lui-même se cassera la jambe plus tard. Bien sûr, dans chaque cas spécifique, vous devez vous baser sur ce qui est - les termes de référence, les options de mise en œuvre, etc., mais vous ne devez toujours pas oublier le rasoir d'Occam. À titre d'exemple, je donnerai un projet d'une société de leasing que j'ai édité. Le projet lui-même, bien sûr, a été terriblement mis en œuvre, la véritable horreur était dans les pages de la section catalogue de services. Chacune des cinq sections avait sa propre disposition, qui différait à la fois par la position des blocs sur la page et, en principe, par la présence de certains d'entre eux. Et pour les cinq pages, un modèle a été utilisé avec un tas d'appels de composants if-else, dupliquant, connectant des styles et des scripts, qui, de plus, étaient périodiquement en conflit les uns avec les autres. En conséquence - un énorme fichier, dans lequel comprendre "sans un demi-litre" était comme la mort. Cependant, semble-t-il, qu'est-ce qui vous a empêché de créer 5 modèles différents et de ne pas créer de difficultés à l'improviste ?

Utiliser l'API. Ne réinventez pas la roue là où elle n'est pas nécessaire. Utilisez la documentation - l'ensemble du produit est assez bien décrit, ainsi que chaque fonction peut être consultée en détail sur bxapi.ru.

Évitez les requêtes directes dans la base de données. Ceci est un cas particulier du point précédent - utilisez l'API. Les requêtes grossières et non sécurisées peuvent entraîner la corruption, la perte ou même la compromission des données.

Ne pas utiliser de composants CNC à partir de la racine du site. Les conséquences sont généralement assez fâcheuses, puisque la CNC utilise un fichier de gestionnaire d'adresses, essayer de l'utiliser depuis la racine vous casse facilement l'adressage d'autres composants, ainsi que 404 pages. Cela ne changera rien si vos articles sont adressés par rapport au dossier /articles/ et les produits par rapport au /catalog/.

Incluez css et js à l'aide de l'API. Jusqu'à présent, partout où je rencontrais la connexion de scripts et de styles à l'aide de balises html. Utilisez l'objet de classe \Bitrix\Main\Page\Asset et les fonctions addJs() et addCss(). Cela vous permettra de fusionner des fichiers et, plus tard, de les mettre en cache en un clic de la case à cocher dans les paramètres du module principal

Et enfin, l'erreur ne concerne pas seulement Bitrix, mais trop souvent j'ai commencé à rencontrer des problèmes qui y sont associés. Vérifier le tableau vide avec des exemples de résultats. Par exemple, la dernière fois que j'ai rencontré ce problème, c'était lorsque je travaillais avec une boutique en ligne. Réclamation : les pages prennent parfois 16 secondes à se charger. Avec quoi il est connecté - ce n'est pas clair. Par essais et erreurs, j'ai découvert que les pages se chargent indécemment pendant longtemps uniquement lorsque le panier est vide. Il parait pourquoi ? Il s'est avéré qu'en survolant le panier, une fenêtre contextuelle est apparue dans laquelle des images du produit mis dans le panier étaient affichées. Alors, qu'a fait le développeur précédent ? J'ai pris le résultat du travail du composant "petit panier" et dans le fichier result_modifier.php j'ai fait un appel à GetList() de marchandises pour sélectionner les images avec un filtre parmi le tableau des ID produits, puis parmi les résultats de la sélection au tableau du produit correspondant ajouté le src de l'image. En conséquence, lorsqu'il n'y avait pas de marchandises dans le panier, le filtre se vidait et le catalogue ENTIER des marchandises tombait dans la sélection. Eh bien, alors le cycle pour chacun et ... nous avons ce que nous avons. Il est clair qu'au stade du développement, avec 15 produits de test, cela était imperceptible et des problèmes se posaient déjà dans des conditions de combat. Cependant, il semblerait que cela valait la peine de cocher vide ($arResult["ITEMS"]) ...

Ceci conclut mon top personnel des « pires pratiques » concernant le développement de Bitrix. Si au moins quelqu'un cette information aide à éviter les erreurs à l'avenir et à améliorer son style de développement, alors ce n'était pas en vain.