Menü
Bedava
kayıt
ev  /  Eğitim/ Veri 1c 8.3'te önceden tanımlanmış öğe eksik. Önceden tanımlanmış öğeleri ayarlama

Veri 1c 8.3'te önceden tanımlanmış öğe eksik. Önceden tanımlanmış öğeleri ayarlama

İyi günler.

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

Tanıtım

Size daha önce, pratikte, önceden tanımlanmış adını bulmak için bir dizin öğesine çok sık bakmak istediğimi hatırlatmama izin verin. Ö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 ve bireysel girişimci için LLC'nin mantığına ihtiyaç duyulduğu ortaya çıktı. “Sorun değil” diyoruz ve kurumsal modda öğ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'un yapılandırıcısında ve şirkette - OOO Meteor. 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. Onlar. 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 belgelerimiz tarafından referans alınan 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. Onlar. 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.

Dikkatiniz için teşekkürler.

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

İlk olarak, konfigürasyonda önceden tanımlanmış öğeler olduğunu ve bilgi tabanında (IB) önceden tanımlanmış öğeler olduğunu kendiniz açıkça anlamalısınız. Teknik olarak önceden tanımlanmış IB öğeleri, "PredefinedDataName" özniteliğinin hangi önceden tanımlanmış yapılandırma öğesine karşılık geldiklerini belirttiği sözlüklerin en yaygın öğeleridir. Sıradan unsurlardan artık 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. Prensipte işin 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ış öğ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 rapor vermesidir "Verilerde önceden tanımlanmış bir öğe eksik" ve bunun nasıl düzeltileceği oldukça açık.

"Directories.Types of ContactInformation.EmailContactPerson" kodundaki eksik öğeye erişildiğinde 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ış elemanları tanımlamak mantıklıdır, ancak bunları tüm IS'de değil, sadece gerekli konfigürasyonun olduğu IS'ler için oluşturmak mantıklıdır. mantık kullanılır. 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 elemanlar merkezi tabandan transfer edilmelidir ve farklı UID'lere sahip düğümlerde oluşturulmamalıdır.

Onlar. 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 zaten 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; Query.Text = "SEÇ | İletişim Bilgileri Çeşitleri. Bağlantı | KİMDEN | Dizin. İletişim Bilgileri Türleri AS İletişim Bilgileri Çeşitleri | NEREDE | İletişim Bilgileri Çeşitleri. Öntanımlı Veri Adı =" " İletişim kurulacak kişinin e-postası"" "; ElementNoNo.VD = Request.Run().Boş();

Bu hala veritabanı verilerinde bir hataysa, o zaman IB öğesinin önceden tanımlanmış bir öğesine bağlanmak gerekir. Onlar. 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ı gerçeğinde yatmaktadı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 kitap 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ı ana tabanın elemanları ile değiştirmek 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 öğeler varsa, bunlardan biri için önceden tanımlanmış olanla olan bağlantıyı kaldırmak gerekir. Onlar. 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 yürütmeniz yeterlidir.

// Gerekli önceden tanımlanmış Rapora bağlı bir IB öğesinin tanımı (Directories.Types of ContactInformation.EmailContactPerson) // Seçilen Raporun bağlı olduğu önceden tanımlanmış öğeyi belirleyin (ReferenceOnItem.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 "Önceden tanımlanmış" bayrağının 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 önceden tanımlanmış birkaç öğe varsa hata oluşur8.3.6.2332 ve sonrası. Konfigürasyondaki kopyaları ortadan kaldırmak gerekir.

Ö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).

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

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ın yeniden atanmasını yürüt" düğmesine tıklayarak yeniden atamayı gerçekleştiriyoruz.

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

"Yinelenenleri kontrol et" düğmesine bastığı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 bir tablo listesi görüntüleyecektir.

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

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

"Eksikliği 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 Bulgar 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 Tayland 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 Danca Felemenkçe İ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 Tay Türk Ukrayna Urdu Vietnam Gal Yidiş