На форме происходит загрузка текста Устава из макетов разделов.
Для хранения Устава используется таблица СодержаниеРазделов, в которой есть реквизит СодержаниеПункта.
Раньше в объекте формы для каждого раздела существовало по таблице.
Раньше код работал так:
1) В новый табличный документ получался макет с содержанием раздела.
2)Табличный документ с помощью построителя отчета преобразовывался в ТЗ.
3) ТЗ загружалось в соответствующую таблицу раздела: Объект.<РазделУстава>.Загрузить(ТЗ);
Потом сказали, что всё должно быть динамично - переделал на две таблицы (разделы и содержание разделов), чтобы юзер мог сам добавлять разделы и пункты.
Теперь происходит вот что.
1) В новый табличный документ получается макет с содержанием раздела. (так же как раньше)
2)Табличный документ с помощью построителя отчета преобразовывается в ТЗ.(так же как раньше)
3)В новую таблицу значений (ИтоговаяТаблица), никак не привязанную ни к форме ни к объекту, дописываются пункты нового раздела. Различаются по колонке "наименование раздела". Дописываются просто циклом.
4)Итоговая таблица загружается в Табличную часть объекта: Объект.СодержаниеРазделов.Загрузить(ИтоговаяТаблица).

Но если в первом варианте все работало без нареканий, то во втором внезапно содержание пунктов стало обрезаться 525 символами. А у меня есть пункты и по 2000 симв. Строки типа неограниченной длины и в СодержаниеРазделов (указано в свойствах) и в ИтоговойТаблице ( Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки()) )
В чём может быть причина?
---
Выяснил, в чём была проблема!)
Это из-за копирования.
первые данные в Содержание разделов добавляются копированием
ТЗСодержаниеРазделов = ТЗОбщиеПоложения.Скопировать();
а в общих положениях самый длинный пункт как раз 525 символов
переписал на цикл заполнение первой таблицы и резать перестало
---
Кажется, что без базы и отладки вряд ли тут можно что-то предположить.
Как минимум, сначала стоит найти место, где строки обрезаются - при каком действии.
Тогда и будет понятно, что не так.
---
обрезает в цикле на строке
НовоеСодержаниеРазделов.СодержаниеПункта = Строка.СодержаниеПункта;
---
тип указать явно нужно, раньше 1С прощала такие ошибки!
---
когда мы дописываем пункты в ТЗ созданную только что, происходит обрезание
Этап 3
---
Поддержу (5), значит в созданной ТЗ в колонке тип задан как то не корректно или не задан вообще.
Для неограниченной длины достаточно указать - Новый ОписаниеТипов("Строка").
---
сначала указывал Новый ОписаниеТипов("Строка") не помогло
потом Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки())
потом Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(20000))
потом стал проверять квалификаторы строки Новый ОписаниеТипов("" + ТипЗнч(НовоеСодержаниеРазделов.СодержаниеПункта)+ "")
КвалификаторыСтроки.Длина = 0;
КвалификаторыСтроки.ДопустимаяДлина = Переменная
Обрезаться не должно вроде как, а режет
---
А можете пример воспроизвести на какой нибудь обработке или демо базе?
---
Пока думаю над этим в фоновом режиме
---
Что ещё удалось выяснить:
Эксперимент вот такой проводил: ТипЗнч(Строка.СодержаниеПункта) = ТипЗнч(НовоеСодержаниеРазделов.СодержаниеПункта) выдаёт ложь
ТипЗнч(НовоеСодержаниеРазделов.СодержаниеПункта) = Не определено В два слова
НоваяСтрока = Строка.СодержаниеПункта - записывается всё нормально
А вот если НовоеСодержаниеРазделов.СодержаниеПункта = НоваяСтрока опять режет
---
Выяснил, в чём была проблема!)
Это из-за копирования.
первые данные в Содержание разделов добавляются копированием
ТЗСодержаниеРазделов = ТЗОбщиеПоложения.Скопировать();
а в общих положениях самый длинный пункт как раз 525 символов
переписал на цикл заполнение первой таблицы и резать перестало