Programlı olarak bir arka plan işi başlatma. Görevler ve işlevler arasındaki fark

  • 30.04.2019

İş mekanizması

İş mekanizması, herhangi bir uygulamayı veya işlevi bir zamanlamaya göre veya zaman uyumsuz olarak yürütmek üzere tasarlanmıştır.

İş mekanizması aşağıdaki görevleri gerçekleştirir:

  • Sistem konfigürasyonu aşamasında rutin prosedürleri belirleyebilme;
  • Programa göre belirlenen eylemlerin yürütülmesi;
  • Belirli bir prosedüre veya işleve yapılan bir çağrının yürütülmesi eşzamansızdır, yani. tamamlanmasını beklemeden;
  • Belirli bir işin ilerlemesini takip etme ve tamamlanma durumunu alma (yürütme başarısını veya başarısızlığını gösteren bir değer);
  • Mevcut görevlerin bir listesini almak;
  • Bir veya daha fazla görevin tamamlanmasını bekleme yeteneği;
  • İş yönetimi (iptal imkanı, yürütmenin engellenmesi vb.).

İş motoru aşağıdaki bileşenlerden oluşur:

  • meta veri rutin görevler;
  • Planlanmış görevler;
  • Arka plan işleri;
  • Görev Zamanlayıcısı.

Arka plan işleri - yürütülmesi amaçlanan uygulamalı görevler asenkron olarak. Arka plan işleri, yerleşik dil kullanılarak uygulanır.

Zamanlanmış görevler - bir zamanlamaya göre uygulama görevlerini gerçekleştirmek için tasarlanmıştır. Zamanlanmış atamalar şurada saklanır: bilgi tabanı ve konfigürasyonda tanımlanan meta verilere göre oluşturulur. Zamanlanmış iş meta verileri, ad, yöntem, kullanım vb. gibi bilgileri içerir.

Zamanlanmış bir iş, zamanlanmış işle ilişkili yöntemin hangi zamanlarda yürütülmesi gerektiğini belirleyen bir zamanlamaya sahiptir. Zamanlama, kural olarak bilgi tabanında ayarlanır, ancak yapılandırma aşamasında da ayarlanabilir (örneğin, önceden tanımlanmış zamanlanmış görevler için).

Görev zamanlayıcı, zamanlanmış görevlerin yürütülmesini zamanlamak için kullanılır. Planlanan her iş için, planlayıcı düzenli aralıklarla kontrol eder. geçerli tarih ve zamanlanmış görevin zaman çizelgesi. Eşleşirse, zamanlayıcı o işi çalışacak şekilde zamanlar. Bunu yapmak için, bu zamanlanmış göreve göre zamanlayıcı, fiili işlemeyi gerçekleştiren bir arka plan görevi oluşturur.

Arka plan işleri

Arka plan işleri, hesaplamanın sonucu aşağıdakiler aracılığıyla elde edilebildiğinde, karmaşık hesaplamalar yapmak için kullanışlıdır. uzun zaman. İş motoru, bu tür hesaplamaları eşzamansız olarak gerçekleştirme araçlarına sahiptir.

Bir arka plan işinin, arka plan işi çalıştığında çağrılan ilişkili bir yöntemi vardır. Küresel olmayan herhangi bir prosedür veya işlev, bir arka plan işi yöntemi olarak işlev görebilir. ortak modül, sunucuda çağrılabilir. Arka plan iş parametreleri, sunucuya geçmesine izin verilen herhangi bir değer olabilir. Bir arka plan işinin parametreleri, çağırdığı prosedürün veya işlevin parametreleriyle tam olarak eşleşmelidir. Arka plan işinin yöntemi bir işlevse, dönüş değeri yok sayılır.

Bir arka plan işinin bir anahtarı olabilir - herhangi bir uygulama değeri. Anahtar, arka plan işlerinin başlatılmasıyla ilgili bir kısıtlama getirir - ile birim zaman başına yalnızca bir arka plan işi yürütülebilir. belirli değer anahtar ve isim arka plan işi yöntemi (yöntemin adı, modülün adından ve prosedürün veya işlevin adından oluşur). Anahtar, aynı yöntemlere sahip arka plan işlerini belirli bir uygulama özniteliğine göre gruplandırmanıza olanak tanır, böylece bir grup içinde birden fazla arka plan işi yürütülmez.

Arka plan işleri, herhangi bir bağlantıdan programlı olarak oluşturulur ve yönetilir. Herhangi bir kullanıcının bir arka plan işi oluşturmasına izin verilir. Aynı zamanda onu oluşturan kullanıcı adına yürütülür. Görevleri almasına ve ayrıca bir kullanıcıya herhangi bir bağlantıdan tamamlanmasını beklemesine izin verilir. idari haklar veya bu arka plan işlerini oluşturan kullanıcı.

Arka plan işi tamamen bir oturum nesnesidir, ancak herhangi bir kullanıcı oturumuna ait değildir. Her iş için, çağrıyı yapan kullanıcı adına çalışan özel bir sistem oturumu oluşturulur. Arka plan işlerinin kalıcı durumu yoktur.

Bir arka plan işi, diğer arka plan işlerini doğurabilir. İstemci-sunucu sürümünde bu, bir bütün olarak hesaplama sürecini önemli ölçüde hızlandırabilen küme iş süreçleri arasında karmaşık hesaplamaları paralelleştirmenize olanak tanır. Paralelleştirme, her birinin ana arka plan işinde tamamlanmasını bekleyen birkaç alt arka plan işi üreterek uygulanır.

Başarılı veya başarısız arka plan işleri 24 saat saklanır ve ardından silinir. Çalışan arka plan işlerinin sayısı 1000'i aşarsa, en eski arka plan işleri de silinir.

Zamanlanmış ödevler

Zamanlanmış görevler, zamanlamaya göre belirli periyodik veya tek seferlik eylemleri gerçekleştirmeniz gerektiğinde kullanılır.

Zamanlanmış görevler bilgi tabanında depolanır ve konfigürasyonda tanımlanan zamanlanmış görevin meta verilerine dayalı olarak oluşturulur. Meta veriler, zamanlanmış bir görevin bu tür parametrelerini şu şekilde tanımlar: çağrılan yöntem, ad, anahtar, kullanım yeteneği, önceden belirleme işareti, vb. zamanlanmış bir görevi gerçekleştirmek için vb.

Zamanlanmış görevlerin oluşturulması ve yönetimi, herhangi bir bağlantıdan programlı olarak gerçekleştirilir ve yalnızca yönetici haklarına sahip kullanıcılara izin verilir.

Not. Dosya sürümünde çalışırken, görev zamanlayıcıyı başlatmadan zamanlanmış görevler oluşturmak ve düzenlemek mümkündür.

Zamanlanmış bir görev, zamanlanmış görev yürütüldüğünde çağrılan bir yöntemle ilişkilendirilir. Zamanlanmış bir iş yöntemi, sunucuda çağrılabilen küresel olmayan bir paylaşılan modülün herhangi bir prosedürü veya işlevi olabilir. Zamanlanmış iş parametreleri, sunucuya geçmesine izin verilen herhangi bir değer olabilir. Zamanlanmış bir işin parametreleri, çağırdığı prosedürün veya işlevin parametreleriyle tam olarak eşleşmelidir. Zamanlanmış iş yöntemi bir işlevse, dönüş değeri yok sayılır.

Zamanlanmış bir görevin bir anahtarı olabilir - uygulanan herhangi bir değer. Anahtar, zamanlanmış görevlerin başlatılmasına bir kısıtlama getirir, çünkü zaman birimi başına, aynı meta veri nesnesiyle ilişkili zamanlanmış görevler arasında, belirli bir anahtar değerine sahip yalnızca bir zamanlanmış görev yürütülebilir. Anahtar, aynı meta veri nesnesiyle ilişkili zamanlanmış görevleri belirli bir uygulama özniteliğine göre gruplandırmanıza olanak tanır, böylece bir grup içinde birden fazla zamanlanmış görev yürütülmez.

Yapılandırma sırasında önceden tanımlanmış zamanlanmış işleri tanımlayabilirsiniz. Önceden tanımlanmış zamanlanmış işler, açık bir şekilde oluşturulamamaları veya silinememeleri dışında normal zamanlanmış işlerden farklı değildir. Zamanlanmış görevin meta verileri olarak ayarlanmışsa önceden tanımlanmış bir zamanlanmış görevin işareti, ardından yapılandırmayı güncellerken, bilgi tabanında otomatik olarak önceden tanımlanmış bir zamanlanmış görev oluşturulur. Önceden tanımlanmış onay kutusu temizlenirse, yapılandırma güncellendiğinde önceden tanımlanmış zamanlanmış görev bilgi tabanında otomatik olarak silinir. Önceden tanımlanmış bir zamanlanmış görevin (örneğin, zamanlama) özelliklerinin başlangıç ​​değerleri, meta verilerde ayarlanır. Gelecekte, uygulama çalışırken değiştirilebilirler. Önceden tanımlanmış zamanlanmış işlerin parametresi yoktur.

Zamanlanmış iş programı, zamanlanmış işin hangi zaman noktalarında başlatılması gerektiğini belirler. Program şunları ayarlamanıza izin verir: görevin başlangıç ​​ve bitiş tarihi ve saati, yürütme periyodu, haftanın günleri ve zamanlanmış görevin gerçekleştirileceği aylar, vb. (yapı açıklamasına bakın) dilde).

Zamanlanmış görev programlarına örnekler:

Her saat, sadece bir gün

Yeniden Dene PeriodDays = 0, Yeniden Dene PeriodDuringDay = 3600

Her gün günde bir kez

Yeniden Dene PeriodDays = 1, Yeniden Dene PeriodDuringDay = 0

Bir gün, bir kez

Yeniden Deneme Süresi Günleri = 0

Gün aşırı günde bir

Yeniden Deneme Süresi Günleri = 2

Her gün 01.00 - 07.00 arası her saat

Yeniden Deneme Süresi Günleri = 1

Gün İçinde Tekrar Deneme Süresi = 3600

Başlangıç ​​Zamanı = 01.00

Bitiş Saati = 07.00

Her Cumartesi ve Pazar 09.00'da

Yeniden Deneme Süresi Günleri = 1

Haftanın Günleri = 6, 7

Başlangıç ​​Saati = 09.00

Her gün bir hafta, hafta geçer

Yeniden Deneme Süresi Günleri = 1

DönemHafta = 2

01.00'de bir kez

Başlangıç ​​Zamanı = 01.00

Her ayın son günü saat 9:00'da.

Yeniden Deneme Süresi Günleri = 1

DayInMonth = -1

Başlangıç ​​Saati = 09.00

Her ayın beşi saat 9:00'da

Yeniden Deneme Süresi Günleri = 1

DayInMonth = 5

Başlangıç ​​Saati = 09.00

Her ayın ikinci çarşambası saat 9:00'da

Yeniden Deneme Süresi Günleri = 1

Ayda haftanın günü = 2

Haftanın Günleri = 3

Başlangıç ​​Saati = 09.00

İşin çalışıp çalışmadığını kontrol edebilirsiniz. verilen tarih(SchedulerRegularTasks nesnesinin RequiredExecution yöntemi). Zamanlanmış görevler her zaman belirli bir kullanıcı adına gerçekleştirilir. Planlanan işin kullanıcısı belirtilmemişse, yürütme, yönetici haklarına sahip varsayılan kullanıcı adına gerçekleşir.

Zamanlanmış işler, arka plan işleri kullanılarak yürütülür. Zamanlayıcı, zamanlanmış bir görevin başlatılması gerektiğini belirlediğinde, bu zamanlanmış göreve dayalı olarak tüm diğer işlemleri gerçekleştiren bir arka plan görevi otomatik olarak oluşturulur. Bu zamanlanmış görev zaten çalışıyorsa, zamanlamasına bakılmaksızın tekrar çalıştırılmayacaktır.

Zamanlanmış işler yeniden başlatma özelliğine sahiptir. Bu, özellikle zamanlanmış görev yönteminin yürütülmesinin garanti edilmesi gerektiğinde geçerlidir. Zamanlanmış bir görev, olağandışı bir şekilde sonlandırıldığında veya zamanlanmış görevin üzerinde çalıştığı çalışan işlem (istemci-sunucu sürümünde) veya istemci işlemi (dosya sürümünde) anormal şekilde sonlandırıldığında yeniden başlatılır. Zamanlanmış bir görevde, yeniden başlatmalar arasındaki aralığın yanı sıra kaç kez yeniden başlatılması gerektiğini belirtebilirsiniz. Yeniden başlatılabilir bir zamanlanmış iş yöntemini uygularken, yeniden başlatıldığında yürütülmesinin en baştan başlayacağı ve çöktüğü andan itibaren devam etmeyeceği dikkate alınmalıdır.

Bunu hatırlamak önemlidir bitiş zamanı arka plan işini mutlaka belirtilen zamanda bitirmez. Bazı ifadeler:

* Bir arka plan işi kendi işini görmezden gelebilir otomatik iptal, donmadıysa, ancak tüm platform işlemlerinin geri alınamaması nedeniyle çalışmaya devam ederse. gerçekleştirilirse döngüsel kod yerleşik dil, aksi takdirde iş iptal edilebilir. Her şey işin ne yaptığına bağlı. * Bitiş zamanı - bir görevin başlayıp bitemeyeceği sınır? * Zorla sonlandır iş, işlemin başladığı ana kadar yapılan değişiklikleri geri alıyor mu?

Dosya ve istemci-sunucu sürümlerinde arka plan görevlerini gerçekleştirmenin özellikleri

Dosya ve istemci-sunucu sürümlerinde arka plan işlerini yürütme mekanizmaları farklıdır.

  • Dosya sürümünde, arka plan görevlerini gerçekleştirecek özel bir istemci işlemi oluşturmanız gerekir. Bunu yapmak için, genel bağlam işlevi ExecuteJobProcessing istemci sürecinde periyodik olarak çağrılmalıdır. Bilgi bankası başına yalnızca bir istemci işlemi arka plan işlerini işlemelidir (ve dolayısıyla bu işlev). Arka plan işlerini işlemek için hiçbir istemci işlemi oluşturulmamışsa, iş motoruna programlı olarak erişilirken "İş yöneticisi etkin değil" hatası oluşturulur. Diğer işlevler için arka plan işlerini işleyen istemci işleminin kullanılması önerilmez.

Arka plan işlerini yürüten istemci süreci çalıştıktan sonra, diğer istemci süreçlerine aşağıdakileri yapma fırsatı verilir. program erişimi arka plan iş mekanizmasına, yani. arka plan işlerini çalıştırabilir ve yönetebilir.

İstemci-sunucu sürümünde, fiziksel olarak küme yöneticisinde bulunan arka plan işlerini yürütmek için görev zamanlayıcı kullanılır. Kuyruğa alınmış tüm arka plan işleri için zamanlayıcı, en az yüklenen çalışan sürecini alır ve bunu karşılık gelen arka plan işini çalıştırmak için kullanır. Çalışan süreç işi yürütür ve yürütme sonuçlarını planlayıcıya bildirir.

İstemci-sunucu sürümünde, zamanlanmış görevlerin yürütülmesini engellemek mümkündür. Zamanlanmış görevlerin yürütülmesinin engellenmesi aşağıdaki durumlarda gerçekleşir:

  • Bilgi tabanında zamanlanmış görevlerin açık bir şekilde engellenmesi ayarlandı. Kilit, küme konsolu aracılığıyla ayarlanabilir;
  • Bilgi tabanında bir bağlantı bloğu ayarlandı. Kilit, küme konsolu aracılığıyla ayarlanabilir;
  • SetExclusiveMode() yöntemi, True parametresiyle yerleşik dilden çağrıldı;
  • Diğer bazı durumlarda (örneğin, veritabanı yapılandırmasını güncellerken).

Zamanlanmış İş Meta Verileri Oluşturma

Bilgi tabanında programlı olarak zamanlanmış bir görev oluşturmadan önce, bunun için bir meta veri nesnesi oluşturmanız gerekir.

Zamanlanmış işler dalı için Genel dalındaki yapılandırma ağacında bir zamanlanmış iş meta verisi nesnesi oluşturmak için, Ekle komutunu yürütün ve özellikler paletinde zamanlanmış işin aşağıdaki özelliklerini doldurun:

Yöntem adı - Zamanlanan iş yönteminin adını belirtin.

Anahtar - zamanlanmış görevin anahtarı olarak kullanılacak rastgele bir dize değeri belirtin.

Zamanlama - zamanlanmış görevin zamanlamasını belirtir. Bir program oluşturmak için "Aç" bağlantısını tıklayın ve açılan program formunda gerekli değerleri ayarlayın.

Genel sekmesi, görevin başlangıç ​​ve bitiş tarihini ve yineleme modunu belirtir.

"Günlük" sekmesi, görev için günlük programı belirtir.

Zamanlamayı belirtin:

  • görevin başlangıç ​​ve bitiş zamanı;
  • görevin bitiş zamanı, bundan sonra zorla tamamlanacak;
  • görev tekrar süresi;
  • tekrarlar arasındaki duraklamanın süresi;
  • yürütme süresi.

Koşulların keyfi bir kombinasyonuna izin verilir.

Görevin haftalık programı Haftalık sekmesinde belirtilir.

Görevin çalışacağı haftanın günleri için onay kutularını seçin. İşi tekrarlamak istiyorsanız, yeniden deneme aralığını hafta olarak belirtin. Örneğin, görev 2 haftada çalışır, tekrar değeri 2'dir.

"Aylık" sekmesinde görevin aylık programı belirtilir.

Görevin çalışacağı ayların onay kutularını seçin. Gerekirse, ayın / haftanın başından veya sonundan belirli bir yürütme günü (ay veya hafta) belirleyebilirsiniz.

Kullanım - ayarlanırsa, görev zamanlamaya göre yürütülür.

Önceden tanımlanmış - ayarlanmışsa, iş önceden tanımlanmış bir iştir.

Kilitlenmede yeniden deneme sayısı - Kilitlenme durumunda yeniden deneme sayısını belirtir.

Kilitlenme durumunda yeniden deneme aralığı - Kilitlenme durumunda yeniden deneme aralığını belirtir. Örnekler

Bir arka plan işi oluşturma "Tam metin arama dizinini güncelleme":

BackgroundJobs.Run("UpdatingFullTextSearchIndex");

Zamanlanmış bir görev oluşturma "Sıraları geri yükleme":

Çizelge = Yeni Çizelge DüzenlemeGörevi; Schedule.RepeatPeriodDays = 1; Schedule.RepeatPeriodDuringDay = 0;

Görev = ScheduledTasks.Create ScheduledTask("RestoringSequences"); Task.Schedule = Zamanlama; Task.Write();

İş Konsolu

ITS ile işleme, zamanlanmış görevleri yönetir:

Zamanlanmış görevlerle çalışın

İş nesneleri

İş nesnelerine referans verilmez, ancak bazı özel depolarda veritabanında depolanır.

Meta verilerde "Önceden tanımlanmış" bayrağı etkinleştirilirse, böyle bir nesne 1C:Enterprise başladığında otomatik olarak oluşturulur ve her zaman tam olarak bir örnekte bulunur. Böyle bir nesne silinemez.

"Önceden tanımlanmış" bayrağı ayarlanmamışsa, böyle bir görevin nesneleri, zamanlama ve parametreler belirtilerek programlı olarak oluşturulur ve silinir.

Görev listesi alma

Görevlerin listesi yöntemle elde edilebilir GetRegularAssignments küresel iş yöneticisi Zamanlanmış Görevler

Zamanlanmış İşler Yöneticisi

GetScheduledJobs (GetScheduledJobs)

Sözdizimi:

GetRegular Görevler(<Отбор>)

Seçenekler:

<Отбор>(isteğe bağlı)

Tür: Yapı. Seçimi tanımlayan yapı. Yapı değerleri şunlar olabilir: UniqueIdentifier, Key, Metadata, Predefined, Use, Name. Seçim ayarlanmazsa, tüm zamanlanmış görevler alınır.

Meta verilere göre filtreleme yapıyorsanız, zamanlanmış iş meta verisi nesnesini veya adını Meta Veri değeri olarak belirtebilirsiniz.

Geri dönüş değeri:

Tür: Dizi.

Tanım:

Belirtilen seçim için bir dizi zamanlanmış görev alır. Zamanlanmış görevleri almak yalnızca yönetici için mümkündür.

kullanılabilirlik:

Scheduled = ScheduledTasks.Get ScheduledTasks(Seçim);

Zamanlanmış Döngüden Zamanlanan Her Biri İçin NewLine = ScheduledTasksList.Add(); NewString.Metadata = Scheduled.Metadata.View(); NewLine.Name = Scheduled.Name; NewString.Key = Scheduled.Key; NewString.Schedule = Scheduled.Schedule; NewString.User = Normal.UserName; NewString.Predefined = Scheduled.Predefined; NewString.Usage = Regulatory.Usage; NewString.Identifier = Scheduled.UniqueIdentifier;

LastTask = Scheduled.LastTask; Eğer LastQuest<>Tanımsız Sonra NewString.Running = LastTask.Start; NewString.Status = LastJob.Status; EndIf; Bitiş Döngüsü;

oluşturma

Zamanlanmış görev yöneticisinin CreateRegularTask yöntemiyle oluşturuldu:

ScheduledJob = ScheduledJobs.Create ScheduledJob(MetadataChoice);

Zamanlanmış Görev.Adı = Ad; ScheduledTask.Key = Anahtar; ScheduledTask.Use = Kullan; ScheduledTask.UserName = UsersChoice; ZamanlanmışGörev.Çöktüğünde Tekrar Sayısı = Kilitlendiğinde Yeniden Deneme Sayısı; ScheduledTask.RetryIntervalOnAccident = RetryIntervalOnAccident; ScheduledTask.Schedule = Zamanlama; ScheduledTask.Write();

TaskObject = ScheduledTasks.Create ScheduledTask("ExecuteExchange");

TaskObject.Name = Ad; JobObject.Use = doğru;

İş nesnesi, yöntem parametrelerinin ayarlandığı bir "Parametreler" alanına sahiptir:

Planlanmışİş

Seçenekler(Parametreler)

Kullanım:

Okuma ve yazma.

Tanım:

Tür: Dizi. Bir dizi zamanlanmış görev parametresi. Parametrelerin sayısı ve bileşimi, zamanlanmış görev yönteminin parametrelerine karşılık gelmelidir.

kullanılabilirlik:

Sunucu, kalın istemci, harici bağlantı.

Not:

Okuma ve yazma özelliği yalnızca yönetici tarafından kullanılabilir.

kaldırma

İş nesnesinin Delete() yöntemiyle silindi:

ScheduledTask.Delete();

Bir İş Nesnesi Alma

  • GetRegularTasks yöntemiyle listeleyin:

Scheduled = ScheduledTasks.Get ScheduledTasks(Seçim);

  • iş yöneticisinin FindByUniqueID yöntemi aracılığıyla:

Görev = ScheduledTasks.FindBy UniqueIdentifier(UID);

Genellikle arka plan işleri 1C'de:Enterprise, düzenleyici altından başlatılır.

Yani, başlangıçta, zamanlanmış görev bir arka plan oluşturur. Ama gerekirse
programlı olarak da bir arka plan işi başlatabiliriz.
Aynı zamanda sunucuda mevcut olan her türlü yöntem ve özelliği kullanabilir, tk. ve sunucuda yürütülür.
Aslında, arka plan görevinin kendisi herhangi bir işlem gerçekleştirmez. Sadece başlatır
paylaşılan bir modülden bir prosedür yürütmek için. Prosedür parametreleri kullanıyorsa,
ayrıca bir arka plan işi başlatıldığında da iletilebilirler.

Düşünmek en basit örnek. Arka planda çalışacak bir işlem oluşturalım
sırayla günlüğe yazacak bir iş.

Çünkü
bir arka plan işi için paylaşılan bir modül prosedürüne ihtiyacımız var, hadi bu paylaşılan modülü oluşturalım
prosedürlerini sunucuda yürütme yeteneği ile.

Bu ortak modülde loga yazacak bir prosedür oluşturalım.
kayıt

Prosedür RecordInLogbook(par_EventName, par_Comment) RecordLogbook'u Dışa Aktar(par_EventName, , , , par_Comment) ; İşlem Sonu

Gördüğünüz gibi, prosedürde parametreler var. Yani arka plan görevi bir tür
transfer prosedürüne giden yol.

Şimdi bir arka plan görevi çalıştıracağımız bir işlem oluşturalım.

Bunu yönetilen bir formda yapalım, ancak düzenli formlar temel bir fark olmayacak
aynı yöntemler kullanılmaktadır. Biz yaratırız en basit biçim tek komutla:


Form modülünde yazıyoruz aşağıdaki kod:

&OnServer Prosedürü WriteZHROnServer() ArrayParameters = Yeni Dizi; Parametre Dizisi. Ekle( "Etkinlik. Arka plan işi başarıyla tamamlandı") ; Parametre Dizisi. Ekle( "Yorum: Arka plan işinin çalıştığını doğrulayın") ; Arkaplan işlemleri. Uygulamak ( "website_Düzenleyici Görevler. Kayıt Günlüğüne Giriş", ArrayParameters) ; EndProcedure &OnClient Prosedürü WriteWHR(Komut) WriteWHROnServer() ; İşlem Sonu

Yöntemi kullanarak bir arka plan işi çalıştırır Uygulamak()
arka plan iş yöneticisi.

Bu yöntemin ilk parametresi
ortak modülün adı ve yürütülecek prosedürün adı, tür bir dizedir.
İkinci parametre, çağrılan prosedür için parametre değerlerine sahip bir dizidir.
Dizideki öğelerin sırası, dizideki parametrelerin sırasına uygun olmalıdır.
prosedür.
Ayrıca belirtilebilir Anahtar ve İsim arka plan işi.

Şimdi işlemeyi test edelim. 1C:Enterprise modunda açalım ve
hadi çalıştıralım. Ardından, kayıt günlüğünü açın ve görevin
başarıyla çalıştı ve günlükte ilgili bir giriş yaptı.

Ofis işinde bir takım görevler düzenli olarak yürütmeyi gerektirir, aksi takdirde tüm iş akışı durur. Raporların sunulması zorunludur belirli sayı her ay. Bazen her hafta, hatta her gün.

Kural olarak, şirketler, raporların derlenmesi ve diğer görevlerin yerine getirilmesi sürecini düzenleyen özel kurallar oluşturur. Bu düzenlemeler her bir pozisyonun sorumluluğunu belirler, kimin ve neyin kontrol edilmesi gerektiğini belirtir.

Bu tür sorunların daha başarılı bir çözümü için, günlük iş akışı rutini ile başa çıkmanıza izin veren rutin görevlerin 1C işlevinin bulunduğu oluşturulmuştur.

Özünde, 1C'deki zamanlanmış görevlerin mekanizması, özellikle sıkı bir şekilde düzenlenmiş görevleri çözmek için oluşturulmuştur. Bu izleme yöntemi, genellikle aşağıdakileri sağlayan programlarla çalışan BT uzmanlarına uzun zamandır aşinadır. düzenli izleme bilgisayar ağları, sunucu durumları ve diğer sistemler. Taranan nesnelerin durumuyla ilgili bilgiler e-posta yoluyla yöneticiye gönderilir

Zamanlanmış görevler 1C, belirlenen yürütme periyodikliği ile benzer sorunları çözer.

Rutin görevlerin ayrıntıları 1C

Bu nedenle, rutin görevler, verileri işlemek ve gerçekleştirmek için oluşturulan 1C programının işlevselliğidir. özel görevler etkinlik sırasında kesinlikle belirlenen programa göre. Konfigüratördeki doğrudan zamanlanmış görev, belirli bir zamanlamayı kullanan bir yapılandırma ve izleme aracından başka bir şey değildir. 1C Enterprise modunda çalışırken programın kolayca değiştirildiğine dikkat edilmelidir.

ayarlar. Kullanıcı, 1C zamanlanmış görevleri girebilir ve girilen parametrelere göre görevlerin otomatik olarak yürütülmesini ayarlayabilir. Windows'ta çalışırken, görevler 1C zamanlanmış görevlerinde istemci olarak başlatılan kullanıcı altında gerçekleştirilecektir.

Kullanıcı, istemci-sunucu seçeneği 1 C'yi kullanıyorsa, işler şu şekilde yürütülür: otomatik mod sunucuda. Ayarlanan zamana yaklaşıldığı anda, acil görevi yürüten arka plan görevi başlatılır. Bu durumda, 1C sunucu programını başlatan Windows kullanıcısı için arka plan görevi yürütülür.

Arka plan işlerinin derlendiğine dikkat edilmelidir. Programlama dili"Düzenli görevler" işlevini içermeyen 1C. Bu amaçlar için, 1C sunucu yönetimi ayarlarında geçici olarak kapatılması önerilir. Bu konuda daha fazla bilgiyi adresinde bulabilirsiniz.

Zamanlanmış bir görev 1C nasıl eklenir


Yeni başlayanlar için, 1C zamanlanmış görevinin genel / zamanlanmış görevler bölümünde yer aldığına dikkat edilmelidir. Başlamak için, zamanlanmış bir görev ekleyelim ve ona bir isim verelim.

Zamanlanmış görevin özelliklerine giriyoruz, burada yöntem adında "işlev işleyici" belirtmeniz gerekiyor. Bu durumda, modeli önceden sunucu özelliklerine eklemeyi unutmamak önemlidir.

Zamanlanmış görev özelliklerindeki "görev adı" konumu, görev yönetim sisteminde kullanılacak adı belirtir.

Zamanlanmış görevin 1C özelliklerindeki "anahtar" konum, birleştirmeye yardımcı olacaktır. çeşitli görevler. Aynı anda belirli bir anahtara sahip yalnızca bir görevin çalıştırılabileceğini hatırlamak önemlidir. Değer doldurulmazsa, program alanı boş kabul eder ve verileri işlerken dikkate almaz.

Zamanlanmış bir görevin özelliklerindeki "önceden tanımlanmış" konum, 1C açıldığında, görevin kendi yapılandırılabilir zamanlaması ile tek bir örnekte oluşturulduğunu kontrol eder.

Örneğin Muhasebe Revizyonu 2.0 gibi standart konfigürasyonlarda, 1s zamanlanmış görevleri "toplamların yeniden hesaplanması" ve "konfigürasyon güncellemesi" önceden tanımlanacaktır, ancak "ertelenmiş hareketler" ve "veri değişimi" görevleri önceden tanımlanmayacaktır. "Kullan" seçeneği işi başlatır. Görevin "kullanım" karşısında yürütülmesi için kutuyu işaretlemeniz gerekir. Kilitlenmede yeniden deneme seçeneği, herhangi bir nedenle ilk denemede başarısız olursa işi yeniden başlatır. Bu durumda, kaç kez yeniden başlatmak istediğinizi ve çökmeden ne kadar sonrasını belirtmeniz gerekir.

1C'de zamanlanmış bir görev nasıl yönetilir: kurulum ve işleme

1C'de zamanlanmış bir görevi yönetmek ve izlemek için görev konsolunda standart işleme sağlanır. ITS disklerinde bulunur. Bu işleme, evrensel türde işleme olarak kabul edilir ve genellikle ayrı uygulama ITS disklerinde.

Görev konsolu işlemede şunları yapmak mümkündür: zamanlanmış bir görevi başlatmak veya devre dışı bırakmak, zamanlanmış bir görevin zamanlamasını değiştirmek, görevlerin adı altında gerçekleştirilecek kullanıcıyı değiştirmek, sonuçlarının ayrıntılı kapsamı ile görevlerin hangi ve ne zaman tamamlandığını izlemek .

Muhtemelen, her 1C 8.3 programcısı er ya da geç yürütmeyi ayarlamak zorunda kaldı belirli görevler Planlandı. aşağıda vereceğim Detaylı Açıklama bu mekanizmalar, umarım olur kullanışlı bilgi acemi programcılar için 1C. Bu çok uygundur, çünkü insan eylemleri gerektirmez, zamanlanmış görev bir kez yapılandırılır ve programınıza göre çalışır.

Bir örnekle ayrıntılı talimatlar aşağıda bulunabilir.

1C'de zamanlanmış ve arka plan görevleri nelerdir

  • Zamanlanmış ödevler belirli bir programda belirli bir eylemi gerçekleştirmek için tasarlanmış özel bir 1C kurumsal 8.3 mekanizmasıdır.
  • Arka plan işi- kullanıcının veya programcının katılımı olmadan doğrudan doğal eylemi gerçekleştiren zamanlanmış bir görev tarafından oluşturulan nesneler 1C 8.2.

Zamanlanmış ve arka plan işlerinin mekanizması, VTYS'nin işlevselliği sayesinde istemci-sunucu çalışma modunda (SQL) çalışır. Bir dosya veritabanınız varsa, görev de yapılandırılabilir, ancak biraz farklı bir şekilde.

İstemci-sunucu çalışma modunda arka plan görevlerini ayarlama 1C

Başlamak için oluşturalım yeni nesne meta veriler rutin bir görevdir. Görevime "Döviz Oranlarını Yükleme" adını vereceğim. Özellikler paletini düşünün bu nesne konfigürasyonlar:

267 1C video derslerini ücretsiz alın:

  • Yöntem adı— belirtilen programa göre arka plan görevinde yürütülecek prosedürün yolu. Prosedür, paylaşılan bir modülde olmalıdır. Standart olanları kullanmamanız, kendinizinkini oluşturmanız önerilir. Arka plan işlerinin sunucuda çalıştığını unutmayın!
  • kullanım- zamanlanmış bir görevin kullanımının bir işareti.
  • önceden belirlenmiş Zamanlanan işin önceden tanımlanıp tanımlanmadığını gösterir. Zamanlanmış görevin veritabanına yerleştirildikten hemen sonra çalışmasını istiyorsanız bu bayrağı belirtin. Aksi takdirde, "İş Konsolu" işlemeyi kullanmanız veya işi programlı olarak çalıştırmak için çağırmanız gerekir.
  • Bir iş çöktüğünde yeniden deneme sayısı— bir hatayla yürütüldüyse arka plan işinin kaç kez yeniden başlatıldığı.
  • İşi iptal etme yeniden deneme aralığı- bir hatayla tamamlandıysa arka plan görevinin ne sıklıkla yeniden başlatılacağı.

ve en ilginç ayarTakvim:

Burada, "Yöntem adı" alanında belirtilen prosedürü başlatma aralığını ayarlayabilirsiniz. kurmama izin ver

Dikkat! DBMS düzeyinde planlanmış ve arka plan işlerinin engellenmesini devre dışı bırakmayı unutmayın!

Bu, istemci-sunucu sürümünün yönetim yardımcı programında veya yeni bir veritabanı oluştururken yapılabilir:

1C dosya modunda zamanlanmış görevleri ayarlama

AT dosya modu bu tür görevleri ayarlamak biraz daha zordur. Böyle bir görev için 1C programının ayrı bir oturumu başlatılmalıdır. Çoğu zaman bu, oturumu her zaman çalışan "teknik" kullanıcının kurumu tarafından çözülür.

Dosya modunda, zamanlanan işin başlatılması "ExecuteJobProcessing()" yöntemi başlatıldığında gerçekleşir.

Belirli bir kullanıcı için, bu yöntemi başka bir yöntem kullanarak çalışacak şekilde yapılandırmak mümkündür -

ConnectBekleyenİşleyici( <ИмяПроцедуры>, <Интервал>, <Однократно>).

  • Prosedür adı— bekleme işleyicisi olarak bağlanan prosedürün adı. Yönetilen uygulama modülünün (modül) dışa aktarılan prosedürünün adı düzenli uygulama) veya genel ortak modül. Prosedür istemcide bulunmalıdır.
  • Aralık- saniye cinsinden işlemlerin yürütülmesi arasındaki süre.
  • bir Zamanlar- görevin nasıl tamamlanacağı, bir kez olsun ya da olmasın.

ConnectWaitingHandler, 3600 );

1C yapılandırıcısında zamanlanmış bir görevin nasıl ayarlanacağını gösteren iki dakikalık bir video:

Görev mekanizması, 1C yönetim araçlarından biridir. O içerir:

  • tam olarak ne yapılacağını ve hangi sıklıkta yapılacağını belirtmek için gerekli olan genel bir yapılandırma nesnesi olarak zamanlanmış görevler;
  • ve zamanlanmış işler tarafından oluşturulan yerleşik dilin bir nesnesi olarak arka plan işleri.
İlgili sınav sorularını düşünün.

1C sınavının 09.59 sorusu: Platform uzmanı. Zamanlanmış iş örneği:

  1. programlı olarak oluşturulabilir
  2. programın ana menüsünün komutuyla erişilebilen bir liste şeklinde oluşturulabilir ("İşlemler / Zamanlanmış görevler")
  3. her zaman yalnızca bir örnek oluşturulur (ilgili yapılandırma nesnesi oluşturulduğunda)
  4. "Kompozisyon" düğmesi kullanılarak yalnızca Diğer sekmesindeki yapılandırma modunda tanımlanır
  5. doğru cevaplar 1 ve 2
Doğru cevap ilk cevaptır. Zamanlanmış görev önceden tanımlanmışsa (şekil), görev, yapılandırıcıda belirtilen zamanlama ile tek bir örnekte oluşturulacaktır. Önceden tanımlı DEĞİL işlerin örnekleri, Kurumsal modda programlı olarak ayarlanan zamanlamaya göre görünür.
1C sınavının 09.60 sorusu: Platform uzmanı. Aynı anda yürütülen zamanlanmış görevlerin sayısı şunlar olabilir:
  1. herhangi bir sınırlama olmaksızın
  2. herhangi bir sayı, ancak aynı anahtar ve yöntem adıyla iki işi çalıştırmaz
  3. herhangi bir sayı, ancak aynı anahtar ve ada sahip iki görev yürütülmeyecek
  4. herhangi bir sayı, ancak aynı anahtarla ve aynı meta veri nesnesiyle ilişkilendirilmiş iki işi çalıştırmaz
Doğru cevap altıdır. Anahtar, aynı türden birkaç işi gruplamanıza izin veren, zamanlanmış bir işin özelliğidir. Aynı anda yalnızca bir anahtar değeri olan bir görev çalıştırılabilir (boş değer sayılmaz). Ayrıca, aynı anda yalnızca bir kayıt görevi yürütülür. belirli nesne, çarpışmaları önlemek için.
1C sınavının 09.62 sorusu: Platform uzmanı. Zamanlanmış bir görev yöntemi olarak, aşağıdakileri içeren bir prosedür kullanılabilir:
  1. parametrelere sahip olmamalıdır
  2. sadece bir parametre olabilir (değer listesi)
  3. sadece bir parametre olabilir (yapı)
  4. sadece bir parametre (dizi) olabilir
  5. herhangi bir sayıda parametre olabilir
Doğru cevap beşincidir. Zamanlanmış görev yönteminin parametre sayısı, zamanlanmış görevin kendisinin parametre sayısına karşılık gelir.
1C sınavının 09.63 sorusu: Platform uzmanı. Zamanlanmış bir görev oluşturmak için kullanıcının şunlara sahip olması gerekir:
  1. yönetici hakları
  2. bu yapılandırma nesnesini kullanma hakları (rolde yapılandırılabilir)
  3. bu yapılandırma nesnesinin yeni örneklerini oluşturma hakları (rolde yapılandırılabilir)
  4. herhangi bir hak, zamanlanmış iş yöntemi ayrıcalıklı modda yürütülür
Doğru cevap birincidir, sadece yöneticilerin hakkı vardır.
1C sınavının 09.64 sorusu: Platform uzmanı. Konfigüratörde (ilgili konfigürasyon nesnesinde) önceden tanımlandığı gibi bir zamanlanmış görev tanımlanırsa, şu şekilde karakterize edilir (en eksiksiz cevabı seçin):
  1. önceden tanımlanmış bir zamanlanmış görevin bir meta veri nesnesine bağlama ile önceden tanımlanmamış bir zamanlanmış görev örneği oluşturmak mümkün değil
  2. önceden tanımlanmış bir zamanlanmış iş örneği silinmek üzere işaretlenemez ve silinemez
  3. bilgi tabanında yalnızca önceden tanımlanmış zamanlanmış görev örnekleri saklanır, önceden tanımlanmamış örnekler oturum nesneleridir ve veritabanında saklanmaz
  4. doğru cevaplar 1 ve 2
  5. doğru cevaplar 2 ve 3
  6. doğru cevaplar 1, 2, 3
Doğru cevap ikincisidir. Önceden tanımlanmış zamanlanmış iş örnekleri değiştirilebilir ancak silinemez. Her zaman şablon listesinde bulunurlar:
1C sınavının 09.67 sorusu: Platform uzmanı. Zamanlanmış iş yöntemi olarak bir işlev kullanılıyorsa:
  1. fonksiyonun dönüş değeri yoksayılır
  2. bir görevi yürütmeye çalışırken bir hata oluşuyor
  3. sistem bu görevin yürütülmesini bekleyecektir (yürütme eşzamansız olarak gerçekleşmeyecektir)
  4. değer, planlanan işin ilgili parametresine döndürülür
Doğru cevap ilk cevaptır.
1C sınavının 09.61 sorusu: Platform uzmanı. Planlanmış ve arka plan işleri nasıl ilişkilendirilebilir?
  1. Zamanlanmış bir iş, bir arka plan işi oluşturabilir
  2. Düzenleme görevi hatasız bir arka plan işi oluşturur
  3. Bir arka plan işi mutlaka zamanlanmış bir iş oluşturur
  4. ilişki yok
Doğru cevap ikincisidir - arka plan görevi, zamanlanmış bir görev tarafından oluşturulan bir nesnedir ve oluşturulması gerekir, aksi takdirde zamanlanan görevin kendisi anlamını kaybeder.
1C sınavının 09.65 sorusu: Platform uzmanı. Zamanlanmış ve arka plan görevlerinin çalışmasını sağlamak için şunları yapmalısınız:
  1. 1C: Başlangıçta ayarlanmış "Zamanlayıcı" bayrağıyla kurumsal başlangıç
  2. 1C:Enterprise lansmanının kullanılabilirliği, sistemin ilgili yöntemini periyodik olarak yürütür
  3. 1C:Enterprise'ı periyodik olarak sistemin ilgili yöntemini çalıştırarak başlatmanın kullanılabilirliği (ancak yalnızca sistem işleyişinin dosya sürümünde)
  4. hem dosya hem de istemci-sunucu sürümlerinde 1C:Enterprise örneği başlatmaya gerek yoktur
Pratikte doğru cevap üçüncü cevaptır. İstemci-sunucu çalışma modunda, zamanlanmış zamanlanmış görevler küme yöneticisi tarafından başlatılır. Böylece, bilgi bankası ile istemci bağlantısı kurulmamış olsa bile, zamanlanmış görevler (belirli bir bilgi tabanı için yasaklanmamış olmaları şartıyla) yürütülecektir. Çalışmanın dosya versiyonunda otomatik başlatma Zamanlanmış işler, iş zamanlayıcı olarak kullanılmak üzere özel bir istemci bağlantısı gerektirir. Bu bağlantıda bekleme işlemi başlatılmalı ve bazı aralıklarla 1. dil yöntemi ExecuteJobProcessing()'e çağrı yapılmalıdır.
Cevaplara göre doğru cevap dördüncü.
1C sınavının 09.57 sorusu: Platform uzmanı. Arka plan işleri şunları yapmanızı sağlar:
  1. prosedürü programa göre yürütmek
  2. bir prosedürü eşzamansız olarak yürütmek
  3. çökme durumunda yeniden başlat
  4. doğru cevaplar 1 ve 2
  5. doğru cevaplar 2 ve 3
  6. doğru cevaplar 1, 2, 3
Doğru cevap ikincisidir. Asenkron, prosedürün tamamlanmasını beklememek anlamına gelir.
1C sınavının 09.58 sorusu: Platform uzmanı. Aynı anda çalışan arka plan işlerinin sayısı şunlar olabilir:
  1. herhangi bir sınırlama olmaksızın
  2. bilgi bankası başına yalnızca bir görev
  3. kullanıcı oturumu başına yalnızca bir iş
  4. herhangi bir sayı, ancak aynı anahtar ve yöntem adıyla iki işi çalıştıramazsınız
  5. herhangi bir sayı, ancak aynı anahtar ve adla iki görevi çalıştıramazsınız
  6. herhangi bir sayı, ancak aynı anahtarla ve aynı meta veri nesnesiyle ilişkilendirilmiş iki işi çalıştıramazsınız
Doğru cevap dördüncü.
1C sınavının 09.66 sorusu: Platform uzmanı. Tamamlanmış arka plan işleri:
  1. bilgi tabanında saklanır
  2. oturum nesneleridir, bir süre saklanırlar (bilgi tabanında saklanmazlar)
  3. hiçbir şekilde saklanmaz.
Doğru cevap altıncıdır - bir arka plan işi, yalnızca oturum süresince var olan bir 1C:Enterprise dil nesnesidir.