Уважаемые участники. Добрый день. Подскажите пожалуйста как в макет присоединить колонку и объединить все строки в ней?
Есть макет пример в приложенном рисунке.
Макет собирается как обычно:
Строки выводятся для товара, соответственно параметр "комментарий" тоже выводится в строке. Как мне объедини ВСЕ строки в колонке комментарий и присоединить к области данных подскажите, пожалуйста ?! (то что хочу получить обведено в приложении)
Не могу блин понять как объединение сделать((
Итог
Есть макет пример в приложенном рисунке.
Макет собирается как обычно:
//какой-то код, затем
ИмяШапки = "ШапкаТаблицы";
ОбластьНомера = Макет.ПолучитьОбласть(ИмяШапки + "|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть(ИмяШапки + "|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть(ИмяШапки + "|Данные");
ОбластьКомментарий = Макет.ПолучитьОбласть(ИмяШапки + "|ОбластьКомментарий");
//присоединили всё
ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);
ОбластьКолонкаТовар = Макет.Область("Товар");
Если Не ВыводитьКоды Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
Макет.Область("КолонкаКодов").ШиринаКолонки;
КонецЕсли;
ТабДокумент.Присоединить(ОбластьКомментарий); /// Вывели название колонки
// Начинаем работать со строками
ИмяСтроки = "Строка";
ОбластьНомера = Макет.ПолучитьОбласть(ИмяСтроки + "|НомерСтроки");
ОбластьКодов = Макет.ПолучитьОбласть(ИмяСтроки + "|КолонкаКодов");
ОбластьДанных = Макет.ПолучитьОбласть(ИмяСтроки + "|Данные");
////////////////////////////////////////
ОбластьКомментарий = Макет.ПолучитьОбласть(ИмяСтроки + "|ОбластьКомментарий");
/// Вот начинается непонятка, строки выводятся для товара, соответственно параметр "комментарий" тоже выводится в строке. Как мне объедини ВСЕ строки комментария?
Пока ВыборкаСтрокТовары.Следующий() Цикл
Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
Продолжить;
КонецЕсли;
Ном = Ном + 1;
Если ВыборкаСтрокТовары.КоличествоМест<>0 Тогда
ФлЕстьКоличествоМест = истина;
КонецЕсли;
//ОбластьНомера.Параметры.Заполнить(ВыборкаСтрокТовары);
ОбластьНомера.Параметры.НомерСтроки = Ном;
ТабДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
Если Колонка = "Артикул" Тогда
ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Артикул;
Иначе
ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Код;
КонецЕсли;
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
//ОбластьДанных.Параметры.Товар = ВыборкаСтрокТовары.Товар + ФормированиеПечатныхФормСервер.ПредставлениеСерий(ВыборкаСтрокТовары);
ОбластьДанных.Параметры.Товар = ВыборкаСтрокТовары.Товар;
ТабДокумент.Присоединить(ОбластьДанных);
КонецЦикла;
ПоказатьСтроки выводятся для товара, соответственно параметр "комментарий" тоже выводится в строке. Как мне объедини ВСЕ строки в колонке комментарий и присоединить к области данных подскажите, пожалуйста ?! (то что хочу получить обведено в приложении)
Не могу блин понять как объединение сделать((
Итог
Прикрепленные файлы:
![](/upload/forum/upload/c73/c736dd08db297112db5a0248c5b008a4.png)
![](/upload/forum/upload/ad0/ad054bf86e71e1683541cdae388f0a0b.png)
По теме из базы знаний
- Управляемые формы: чтение макетов с объединенными ячейками (в частности, и из экселей)
- Печатная форма OpenOffice (ODT) с объединением строк в таблицу
- Объединение нескольких печатных форм в один табличный документ
- СКД. Объединение ячеек на примере "Справка инвентаризации расчетов с покупателями и поставщиками по форме ИНВ-17"
- Объединение ячеек по вертикали и горизонтали в отчете на СКД (объединение заголовков родительских группировок)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ошибка при вызове метода контекста (Присоединить)
ТабДокумент.Присоединить(ОбластьКомментарий);
по причине:
Несоответствие типов (параметр номер '1')
Так же становится невозможно (или как-то по-другому) заполнить параметр. Т.е. например
ОбластьКомментарий.Параметры.Комментарий = "ТЕСТ";
выдает ошибку
ТабДокумент.Присоединить(ОбластьКомментарий);
по причине:
Несоответствие типов (параметр номер '1')
Так же становится невозможно (или как-то по-другому) заполнить параметр. Т.е. например
ОбластьКомментарий.Параметры.Комментарий = "ТЕСТ";
выдает ошибку
Точно табличный документ =)
ТабДокумент = Новый ТабличныйДокумент;
Вопрос как объединить область комментарий в одну область большую. Т.к. строки заполняются в цилке. Сейчас вот что например получается как в скрине.
Как всю область "комментарий" объеденить и заполнить собственно параметр "комментарий"..??
ТабДокумент = Новый ТабличныйДокумент;
Вопрос как объединить область комментарий в одну область большую. Т.к. строки заполняются в цилке. Сейчас вот что например получается как в скрине.
Как всю область "комментарий" объеденить и заполнить собственно параметр "комментарий"..??
Прикрепленные файлы:
![](/upload/forum/upload/205/2058e2c8115752ee1ff9da2e8ebc0c44.png)
(5)
Я имел в виду что в переменной ОбластьКомментарий.
Нужно посчитать количество строк и номер столбца. Потом как я и писал:
Область = ТабДокумент.Область(<НомерПервойСтроки>, <НомерПервойКолонки>, <НомерПоследнейСтроки>, <НомерПоследнейКолонки>);
Область.Объединить();
Область.Текст = ТекстКомментария;
ТабДокумент = Новый ТабличныйДокумент;
Я имел в виду что в переменной ОбластьКомментарий.
Нужно посчитать количество строк и номер столбца. Потом как я и писал:
Область = ТабДокумент.Область(<НомерПервойСтроки>, <НомерПервойКолонки>, <НомерПоследнейСтроки>, <НомерПоследнейКолонки>);
Область.Объединить();
Область.Текст = ТекстКомментария;
Получилось сделать через Область.Текст, не знаю на сколько это правильно (присоединить не пашет), т.к. получается что в макете я выделяю область и в неё пихаю текст, а не работаю с областью и параметром. Но всё бы и хорошо, оставил так, но текст размещается теперь только внизу. Как его теперь можно по центру хотя бы расположить с переносами слов?)
Прикрепленные файлы:
![](/upload/forum/upload/7a6/7a6128a5142e42e6f3eb8835fa3e5210.png)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот