Друзья, подскажите какое максимальное значение можно использавать в функции запроса:

ВЫРАЗИТЬ(Х КАК СТРОКА( 2048 )) // получаю ошибку
ВЫРАЗИТЬ(Х КАК СТРОКА( 1024 )) // работатет

используется бд PostgreSQL
---
ВЫРАЗИТЬ(Х КАК СТРОКА( 1024 )) // работатет
Это и есть максимум и от типа sql это не зависит. Это ограничение 1С. Если строка более 1024, то это уже строка неограниченной длины.

Это ограничение можно найти во встроенной справке, если хорошо поискать :)
Функция СтрЗаменить(StrReplace)
СтрЗаменить(<Строка>,<ПодстрокаПоиска>,<ПодстрокаЗамены>)
Данная функция находит в исходной строке все вхождения подстроки поиска и заменяет ее на подстроку замены.
Строка - Строка. Исходная строка.
ПодстрокаПоиска - Строка. Искомая подстрока.
ПодстрокаЗамены - Строка. Подстрока, на которую будет заменена подстрока поиска.
Возвращаемое значение: Строка. Строка, полученная в результате замены.
Если второй параметр – константа, то длина строки равна:
<Строка> + (<Строка> / <ПодстрокаПоиска> с округлением в большую сторону) * (<ПодстрокаЗамены> - <ПодстрокаПоиска>), но не меньше чем длина <Строка>.
Если второй параметр не константа, то длина строки равна длине <Строка> * <ПодстрокаЗамены>.
Если полученная длина больше 1024, то получается строка неограниченной длины.
---
ВЫРАЗИТЬ(Х КАК СТРОКА( 1024 )) // работатет
Это и есть максимум и от типа sql это не зависит. Это ограничение 1С. Если строка более 1024, то это уже строка неограниченной длины.

Это ограничение можно найти во встроенной справке, если хорошо поискать :)
Функция СтрЗаменить(StrReplace)
СтрЗаменить(<Строка>,<ПодстрокаПоиска>,<ПодстрокаЗамены>)
Данная функция находит в исходной строке все вхождения подстроки поиска и заменяет ее на подстроку замены.
Строка - Строка. Исходная строка.
ПодстрокаПоиска - Строка. Искомая подстрока.
ПодстрокаЗамены - Строка. Подстрока, на которую будет заменена подстрока поиска.
Возвращаемое значение: Строка. Строка, полученная в результате замены.
Если второй параметр – константа, то длина строки равна:
<Строка> + (<Строка> / <ПодстрокаПоиска> с округлением в большую сторону) * (<ПодстрокаЗамены> - <ПодстрокаПоиска>), но не меньше чем длина <Строка>.
Если второй параметр не константа, то длина строки равна длине <Строка> * <ПодстрокаЗамены>.
Если полученная длина больше 1024, то получается строка неограниченной длины.
---
а чего подсказать-то? вы уже сами все узнали, эмпирическим методом повышаем циферку, пока не перестанет работать
---
Это ж думать надо.
Сообщество настолько обленилось, что ему проще на форуме спросить, чем 5 попыток самому сделать...
---
Не знаю как именно 1с это представляет, но в зависимости от СУБД есть разные методы хранения массивных данных прям в бд. MySQL имеет понятие LONGTEXT (4 Гб). Что касается MS SQL, то тут интереснее, существуют так называемые BLOB (Binary Large Object) и тут Ваша "строка" ограничена исключительно размером диска (вроде как). То есть технически максимум = размер диска за вычетом операционки, самой платформы и остального зарезервированного места в байтах если 1с использует 8-ми битную кодировку, тут я кстати тоже не уверен. Думаю если пойти глубже, то это может обрубаться на уровне компиляции запроса 1с в sql запрос.С другой стороны когда обращаешься к тексту просто через Объект.Реквизит, никаких проблем с размером не возникает. Нужно на sql сервере создать пустую 1с базу с одним справочником и 1 реквизитом (строка(0)) и включить полное логирование, поймать сам запрос и проверить если его вызвать 1с-запросом будет ли тоже самое.

Ну да, к тому же может такие данные лучше хранить как внешние файлы.

P.S. Нашел какую-то статью по Postgres, говорят, что одной строкой можно хранить около 1Гб.
Ну это спасибо разработчикам платформы, постарались)

P.P.S. Совсем забыл про объект метаданных "Внешний источник данных" или как-то так. Вот на прямую из бд, думаю, можно получить сколько угодно. Хотя я сейчас подумал, мб мы упремся не в размер диска, а в размер оперативки.