1c sunucuda hata ayıklamayı etkinleştirin. Sunucu prosedürlerinde hata ayıklama (1Cv82)

Bir 1C geliştiricisinin görevi yalnızca kod yazmak değil, aynı zamanda hataları izlemek ve düzeltmek, optimal bir komut yürütme algoritması oluşturmak ve iş hızını, yani hata ayıklamayı optimize etmektir. Sunucu prosedürlerinin yerleşik hata ayıklayıcısının işlevselliğini kullanmadan bunu yapmak zordur.

Başlangıçta, 1C sunucularında hata ayıklama modu devre dışı bırakıldı, bu nedenle geliştiricinin kodu kapsamlı bir şekilde kontrol edebilmek için ayarlarda basit değişiklikler yapması gerekecek.

1C platformu sürüm 8.2 ve üzeri için sunucuda hata ayıklama modunu etkinleştirme

Hata ayıklamayı etkinleştirme algoritması oldukça basittir. İşletim sistemi mimarisi ve 1C yönetimi hakkında derinlemesine bilgi sahibi olmayı gerektirmez. Ancak yine de çok dikkatli olmalısınız çünkü hata ayıklama işi doğrudan sunucuda ve yönetici haklarıyla gerçekleştirilir. Bu nedenle, kapsamlı bilgiye sahip değilseniz, doğaçlama olmadan eylem algoritmasını kesinlikle takip edin:

  • 1C:Enterprise Server Agent hizmetini Sunucu Yöneticisi aracılığıyla durdurun. Kurulum bir üretim sunucusunda gerçekleşiyorsa, veritabanında 1C kullanıcılarının bulunmamasına önceden dikkat etmelisiniz;
  • “Başlat” - “Çalıştır” veya “Kazan” + “R” klavye kısayoluna tıklayarak sistem kayıt defteri düzenleyicisini başlatın. Açılan pencerede “regedit” satırını girin;
  • Kayıt defterinde öğeyi bulmanız gerekir;

  • Parametreler arasında “ImagePath”i bulun ve mevcut değerin sonuna boşluk bırakarak “-debug” ekleyerek değiştirin;
  • Sunucu Yöneticisi aracılığıyla durdurulan hizmeti başlatın - “1C:Enterprise Server Agent”.

1C sürüm 8.1 için sunucuda hata ayıklama modunu etkinleştirme

Platform 8.1'de hata ayıklama modunu etkinleştirmeniz gerekiyorsa, eylem algoritması neredeyse hiç değişmeden kalır. Tek değişiklik "ImagePath" yol parametresinin konumudur. 8.1 versiyonunda bölümünde yer almaktadır.

1C geliştiricileri, kodun hatalarının ayıklanması gereken test sunucuları için yalnızca hata ayıklama modunun etkinleştirilmesini önerir. Bu önerinin nedeni, sunucuda hata ayıklama etkinleştirildiğinde ortaya çıkan performans etkisidir. Çok sayıda kullanıcınız varsa veya sunucu gücü arzu edilenin çok altında kalıyorsa, hata ayıklamanın olumsuz sonuçlara yol açmaması için bu tavsiyeyi dikkatle uygulayın.

8.3.7.1759 sürümünde uygulandı.

Hata ayıklama mekanizmasını önemli ölçüde yeniden tasarladık. Bunun birkaç nedeni vardı. Öncelikle size bugün mevcut olan her uygulamada hata ayıklama yeteneği vermek istedik. İkinci olarak, önceki hata ayıklayıcı mimarisi, mevcut trendlere ayak uydurmak ve gelecekteki gelişmelere uyum sağlamak için değişiklikler gerektiriyordu. Üçüncüsü, yalnızca 1C:Enterprise yapılandırıcısının değil aynı zamanda .

Ana avantajlar

Yaptığımız değişikliklerin kapsamını hayal edebilmeniz için yeni mekanizmanın temel avantajlarını kısaca sıralayacağız.

HTTP Hata Ayıklama

Önceki hata ayıklama mekanizması, 1C:Enterprise yapılandırıcısında uygulanan hata ayıklayıcının, hata ayıklama öğeleriyle (istemci ve sunucu uygulamaları) doğrudan etkileşime girmesi gerçeğine dayanıyordu. Bu etkileşim TCP/IP protokolü kullanılarak gerçekleştirildi.

Ancak 1C:Enterprise uygulamalarının internette yayınlanması ve özellikle mobil uygulamaların ortaya çıkmasıyla birlikte bu yaklaşım bir sınırlama ve rahatsızlık kaynağı haline geldi. TCP/IP protokolü, hata ayıklayıcının hata ayıklanan öğelere "ulaşmasına" her zaman izin vermez. Sonuçta, hata ayıklayıcının çalıştığı yerel ağın dışında bulunabilirler.

Bu nedenle, yeni mekanizmada, aktarım protokolü olarak daha "her yerde bulunan" HTTP protokolünü seçtik; bu arada, istemci uygulamaları tarafından bilgi veritabanlarına bağlanmak için de kullanılıyor.

Modern hata ayıklama mimarisi

Önceki hata ayıklama mekanizmasının bir özelliği, yapılandırıcıyı kullanarak bilgi tabanına bağlanma ihtiyacıydı. Sonuç olarak, geliştirici hata ayıklamanın tüm yönetim işlevlerine tam erişimi vardı.

Yeni hata ayıklama mekanizması artık hata ayıklanan bilgi tabanına bağlantı gerektirmiyor. Hata ayıklayıcının artık ihtiyaç duyduğu en önemli şey, istemciler için çalışan yapılandırmanın aynısıdır. Bunu elde etmek için hata ayıklaması yapılan bilgi tabanına bağlanmanıza gerek yoktur. Örneğin bir dosyadan yükleyebilirsiniz.

Mobil uygulamalarda hata ayıklama

HTTP protokolünün kullanılması sayesinde mobil platform tarafından yürütülen uygulamalarda hata ayıklamak mümkün hale geldi. Üstelik herhangi bir bağlamda hata ayıklayabilirsiniz: istemci, sunucu ve arka plan işleri.

Artık hata ayıklama sırasında yazılabilir değişkenlerin değerlerini değiştirebilirsiniz. Yerel değişkenleri hızlı bir şekilde görüntülemek ve değiştirmek için ayrı bir pencere uyguladık. Ve hata ayıklayıcı tarafından görüntülenen ifadelerin hesaplanması artık eşzamansız modda gerçekleştiriliyor.

Geliştirme Araçlarında Hata Ayıklama

Yeni bir hata ayıklama mekanizması oluştururken, onunla etkileşime geçmek için yeni, evrensel bir yazılım arayüzü uyguladık. Bu arayüz 1C:Enterprise yapılandırıcısı tarafından kullanılmaktadır ve aynı arayüz artık yeni geliştirme ortamı tarafından da kullanılmaktadır. Böylece, tüm hata ayıklama yetenekleri artık .

Süreç mimarisinde hata ayıklama

Yeni hata ayıklama mimarisi şuna benzer:

Hata ayıklama bir hata ayıklayıcıyı, hata ayıklama öğelerini ve yeni bir öğeyi içerir - hata ayıklama sunucusu.

Hata ayıklayıcı ve hata ayıklama öğeleri arasında doğrudan bilgi aktarımı yoktur. Tüm etkileşim hata ayıklama sunucusu aracılığıyla düzenlenir. Bu mekanizmanın ana unsurudur. Hata ayıklama sunucusu, hata ayıklayıcı ve hata ayıklama öğelerinin birbirlerine bilgi aktardığı bir mesaj kuyruğuna sahiptir.

Hem hata ayıklayıcının kendisi hem de hata ayıklama öğeleri, hata ayıklama sunucusuyla HTTP aracılığıyla iletişim kurar. Artık bu hata ayıklama öğelerinin nerede olduğu önemli değil.

Hata ayıklama sunucusuyla etkileşim, hata ayıklayıcı ve hata ayıklama öğeleri tarafından başlatılır. Bu amaçla ek bağlantılar düzenlenmektedir. Ana amaçları, hata ayıklama sunucusunda kendileri için bilgilerin görünüp görünmediğini bulmaktır. Ve eğer görünürse, bu bilgiyi alın.

Dolayısıyla etkileşim tek taraflıdır. Bilgiler sürekli olarak hata ayıklama sunucusundan hata ayıklayıcıya ve hata ayıklama nesnelerine aktarılır.

Bilgi tabanlarının tanımlanması

Önceki mekanizmada bilgi tabanlarını tanımlamak için bir bağlantı dizesi kullanılıyordu. Bu çözüm bazı durumlarda hata ayıklama öğelerinin ve yapılandırıcının eşleştirilmesinde zorluklara neden oldu. Çünkü öncelikle büyük/küçük harfe duyarlıydı ve ikinci olarak bazı bağlamlarda hata ayıklama yapılırken platform bağlantı dizesini otomatik olarak oluşturdu. Ve bilgi tabanını yapılandırıcıya bağlarken belirttiğiniz ile her zaman örtüşmüyordu. Bu tür durumların bulunması ve düzeltilmesi, hata ayıklama sürecini karmaşıklaştırıyordu.

Yeni mekanizmada bağlantı dizesinden kurtulduk. Şimdi kullanıyoruz bilgi tabanı tanımlayıcısı. Dosya bilgi tabanında böyle bir tanımlayıcı, istemci bağlantısı ilk kez kurulduğunda oluşturulur. Sunucu bilgi tabanında, kümedeki bilgi tabanı kayıt tanımlayıcısı böyle bir tanımlayıcı olarak kullanılır.

Burada güzel bir ek nokta, eski hata ayıklama mekanizmasını şimdilik platformda tutmamızdır (gelecekte hariç tutulabilir). Ve dilerseniz veya gerekiyorsa kullanabilirsiniz. Böylece eski mekanizmayı değiştirdik ve artık bağlantı dizesini değil, bilgi tabanı tanımlayıcısını da kullanıyor.

Tipik Hata Ayıklama Senaryoları

Bir uygulama geliştiricisinin bakış açısından tipik hata ayıklama senaryoları değişmedi. Tek önemli fark, yeni hata ayıklama mekanizmasının etkinleştirilmesinin gerekli olmasıdır. Çünkü varsayılan olarak devre dışıdır.

Ne olursa olsun, hata ayıklamayı çalıştırdığınızda şimdi ne olacağına aşina olmanız mantıklı olacaktır. Çünkü standart dışı bazı çalışma senaryolarında işinize yarayabilir.

Dosya seçeneği

Dosya sürümünde hata ayıklamaya başlamadan önce, yapılandırıcı ayarlarında yeni hata ayıklama mekanizmasını kullanmak istediğinizi belirtmeniz gerekir - “ HTTP Hata Ayıklama».

Bu durumda yapılandırıcı sizden otomatik olarak yerel bir hata ayıklama sunucusu kullanmanızı isteyecektir. Bunu kabul etmeniz ve yapılandırıcıyı yeniden başlatmanız gerekir.

Ayarladığınız hata ayıklama yöntemi, yapılandırıcı oturumları arasında kaydedilir, ancak bilgi tabanları bağlamında saklanır. Bu nedenle, başka bir bilgi tabanı için onu tekrar etkinleştirmeniz gerekecektir.

Artık yapılandırıcıyı başlattığınızda veya yeniden başlattığınızda platform otomatik olarak hata ayıklama sunucusunu başlatacaktır. Bu ayrı bir dbgs.exe uygulamasıdır. Görev yöneticisinde görebilirsiniz.

OwnerPID parametresi, bu hata ayıklama sunucusunun sahibi olan uygulamanın tanımlayıcısını belirtir. Bu durumda bu, 1C:Enterprise yapılandırıcısıdır.

Şimdi, yapılandırıcıdan bir 1C:Enterprise hata ayıklama oturumu başlatırsanız, otomatik olarak hata ayıklama sunucusuna bağlanacak ve yapılandırıcıda bağlı hata ayıklama öğelerini göreceksiniz.

1C:Enterprise oturumu hata ayıklama olmadan başlatıldıysa, daha önce olduğu gibi hata ayıklayıcıya bağlayabilirsiniz. Ancak şimdi hata ayıklama sunucusu adresini belirtmeniz gerekiyor:

Bu adresi hata ayıklama öğeleri ayarlarından bulabilirsiniz:

Aynı anda birden fazla dosya veritabanıyla çalışmanın olağandışı bir noktası vardır. Dosya sürümünde, http hata ayıklaması etkin olan her yapılandırıcı, hata ayıklama sunucusunun kendi kopyasını farklı bağlantı noktalarında başlatır:

Bu nedenle, aynı anda birden fazla yapılandırıcınız açıksa, istemci uygulamasını hata ayıklayıcıya bağlamak için doğru olanı seçmeniz gerekir.

İstemci-sunucu seçeneği

İstemci-sunucu sürümünde hata ayıklamaya başlamadan önce, daha önce olduğu gibi 1C:Enterprise sunucusunu hata ayıklama modunda başlatmanız, ancak hata ayıklama için yeni HTTP mekanizmasının kullanılacağını belirtmeniz gerekir. Örneğin şöyle:

ragent.exe -hata ayıklama -http

Sunucu bu şekilde başlatıldığında hata ayıklama sunucusu da başlatılacaktır.

OwnerPID parametresi 1C:Enterprise küme yöneticisinin tanımlayıcısını gösterecektir.

Artık yapılandırıcı ayarlarında, dosya veritabanında olduğu gibi, yeni hata ayıklama mekanizmasını kullanmak istediğinizi belirtmeniz gerekiyor - " HTTP Hata Ayıklama».

Bu durumda yapılandırıcı sizden otomatik olarak yerel sunucuyu değil küme hata ayıklama sunucusunu kullanmanızı isteyecektir. Bunu kabul etmeniz ve yapılandırıcıyı yeniden başlatmanız gerekir.

Hata Ayıklama Öğelerini Bağlama

Yapılandırıcıdan hata ayıklama oturumlarını başlattığınızda, uygulamalar hata ayıklama öğelerini (hem istemci hem de sunucu) otomatik olarak hata ayıklama sunucusuna bağlar.

Aynı zamanda, daha önce olduğu gibi, nasıl başlatıldıklarına bakılmaksızın, yapılandırıcıyı hata ayıklama öğelerini otomatik olarak bağlayacak şekilde yapılandırma fırsatına sahipsiniz. Artık bu olanaklar çok daha zengin hale geldi.

İlk olarak, platform artık size aralarından seçim yapabileceğiniz tüm olası hata ayıklama öğelerini sunuyor.

İkincisi, daha incelikli bir düzenleme yöntemi daha ortaya çıktı. Bu, önceden oluşturulmuş seçimlerin kullanılmasıdır.

Bu tür seçimleri hem hata ayıklama öğelerini bağlarken hem de mevcut hata ayıklama öğelerini görüntülemek için kullanabilirsiniz.

Seçimde, hata ayıklama öğelerinin yanı sıra, oturumları ilginizi çeken belirli kullanıcıları belirtebilir ve ayrıca veri ayırma kullanılıyorsa, bilgi tabanının hata ayıklanacak alanını belirtebilirsiniz.

Değişkenleri, nesne özelliklerini değiştirme ve ifadeleri eşzamansız olarak değerlendirme

Yeni hata ayıklama mekanizması, hata ayıklama sırasında değişken değerlerini değiştirmenize olanak tanır. Önceki mekanizmada böyle bir ihtimal yoktu.

En yaygın görev gibi görünen yerel değişkenlerin rahat görüntülenmesi ve değiştirilmesi için “ Yerel değişkenler».

Dıştan bakıldığında alıştığınız “Scoreboard”a çok benziyor. Ancak öncelikle bu pencere zaten tüm yerel değişkenlerle otomatik olarak doldurulmuştur ve ikinci olarak artık değişkenlerin değerlerini değiştirebilirsiniz.

İlkel türlerin değerlerini doğrudan hücreden değiştirebilirsiniz " Anlam»:

Diğer değerleri değiştirmek için ifade giriş penceresini kullanabilirsiniz:

Güzel bir bonus, bağlamsal araç ipucunun bu pencerede tamamen işlevsel olmasıdır.

Tamamen aynı şekilde, herhangi bir (yalnızca yerel değil) değişkenin ve yazılabilir özelliğin değerlerini değiştirebilirsiniz. İfade hesaplama penceresinde (Shift+F9 komutuyla çağrılır), değişkenlerin değerlerini hem “Değer” hücresinde hem de ayrı bir iletişim kutusu kullanarak değiştirebilirsiniz.

Bu arada, ifade hesaplamasının kendisi artık eşzamansız olarak gerçekleştiriliyor. Bu, yapılandırıcının hata ayıklama öğesinin hesaplanmasını emrettiği anlamına gelir. Ve bir süredir bu hesaplamanın sunucuda yapılması bekleniyor. Hesaplama tamamlanırsa sonuçlar hemen yapılandırıcıya gönderilir. Hesaplama uzun süre yapılırsa, bu hesaplamaların sonuçları daha sonra eşzamansız olarak konfigüratöre ulaşır. Bu yaklaşım, yapılandırıcıda uzun hesaplamalar beklememenizi ve çalışmanıza devam etmenizi sağlar.

Bu makalede, Windows ve Ubuntu işletim sistemlerinde 1C sunucusu 8.1, 8.2 ve 8.3'te hata ayıklamanın nasıl etkinleştirileceği anlatılmaktadır.

Ayrıca, bu makalenin 1C'de hata ayıklamayla ilgili küçük bir makale serisinin parçası olduğunu da belirtmek isterim:

  • 1C sunucusunda hata ayıklama nasıl etkinleştirilir

Windows'ta 1C sunucusunda hata ayıklamayı etkinleştirin

Regedit komutunu çalıştırarak (Win+R veya Başlat->Çalıştır'ı kullanarak) kayıt defteri düzenleyicisini başlatın.

Serinin bir sonraki makalesinde HTTP hata ayıklaması ve hata ayıklama sunucusu hakkında daha fazla bilgi edinebilirsiniz.

Ubuntu'daki 1C sunucusunda hata ayıklamayı etkinleştirin

İlk önce sunucuyu kuruyoruz:

sudo hizmeti srv1cv83 durağı

Bundan sonra /etc/init.d/srv1cv83 dosyasını süper kullanıcı olarak açın ve içindeki satırı bulun:

Ve onu bu forma getiriyoruz:

Daha sonra sunucuyu tekrar başlatıyoruz:

sudo hizmeti srv1cv83 başlat

İstemci makinesindeki yapılandırıcıda, “Ayarlar” -> “1C:Enterprise'ı Başlat” -> “Gelişmiş” seçeneğine gidin ve iki öğeyi etkinleştirin:

  • "Hata ayıklama etkinleştirme modunu ayarla"
  • "Başlangıçta hata ayıklamayı başlat"

Ubuntu 16.04/18.04'e 1C sunucusunun nasıl kurulacağını okuyabilirsiniz.

Hepsi bu, umarım bu makale sizin için yararlı olmuştur. Ayrıca 1C'de hata ayıklama ile ilgili serideki diğer makaleleri de hatırlatmak isterim; bunlara bağlantılar bu makalenin başında bulunabilir.

1C sunucusunda hata ayıklamaya nasıl başlanır?

Varsayılan olarak, 1C:Enterprise istemci-sunucu mimarisini kullanırken, 1C kod hata ayıklama modu yalnızca istemci tarafında çalışır. Sunucu prosedürleri ve işlevleri istemci makine tarafından görülemez.

1C sunucusunda hata ayıklamanın kullanımını etkinleştirmek için aşağıdaki adımları uygulamanız gerekir:

1. Hizmet yöneticisinde (sürüm 8.3 için) “1C:Enterprise Server Agent 8.3” hizmetini bulun ve durdurun.

2. Sistem kayıt defteri düzenleyicisini açın. Komut satırını veya Başlat - Çalıştır... menü aracını ve komutunu kullanabilirsiniz. regedit.

3. Kayıt defterinde şubeyi bulun:

  • 1C 8.1 sürümü için
  • 1C 8.2 sürümü için
  • 1C 8.3 sürümü için

4. ImagePath özelliğini değiştirin, satırın sonuna “-debug” direktifini ekleyin. Aşağıdaki özellik satırını alacaksınız: “C:\Program Files (x86)\1cv8\8.3.6.2152\bin\ragent.exe” -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d “C: \Program Dosyaları (x86)\1cv8\srvinfo" –hata ayıklama

Bundan sonra 1C sunucu kodu bir hata ayıklayıcıyla güvenli bir şekilde kontrol edilebilir ve gerektiğinde kesme noktaları ayarlanabilir.

18.10.2016

1C sunucusunda hata ayıklama (8.2, 8.3...)

1C veritabanı istemci-sunucu sürümünde çalışıyorsa, sunucu tarafındaki kod hata ayıklama modu devre dışı bırakılır. Dolayısıyla bir fonksiyon veya prosedür yürütülürken ne olacağını adım adım görmek mümkün olmayacaktır. Sunucu tarafı hata ayıklamayı etkinleştirmek için birkaç basit adımı uygulamanız gerekir.

1C:Enterprise sunucusu 8.2, 8.3'te hata ayıklamayı etkinleştirin

Yapmanız gereken ilk şey 1C:Enterprise sunucu hizmetini durdurmaktır. "Başlat - Çalıştır"a (veya "Windows + R" klavye kısayoluna) gidin, "services.msc" yazın (elbette Windows hizmetleri yönetimini Yöneticiden açmanız gerekir)

Durdurduktan sonra, Windows kayıt defteri düzenleyicisini açın ("Başlat - Çalıştır" (veya "Windows + R" klavye kısayolu) ve "regedit" yazın) ve adı taşıyan dalı bulun "" veya "" platform sürümüne bağlı olarak


"ImagePath" adlı kayıt defteri anahtarıyla ilgileniyoruz. Anahtar değerinin sonuna "-debug" ekleyin. Bu, 1C sunucu tarafındaki hata ayıklama modunun etkinleştirildiği anlamına gelir.
Şuydu: "C:\Program Files\1cv8\8.3.6.2530\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Şuna dönüştü: "C:\Program Files\1cv8\8.3.6.2530\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -aralık 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug


1C hizmetini kaydedin ve başlatın. Her şey hazır! Mutlu hata ayıklama!