Π Π°Π±ΠΎΡ‚Π° с Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ часто Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ опрСдСлСния ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ строки β€” Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, формирования ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ бизнСс-процСссов. Однако стандартный интСрфСйс ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π΅ всСгда прСдоставляСт Π½ΠΎΠΌΠ΅Ρ€ строки "ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ". Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ строки Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сцСнариях: ΠΎΡ‚ простого просмотра Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ Π΄ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ извлСчСния Π½ΠΎΠΌΠ΅Ρ€Π° Ρ‡Π΅Ρ€Π΅Π· встроСнный язык.

ΠœΡ‹ рассмотрим Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для Ρ€Π°Π·Π½Ρ‹Ρ… вСрсий ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (1Π‘ 8.3, 8.2) ΠΈ популярных ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ (Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»Π΅ΠΉ, БухгалтСрия прСдприятия, Π—Π°Ρ€ΠΏΠ»Π°Ρ‚Π° ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрсоналом). ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ случаям, ΠΊΠΎΠ³Π΄Π° Π½ΠΎΠΌΠ΅Ρ€ строки Π½ΡƒΠΆΠ΅Π½ Π½Π΅ просто для отобраТСния, Π° для дальнСйшСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ экспортС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с внСшними систСмами.

Π’Π°ΠΆΠ½ΠΎ: ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ получСния Π½ΠΎΠΌΠ΅Ρ€Π° строки зависят ΠΎΡ‚ контСкста. Π’ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ Ρ„ΠΎΡ€ΠΌΡ‹, Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹. Если Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” Π΅Π³ΠΎ Π½Π΅ сущСствуСт, Π½ΠΎ ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄ Π²Π°ΡˆΡƒ Π·Π°Π΄Π°Ρ‡Ρƒ.

1. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° строки Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅

Π‘Π°ΠΌΡ‹ΠΉ простой случай β€” ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ строки прямо Π² интСрфСйсС 1Π‘. НапримСр, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΡ‚Ρ‡Π΅Ρ‚Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ, Π³Π΄Π΅ Π΄Π°Π½Π½Ρ‹Π΅ прСдставлСны Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π—Π΄Π΅ΡΡŒ Π½ΠΎΠΌΠ΅Ρ€ строки ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ.

Для этого:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠžΠ±ΠΎΡ€ΠΎΡ‚Π½ΠΎ-сальдовая Π²Π΅Π΄ΠΎΠΌΠΎΡΡ‚ΡŒ).
  2. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌ рСдактирования ΠΌΠ°ΠΊΠ΅Ρ‚Π° (ДСйствия β†’ Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΠ΅Ρ‚).
  3. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ слСва ΠΎΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ….
  4. Π’ ячСйку Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ НомСрБтроки().
  5. РастянитС Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ Π½Π° всС строки Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

ПослС этого каТдая строка Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π°. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: нумСрация начинаСтся с 1, Π° Π½Π΅ с 0, Ρ‡Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ для Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… расчСтов.

πŸ“Š Какой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ 1Π‘ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ?
Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»Π΅ΠΉ
БухгалтСрия прСдприятия
Π—Π°Ρ€ΠΏΠ»Π°Ρ‚Π° ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрсоналом
ERP
Другая

2. НомСр строки Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ Ρ„ΠΎΡ€ΠΌΡ‹

Если Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ РСализация Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΈΠ»ΠΈ справочникС НомСнклатура), Ρ‚ΠΎ стандартных срСдств для отобраТСния Π½ΠΎΠΌΠ΅Ρ€Π° строки Π½Π΅Ρ‚. Однако Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ.

Для этого:

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΡƒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° (ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ β†’ ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ β†’ [Π’Π°Ρˆ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚] β†’ Π€ΠΎΡ€ΠΌΡ‹).
  2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ с Ρ‚ΠΈΠΏΠΎΠΌ Число.
  3. Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΡ€ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ события ΠŸΡ€ΠΈΠΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ:
ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π’Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ΅ΠŸΠΎΠ»Π΅ΠŸΡ€ΠΈΠΠΊΡ‚ΠΈΠ²ΠΈΠ·Π°Ρ†ΠΈΠΈΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚, Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Колонка, Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Π°ΡΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°)

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.Π’Π΅ΠΊΠ‘Ρ‚Ρ€ΠΎΠΊΠ°.НомСрБтроки = Π‘Ρ‚Ρ€ΠΎΠΊΠ°.ИндСкс + 1;

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΡ€ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ строки ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ любой ячСйки. Если нумСрация сбиваСтся ΠΏΡ€ΠΈ сортировкС β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ событиС ΠŸΡ€ΠΈΠ˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈΠ”Π°Π½Π½Ρ‹Ρ… для пСрСсчСта Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ².

πŸ’‘

Для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ автоматичСский пСрСсчСт Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΈ сортировкС, Ссли нумСрация Π½ΡƒΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ контроля.

3. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° строки Π² ΠΊΠΎΠ΄Π΅ 1Π‘

Когда Π½ΠΎΠΌΠ΅Ρ€ строки трСбуСтся Π½Π΅ для отобраТСния, Π° для Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для условной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ»ΠΈ записи Π² ΠΆΡƒΡ€Π½Π°Π»), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ встроСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с коллСкциями. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ сцСнарии:

  • πŸ“Œ Для Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: ΠΌΠ΅Ρ‚ΠΎΠ΄ ИндСкс() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ строки (начиная с 0).
  • πŸ“Œ Для Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ поля: свойство ВСкущаяБтрока.ИндСкс.
  • πŸ“Œ Для запроса: псСвдоколонка ROW_NUMBER() Π² языкС запросов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

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

Π’Π°Π±Π»ΠΈΡ†Π°.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("НаимСнованиС");

Π’Π°Π±Π»ΠΈΡ†Π°.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ().НаимСнованиС = "Π’ΠΎΠ²Π°Ρ€ 1";

Π’Π°Π±Π»ΠΈΡ†Π°.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ().НаимСнованиС = "Π’ΠΎΠ²Π°Ρ€ 2";

// ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки (индСкс + 1)

ВСкущаяБтрока = Π’Π°Π±Π»ΠΈΡ†Π°.НайтиБтроку(Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°("НаимСнованиС", "Π’ΠΎΠ²Π°Ρ€ 2"));

НомСрБтроки = Π’Π°Π±Π»ΠΈΡ†Π°.ИндСкс(ВСкущаяБтрока) + 1; // Π’Π΅Ρ€Π½Π΅Ρ‚ 2

Для запросов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ:

Запрос = Новый Запрос;

Запрос.ВСкст =

"ВЫБРАВЬ

| ROW_NUMBER() КАК НомСрБтроки,

| НомСнклатура.НаимСнованиС

|Π˜Π—

| Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура КАК НомСнклатура

|Π£ΠŸΠžΠ Π―Π”ΠžΠ§Π˜Π’Π¬ ПО

| НомСнклатура.НаимСнованиС";

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ();

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ссли ROW_NUMBER() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅Π²Π΅Ρ€Π½ΡƒΡŽ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΡŽ?

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈ использовании сСкции GROUP BY. Π’ этом случаС нумСрация примСняСтся ΠΊ сгруппированным Π΄Π°Π½Π½Ρ‹ΠΌ, Π° Π½Π΅ ΠΊ исходным строкам. РСшСниС β€” пСрСнСсти ROW_NUMBER() Π² подзапрос ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

4. НумСрация строк Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ… ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ…

Π’ ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Акт свСрки ΠΈΠ»ΠΈ Π‘Ρ‡Π΅Ρ‚-Ρ„Π°ΠΊΡ‚ΡƒΡ€Π°) Π½ΠΎΠΌΠ΅Ρ€ строки часто трСбуСтся для соотвСтствия Π·Π°ΠΊΠΎΠ½ΠΎΠ΄Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ трСбованиям. Π—Π΄Π΅ΡΡŒ Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°:

  1. БтатичСская нумСрация: добавляСтся ΠΊΠ°ΠΊ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° Π² ΠΌΠ°ΠΊΠ΅Ρ‚ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° с Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΎΠΉ НомСрБтроки().
  2. ДинамичСская нумСрация: проставляСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ΠŸΡ€ΠΈΠšΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ΅Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ динамичСской Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠŸΡ€ΠΈΠšΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ΅Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°(Π”Π°Π½Π½Ρ‹Π΅Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ, Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Π°ΡΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°)

НомСрБтроки = 1;

Для КаТдого Π‘Ρ‚Ρ€ΠΎΠΊΠ° Из Π”Π°Π½Π½Ρ‹Π΅Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ.Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° Π¦ΠΈΠΊΠ»

Π‘Ρ‚Ρ€ΠΎΠΊΠ°.НомСрБтроки = НомСрБтроки;

НомСрБтроки = НомСрБтроки + 1;

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

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

Для слоТных ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² с Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ счСтчики:

НомСрБтроки = 1;

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°ΡΠ“Ρ€ΡƒΠΏΠΏΠ° = "";

Для КаТдого Π‘Ρ‚Ρ€ΠΎΠΊΠ° Из Π”Π°Π½Π½Ρ‹Π΅Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ.Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° Π¦ΠΈΠΊΠ»

Если Π‘Ρ‚Ρ€ΠΎΠΊΠ°.Π“Ρ€ΡƒΠΏΠΏΠ° <> ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°ΡΠ“Ρ€ΡƒΠΏΠΏΠ° Π’ΠΎΠ³Π΄Π°

НомСрБтроки = 1;

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°ΡΠ“Ρ€ΡƒΠΏΠΏΠ° = Π‘Ρ‚Ρ€ΠΎΠΊΠ°.Π“Ρ€ΡƒΠΏΠΏΠ°;

Π˜Π½Π°Ρ‡Π΅

НомСрБтроки = НомСрБтроки + 1;

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

Π‘Ρ‚Ρ€ΠΎΠΊΠ°.НомСрБтроки = НомСрБтроки;

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

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ…

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

5. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большими Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ

ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† с тысячами строк стандартныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ получСния Π½ΠΎΠΌΠ΅Ρ€Π° ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ способами:

  • πŸš€ ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: сохраняйтС Π½ΠΎΠΌΠ΅Ρ€Π° строк Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅.
  • πŸš€ ΠŸΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΡ: ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ порциями (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ 100 строк).
  • πŸš€ Π˜Π½Π΄Π΅ΠΊΡΡ‹: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π˜Π½Π΄Π΅ΠΊΡΡ‹ для ускорСния поиска.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° для большой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

Π’Π°Π±Π»ΠΈΡ†Π° = ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠ‘ΠΎΠ»ΡŒΡˆΡƒΡŽΠ’Π°Π±Π»ΠΈΡ†Ρƒ(); // ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ здСсь 10 000+ строк

Π’Π°Π±Π»ΠΈΡ†Π°.Π˜Π½Π΄Π΅ΠΊΡΡ‹.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ОсновнойИндСкс", Новый ИндСксКолонок("Код", "НаимСнованиС"));

// ΠšΡΡˆΠΈΡ€ΡƒΠ΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€Π° строк

Для Инд = 0 По Π’Π°Π±Π»ΠΈΡ†Π°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 Π¦ΠΈΠΊΠ»

Π’Π°Π±Π»ΠΈΡ†Π°[Инд].Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ("НомСрБтроки", Инд + 1);

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

Для запросов с большими Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΠΠšΠ•Π’ΠΠ«Π™ Π Π•Π–Π˜Πœ:

Запрос.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€("ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉΠ Π΅ΠΆΠΈΠΌ", Π˜ΡΡ‚ΠΈΠ½Π°);

Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΠŸΠ°ΠΊΠ΅Ρ‚();

πŸ’‘

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ 50 000 строк Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΡŽ строк Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π” (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² SQL-запросС), Π° Π½Π΅ Π² 1Π‘-ΠΊΠΎΠ΄Π΅.

6. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ строк Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ:

Ошибка ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° РСшСниС
НумСрация сбиваСтся ΠΏΡ€ΠΈ сортировкС НомСра строк привязаны ΠΊ физичСскому порядку, Π° Π½Π΅ ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠΌΡƒ ΠŸΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π° Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ΠŸΡ€ΠΈΠ˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈΠ”Π°Π½Π½Ρ‹Ρ…
ROW_NUMBER() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅Π²Π΅Ρ€Π½Ρ‹Π΅ значСния Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСстС с GROUP BY Π±Π΅Π· PARTITION ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΡ‚ΠΈ Π² подзапрос ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ PARTITION BY
МСдлСнная Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΈ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠŸΠ΅Ρ€Π΅ΡΡ‡Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ
НумСрация начинаСтся с 0 вмСсто 1 Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ индСкс Π±Π΅Π· +1 Π”ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ +1 ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ ИндСкс()

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ ошибка: ΠΏΡ€ΠΈ экспортС Π΄Π°Π½Π½Ρ‹Ρ… Π² Excel Ρ‡Π΅Ρ€Π΅Π· COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½ΠΎΠΌΠ΅Ρ€Π° строк Π² 1Π‘ ΠΈ Excel ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ ΠΈΠ·-Π·Π° скрытых строк ΠΈΠ»ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ². ВсСгда свСряйтС ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ»!

πŸ’‘

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ: Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€Π¨Π°Π±Π»ΠΎΠ½("Π‘Ρ‚Ρ€ΠΎΠΊΠ° %1: ИндСкс=%2, НомСр=%3", Π‘Ρ‚Ρ€ΠΎΠΊΠ°.НаимСнованиС, Π‘Ρ‚Ρ€ΠΎΠΊΠ°.ИндСкс, Π‘Ρ‚Ρ€ΠΎΠΊΠ°.НомСрБтроки));

7. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹: ΠΊΠΎΠ³Π΄Π° стандартныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях стандартныС способы получСния Π½ΠΎΠΌΠ΅Ρ€Π° строки Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹. Рассмотрим Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹:

  • πŸ”„ Для динамичСских списков: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΠΎΠ·ΠΈΡ†ΠΈΡΠ’Π‘ΠΏΠΈΡΠΊΠ΅().
  • πŸ”„ Для Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: рСкурсивный ΠΎΠ±Ρ…ΠΎΠ΄ с счСтчиком.
  • πŸ”„ Для Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ: ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½ΠΎΠΌΠ΅Ρ€ строки ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для динамичСского списка:

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ = Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹Π€ΠΎΡ€ΠΌΡ‹.БписокВоваров;

Π’Π΅ΠΊΡƒΡ‰Π°ΡΠŸΠΎΠ·ΠΈΡ†ΠΈΡ = Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.ВСкущаяБтрока;

НомСрБтроки = Π­Π»Π΅ΠΌΠ΅Π½Ρ‚.Бписок.ИндСкс(Π’Π΅ΠΊΡƒΡ‰Π°ΡΠŸΠΎΠ·ΠΈΡ†ΠΈΡ) + 1;

Для Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ… с ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠ΅ΠΉ):

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠžΠ±ΠΎΠΉΡ‚ΠΈΠ”Π΅Ρ€Π΅Π²ΠΎ(Π£Π·Π΅Π», НомСрБтроки)

Если Π£Π·Π΅Π».Π­Ρ‚ΠΎΠ“Ρ€ΡƒΠΏΠΏΠ° Π’ΠΎΠ³Π΄Π°

Для КаТдого ΠŸΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΉ Из Π£Π·Π΅Π».Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π¦ΠΈΠΊΠ»

НомСрБтроки = ΠžΠ±ΠΎΠΉΡ‚ΠΈΠ”Π΅Ρ€Π΅Π²ΠΎ(ΠŸΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΉ, НомСрБтроки);

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

Π˜Π½Π°Ρ‡Π΅

Π£Π·Π΅Π».НомСрБтроки = НомСрБтроки;

НомСрБтроки = НомСрБтроки + 1;

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

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ НомСрБтроки;

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

Как Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Ρ‚ΡŒ строки Π² иСрархичСском ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ составной Π½ΠΎΠΌΠ΅Ρ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "1.2.3" для Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строки Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня). РСализуСтся Ρ‡Π΅Ρ€Π΅Π· Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΠ²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ "прСфикса" Π½ΠΎΠΌΠ΅Ρ€Π°.

FAQ: ЧастыС вопросы ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π°Ρ… строк Π² 1Π‘

МоТно Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ строки Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π±Π΅Π· программирования?

Π”Π°, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… (ΠΎΡ‚Ρ‡Π΅Ρ‚Π°Ρ…, ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ…). Для этого Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ с Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΎΠΉ НомСрБтроки() Π² ΠΌΠ°ΠΊΠ΅Ρ‚. Π’ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… полях Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π±Π΅Π· программирования Π½ΠΎΠΌΠ΅Ρ€ строки нСдоступСн.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ послС сортировки нумСрация строк сбиваСтся?

ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π° строк привязаны ΠΊ ΠΈΡ… физичСскому полоТСнию Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π° Π½Π΅ ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠΌΡƒ порядку. ПослС сортировки Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ порядок строк.

Как ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Ρ‚ΡŒ строки Π² запросС с Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΊΠΎΠ½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ROW_NUMBER() OVER(PARTITION BY [ΠŸΠΎΠ»Π΅Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ] ORDER BY [ΠŸΠΎΠ»Π΅Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ]). НапримСр:

ROW_NUMBER() OVER(PARTITION BY НомСнклатура.Π“Ρ€ΡƒΠΏΠΏΠ° ORDER BY НомСнклатура.НаимСнованиС)

Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΡƒΠ΅Ρ‚ строки Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

МоТно Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ строки Π² мобильном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ 1Π‘?

Π”Π°, Π½ΠΎ с ограничСниями. Π’ мобильной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π΅ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ дСсктопной вСрсии ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ИндСкс() для Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° сСрвСрС, Π° Π² мобильном ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΠΉΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Как ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π° строк Π² Excel Π±Π΅Π· ошибок?

ΠŸΠ΅Ρ€Π΅Π΄ экспортом ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ:

  • НумСрация начинаСтся с 1 (Excel Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ с 0 Π² ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…).
  • Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½Π΅Ρ‚ скрытых строк ΠΈΠ»ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ±ΠΈΡ‚ΡŒ Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΡŽ.
  • Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ записи Π² Excel.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ экспорта:

Excel = Новый COMΠžΠ±ΡŠΠ΅ΠΊΡ‚("Excel.Application");

Excel.Π’ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ = Π˜ΡΡ‚ΠΈΠ½Π°;

Книга = Excel.Workbooks.Add();

Лист = Книга.Worksheets(1);

// ЗаписываСм Π΄Π°Π½Π½Ρ‹Π΅ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² строк

Для Инд = 0 По Π’Π°Π±Π»ΠΈΡ†Π°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 Π¦ΠΈΠΊΠ»

Лист.Cells(Инд + 1, 1).Value = Инд + 1; // НомСр строки

Лист.Cells(Инд + 1, 2).Value = Π’Π°Π±Π»ΠΈΡ†Π°[Инд].НаимСнованиС;

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ вСрсиях 1Π‘ 8.3.20+ появились измСнСния Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ полями ΠΏΡ€ΠΈ динамичСском ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ. Если нумСрация строк Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ настройки свойства Π Π΅ΠΆΠΈΠΌΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ (Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Π‘ΠΏΠΈΡΠΊΠ°).