Uzantılar aracılığıyla desteği kaldırmadan tipik 1C'yi özelleştirme
1C'de özelleştirme yapmak ve yapılandırmayı destekten çıkarmamak en kolay yapılandırma uzantısı ile yapılır: formlar, komutlar ve kodu "tipik olanın üzerine" eklersiniz ve tedarikçinin güncellemeleri her zamanki gibi kurulur.
İçindekiler
Uzantı neden desteği korur
Günlük dilde "destekten çıkarma", tipik nesneleri doğrudan değiştirmeye başlamak demektir; bu da her güncellemede çakışmalara ve manuel birleştirmelere yol açar. Uzantı değişiklikleri ayrı tutar: tipik yapılandırma "olduğu gibi" güncellenir ve sizin katmanınız güncellemeden sonra bağlanır.
Uzantı ne zaman uygundur, ne zaman başka yol daha iyidir
Şunlar gerektiğinde uzantı en iyi seçenektir:
- forma bir düğme/komut eklemek ve eylemi işlemek;
- arayüze baskı formu, rapor veya işleme entegre etmek;
- genişletme noktaları aracılığıyla kaydetme/doldurma/doğrulama işlemlerini dikkatlice tamamlamak;
- tipik modülleri değiştirmeden olaylara abonelikler ve iş kuralları eklemek.
Ne zaman başka bir araç daha iyidir:
- karmaşık mantık olmadan "kullanıcı alanları" gerekiyorsa → genellikle ek özellikler/bilgiler daha kullanışlıdır (yapılandırmanızda varsa);
- "çalıştır ve dışa aktar" tarzında tek seferlik bir rapor gerekiyorsa → harici rapor/işleme daha basittir;
- çekirdekte derin bir yeniden düzenleme planlanıyorsa (çok sayıda tipik algoritma değişikliği, anahtar nesnelerde değişiklik) → uzantı mümkündür ancak bakım riskleri ve maliyeti hızla artar.
Adım adım: uzantı oluşturma ve bağlama (.cfe)
-
Platformu kontrol edin
Uzantılar 1C:Enterprise 8.3 üzerinde çalışır (pratikte güncel 8.3.x sürümünü kullanmak daha iyidir). -
Yapılandırıcı'da uzantı oluşturun
Veritabanını Yapılandırıcı'da açın → Yapılandırma → Yapılandırma Uzantıları → Ekle.
Hemen anlaşılır bir ad verin (örneğin,Ozellestirme_IndirimOnay) ve değişikliklerin sürümünü/açıklamasını tutun. -
Değişiklikleri mümkün olan en küçük şekilde ekleyin
Genellikle öncelik şöyledir:
- önce olay abonelikleri, ek komutlar,
&Önce/&Sonra; - ardından küçük yöntemlerin noktasal olarak geçersiz kılınması;
- en son olarak, başka türlü mümkün olmadığında yalnızca mantığın tam değiştirilmesi (
&Yerine).
- Uzantıyı çalışan veritabanına bağlayın
Tipik çözümlerde uzantı genellikle 1C:Enterprise modundan (yönetim bölümü, "Uzantılar" öğesi) bağlanır: Dosyadan ekle →.cfeseçin → oturum(lar)ı yeniden başlatın.
"Güvenli mod" seçeneği, uzantının potansiyel olarak tehlikeli eylemlerini (dosya/dış kaynaklarla çalışma) kısıtlar. Bunu yalnızca neden gerekli olduğunu tam olarak anladığınızda devre dışı bırakın.
Güncellemelerin bozmaması için özelleştirmeler nasıl yazılır
-
Tipik kodun büyük parçalarını kopyalamayın
Uzantıda tipik bir yöntemin kopyası hızla eskir: tedarikçi tipik algoritmayı düzeltir, sizin "klonunuz" eski kalır. -
Ana yaklaşım olarak
&Önce/&Sonrakullanın
Genellikle daha dayanıklıdır: tipik mantıktan önce verileri tamamlayın veya sonrasında sonucu işleyin, ana senaryoyu bozmadan.
&Yerineyalnızca küçük, kararlı yöntemler için ve sorumluluğu net olduğunda uygulayın. -
Müdahale alanını daraltın
Büyük bir yordamı "her şey için" değiştirmek yerine, bir yeni komut ve küçük bir işleyici daha iyidir. -
Devre dışı bırakmak için bir "anahtar" oluşturun
OzellestirmeyiAcgibi bir sabit/işlevsel seçenek tanımlayın ve tartışmalı yerleri kontrolle sarın; böylece özelleştirmeyi acil durum olmadan hızlıca kapatabilirsiniz. -
Güncellemeden önce ve sonra test edin
Minimum: senaryonuz + anahtar belgelerin kaydı/kaydedilmesi + kullanıcı haklarının kontrolü (yönetici olmayan).
Sık yapılan hatalar
- Uzantı geliştiricide çalışıyor ama kullanıcılarda çalışmıyor — uzantıda roller/haklar ayarlanmamış veya komut doğru arayüze çıkarılmamış.
- Güncellemeden sonra uzantı form/nnesne ile çakışıyor — kararsız bir nesne ödünç alındı (formlar sık değişir). Çözüm: belirli formlara daha az bağımlı olun, komutları/olayları daha sık kullanın.
- Her şey
&Yerineile yapılmış — güncellenebilirlik düşer, bakım iş yükü artar. Mümkün olduğunda&Önce/&Sonrakullanmaya geçin. - "Her ihtimale karşı" güvenli mod devre dışı bırakıldı — gereksiz risk. Varsayılan olarak açık tutun.
SSS
Birden fazla uzantı bağlanabilir mi?
Evet, ancak kurallar konusunda anlaşın: adlandırma, sorumluluk alanları, kimin neyi geçersiz kıldığı. Genellikle tek büyük bir uzantıdan ziyade, görevlere göre birkaç küçük uzantı daha kullanışlıdır.
Uzantı nasıl güncellenir?
Yeni .cfe sürümünü hazırlayın → veritabanında değiştirin/bağlayın → oturumları yeniden başlatın → anahtar testleri çalıştırın.
Uzantı yapılandırmayı gerçekten destekten çıkarmaz mı?
Tipik yapılandırmayı doğrudan değiştirmiyor ve uzantı üzerinden çalışıyorsanız, tipik yapılandırma destekte kalır ve normal şekilde güncellenir. Sorunlar genellikle uzantı gerçeğinden değil, aşırı "sert" geçersiz kılmalar ve tipik kodun kopyalanmasından kaynaklanır.