По теме из базы знаний
- Программное управление обычными формами документов и справочников в УПП/КА
- Одинакова ли в табличном документе реальная ширина колонок с одинаковой номинальной шириной
- Как сохранить данные табличного поля в табличный документ / файл Excel программно
- Из Word в табличный документ
- Точные значения единиц измерения размера ячеек в табличном документе в мм
Найденные решения
(1) Я вот для таких случаев так пишу после вывода
Для Кол = 1 По ТабДок.ШиринаТаблицы Цикл
ШиринаКолонки = 0;
Для Стр = 1 По ТабДок.ВысотаТаблицы Цикл
Область = ТабДок.Область("R"+Формат(Стр,"ЧГ=0")+"C"+Формат(Кол,"ЧГ=0"));
ШиринаОбласти = Область.Отступ+СтрДлина(СокрЛП(Область.Текст));
ШиринаКолонки = Макс(ШиринаКолонки, ШиринаОбласти + 3);
Если ШиринаКолонки > 40 Тогда
Область.ШиринаКолонки = 40;
Иначе
Область.ШиринаКолонки = ШиринаКолонки;
КонецЕсли;
Конеццикла;
КонецЦикла;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Я вот для таких случаев так пишу после вывода
Для Кол = 1 По ТабДок.ШиринаТаблицы Цикл
ШиринаКолонки = 0;
Для Стр = 1 По ТабДок.ВысотаТаблицы Цикл
Область = ТабДок.Область("R"+Формат(Стр,"ЧГ=0")+"C"+Формат(Кол,"ЧГ=0"));
ШиринаОбласти = Область.Отступ+СтрДлина(СокрЛП(Область.Текст));
ШиринаКолонки = Макс(ШиринаКолонки, ШиринаОбласти + 3);
Если ШиринаКолонки > 40 Тогда
Область.ШиринаКолонки = 40;
Иначе
Область.ШиринаКолонки = ШиринаКолонки;
КонецЕсли;
Конеццикла;
КонецЦикла;
Показать
(5) Спасибо за код. Немного оптимизировал под свои надобности и убрал лишний (ИМХО) конструкт "Если".
Для Кол = 1 По ТабДок.ШиринаТаблицы Цикл
ШиринаКолонки = 0;
КоличествоПроверяемыхСтрок=мин(50,ТабДок.ВысотаТаблицы);
Для Стр = 1 По КоличествоПроверяемыхСтрок Цикл
Область = ТабДок.Область("R"+Формат(Стр,"ЧГ=0")+"C"+Формат(Кол,"ЧГ=0"));
ШиринаОбласти = Область.Отступ+СтрДлина(СокрЛП(Область.Текст));
ШиринаКолонки = Макс(ШиринаКолонки, ШиринаОбласти + 3);
Конеццикла;
Область.ШиринаКолонки= Мин(40,ШиринаКолонки);
Конеццикла;
Показать
(5)
У меня ошибка возникает:
ВнешняяОбработка.Ведомость.Форма.Форма.Форма(570,44)}: Неопознанный оператор
табдокумент.Область("R11C1").ШиринаКолонки<<?>>; (Проверка: Тонкий клиент)
ВООБЩЕ НЕ ПОЙМУ НА РОВНОМ МЕСТЕ!!!!!!!
Должно все работать
ЧЯДНТ????
Платформа 8.3.23.1782
Просто тупо не компилит Табдок.Область("R...C...").Ширинаколонки
Платформа кривая????
А вот так вот работает
Жесть... не пойму в чем дело... через Выполнить конечно изврат полный))))
Для Кол = 1 По ТабДок.ШиринаТаблицы Цикл
ШиринаКолонки = 0;
Для Стр = 1 По ТабДок.ВысотаТаблицы Цикл
Область = ТабДок.Область("R"+Формат(Стр,"ЧГ=0")+"C"+Формат(Кол,"ЧГ=0"));
ШиринаОбласти = Область.Отступ+СтрДлина(СокрЛП(Область.Текст));
ШиринаКолонки = Макс(ШиринаКолонки, ШиринаОбласти + 3);
Если ШиринаКолонки > 40 Тогда
Область.ШиринаКолонки = 40;
Иначе
Область.ШиринаКолонки = ШиринаКолонки;
КонецЕсли;
Конеццикла;
КонецЦикла;
ПоказатьШиринаКолонки = 0;
Для Стр = 1 По ТабДок.ВысотаТаблицы Цикл
Область = ТабДок.Область("R"+Формат(Стр,"ЧГ=0")+"C"+Формат(Кол,"ЧГ=0"));
ШиринаОбласти = Область.Отступ+СтрДлина(СокрЛП(Область.Текст));
ШиринаКолонки = Макс(ШиринаКолонки, ШиринаОбласти + 3);
Если ШиринаКолонки > 40 Тогда
Область.ШиринаКолонки = 40;
Иначе
Область.ШиринаКолонки = ШиринаКолонки;
КонецЕсли;
Конеццикла;
КонецЦикла;
У меня ошибка возникает:
ВнешняяОбработка.Ведомость.Форма.Форма.Форма(570,44)}: Неопознанный оператор
табдокумент.Область("R11C1").ШиринаКолонки<<?>>; (Проверка: Тонкий клиент)
ВООБЩЕ НЕ ПОЙМУ НА РОВНОМ МЕСТЕ!!!!!!!
Должно все работать
ЧЯДНТ????
Платформа 8.3.23.1782
Просто тупо не компилит Табдок.Область("R...C...").Ширинаколонки
Платформа кривая????
А вот так вот работает
АдресКолонки = "R11C1";
Выполнить("Сообщить(Табдокумент.Область(АдресКолонки).ШиринаКолонки)");
Жесть... не пойму в чем дело... через Выполнить конечно изврат полный))))
(4) Данные в макете меняются. надо вычислять ширину колонок. поясню - есть печатная форма табеля.
В большинстве колонок 1 или 2 символа (8, 8К, УК, ОЖ) и так далее.. Для столбцов в макете выставлена ширина 4,5
Но бывают и изыски например - 24ДД. Тогда надо ширину колонки менять.
В большинстве колонок 1 или 2 символа (8, 8К, УК, ОЖ) и так далее.. Для столбцов в макете выставлена ширина 4,5
Но бывают и изыски например - 24ДД. Тогда надо ширину колонки менять.
По идее это команда РастягиватьПоГоризонтали.
Область.РастягиватьПоГоризонтали=Истина.
Использование:
Чтение и запись.
Описание:
Тип: Булево.
Содержит признак того, что ширина колонки рассчитывается автоматически в зависимости от размера отображаемой области документа.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Примечание:
Значение по умолчанию: Ложь.
Но я попробовал, что то слишком сильно растягивает, больше чем нужно для текста, а это тоже не удобно.
Еще для информации есть такая команда РежимИзмененияРазмераКолонки, которая по описанию включает выключает режим изменения ширины по двойному щелчку.
пОбласть.РежимИзмененияРазмераКолонки=РежимИзмененияРазмера.Обычный; выключен
пОбласть.РежимИзмененияРазмераКолонки=РежимИзмененияРазмера.БыстроеИзменение; включен
Но опять же, попробовал, этот режим всегда остается включенным (что конечно лучше чем выключен), но почему такие странности не понятно.
Пробовал в обычных формах
Область.РастягиватьПоГоризонтали=Истина.
Использование:
Чтение и запись.
Описание:
Тип: Булево.
Содержит признак того, что ширина колонки рассчитывается автоматически в зависимости от размера отображаемой области документа.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Примечание:
Значение по умолчанию: Ложь.
Но я попробовал, что то слишком сильно растягивает, больше чем нужно для текста, а это тоже не удобно.
Еще для информации есть такая команда РежимИзмененияРазмераКолонки, которая по описанию включает выключает режим изменения ширины по двойному щелчку.
пОбласть.РежимИзмененияРазмераКолонки=РежимИзмененияРазмера.Обычный; выключен
пОбласть.РежимИзмененияРазмераКолонки=РежимИзмененияРазмера.БыстроеИзменение; включен
Но опять же, попробовал, этот режим всегда остается включенным (что конечно лучше чем выключен), но почему такие странности не понятно.
Пробовал в обычных формах
Инфа с ИТС: "Автоматический расчет ширины колонок результата отчета
В некоторых отчетах возникает необходимость автоматического расчета ширин колонок в зависимости от их содержимого. Построитель отчета и табличный документ такой возможности не предоставляют. Однако способ решить данную задачу все-таки есть. Дело в том, что из встроенного языка 1С:Предприятия возможно обращение к содержимому табличного документа, а, имея доступ к содержимому табличного документа, можно рассчитать и ширину колонок.
Пример процедуры, которая автоматически рассчитывает ширины колонок табличного документа, можно найти в конфигурации "Примеры ИТС", в отчете "Продажи номенклатуры". Данная процедура расположена в модуле основной формы отчета и называется "РасчетШириныКолонок".
В некоторых отчетах возникает необходимость автоматического расчета ширин колонок в зависимости от их содержимого. Построитель отчета и табличный документ такой возможности не предоставляют. Однако способ решить данную задачу все-таки есть. Дело в том, что из встроенного языка 1С:Предприятия возможно обращение к содержимому табличного документа, а, имея доступ к содержимому табличного документа, можно рассчитать и ширину колонок.
Пример процедуры, которая автоматически рассчитывает ширины колонок табличного документа, можно найти в конфигурации "Примеры ИТС", в отчете "Продажи номенклатуры". Данная процедура расположена в модуле основной формы отчета и называется "РасчетШириныКолонок".
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот