1c чухал алдаа гарлаа. Мэдээллийн сангийн хөрвүүлэлтийн алдаа. C, MS SQL ашиглан мэдээллийн сангийн тохиргоог сэргээх

1С: Аж ахуйн нэгж дээр ажиллах үед дараах мессеж гарч ирж болно: "1C: Enterprise-ийн шинэ хувилбартай ажиллахын тулд мэдээллийн баазыг хөрвүүлэх шаардлагатай." Яагаад энэ цонх гарч ирэх вэ, алдааг хэрхэн арилгах вэ?

Ихэнх тохиолдолд цонхны харагдах шалтгаан нь програмыг платформын хуучирсан хувилбараас шинэ хувилбар руу шилжүүлсэн явдал юм. Өөр өөр платформ дээр мэдээллийн сан 1Сөөрийн замаар бүрэлдэж, өөр найрлагатай болдог. Хийх ёстой зүйл бол мэдээллийн санг (бүтэц нь хуучирсан платформтой тохирч байгаа) шинэ формат руу хөрвүүлэх явдал юм.

Өгөгдлийн сангийн хөрвүүлэлт

Энэ процедур нь энгийн боловч хөрвүүлэх явцад алдаа гарсан тохиолдолд эхлээд мэдээллийн сангийн нөөц хуулбарыг үүсгэхийг зөвлөж байна (жишээлбэл, компьютер унтарч, үр дүнд нь мэдээллийн сан 1С, програм өөрөө гэмтсэн байж магадгүй). Дараа нь дараах үйлдлийн алгоритмыг ашиглана уу.

  • Мэдээллийн санг тохируулагч горимд нээх;
  • Та мэдээллийн баазыг хөрвүүлэхийг хүссэн мессежийг харах болно. Баталгаажуулах дээр дарна уу;

  • Тохируулагчийг хаа.

Мэдээллийн санг нээх - энэ нь асуудалгүйгээр эхлэх ёстой. Хэрэв хөрвүүлсний дараа алдааны цонх гарч ирсээр байвал та процедурыг дахин оролдож болно. Хэрэв энэ нь тус болохгүй бол та 1С програмисттай холбоо барих хэрэгтэй. Заримдаа үйлдлийг гүйцэтгэх явцад програм хөлддөг. Одоогоор ямар нэгэн арга хэмжээ авах шаардлагагүй.

Чухал! Мэдээллийн сан 1СПрограмын хамгийн сүүлийн хувилбараар хөрвүүлсэн файлыг өмнөх хувилбарууд дээр нээх боломжгүй.

Суурь

Бид "MessageTrackingLog" мэдээллийн шинэ бүртгэл үүсгэх шаардлагатай болсон. Тохиргоонд нэмж, өгөгдлийг ачааллаа. Дараа нь оновчлолын ажил эхэлсэн. Би бүртгэлийн бүтцийг өөрчлөх шаардлагатай болсон. Гэхдээ тэнд байгаагүй!

Энд бүх зүйл тодорхой байна. Бичлэгүүд өвөрмөц бус болсон тул та тэдгээрийг устгах хэрэгтэй!

Хамгийн хялбар арга бол:

NewRecord = InformationRegisters.MessageTrackingLog.CreateRecordSet(); NewRecord.Write();

Энэ аргыг ашигласнаар бид 1С дахь бүртгэлийг маш хурдан арилгах болно (гэхдээ энэ нь бас бидний алдаа болно).

Алдаа

Бүртгэл хоосон байгаа бололтой, та 1С-ийг шинэчлэх боломжтой. Би чамайг гайхшруулахыг хүсэхгүй байна, гэхдээ дахиад алдаа гарна:


Алдаа нь юуг илэрхийлж байна вэ:

Мэдээллийн санг шинэчлэх явцад ноцтой алдаа гарлаа
учир нь:
Өвөрмөц индекст өвөрмөц бус утгыг оруулахыг оролдож байна:
Microsoft SQL Server Native Client 11.0: "dbo._InfoRgChngR34546NG" объектын нэр болон "_InfoR34546_ByNodeMsg_RNTSRRRRRNG" индексийн нэрийн давхардсан түлхүүр олдсон тул CREATE UNIQUE INDEX мэдэгдлийг зогсоосон. Давхардсан түлхүүрийн утга нь (0x00000011,d7, , 4015 оны 9-р сарын 27 22:22, 768404,00,00,00,00,00,00).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, төлөв=1, Хүнд байдал=10, эх=1505, мөр=1

Тайлбар

SQL-ийн бүтцийг ойлгоцгооё. Бидэнд бүртгэл байгаа "MessageTrackingLog", SQL дээр энэ нь хүснэгтэд байрладаг " _InfoR34546". Та үүнийг тусгай боловсруулалт эсвэл "нүдлэх" аргыг ашиглан шалгаж болно (хүснэгтийн нэрийг алдааны текстэнд аль хэдийн зааж өгсөн тул бид үүнийг хийх шаардлагагүй).

Одоо би юу болсныг тайлбарлах болно. Бид өгөгдлийг бүртгэлд ачаалахад SQL-д энэ нь хүснэгтэд орсон" _InfoR34546". Бид 1С дахь код бүхий хүснэгтийг цэвэрлэхэд энэ өгөгдлийг хүснэгтээс устгасан" _InfoR34546", гэхдээ тэдгээрийг хүснэгтэд хуулсан" _InfoRgChngR34546". Энэ нь асуудал болсон.

Шийдэл

Энэ асуудлыг шийдэхийн тулд бид "_InfoRgChngR34546" SQL хүснэгтийг цэвэрлэх хэрэгтэй.

Би "Microsoft SQL Server Management Studio"-ийн жишээг ашиглан танд хэлэх болно. Руу явцгаая " Менежментийн студио". Манай мэдээллийн санг олоод хүснэгтийн табыг нээгээд дурын дээр товшоод "Шинэ асуулга" товчийг дарна уу: Одоо бид асуулга бичнэ үү.

"_InfoRgChngR34546" хүснэгтийг таслах

Та өөр ширээтэй байж магадгүй! Битгий мартаарай!

Тэгээд гүйцэтгэх товчийг дарах эсвэл "F5" товчийг дарна уу. Үр дүн нь ийм байх ёстой:

Ингээд л та 1С-ийг аюулгүйгээр шинэчлэх боломжтой бөгөөд ямар ч алдаа гарахгүй!

Бид шинэ сервер рүү нүүсэн. Энэ нь SQL болон 1C дээр ажилладаг. Хуучныхтай харьцуулахад хамаагүй сэрүүн байсан. Гилевийн туршилт ч үүнийг баталжээ: хуучин серверүүд дээр 10-15-ын эсрэг 39-ийг өгсөн. Тиймээс бид худалдан авалт хийснийхээ дараа мэдээллийн санг шилжүүлж, ажиллаж эхэлсэн.

Гэвч зарим үед ямар нэг зүйл буруу болсон - хэрэглэгчид удаан ажлын талаар гомдоллож эхлэв. Бид сервер болон үйлчилгээний тодорхой тохиргоог хийсэн (энэ нь тусдаа нийтлэлийн сэдэв) бөгөөд серверийг дахин ачаалахаар шийдсэн бөгөөд азаар дахин ачаалах хурд 2 минут байсан (бусад сервер дээр энэ нь 10 хүртэл байсан). Үүний дараа 1С-д нэвтрэх үед бид дараах мессежийг хүлээн авна.

"Анхаарал!!! Сүүлийн бүтцийн өөрчлөлтийн дараа өгөгдлийг шинэчлэх явцад алдаа гарлаа. Би шинэчлэлтийг давтах ёстой юу? "Үнэхээр биш"

"Тийм" дээр дарсны дараа дараах зүйл гарч ирнэ.

“Бүрэн бус тохиргоог хадгалах үйлдэл илэрсэн. Үргэлжлүүлэхийн тулд та үйлдлийг дуусгах ёстой."

Миний хийхээр шийдсэн хамгийн эхний зүйл бол Managment Studio дахь CHECKDB байсан - 2 цаг хүлээсний дараа (500 ГБ мэдээллийн сан) - бүх зүйл хэвийн болсон.

Би интернетээс динамик шинэчлэлтийн үед ижил алдаа гардаг гэсэн мэдээллийг олсон.

Онлайнаар санал болгож буй шийдлүүд тэр даруй тус болоогүй ч бусад арга хэмжээний хамт үр дүнгээ өгсөн. Тэгэхээр би юу хийсэн:

Шийдэл:

  1. Сүлжээний шийдэлд юу дутагдаж байв:

sp_configure 'шинэчлэлтийг зөвшөөрөх', 1
override ашиглан дахин тохируулна уу
яв

2. Өгөгдлийн санг сэргээх горимд оруулна

Өгөгдлийн сангийн багцыг өөрчлөх ЯАРАЛТАЙ, SINGLE_USER

3. Бид мэдээллийн баазын туршилтыг хийдэг:

dbcc checkdb('db_name', REPAIR_ALLOW_DATA_LOSS)

4. Өгөгдлийн санг сэргээх горимоос гарах:

Өгөгдлийн сангийн багцыг ОНЛАЙН, MULTI_USER өөрчлөх

5. Зарчмын хувьд, хэрэв та суурь өөрөө бүх зүйл хэвийн байгаа гэдэгт итгэлтэй байвал 2-4-р зүйлийг хийх шаардлагагүй. Дараа нь бид SQL профайл дээр хоёр асуулга ажиллуулна:

FileName = 'commit' гэсэн тохиргооноос устгах
FileName = 'dbStruFinal' тохиргооноос устгах

Эдгээр бүртгэл нь динамик шинэчлэлтийг хариуцдаг - та тэдгээрийг устгахаас айх хэрэггүй.

Өгөгдлийн сангийн асуултуудын ажлын хувилбаруудад:

Файлын нэр = 'commit' тохиргооноос * сонгоно уу.

Файлын нэр = 'dbStruFinal' тохиргооноос * сонгоно уу.

хоосон байх болно.

6. тохиргоог буцаана уу:

sp_configure 'шинэчлэлтийг зөвшөөрөх', 0
яв

7. Үүний дараа бид тохируулагчийг ажиллуулж, мэдээллийн сан ажиллаж эхэлсэн.

Мөн эхний тугийг авсны дараа суурь нь ажиллаж эхлэх боломжтой.

Sandbox

эрх мэдэл 2013 оны 9-р сарын 18-ны 15:24 цагт

1С, MS SQL ашиглан мэдээллийн баазын тохиргоог сэргээх

Нэгэн удаа би асуудалтай тулгарсан: репозитороос тохиргоог шинэчлэх үед алдаа гарч, 1С хаагдсан.

Дараа нь олж мэдсэнээр тохиргооны хадгалалт устгагдсан бөгөөд тохиргоог шинэчлэх үед өгөгдлийн сангийн тохиргоог мөн сангаас устгасан байна. Мэдээллийн аюулгүй байдлын динамик шинэчлэлтийн үед ижил төстэй алдаа өмнө гарч байсан.

Учир нь Энэ асуудал нэг бус удаа гарч ирсэн бөгөөд би эмчилгээний сонголтыг хуваалцахаар шийдсэн.

Дараагийн удаа тохируулагчийг эхлүүлэхэд алдаа гарч ирэв: "Анхаарал!!! Сүүлийн бүтцийн өөрчлөлтийн дараа өгөгдлийг шинэчлэх явцад алдаа гарлаа. Би шинэчлэлтийг давтах ёстой юу? Хэрэв хариулт нь тийм бол бид "Бүрэн бус тохиргоог хадгалах үйлдэл илэрсэн. Үргэлжлүүлэн ажиллахын тулд та үйлдлийг дуусгах ёстой" гэж бичсэний дараа програм хаагдана.

Энэ асуудлыг шинжлэхдээ асуудлыг шийдэх хэд хэдэн шийдлийг олсон бөгөөд шийдэл бүр өөр өөр тохиолдолд ажилладаг.

Сонголт 1 (хэрэв танд ижил тохиргоотой хуулбартай SQL нөөцлөлт байгаа бол):

Мэдээллийн аюулгүй байдлын хуулбарыг байршуулж, дараах хүсэлтийг биелүүлнэ.
.. .. ДОТОР ОРУУЛАХ ГЭЖ АШИГЛАХ .. .. СОНГОХ * .. ЯВАХ
Энэ тохиолдолд мэдээллийн аюулгүй байдлын тохиргоог хадгалсан хүснэгтийг дахин дүүргэнэ. Энэ үйлдлийн дараа мэдээллийн аюулгүй байдлыг шалгаж, залруулахыг зөвлөж байна.

Сонголт 2 (хэрэв нөөц байхгүй бол):

Энэ сонголтыг сүүлчийн дарс болгон хувиргасан. Учир нь тохиргоо нь боловсруулагдаж байсан бөгөөд тэд хадгалах санд тулгуурлан нөөцлөхөө бага зэрэг мартжээ.
Өгөгдлийн санд "Тохиргоо" хүснэгтээс хоёр бичлэгийг "Файлын нэр" баганын утгаар устгасан болно - dbStruFinal ба commit

Дараах хүсэлтийг гүйцэтгэнэ.
GO DELETE-ийг АШИГЛА. ХААНА FileName = "dbStruFinal" -аас УСТГАХ. ХААНА FileName = "commit" GO
Хачирхалтай нь суурь нь амьдралд ирдэг.

Сэдвүүд: 1C Enterprise 8.2, SQL, тохиргоог сэргээх

Зохиогч нь хараахан болоогүй байгаа тул энэ нийтлэлд тайлбар өгөх боломжгүй бүрэн эрхтнийгэмлэгийн гишүүн. Зохиогчийг хүлээн авсны дараа л та түүнтэй холбогдох боломжтой болно