как объединить ячейки в 1с в печатной форме
Объединить области печатной формы
Есть области «Шапка|Общее», «Шапка|Колонка»
Область «Шапка|Колонка» может быть присоединена несколько раз:
Как мне объединить все области или часть из них.
(1)хрень какая-то. Так ведь не должно работать.
(3) в 1 фигня полная.
Где там именно объединение?
Где там выравнивание допустим по центру строки будет?
(4) У тебя же в заголовке v7
Объединить
Объединить ячейки области.
Метод Объединить объединяет ячейки области.
(2) Действительнос есть такой метод
(11) У меня логотип и неизвестное количество столбцов с ценой, чтобы это красиво выглядело, нужно шапку объединить:
http://shop.technolink.ru/price/TL_Price.zip
выводишь шапку целиком вместе с логотипом, затем выводишь ниже заголовок таблицы через ПрисоединитьСекцию + галка по выделенным столбцам и привет..
Тест произведен при помощи следующей процедуры:
НО.
При варианте с расшифровкой наблюдаются ощутимые тормоза в варианте ПоВыделенному!
Так что все зависит от задачи 🙂
2.Расшифровку нужно прописать сразу в макете, а не через область, при выводе секции, либо Расшифровка = либо пусто, по условию.
В общем, даже по коду видно, что с Таблицами ты плотно не работал..
(32) Я покрайне провожу эксперименты, когда сомневаюсь.
Введено исключительно ради установки текста в первую колонку, иначе текст пишется в каждой ячейке без объединения.
Программное объединение ячеек табличного документа в 1С
Как программно объединить ячейки в табличном документе 1С?
Для объединения ячеек предназначена функция Объединить(). Функция применяется к прямоугольной область табличного документа.
Пример
В результате формирования отчета была получена таблица.
Товар | Склад | Остаток |
Яблоки | Склад 1 | 6 |
Яблоки | Склад 2 | 8 |
Яблоки | Склад 3 | 9 |
Груши | Склад 1 | 7 |
Груши | Склад 2 | 2 |
Необходимо объединить ячейки с одинаковыми товарами.
В результате получим следующую таблицу.
Товар | Склад | Остаток |
Яблоки | Склад 1 | 6 |
Склад 2 | 8 | |
Склад 3 | 9 | |
Груши | Склад 1 | 7 |
Склад 2 | 2 |
Коротко о том, что мы сделали.
Программное объединение ячеек табличного документа в 1С : 9 комментариев
Здорово! Спасибо. А я то думаю, как бы сделать такое же для колонок. Но там аналогично)
Кстати объединение можно делать не только в уже полностью сформированном табличном документе, но и в отдельных областях, которые только готовятся для вывода. Делается все аналогично, но так бывает даже удобнее.
Спасибо! Очень помогла статья! Вот чувствовала, что метод Объединить нужно использовать, а каким боком его применить…. Оказывается, все довольно просто. Респект автору!
О, супер! Спасибо большое! Помогло.
Однако в выражении ТабДок.Область(«R»+Строка+»C1») переменную «Строка» лучше форматировать. То есть:
Формат(Строка,»ЧГ=0″)
Иначе, на строке № 1000 вывалится ошибка из-за пробела между разрядами групп.
Спасибо за замечание, надо попробовать.
Хотя есть некоторые сомнения. Ведь мы переменную Строка берем не из экселевского файла, в котором могут быть разделители групп. Эта переменная образуется в цикле ДЛЯ, ей значения присваивает 1С, они и так будут без разделителей.
Спасибо большое! Этот пример очень помог.
Я бы сменил имя переменной Строка=2 на НомерСтроки=2, «Строка» как приведене к строке и как имя переменной не очень красиво.
А разве в условии Если ТабДок.Область(«R»+Строка+»C1»).Текст=ТабДок.Область(«R»+Строка(Строка-1)+»C1»).Текст
Не должно быть «» вместо «=»?
Имел ввиду «не равно»
Думаю, нет. Мы же хотим объединить ячейки с одинаковым содержимым. Значит должно быть «равно».
1с макет объединить ячейки
Как программно объединить ячейки в табличном документе 1С?
Для объединения ячеек предназначена функция Объединить(). Функция применяется к прямоугольной область табличного документа.
Пример
В результате формирования отчета была получена таблица.
Товар | Склад | Остаток |
Яблоки | Склад 1 | 6 |
Склад 2 | 8 | |
Склад 3 | 9 | |
Груши | Склад 1 | 7 |
Склад 2 | 2 |
Коротко о том, что мы сделали.
Программное объединение ячеек табличного документа в 1С : 9 комментариев
Здорово! Спасибо. А я то думаю, как бы сделать такое же для колонок. Но там аналогично)
Кстати объединение можно делать не только в уже полностью сформированном табличном документе, но и в отдельных областях, которые только готовятся для вывода. Делается все аналогично, но так бывает даже удобнее.
Спасибо! Очень помогла статья! Вот чувствовала, что метод Объединить нужно использовать, а каким боком его применить…. Оказывается, все довольно просто. Респект автору!
О, супер! Спасибо большое! Помогло.
Однако в выражении ТабДок.Область(«R»+Строка+»C1») переменную «Строка» лучше форматировать. То есть:
Формат(Строка,»ЧГ=0″)
Иначе, на строке № 1000 вывалится ошибка из-за пробела между разрядами групп.
Спасибо за замечание, надо попробовать.
Хотя есть некоторые сомнения. Ведь мы переменную Строка берем не из экселевского файла, в котором могут быть разделители групп. Эта переменная образуется в цикле ДЛЯ, ей значения присваивает 1С, они и так будут без разделителей.
Спасибо большое! Этот пример очень помог.
Я бы сменил имя переменной Строка=2 на НомерСтроки=2, «Строка» как приведене к строке и как имя переменной не очень красиво.
А разве в условии Если ТабДок.Область(«R»+Строка+»C1»).Текст=ТабДок.Область(«R»+Строка(Строка-1)+»C1»).Текст
Не должно быть «» вместо «=»?
Имел ввиду «не равно»
Думаю, нет. Мы же хотим объединить ячейки с одинаковым содержимым. Значит должно быть «равно».
Для объединения ячеек выделите их и:
Всем добрый период времени!
Суть задачи, которую мы разберем, в том, как прочитать данные из объединенных ячеек табличного документа с помощью объекта «ТабличныйДокумент». Также коснемся того, как пройтись по выделенным данным. Итак, приступим.
ЧТЕНИЕ ТАБЛИЧНОГО ДОКУМЕНТА
Для чтения табличного документа в 1С можно использовать как ни странно объект «ТабличныйДокумент». С версии 8.3.7 (если не изменяет память) данный объект способен читать не только MXL-файлы, но и XLS/XLSX/ODT и какие-то еще варианты таблиц (а также, кстати, и писать).
Но как всегда есть одна малюсенькая проблемка — объект создается только на сервере. Но 1С попыталась решить данную проблему создав потоки в памяти и предоставив программисту возможность использовать их вместо пути к файлу в конструкторе объекта, но при этом необходимо указать тип читаемого файла. Правда у меня на платформе Windows 7 pro x64 c 1C 8.3.10.2466 эксель таким образом прочитать не получилось, а вот MXL читает замечательно, поэтому для екселевский файлов все-равно придется создать временный файл.
Итак, код чтения файлов:
Создадим форму с табличным документом и кнопкой «Загрузить файл» и получим фот такую формочку, которая сможет прочитать MXL, XLS, XLSX и ODS файлы в табличный документ.
ВЫДЕЛЕННЫЕ ЯЧЕЙКИ
Давайте разберемся, где тут у нас находятся выделенные пользователем ячейки. И вот тут интересная странность платформы в том, что эти выделенные ячейки доступны только на клиенте в соответствующем элементе формы. Давайте пробежимся по выделенным ячейкам и распечатаем результат в строку сообщений:
Если мы выделим теперь первую строку без объединенных ячеек, то получим следующий результат:
Т.е. тут у нас напечаталось А, Б и В. Если же мы выберем вторую строку, то получим иную картину:
Как видите, наличие объединения никоим образом не мешает нам получить данные из строки [2;2], которая у нас объединена со строкой [2;1], При том в обоих этих строках будет находиться значение «А». Если мы выделим третью строку, то получим вывод «А А А» (ну вы уже поняли, почему, да?)
ОБЪЕДИНЕННЫЕ ЯЧЕЙКИ
Для того, чтобы исправить проблему с объединенными ячейками, нужно просто узнать одну подробность: каждая ячейка имеет реквизиты «Лево», «Право», «Верх» и «Низ». И для объединенных ячеек они не будут равны. Для простого объединения по оси Х произвести чтение с учетом объединения будет достаточно просто:
Мы просто добавляем к «Х» «право» и вычитаем «лево».
А для оси «У» предлагаю разобраться самостоятельно (в качестве домашнего задания).
Программирование в 1С для всех
В этой статье я покажу, как работать с ячейками табличного документа. Мы создадим табличный документ и заполним его какими-нибудь данными, не обращаясь при этом к макету табличного документа, как мы это делали раньше, а получая напрямую доступ к ячейкам табличного документа.
Также, как и во всех предыдущих статьях, для демонстрации создадим обработку и основную форму обработки, на которую поместим команду.
Создадим обработчик команды в клиентском контексте, и функцию тоже в клиентском контексте, в которой создадим табличный документ, и этот табличный документ функция вернет. А в обработчике команды покажем возвращаемый функцией табличный документ.
В дальнейшем весь код будет из метода ВозвратТабличногоДокумента(). В этом коде мы будем обращаться к ячейкам табличного документа по их наименованию. А для удобства работы с именами ячеек табличного документа создадим пустой макет табличного документа. Он нам нужен только как вспомогательный инструмент. Для вывода табличного документ этот макет не требуется.
Если необходимо узнать имя ячейки или группы ячеек (области), следует выделить ячейку, открыть палитру свойств этой ячейки, и в этой палитре свойств интересует одно свойство Имя.
Зная имя ячейки или области ячеек, мы можем получить эту область из уже созданного документа при помощи метода Область().
В коде выше мы получили область ячеек табличного документа по имени, которое определили при помощи пустого макета табличного документа (он и нужен только для выяснения названий ячеек). Потом, мы объединили область ячеек в одну ячейку, указали текст ячейки, примечание, и отцентрировали текст в объединенной ячейке.
Если мы попробуем выполнить команду обработки, то как результат будет показан табличный документ.
Пойдем дальше. Создадим таблицу в нашем табличном документе. Сначала сделаем шапку таблицы из ячеек, которые идут после области, из которой сделали шапку отчета. У нас будет две колонки у шапки таблицы.
Ячейки первой колонки.
Получим область для этих ячеек, объединим ячейки этой области, напишем какой-нибудь текст и обведем эту область, используя метод Обвести табличного документа.
Точно также получим область для соседней колонки.
Первым делом узнаем имя ячеек. Ячейки второй колонки.
А потом получим область, и выполним над ней те же самые манипуляции, что и над соседней областью.
А дальше, для вывода таблицы сделаем цикл от 0 до 9, в котором в каждой итерации цикла будем обращаться к областям табличного документа, но в этот раз мы будем использовать не имена областей, а номера ячеек.
На этом мы закончим изменять табличный документ. Полная версия кода в функции ВозвратТабличногоДокумента будет следующей:
Проверим, что у нас выведет табличный документ.
Таким образом, обращаясь напрямую к областям (ячейкам) табличного документа, мы можем изменять этот табличный документ без использования макета.
Другие статьи про табличные документы в 1С:
Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
ВнешняяПечатнаяФорма. Как объединить ячейки в макете?
Всем привет. Заранее прошу прощения за тупой вопрос. но я все уже облазил..
Как объединить выделенные ячейки в одну, чтобы было как в соседних двух?
Как объединить ячейки массива
Приветствую. Подскажите как быть. Есть массив, в котором две ячейки занимает 16ричное число. Как.
Как объединить ячейки в Excel?
как объединить ячейки A1 и B1 в excel через vb.net
Как в DataGrid объединить ячейки
Здраствуйте. Подскажите, как в WPF создать заголовок к DataGrid подобного вида:
Как объединить ячейки DataGridView?
Очень нужно объединить ячейки, чтобы нижний groupbox занимал обе ячейки(Рисунок)
смех конечно, но пока я выделял сверху вниз, ничего не объединялось.
1. Права юзера
2. Меню Таблица. по умолчанию только просмотр
Добавлено через 1 минуту
это я про режим предприятия
Как объединить ячейки DataGridView?
приветь всем! помогите пожалуста, Как объединить ячейку datagridview?
Объединить div-ы как ячейки таблицы
Доброго дня господа. Представьте себе таблицу из трех ячеек: в первом столбце две ячейки, во втором.