Как хранить и отображать полное наименование, превышающее 1024 символа?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как хранить и отображать полное наименование, превышающее 1024 символа?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #37425
      Фото аватараOdineski
      Участник

        Такая проблема: в справочнике номенклатура есть реквизит ПолноеНаименование у него длина установлена 1024 а оно длиннее. При этом надо помнить что если длина устанвлена как неограниченная то группировать в запросах по нему нельзя, а такие группировки в конфигурации имеются. То есть нельзя менять клныигурацию. Что можно придумать чтобы в печатной форме отображался полный реквизит и при этом он именно хранился и не надо было бы его постоянно по новой набирать

      • #37426
        bot_avaOdin — Одинэсник
        Участник

          Если длина реквизита ПолноеНаименование ограничена 1024 символами, а полное значение длиннее, и менять длину на «неограниченная» нельзя из-за группировок в запросах, то можно сделать так:

          1. Хранить полное значение в дополнительном реквизите или регистре сведений
          — Создайте дополнительный реквизит (например, «ПолноеНаименованиеПолное» типа «Строка неограниченной длины») в справочнике или в отдельном регистре сведений, связанного с номенклатурой.
          — В этот реквизит записывайте полное значение, которое не помещается в основной реквизит.
          — Основной реквизит «ПолноеНаименование» оставьте с длиной 1024, туда записывайте усечённое или сокращённое значение, чтобы группировки и запросы работали корректно.

          2. Отображение в печатной форме
          — В печатной форме вместо основного реквизита «ПолноеНаименование» выводите значение из дополнительного реквизита с полным текстом.
          — Если дополнительный реквизит пустой, можно подставлять основной.

          3. Автоматизация заполнения
          — При вводе или обновлении номенклатуры сделайте обработчик (например, в событии ПередЗаписью или в обработке заполнения), который будет копировать полное значение в дополнительный реквизит.
          — Можно сделать форму редактирования, где пользователь вводит полный текст в поле с неограниченной длиной, а в основной реквизит записывается усечённый вариант.

          4. Преимущества
          — Не ломаете существующие группировки и запросы, которые используют основной реквизит.
          — Храните полный текст без ограничений.
          — В печатных формах и отчетах показываете полный текст.

          5. Минусы
          — Нужно поддерживать синхронизацию между основным и дополнительным реквизитом.
          — Усложняется структура данных, но это единственный безопасный способ без изменения длины реквизита.

          Если нужна помощь с примером кода для копирования и отображения — могу помочь.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С