Если Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅, Ρ‚Π΅Ρ€ΠΌΠΈΠ½ «экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Β» ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ абстрактным ΠΈ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌ. ΠœΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, это ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… понятий, Π±Π΅Π· понимания ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ слоТно Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°Ρ… конфигурирования, написания ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°ΠΆΠ΅ администрирования Π±Π°Π·Ρ‹. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‡Π΅ΠΌ ΠΎΠ½ отличаСтся ΠΎΡ‚ класса, ΠΊΠ°ΠΊ создаётся ΠΈ управляСтся Π² 1Π‘, Π° Ρ‚Π°ΠΊΠΆΠ΅ рассмотрим Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ практичСскиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

МногиС ΠΏΡƒΡ‚Π°ΡŽΡ‚ экзСмпляры с самими ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, справочниками ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ), Π½ΠΎ это ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ. Если класс Π² 1Π‘ β€” это Β«Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΒ» (описаниС структуры ΠΈ повСдСния), Ρ‚ΠΎ экзСмпляр β€” ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ «экзСмпляр» ΠΏΠΎ этому Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΡƒ, со своими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ состояниСм. ПониманиС этой Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с коллСкциями, транзакциями ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΊΠΎΠ΄Π°.

Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрёмся ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ β€” ΠΎΡ‚ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΊ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

1. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°: ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ (ΠΈ Π² 1Π‘ Π² частности) экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° β€” это конкрСтная рСализация класса, содСрТащая ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. ΠŸΡ€ΠΎΡ‰Π΅ говоря, Ссли класс β€” это шаблон (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура»), Ρ‚ΠΎ экзСмпляр β€” конкрСтная запись Π² этом справочникС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎΠ²Π°Ρ€ Β«ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ Samsung 24\"Β» с Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»ΠΎΠΌ MON-00123).

Аналогия ΠΈΠ· Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ:

  • πŸ“„ Класс β€” Π±Π»Π°Π½ΠΊ паспорта (Ρ„ΠΎΡ€ΠΌΠ°, поля, ΠΏΡ€Π°Π²ΠΈΠ»Π° заполнСния).
  • πŸ†” ЭкзСмпляр β€” ваш Π»ΠΈΡ‡Π½Ρ‹ΠΉ паспорт с Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠ΅ΠΉ, сСриСй ΠΈ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ.

Π’ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ экзСмпляры ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ для:

  • πŸ“‹ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Β«ΠŸΡ€ΠΈΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΎΡ€Π΄Π΅Ρ€ β„–123Β» ΠΎΡ‚ 15.05.2026).
  • πŸ—ƒοΈ Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΎΠ² (ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ° ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Π° «ООО Ромашка»).
  • βš™οΈ ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² встроСнного языка (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°() ΠΈΠ»ΠΈ Новый HTTPЗапрос).

Π’Π°ΠΆΠ½ΠΎ: экзСмпляр всСгда сущСствуСт Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ состоянии (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Β«ΠΏΡ€ΠΎΠ²ΠΎΠ΄Ρ‘Π½Β» ΠΈΠ»ΠΈ Β«Π½Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Ρ‘Π½Β»), Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ класс описываСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ состояния.

πŸ“Š Π‘ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ 1Π‘ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅?
Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ
Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹
РСгистры
ΠžΡ‚Ρ‡Ρ‘Ρ‚Ρ‹
Π”Ρ€ΡƒΠ³ΠΎΠ΅

2. Как ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ экзСмпляры ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² 1Π‘

Бпособы создания экзСмпляров зависят ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Рассмотрим основныС сцСнарии:

1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ экзСмпляра справочника ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°:

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚() ΠΈΠ»ΠΈ конструктор Новый (для управляСмых Ρ„ΠΎΡ€ΠΌ). ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

// Для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ (8.2)

Π‘ΠΏΡ€ = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.НомСнклатура.Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚();

// Для управляСмых Ρ„ΠΎΡ€ΠΌ (8.3+)

Π‘ΠΏΡ€ = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.НомСнклатура.Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚();

2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² встроСнного языка:

Here ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ конструкторы Новый с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ°:

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Π”Π°Π½Π½Ρ‹Ρ… = Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°("ΠšΠ»ΡŽΡ‡1, ΠšΠ»ΡŽΡ‡2");

HTTPЗапрос = Новый HTTPЗапрос("/api/data");

3. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ экзСмпляра:

Π§Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚()):

Π”ΠΎΠΊ = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.ΠŸΠΎΡΡ‚ΡƒΠΏΠ»Π΅Π½ΠΈΠ΅Π’ΠΎΠ²Π°Ρ€ΠΎΠ².ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠΠΎΠΌΠ΅Ρ€Ρƒ("ПВ-000123", Π”Π°Ρ‚Π°("01.05.2026"));

πŸ’‘

Π’ управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ… для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта справочника ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚() β€” ΠΎΠ½ автоматичСски ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΡƒ Π²Π²ΠΎΠ΄Π°.

3. Класс vs. экзСмпляр: ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ различия

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹, сравним класс ΠΈ экзСмпляр Π² контСкстС 1Π‘:

Π₯арактСристика Класс (ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅) ЭкзСмпляр
ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ОписаниС структуры (Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, события) ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π² 1Π‘ Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ НомСнклатура Π—Π°ΠΏΠΈΡΡŒ Β«ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ SamsungΒ» Π² этом справочникС
Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π’ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π’ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… (Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ _ReferenceXXX, _DocumentXXX)
Π˜Π·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠœΠ΅Π½ΡΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠœΠ΅Π½ΡΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ записи, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² 1Π‘ Π½Π΅Ρ‚ явного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° "new"?

Π’ Ρ€Π°Π½Π½ΠΈΡ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (8.0–8.2) для создания экзСмпляров использовались ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚(). Π’ 8.3+ появился синтаксис Новый, Π½ΠΎ это Π½Π΅ классичСский "new" ΠΈΠ· OOP, Π° Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄ 1Π‘ Π°Π½Π°Π»ΠΎΠ³.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ 1Π‘ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Β» часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ синоним «экзСмпляра», Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅. НапримСр, Ρ„Ρ€Π°Π·Π° Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Β» ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ экзСмпляр Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«ΠŸΡ€ΠΈΡ…ΠΎΠ΄Π½Π°ΡΠΠ°ΠΊΠ»Π°Π΄Π½Π°Ρ123Β»), Π° Π½Π΅ класс Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.ΠŸΡ€ΠΈΡ…ΠΎΠ΄Π½Π°ΡΠΠ°ΠΊΠ»Π°Π΄Π½Π°Ρ.

4. Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

ЭкзСмпляр Π² 1Π‘ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ нСсколько этапов β€” ΠΎΡ‚ создания Π΄ΠΎ уничтоТСния. Π Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ:

1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅:

ЭкзСмпляр появляСтся Π² памяти ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ конструктора ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° создания. На этом этапС ΠΎΠ½ сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² RAM ΠΈ Π½Π΅ сохранён Π² Π±Π°Π·Π΅.

2. Π—Π°ΠΏΠΈΡΡŒ Π² Π±Π°Π·Ρƒ:

ПослС Π²Ρ‹Π·ΠΎΠ²Π° Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ() экзСмпляр ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Бсылка) ΠΈ сохраняСтся Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… Π‘Π£Π‘Π”. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

НовыйВовар = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.НомСнклатура.Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚();

НовыйВовар.НаимСнованиС = "ΠœΡ‹ΡˆΡŒ Logitech M185";

НовыйВовар.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ(); // Π’Π΅ΠΏΠ΅Ρ€ΡŒ экзСмпляр сущСствуСт Π² Π±Π°Π·Π΅

3. ИзмСнСниС:

ЭкзСмпляр ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹) ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ. Π’Π°ΠΆΠ½ΠΎ: ΠΏΡ€ΠΈ этом создаётся новая вСрсия ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ вСрсионности).

4. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅:

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ экзСмпляра ΠΈΠ· Π±Π°Π·Ρ‹ выполняСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(). Однако Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠ° Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅:

Π‘Ρ‚Π°Ρ€Ρ‹ΠΉΠ’ΠΎΠ²Π°Ρ€.ΠŸΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒΠΠ°Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅();

Π‘Ρ‚Π°Ρ€Ρ‹ΠΉΠ’ΠΎΠ²Π°Ρ€.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ();

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ) нСсохранённый экзСмпляр сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ сСссии. Если Π½Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ(), измСнСния ΠΏΡ€ΠΎΠΏΠ°Π΄ΡƒΡ‚ послС закрытия Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ сСанса.

Π£Π±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…|ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅|Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию (для ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…)|ΠŸΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ вмСсто ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ удалСния (Ссли Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ)-->

5. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с экзСмплярами

Рассмотрим Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Π³Π΄Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ экзСмпляров ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр Π½Π° основС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ:

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉΠ”ΠΎΠΊ = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.РСализацияВоваров.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠΠΎΠΌΠ΅Ρ€Ρƒ("Π Π’-00123");

ΠšΠΎΠΏΠΈΡΠ”ΠΎΠΊΠ° = Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉΠ”ΠΎΠΊ.Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ();

ΠšΠΎΠΏΠΈΡΠ”ΠΎΠΊΠ°.Π”Π°Ρ‚Π° = ВСкущаяДата();

ΠšΠΎΠΏΠΈΡΠ”ΠΎΠΊΠ°.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ();

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: Π Π°Π±ΠΎΡ‚Π° с коллСкциями

ЭкзСмпляры часто хранятся Π² массивах ΠΈΠ»ΠΈ структурах. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.НомСнклатура.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ("ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€"));

// ИзмСняСм экзСмпляр Π² массивС

БписокВоваров[0].Артикул = "NEW-ARTICLE";

БписокВоваров[0].Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ(); // Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡΡ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ запись Π² справочникС!

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ экзСмпляров

Для сравнСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Бсылка ΠΈΠ»ΠΈ Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉΠ˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€(), Π° Π½Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ =:

Если Π’ΠΎΠ²Π°Ρ€1.Бсылка = Π’ΠΎΠ²Π°Ρ€2.Бсылка Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ экзСмпляр!");

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

πŸ’‘

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с управляСмыми Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° автоматичСски привязываСтся ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅ Ρ‡Π΅Ρ€Π΅Π· свойство ΠžΠ±ΡŠΠ΅ΠΊΡ‚. ИзмСнСния Π² Ρ„ΠΎΡ€ΠΌΠ΅ сразу ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π½Π° экзСмплярС, Π½ΠΎ Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Π±Π°Π·Π΅ Π΄ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ().

6. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с экзСмплярами

Π”Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ошибки. Π’ΠΎΡ‚ самыС распространённыС:

1. ΠŸΡƒΡ‚Π°Π½ΠΈΡ†Π° с ссылками ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ

Ошибка: ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ() Ρƒ ссылки, Π° Π½Π΅ Ρƒ экзСмпляра:

// ❌ ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

БсылкаНаДок.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ(); // Ошибка: "ΠœΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½"

// βœ… ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ

Π”ΠΎΠΊ = БсылкаНаДок.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚();

Π”ΠΎΠΊ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ();

2. Π£Ρ‚Π΅Ρ‡ΠΊΠΈ памяти

Если Π½Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ экзСмпляры (особСнно большиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ), это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ замСдлСнию Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:

Π’Π°Π±Π»ΠΈΡ†Π° = Новый Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ();

//.. Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ..

Π’Π°Π±Π»ΠΈΡ†Π° = НСопрСдСлСно; // ОсвобоТдаСм ΠΏΠ°ΠΌΡΡ‚ΡŒ

3. НСучтённая Π²Π΅Ρ€ΡΠΈΠΎΠ½Π½ΠΎΡΡ‚ΡŒ

Π’ 1Π‘ ΠΏΡ€ΠΈ записи экзСмпляра создаётся новая вСрсия. Если Π½Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это, ΠΌΠΎΠΆΠ½ΠΎ случайно Β«Π·Π°Ρ‚Π΅Ρ€Π΅Ρ‚ΡŒΒ» ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. НапримСр:

Π”ΠΎΠΊ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ(РСТимЗаписиДокумСнта.Π—Π°ΠΏΠΈΡΡŒ); // Боздаст Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ

Π”ΠΎΠΊ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ(РСТимЗаписиДокумСнта.ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ); // ΠŸΡ€ΠΎΠ²Π΅Π΄Ρ‘Ρ‚ ΠΈ создаст Π²Π΅Ρ€ΡΠΈΡŽ

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с распрСдСлёнными Π±Π°Π·Π°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² 1Π‘:Π£Π’ с Ρ‚Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ складами) экзСмпляры ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ состояния Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΡƒΠ·Π»Π°Ρ…. ВсСгда провСряйтС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠŸΠΎΡΠ»Π΅Π΄Π½ΡŽΡŽΠ’Π΅Ρ€ΡΠΈΡŽ().

7. ЭкзСмпляры Π² контСкстС OOP ΠΈ 1Π‘

Π₯отя 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ Π½Π΅ являСтся ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌ ООП-языком, Π² Π½Π΅ΠΉ Π΅ΡΡ‚ΡŒ элСмСнты ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°. Π‘Ρ€Π°Π²Π½ΠΈΠΌ:

Π§Ρ‚ΠΎ заимствовано ΠΈΠ· OOP:

  • πŸ”Ή Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ: Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π΅ΡΡ‚ΡŒ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠŸΡ€ΠΎΠ²Π΅ΡΡ‚ΠΈ(), ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅()).
  • πŸ”Ή НаслСдованиС: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ свойства ΠΎΡ‚ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, всС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΡ‚ класса Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚).

Π§Π΅Π³ΠΎ Π½Π΅Ρ‚ Π² 1Π‘ (Π² классичСском Π²ΠΈΠ΄Π΅):

  • 🚫 ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ: нСльзя ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… классов.
  • 🚫 Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹: Π½Π΅Ρ‚ явной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ интСрфСйсов, ΠΊΠ°ΠΊ Π² Java ΠΈΠ»ΠΈ C#.

МоТно Π»ΠΈ Π² 1Π‘ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Singleton?

Π”Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ управляСмого прилоТСния ΠΈΠ»ΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с экспортной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

ΠŸΠ΅Ρ€Π΅ΠΌ мЭкзСмплярSingleton;

Ѐункция ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ­ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ€()

Если мЭкзСмплярSingleton = НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

мЭкзСмплярSingleton = Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°();

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ мЭкзСмплярSingleton;

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ;

Но это Π½Π΅ классичСский Singleton, Π° Π΅Π³ΠΎ упрощённая имитация.

8. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с экзСмплярами

НСэффСктивная Ρ€Π°Π±ΠΎΡ‚Π° с экзСмплярами ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ систСму. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄:

1. ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… экзСмпляров

Если Π²Π°ΠΌ постоянно Π½ΡƒΠΆΠ΅Π½ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ справочник (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «Основной склад»), Π·Π°Π³Ρ€ΡƒΠΆΠ°ΠΉΡ‚Π΅ Π΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·:

ΠŸΠ΅Ρ€Π΅ΠΌ мОсновнойБклад;

Ѐункция ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠžΡΠ½ΠΎΠ²Π½ΠΎΠΉΠ‘ΠΊΠ»Π°Π΄()

Если мОсновнойБклад = НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

мОсновнойБклад = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.Π‘ΠΊΠ»Π°Π΄Ρ‹.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ("Основной склад");

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ мОсновнойБклад;

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ;

2. Массовая ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π±Π΅Π· создания экзСмпляров

Для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с большими Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ() Π±Π΅Π· получСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²:

Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.НомСнклатура.Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ();

Пока Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ() Π¦ΠΈΠΊΠ»

// Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ со ссылкой, Π° Π½Π΅ с экзСмпляром

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°.НаимСнованиС);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

3. ИспользованиС лСгковСсных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Для Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… вмСсто Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈΠ»ΠΈ Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β€” ΠΎΠ½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ мСньшС памяти.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3.20+ появился ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ управляСмых Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ экзСмпляры ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ доступС. Если ваша конфигурация Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, провСряйтС Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Ρ‡Π΅Ρ€Π΅Π· Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Π”Π°Π½Π½Ρ‹Ρ….ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΠ‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ().

πŸ’‘

Для ускорСния Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ ΠΏΠΎ экзСмплярам ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ индСксированныС Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ (Π² настройках ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…). НапримСр, Ссли часто ΠΈΡ‰Π΅Ρ‚Π΅ Π½ΠΎΠΌΠ΅Π½ΠΊΠ»Π°Ρ‚ΡƒΡ€Ρƒ ΠΏΠΎ Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»Ρƒ, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ индСкс Π½Π° Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ Артикул.

FAQ: ЧастыС вопросы ΠΎΠ± экзСмплярах ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² 1Π‘

МоТно Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±Π΅Π· записи Π² Π±Π°Π·Ρƒ?

Π”Π°, экзСмпляр сущСствуСт Π² памяти Π΄ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ(). НапримСр:

НовыйВовар = Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.НомСнклатура.Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚();

НовыйВовар.НаимСнованиС = "ВСстовый Ρ‚ΠΎΠ²Π°Ρ€";

// Π—Π΄Π΅ΡΡŒ экзСмпляр Π΅ΡΡ‚ΡŒ, Π½ΠΎ Π² Π±Π°Π·Π΅ Π΅Π³ΠΎ Π½Π΅Ρ‚!

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΡƒΠ΄ΠΎΠ±Π΅Π½ для ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ сохранСниСм.

Π§Π΅ΠΌ отличаСтся ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚() ΠΎΡ‚ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚()?

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ экзСмпляр ΠΈΠ· Π±Π°Π·Ρ‹ ΠΏΠΎ ссылкС, Π° Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚() β€” Π½ΠΎΠ²Ρ‹ΠΉ пустой экзСмпляр для заполнСния. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π‘ΡƒΡ‰Π”ΠΎΠΊ = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.ΠŸΡ€ΠΈΡ…ΠΎΠ΄Π½Π°ΡΠΠ°ΠΊΠ»Π°Π΄Π½Π°Ρ.ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚(БсылкаНаДок); // Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ

НовыйДок = Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.ΠŸΡ€ΠΈΡ…ΠΎΠ΄Π½Π°ΡΠΠ°ΠΊΠ»Π°Π΄Π½Π°Ρ.Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚(); // Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ

ΠŸΠΎΡ‡Π΅ΠΌΡƒ послС измСнСния экзСмпляра Π² Ρ„ΠΎΡ€ΠΌΠ΅ измСнСния Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ?

НаиболСС частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° β€” отсутствиС Π²Ρ‹Π·ΠΎΠ²Π° Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ(). Π’ управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅:

  • πŸ”Ή Π•ΡΡ‚ΡŒ Π»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Π½ΡΡ‚ΡŒ сохранСниС?
  • πŸ”Ή НС ΡΠ±Ρ€ΠΎΡˆΠ΅Π½Ρ‹ Π»ΠΈ ΠΏΡ€Π°Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° запись?
  • πŸ”Ή НСт Π»ΠΈ ошибок Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π­Ρ‚ΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΎ() для ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ΠΎΠ²).
Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, сущСствуСт Π»ΠΈ экзСмпляр Π² Π±Π°Π·Π΅?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ БущСствуСт() для ссылок ΠΈΠ»ΠΈ ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎ..() для поиска:

Если НС Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ.ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹.БущСствуСт(Π‘ΡΡ‹Π»ΠΊΠ°ΠΠ°ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Π°) Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½!");

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

МоТно Π»ΠΈ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° 1Π‘ Π² JSON?

ΠŸΡ€ΡΠΌΠΎΠΉ сСриализации Π½Π΅Ρ‚, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ ΠΈΠ»ΠΈ Π’Π°Π±Π»ΠΈΡ†ΡƒΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒJSON():

ДанныСДляJSON = Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°();

ДанныСДляJSON.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("НаимСнованиС", ΠžΠ±ΡŠΠ΅ΠΊΡ‚.НаимСнованиС);

ДанныСДляJSON.Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("Π”Π°Ρ‚Π°", ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π”Π°Ρ‚Π°);

JSONΠ‘Ρ‚Ρ€ΠΎΠΊΠ° = Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒJSON(ДанныСДляJSON);

Для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒJSON().