8.х Определение количества символов в поле справочника через запрос

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем alex251, 29 мар 2011.

  1. TopicStarter Overlay
    alex251
    Offline

    alex251

    Регистрация:
    22 окт 2010
    Сообщения:
    23
    Симпатии:
    0
    Баллы:
    1
    Есть справочник с кол-вом записей (около 2000). Можно ли через запрос выяснить какая максимальная длинна строки (максимальное количество символов) в строковом поле из всех записей?
  2. Oleg_NSK
    Offline

    Oleg_NSK Опытный в 1С

    Регистрация:
    25 окт 2010
    Сообщения:
    164
    Симпатии:
    0
    Баллы:
    26
    Легко... Конструкции "выбор когда тогда" желательно в цикле заполнять по длине строки.

    Код:
    ВЫБРАТЬ
    Номенклатура.Наименование,
    ВЫБОР
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 1)  ТОГДА 1
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 2)  ТОГДА 2
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 3)  ТОГДА 3
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 4)  ТОГДА 4
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 5)  ТОГДА 5
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 6)  ТОГДА 6
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 7)  ТОГДА 7
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 8)  ТОГДА 8
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 9)  ТОГДА 9
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 10) ТОГДА 10
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 11) ТОГДА 11
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 12) ТОГДА 12
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 13) ТОГДА 13
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 14) ТОГДА 14
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 15) ТОГДА 15
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 16) ТОГДА 16
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 17) ТОГДА 17
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 18) ТОГДА 18
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 19) ТОГДА 19
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 20) ТОГДА 20
    ....
    КОГДА Номенклатура.Наименование = ПОДСТРОКА(Номенклатура.Наименование, 1, 100) ТОГДА 100
    КОНЕЦ КАК ДлинаСтроки
    ПОМЕСТИТЬ ВТСтроки
    ИЗ
    Справочник.Номенклатура КАК Номенклатура;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    МАКСИМУМ(ВТСтроки.ДлинаСтроки) КАК МаксДлинаСтроки
    ПОМЕСТИТЬ ВТМаксимум
    ИЗ
    ВТСтроки КАК ВТСтроки;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ВТСтроки.Наименование,
    ВТСтроки.ДлинаСтроки
    ИЗ
    ВТМаксимум КАК ВТМаксимум
    ЛЕВОЕ СОЕДИНЕНИЕ ВТСтроки КАК ВТСтроки
    ПО ВТМаксимум.МаксДлинаСтроки = ВТСтроки.ДлинаСтроки
    
    Только не говори что у тебя строка неограниченной длины

Поделиться этой страницей