Menü
Bedava
kayıt
ev  /  programlar/ Dizinin önceden tanımlanmış bir öğesini kaldırma 8.3. Önceden tanımlanmış öğeleri ayarlama

Önceden tanımlanmış bir katalog öğesini kaldırma 8.3. Önceden tanımlanmış öğeleri ayarlama

Basit kullanımönceden tanımlanmış değerlerle çalışmak için.

IB öğelerini, konfigürasyonda önceden tanımlanmış öğelerle eşleştirmenize olanak tanır.

Genel konfigürasyonda, yinelenen (önceden tanımlanmış bir öğeye bağlı birkaç IB öğesi - bir hata) ve eksik öğeler (IB öğeleriyle ilişkili olmayan önceden tanımlanmış öğeler - bir hata) olup olmadığını kontrol etmenizi sağlar. Çok öğeler, değişimler veya arızalar sırasında ortaya çıkabilir ve konfigürasyonda hatalara neden olabilir.

Sadece mevcut değerleri görüntüleyebilir, gerekli değişiklikleri yapabilirsiniz.

Çalıştırma prosedürü:

1. işlemeye başlıyoruz.

2. Türü seçiyoruz (referans defteri, hesap planı, PVC, PVR).

3. Seçilen türün dizinini kendimiz seçiyoruz.

4. IB'de bulunan ve konfigürasyonda açıklanan tüm önceden tanımlanmış öğeler, işlemenin tablo bölümünde görünür.

Veritabanında önceden tanımlanmış bir özelliğe bağlı birkaç öğe varsa veya konfigürasyonda açıklanan öğelerden bazılarına IB öğeleri atanmamışsa, bir referans kitabı seçtiğinizde sistem sizi bu konuda bilgilendirecektir. Yinelenen ve eksik öğeler listenin en üstünde görünür ve turuncu renkle vurgulanır.

5. Gerekli önceden tanımlanmış öğeler için yeni değerler belirledik.

Bu durumda, önceden tanımlanmış bir öğenin konfigürasyondan kaybolduğu satırlar kırmızı ile işaretlenir. Önceden tanımlanmış bir öğenin değiştiği mavi çizgiler, önceden tanımlanmış bir öğenin göründüğü yeşil çizgiler.
Çok sayıda kopya ile, gereksiz tüm satırları fare ile seçmek ve seçilenlerin tümü için "Unmatch" düğmesiyle geri alma bağlantısını belirtmek uygundur (sürüm 1.3.1'den beri)

6. "Elemanları yeniden ata" düğmesine basarak yeniden atamayı gerçekleştiriyoruz.

Yinelenenleri kontrol etme(hata "Önceden tanımlanmış öğe benzersiz değil"):

"Çiftlikleri kontrol et" düğmesini tıkladığınızda, işlem tüm dizinleri, hesap planlarını, PVC ve PVR'yi kontrol edecek ve yinelenen öğelerin sayısını gösteren yinelenen öğeler içeren tabloların bir listesini görüntüleyecektir.

Bundan sonra, hataların bulunduğu nesneleri ayrı ayrı kontrol etmeniz gerekir.

cevapsız kontrol(hata "Verilerde önceden tanımlanmış bir öğe eksik"):

"Kayıpları kontrol et" düğmesine tıkladığınızda, işlem tüm referans defterlerini, hesap planlarını, PVC ve PVR'yi kontrol edecek ve IB verileriyle ilişkili olmayan önceden tanımlanmış öğelerin bir listesini görüntüleyecektir.

Kullanmak için platform 8.3.3 veya üstü gerekir.

Çok yönlüdür, herhangi bir konfigürasyonla kullanılabilir.

Algılama dili Afrikaans Arnavut Arapça Ermeni Azerice Bask Bengalce Beyaz Rusça Bulgarca Katalanca Çince (Basit) Çince (Trad) Hırvatça Çekçe Danimarkaca Hollandaca İngilizce Esperanto Estonyaca Filipince Fince Fransızca Galiçyaca Gürcüce Almanca Yunanca Gujarati dili Haiti Kreol İbranice Hintçe Macarca İzlandaca Endonezyaca İrlandaca İtalyanca Japonca Kannada Korece Lao Latince Letonca Litvanyalı Makedon Malay Malta Norveç Farsça Polonya Portekizce Romen Rus Sırp Slovakça Sloven İspanyolca Swahili İsveç Tamil Telugu Tay Türk Ukrayna Urdu Vietnam Gal Yidiş Afrikaans Arnavut Arapça Ermeni Azerice Bask Bengalce Beyaz Rusça Bulgar Katalanca Çince (Simp) Çince (Trad) Hırvatça Çekçe Danimarkaca Hollandaca İngilizce Esperanto Estonyaca Filipince Fince Fransızca Galiçyaca Gürcüce Almanca Yunanca Gujarati Haiti Kreol İbranice Hintçe Macar İzlandaca Endonezyaca İrlandaca İtalyanca Japonca Kannada Korece Lao Latince Letonca Litvanyaca Makedonca Malay Malta Norveç Farsça Polonya Portekizce Romen Rus Sırp Slovakça Sloven İspanyolca Svahili İsveç Tamil Telugu Tayland Türk Ukrayna Urdu Vietnam Gal Yidiş

İyi günler.

Bugün 8.3 platformunda önceden tanımlanmış öğelerle ilgili bir yenilikten bahsedeceğiz.

Tanıtım

Size hatırlatmama izin verin, daha önce pratikte, önceden tanımlanmış adını bulmak için çok sık bir referans kitap öğesine bakmak istedim. Örneğin, önceden tanımlanmış iki yüklenici oluşturdunuz ve bunlara IPSidorov ve OOOMeteor adını verdiniz. Ve onlara bir çeşit mantık diktiler.

Her şey hata ayıklandığında ve çalıştığında, görevin tersine ayarlandığı ve LLC için tek mal sahibinin mantığına ihtiyaç duyulduğu ve tek mal sahibi için LLC'nin mantığına ihtiyaç duyulduğu ortaya çıktı. “Sorun değil” diyoruz ve Enterprise Mode'da öğeleri yeniden adlandırıyoruz. Kodun içine girmek çok daha zor. Bir yıl geçer ve size yeni bir görev verilir: IP Sidorov için biraz daha mantık kurmak. Konfigüratöre girersiniz, mantığı yazarsınız, kontrol etmeye başlarsınız ve hiçbir şey işe yaramaz, çünkü IPSidorov yapılandırıcısında ve işletmede - Meteor LLC. Beyin bozuldu ve ben bu tırmığı yok etmek istiyorum. En basit ve en sezgisel olanı, önceden tanımlanmış bir öğenin adını bir liste biçiminde çıktılamaktır. İşte bir pusu, 8.2'de önceden tanımlanmış olanın adını sadece yöntemle alabilirsiniz. Ve yöntemin kendi rahatsızlığı vardır, istekte elde edilemez. Şunlar. ilk rahatsızlık, önceden tanımlanmış olanın adını dizine atıfta bulunarak almaktır.

İkinci rahatsızlık, zaten bir dizin elemanımız olduğunda ve onu önceden tanımlamamız gerektiğinde ortaya çıkar. Önceden tanımlanmış bir öğe oluşturuyoruz ve dizinde iki öğe alıyoruz. Biri önceden tanımlanmış, diğeri tüm belgelerimizin referans aldığı bir çalışma. Bağlantıları değiştirmek kesinlikle yardımcı olur, ancak veritabanı büyükse, o zaman zordur.

Şimdi davada

Birincisi, referansın artık "Ön tanımlı verileri güncelle" özelliğine sahip olmasıdır.

Bu alan bize ne veriyor? "Otomatik olarak güncelleme" olarak ayarlanmışsa, önceden tanımlanmış bir öğe ekleyerek onu hemen referansta göremeyiz. Şunlar. meta verilerin verilerle hiçbir ilgisi yoktur. Ve dizinde oluşturulmamışsa, dizin yöneticisi aracılığıyla ona adıyla atıfta bulunulması sözdizimi hatasına neden olur.

Çok ilginç, ama neden? Referansta bir öğeyi nasıl oluştururuz? Dilediğiniz gibi oluşturabilir veya mevcut bir tanesine bağlayabilirsiniz. Artık arama, "PredefinedDataName" özniteliğine sahiptir. "References.Contractors.CreateElement ()" aracılığıyla her zamanki gibi programlı bir şekilde bir katalog öğesi oluşturuyoruz ve "PredefinedDataName" özniteliğini önceden tanımlanmış öğenin adına eşit olarak dolduruyoruz. Veya eleman zaten mevcutsa, nesnesini alırız ve içindeki "ÖntanımlıVeriAdı"nı tekrar doldururuz. Her şey.

Ve son olarak biraz şurup

Bu yeni aksesuarlar sadece okuma/yazma değil, aynı zamanda isteklerde de mevcuttur. Böylece sorgularda ona şartlar koyabilir, ön tanımlı olup olmadığını belirleyebilirsiniz.

İlginiz için teşekkür ederiz.

Bence önceden tanımlanmış öğelerle programlı olarak çalışma fikri çok doğru. Çalışırken dikkate alınması gereken bazı nüanslar var.

Öncelikle, konfigürasyonda önceden tanımlanmış öğeler olduğunu ve bilgi tabanında (IB) önceden tanımlanmış öğeler olduğunu kendiniz açıkça anlamanız gerekir. Teknik olarak önceden tanımlanmış bilgi güvenliği öğeleri, "PredefinedDataName" özniteliğinin hangi önceden tanımlanmış yapılandırma öğesine karşılık geldiğini belirttiği sözlüklerin en yaygın öğeleridir. Artık sıradan unsurlardan farklı değiller. Buna göre, herhangi bir sıradan IB elemanı önceden tanımlanmış, herhangi bir önceden tanımlanmış sıradan yapılabilir. Bunu yapmak için, aksesuarlara istediğiniz değeri girin. "Öntanımlı VeriAdı".

Periyodik olarak, bu özelliğin geliştiricinin sağladığı değer olmadığı ortaya çıkıyor. Sonuç olarak, 1C'nin çalışmasında hatalar meydana gelir. Çalışmanın prensipte imkansız olduğu kritikten, algoritmaların mantığının ihlal edildiği kritik olmayana.

Koşullu olarak ayırt edilebilir üç tür hata:
1. "Verilerde önceden tanımlanmış bir öğe eksik";

3. Geçersiz göstergeönceden tanımlanmış eleman;

1. "Verilerde önceden tanımlanmış bir öğe eksik" - o IB verilerindeki konfigürasyonda açıklanan önceden tanımlanmış bir öğenin olmaması.

Bu, hata ayıklaması ve düzeltmesi en kolay hata türüdür. Basitliği, platformun bu durum hakkında yeterince doğru bir şekilde "Verilerde önceden tanımlanmış bir öğe eksik" rapor etmesi ve bunun nasıl düzeltileceği oldukça açık.

"Directories.Types of ContactInformation.EmailContactPerson" kodundaki eksik öğeye atıfta bulunulduğunda mesaj görüntüleniyor

"DEĞER (Directory.Types of ContactInformation.EmailContactPerson)" isteğindeki bir öğeye erişirken, aşağıdaki mesaj görüntülenir:

Bu hata, yapılandırmada bir öğe tanımlanmışsa, ancak öğe veritabanında onunla ilişkilendirilmemişse oluşur.

Öncelikle bu durumun her zaman yanlış olmadığını açıklığa kavuşturalım. Çoğu kullanıcı için kullanılamayacak olan bir tür program mantığında önceden tanımlanmış verileri kullanmak oldukça mümkündür. Bu durumda, konfigürasyonun tüm kullanıcıları için referans kitabını karıştırmamak için, konfigürasyonda önceden tanımlanmış öğeleri tanımlamak, ancak bunları tüm bilgi güvenliği sistemlerinde oluşturmak değil, yalnızca bu bilgi güvenliği sistemleri için oluşturmak mantıklıdır. gerekli yapılandırma mantığının kullanıldığı. Bu durumda, programcı referans kitabı için "Ön tanımlı verileri güncelleme" özelliğini belirleyebilir ve modülün işlevselliğine erişirken programlı olarak öğeler oluşturabilir. Veya kullanıcının modülün önceden tanımlanmış öğelerini sahip olduğu olağan öğelere bağımsız olarak bağlamasını sağlamak.

Ayrıca kullanılmadı otomatik oluşturma RIB modunda çalışırken önceden tanımlanmış öğeler. Çünkü yeni öğeler merkezi tabandan aktarılmalı ve farklı UID'lere sahip düğümlerde oluşturulmamalıdır.

Şunlar. bazen böyle bir öğenin varlığından ziyade eşsiz bir öğeye atıfta bulunmak bir hatadır.

Öğenin neden oluşturulmadığını analiz etmeniz gerekir. Belki de programın bazı modları yürütüldüğünde oluşturulmalıdır. Örneğin, RIB'de bir değişim gerçekleştirdikten sonra. Ya da belki de yanlışlıkla silinmiştir.

Mantık, önceden tanımlanmış öğeleri otomatik olarak değil, ayrı bir modda doldurmayı sağlıyorsa, çağrıyı kullanmadan önce " Dizinler.İletişim TürleriBilgi.EmailİletişimKişi"Bir istisnayı önlemek için, öğenin veritabanında olup olmadığını kontrol etmeniz önerilir. Öğe yoksa, kullanıcıyı bu konuda bilgilendirin ve öğeyi doldurmak için hangi modu yürütmesi gerektiğini açıklayın. Böyle bir kontrol için, veriler üzerinde bir sorgu çalıştırabilirsiniz.

İstek = Yeni İstek; Request.Text = "SEÇ | İletişim Bilgisi Çeşitleri.Link | FROM | Rehber.İletişim Bilgisi Türleri AS İletişim Bilgisi Çeşitleri | NEREDE | İletişim Bilgisi Çeşitleri. Öntanımlı Veri Adı =" " E-postaİletişimKişi"" "; ElementNoNo.VD = Request.Run().Boş();

Bu hala veritabanı verilerinde bir hataysa, o zaman IB öğesinin önceden tanımlanmış bir öğesine bağlanmak gerekir. Şunlar. Bilgi güvenliğinin hangi unsurunun ele alınması gerektiğini sisteme açıklamak gerekir. program koduüzerinde isim... Teknik olarak, bağlama sadece bir özellikte önceden tanımlanmış bir öğenin adını belirtmektir "ÖntanımlıVeriAdı"IB öğesi. Yüklemek için şu kodu çalıştırmanız yeterlidir:

2. "Önceden tanımlanmış öğe benzersiz değil" - h advoi önceden tanımlanmış öğeler:

Bu durum, birkaç IB öğesinin önceden tanımlanmış bir öğeye bağlı olması gerçeğinden oluşur. Bu durumda, önceden tanımlanmış bir isme atıfta bulunulurken, eleman rastgele seçilecektir. Bu durum her zaman yanlıştır. Zorluğu, platformun bu konuda hiçbir şekilde iletişim kurmamasıdır. Sadece algoritmalar yanlış çalışmaya başlıyor.

Çerçeve, yalnızca yinelenen bir öğeyi düzenlemeye çalışırken "Önceden tanımlanmış öğe benzersiz değil" hatasını bildirir.

Hiç kimsenin öğeyi düzenlemesi gerekmeyene kadar, hiç kimse hatayı bilmeyecek.

Bu tür kopyalar, örneğin, referans kitabı için RIB kullanılıyorsa ve önceden tanımlanmış veriler için özelliklerde "Otomatik olarak güncelle" modu belirtilmişse oluşturulabilir. Bu durumda, değişim gerçekleştirildiğinde, konfigürasyon güncellendiğinde önceden tanımlanmış verilerin bir örneği oluşturulacaktır. Aynı ada sahip önceden tanımlanmış öğelerin ikinci bir örneği, değişim sırasında merkezi veritabanından aktarılacaktır.

Ayrıca, farklı bilgi güvenliği öğelerinin farklı veritabanlarında önceden tanımlanmış öğelere karşılık gelmesi durumunda, yapılandırmalar arasında değiş tokuş işlemi kullanılırken bu kopyalar ortaya çıkacaktır. Bu durumda, önceden tanımlanmış verilerin bir kopyası veritabanında zaten var, ikincisi ise farklı bir UID ile veri yüklenirken gelecek. Veri aktarımı yapıyorsanız, hangi veritabanı öğelerinin birincil kabul edildiğine karar vermeniz ve bunları alt veritabanında kullanmanız gerekir. Alt tabanda, eski elemanların kullanımının ana tabanın elemanları ile değiştirilmesi gerekir.

Veritabanındaki bu tür hatalar, formun bir sorgusu ile tespit edilebilir:

İletişim Bilgileri Türlerini SEÇİN .Önceden TanımlıVeri Adı, MİKTAR (FARKLI İLETİŞİM BİLGİLERİ TÜRLERİ.Link) Rehberden Önceden Tanımlanmış Bir Numara OLARAK.İletişim Bilgisi Türleri OLARAK İletişim Bilgisi Türleri.

Bu sorgu, kendisiyle ilişkilendirilmiş birden fazla IB öğesiyle önceden tanımlanmış öğelerin bir listesini döndürür.

Bu tür unsurlar varsa, bunlardan biri için önceden tanımlanmış olanla olan bağlantıyı kaldırmak gerekir. Şunlar. Bu adı kullanırken program kodunun hangi IS öğesine atıfta bulunması gerektiğini sistem için açık bir şekilde belirlemek gerekir. Bunu yapmak için kodu çalıştırmanız yeterlidir.

3. Önceden tanımlanmış bir öğenin geçersiz gösterimi.

Hata, önceden tanımlanmış öğenin, program mantığı tarafından sağlanan yanlış öğeye karşılık gelmesi gerçeğinde yatmaktadır. Bu tür hatalar teşhis edilmesi en zor olanlardır. İlk iki türden farklı olarak, bu hatalar için yapılandırmayı otomatik olarak kontrol edemezsiniz. Sadece işin mantığı analiz edilerek tanımlanabilirler. Şüpheniz varsa, doğru öğenin kullanılıp kullanılmadığını kontrol edebilirsiniz.

Bunu yapmak için komutlardan birini çalıştırmanız yeterlidir.

// Gerekli önceden tanımlanmış Rapora bağlı bir IB öğesi tanımlama (Directories.Types of ContactInformation.EmailContactPerson) // Seçilen Raporun bağlı olduğu önceden tanımlanmış bir öğe tanımlayın (ElementRef.Name of PredefinedData)

Bu tür hatalar bulunursa, eski eleman ile yanlış bağlantıyı kaldırmak ve yeni eleman ile bir bağlantı eklemek gerekir. İşlem kodu, ilk iki tür hata için düzeltme koduna benzer.

Peki, kısaca hatalar hakkında programlı çalışma veya yapılandırıcı modunda:

"Önceden tanımlanmış öğe,<Имя справочника>" - ortak yapılandırıcıdaki adla eşleşmeyen bir adla önceden tanımlanmış bir öğe yazmaya çalışırken bir hata oluşur.

"Önceden tanımlanmamış nesneler, önceden tanımlanmış alt konto türü girişlerine sahip olamaz" - önceden tanımlanmış bir hesap planı öğesini tanımsız yapmaya çalıştığınızda bir hata oluşur. Hataları ortadan kaldırmak için, öğenin alt sözleşmesinin her satırı için "Ön tanımlı" işaretinin işaretini kaldırmak gerekir.

"Önceden tanımlanmamış nesneler, önde gelen hesaplama türlerinin önceden tanımlanmış kayıtlarına sahip olamaz"- hesaplama türleri tablosunun önceden tanımlanmış bir öğesini tanımsız yapmaya çalıştığınızda bir hata oluşur. Hataları ortadan kaldırmak için, önde gelen eleman hesaplama türünün her satırı için "Ön tanımlı" bayrağını temizlemek gerekir.

"Önceden tanımlanmış öğeler benzersiz değil"- güncelleme sırasında yapılandırıcıda bir hata görüntüleniyor bilgi tabanı 8.3.4 uyumluluk modu olmayan bir yapılandırma sürümü için. Güncellemeden önce kopyaları kontrol etmek ve ortadan kaldırmak gerekir.

"Önceden tanımlanmış öğenin adı benzersiz değil" - platforma güncelleme yapılırken konfigürasyonda aynı ada sahip birkaç önceden tanımlanmış öğe varsa hata oluşur8.3.6.2332 ve sonrası. Konfigürasyondaki kopyaları ortadan kaldırmak gereklidir.

Önceden tanımlanmış verilerle çalışmak için işlemeyi öneririm. Önceden tanımlanmış verilerle herhangi bir işlemin nasıl gerçekleştirileceğini bilir ve tüm bilgi güvenliği nesnelerinde (referans defterleri, hesap çizelgeleri, PVC) ilk iki türdeki (yinelenen ve eksik öğeler) hataların olup olmadığını bir bütün olarak yapılandırmayı kontrol edebilir. , PVR).