Как объединить ячейки в 1с
Перейти к содержимому

Как объединить ячейки в 1с

  • автор:

Как объединить ячейки в 1с

Есть внешняя обработка, втягивает данные из файла в свою табличную часть. И в результате получается что-то такого типа:
Nпалеты Товар Объём
1 Имя1 5
1 Имя2 4
2 Имя3 6

И Хочу объединить ячейки с одинаковыми палетами. Прочитал, что вроде бы делается Объединением областей и тд, но не допёр как тогда назначать области в табличной части обработки. Или как-то иначе это сделать надо?
Помогите, плз!

а что там в СП?
(0) табличная часть и табличный документ это совсем не одно и тоже

(1) СП? Можно расшифровать?

(6) Что зачем? Зачем объединять? Чтоб выглядело прилично и для опыта полезно)

(7) это я знаю, поэтому то, что пишут для табличного документа естественно не подходит, поэтому я и задал вопрос

нарисовать ТЧ в видк дерева предлагать?
(9) Крепкий ТС попался )))
(8) В ТЧ ячейки объединять нельзя.
(12) Может имеется в виду группировка?

Область = ТабДок.Область(2,2,3,3);
Область.Объединить();

А вот как считать номера объединяемых строк — на фантазию писателя.
Например, сравнивая значения текущей строки со значением предыдущей.
Или после формирования документа пройтись по столбику и объединить ячейки с одинаковым значением.

(18) верни посты и прочитай (8)

1. В Синтаксис Помощнике ищем ТаблицаЗначений.Свернуть(«. «, «. «)

2. Не поможет 1 легко если хочется сохранить «Имя1, Имя2» для палеты 1 в ячейке.

3. Поможет доп.обработка новой ТЗ полученной сверткой, Свернуть(«Nпалеты», «Объем»), затем добавлением колонки «Товар» и заполнением ее вручную поиском по сохраненному № палеты из исходной таблицы.

(20) что с объёмом предлагаешь делать?
(21) *с товаром

Вот на паллете-1 лежит два товара.
паллета, сточки зрения замера объема — является неделимой ебеницей.
— какой смысл указывать объем каждого товара НА ПАЛЛЕТЕ?

тот кто получает паллету — он его что, по объему ТОВАРА принимает — расфасовывает паллету на ЭН отдельных товаров, меряет объем отдельно каждого товара и принимает по объему товара?

какой практический смысл НА ПАЛЛЕТЕ отдельно выделять объемы товаров?

Программное объединение ячеек табличного документа в 1С

Для объединения ячеек предназначена функция Объединить(). Функция применяется к прямоугольной область табличного документа.

Пример

В результате формирования отчета была получена таблица.

Товар Склад Остаток
Яблоки Склад 1 6
Яблоки Склад 2 8
Яблоки Склад 3 9
Груши Склад 1 7
Груши Склад 2 2

Необходимо объединить ячейки с одинаковыми товарами.

ОбъединениеНачало = 2 ;
Для Строка = 2 По ПоследняяСтрока Цикл
Если ТабДок . Область ( «R» + Строка + «C1» ) . Текст = ТабДок . Область ( «R» + Строка ( Строка — 1 ) + «C1» ) . Текст
ИЛИ ОбъединениеНачало = Строка Тогда Продолжить ;
Иначе
ТабДок . Область ( «R» + ОбъединениеНачало + «C1» + «:» + «R» + Строка ( Строка — 1 ) + «C1» ) . Объединить ( ) ;
ОбъединениеНачало = Строка ;
КонецЕсли ;
КонецЦикла ;

В результате получим следующую таблицу.

Товар Склад Остаток
Яблоки Склад 1 6
Склад 2 8
Склад 3 9
Груши Склад 1 7
Склад 2 2

Коротко о том, что мы сделали.

  1. Создаем цикл, который будет обходить строки табличного документа со второй (заголовок нам не нужен) по последнюю. Переменную ПоследняяСтрока нужно каким-то образом рассчитать.
  2. Переменная ОбъединениеНачало содержит номер строки, с которой нужно будет начать объединение. Первоначально этот номер равен номеру строки начала обхода таблицы.
  3. Обходим последовательно каждую строку табличного документа. При этом проверяем, равен ли текст текущей строки и столбца 1 тексту предыдущей строки того же столбца. Если равно, продолжаем цикл.
  4. Если текст отличается от предыдущей строки, значит объединяем ячейки в первой колонке, начиная с ячейки начала объединения, по последнюю с тем же значением.
  5. После объединения меняем значение переменной НачалоОбъединения, чтобы следующее объединение начиналось уже со следующей строки.

Раздел: Программирование Статьи по 1С Метки: Табличный документ

Программное объединение ячеек табличного документа в 1С : 10 комментариев

  1. Вадим 10.05.2017 Здорово! Спасибо. А я то думаю, как бы сделать такое же для колонок. Но там аналогично)
  1. Нестандартные решения в 1С Автор записи 26.05.2017 Рады, что помогло 🙂 Кстати объединение можно делать не только в уже полностью сформированном табличном документе, но и в отдельных областях, которые только готовятся для вывода. Делается все аналогично, но так бывает даже удобнее.
  1. Нестандартные решения в 1С Автор записи 26.03.2018 Спасибо за замечание, надо попробовать. Хотя есть некоторые сомнения. Ведь мы переменную Строка берем не из экселевского файла, в котором могут быть разделители групп. Эта переменная образуется в цикле ДЛЯ, ей значения присваивает 1С, они и так будут без разделителей.
  1. Ммммм? 24.07.2019 Имел ввиду «не равно»
  1. Нестандартные решения в 1С Автор записи 10.09.2019 Думаю, нет. Мы же хотим объединить ячейки с одинаковым содержимым. Значит должно быть «равно».

Добавить комментарий Отменить ответ

Теперь мы в соцсетях! Подписывайтесь, чтобы получать информацию о последних обновлениях или задать вопрос.

Как объединить ячейки в 1с

Загрузка. Пожалуйста, подождите.

X

Сообщение сайта

(Сообщение закроется через 2 секунды)

kosalex —> kosalex

Просмотр профиля

Найти сообщения пользователя

27.08.14, 9:30

Есть табличный документ:

В колонке «Период», дата должна быть одна на все строки. Т.е. нужно объединить ячейки.
Код:

Для каждого Строка Из ТЧБигБегов Цикл 
ОбластьДанныеТаблицы2.Параметры.НомерКоробаПломбы = Строка.НомерКоробиНомерПломбы;
ОбластьДанныеТаблицы2.Параметры.Брутто = Строка.Брутто;
ОбластьДанныеТаблицы2.Параметры.Тара = Строка.Тара;
ОбластьДанныеТаблицы2.Параметры.Нетто = Строка.Нетто;
ИтогоНетто = ИтогоНетто + Строка.Нетто;
ТабДок.Вывести(ОбластьДанныеТаблицы2);
КонецЦикла;

ОбластьДаты = ТабДок.Область("ОбластьПериод");
ОбластьДаты.Объединить();
ОбластьДанныеТаблицы2.Параметры.Период = Дата;
//ОбластьДанныеТаблицы2.ТекущаяОбласть.Формат = "ДФ=dd.MM.yyyy hh:mm:ss";

Не получается! Помогите с кодом.

logist —> logist

Просмотр профиля

Найти сообщения пользователя

27.08.14, 9:39

Для уже сформированного табдока область задается диапазоном (типа R1C1:R3C1), а не именем, имя используется для работы с макетом.

Личные бесплатные консультации не даю, для этого есть форум!

kosalex —> kosalex

Просмотр профиля

Найти сообщения пользователя

27.08.14, 11:18
Цитата(logist @ 27.08.14, 9:39)

Для уже сформированного табдока область задается диапазоном (типа R1C1:R3C1), а не именем, имя используется для работы с макетом.

Начало диапазона задать можно, а конец как словить?

Цитата(logist @ 27.08.14, 9:39)

Для уже сформированного табдока область задается диапазоном (типа R1C1:R3C1), а не именем, имя используется для работы с макетом.

Для каждого Строка Из ТЧБигБегов Цикл 
ОбластьДанныеТаблицы2.Параметры.НомерКоробаПломбы = Строка.НомерКоробиНомерПломбы;
ОбластьДанныеТаблицы2.Параметры.Брутто = Строка.Брутто;
ОбластьДанныеТаблицы2.Параметры.Тара = Строка.Тара;
ОбластьДанныеТаблицы2.Параметры.Нетто = Строка.Нетто;
ИтогоНетто = ИтогоНетто + Строка.Нетто;
ТабДок.Вывести(ОбластьДанныеТаблицы2);
КонецЦикла;

ОбластьДаты = ТабДок.Область("R11C1:R"+ (11 + ТЧБигБегов.Количество()) + "С1");
ОбластьДаты.Объединить();

: Ошибка при вызове метода контекста (Область)
ОбластьДаты = ТабДок.Область(«R11C1:R»+ (11 + ТЧБигБегов.Количество()) + «С1»);
по причине:
Область не найдена: R11C1:R13С1

Petre —> Petre

Просмотр профиля

Найти сообщения пользователя

27.08.14, 11:28
Еще надо отминусовать единицу.

Допрацьовую:
— «Бухгалтерія для України 2.1»;
— «Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія».

kosalex —> kosalex

Просмотр профиля

Найти сообщения пользователя

27.08.14, 11:38
Получилось, вот код:

Для каждого Строка Из ТЧБигБегов Цикл 
ОбластьДанныеТаблицы2.Параметры.НомерКоробаПломбы = Строка.НомерКоробиНомерПломбы;
ОбластьДанныеТаблицы2.Параметры.Брутто = Строка.Брутто;
ОбластьДанныеТаблицы2.Параметры.Тара = Строка.Тара;
ОбластьДанныеТаблицы2.Параметры.Нетто = Строка.Нетто;
ИтогоНетто = ИтогоНетто + Строка.Нетто;
ТабДок.Вывести(ОбластьДанныеТаблицы2);
КонецЦикла;

ВсегоСтрок = ТЧБигБегов.Количество()-1;
ОбластьДаты = ТабДок.Область(11,1,(11 + ВсегоСтрок),1);
ОбластьДаты.Объединить();

ОбластьДаты.Текст = Дата;

Программное объединение ячеек в табличном документе

Здравствуйте, пытаюсь программно объединить ячейки в макете, но вся проблема в том, что заранее неизвестно какие ячейки нужно объединить.
То есть в идеале должно быть так ТабличныйДокумент.Область(R3C1:R3C2).Объединить();
Но мне нужно так ТабличныйДокумент.Область(«R3C»+Строка(НомерЯчейки+1):»R3C»+Строка(НомерЯчейки+2)).Объединить();

P.S. Заранее спасибо

По теме из базы знаний

  • Группировка измерений в заголовках СКД
  • Пример переноса справочников, документов и движений через Эксель и «Конвертацию данных 2» из оптовой учетной системы 1С 7.7 Комплексной 4.2 и розничной учетной системы Рарус Торговый комплекс -> в 1С 8.3 ЕРП 2.4 (расширение и дополнительные реквизиты)
  • СКД. Объединение ячеек на примере «Справка инвентаризации расчетов с покупателями и поставщиками по форме ИНВ-17»
  • Программная корректировка при выводе отчета СКД
  • Хитрости СКД. Часть 3

Вознаграждение за ответ
Сумма: 0 $m
Добавили:
TopZlodey (0.33 $m)
Получили:
acanta (0.33 $m)
Показать полностью

  • Дата
  • Дата
  • Рейтинг всех уровней
  • Рейтинг 1-го уровня
  • Древо развёрнутое
  • Древо свернутое

Свернуть все
2. singlych 01.02.19 12:39 Сейчас в теме
НомерЯчейки

В чем сложность его определить?
4. TopZlodey 13 01.02.19 12:43 Сейчас в теме

(2) Номер ячейки я определил, но я не могу объединить, таким образом, выдает ошибку
: Ожидается символ ‘)’
ТабличныйДокумент.Область(ЯчейкаДляОбъединения1+»»>:ЯчейкаДляОбъединения2).Объединить(); (Проверка: Сервер)

8. dhurricane 01.02.19 12:48 Сейчас в теме
(4) У Вас всего лишь синтаксическая ошибка: двоеточие должно быть в кавычках и плюс «потеряли».
7. TopZlodey 13 01.02.19 12:47 Сейчас в теме
9. dhurricane 01.02.19 12:49 Сейчас в теме

ТабличныйДокумент.Область("R3C"+Строка(НомерЯчейки+1) + ":R3C"+Строка(НомерЯчейки+2)).Объединить();

user1619761; user1691741; criptid; sizeoff; singlych; + 5 – Ответить
3. dhurricane 01.02.19 12:39 Сейчас в теме

Для удобства можете обращаться к области не по имени, а по координатам. Вот выдержка из синтакс-помощника:

(необязательный)
Тип: Число.
Номер первой строки области таблицы.
Если отсутствует, то указывается область, состоящая из колонок.

(необязательный)
Тип: Число.
Номер первой колонки области таблицы.
Если отсутствует, то указывается область, состоящая из строк.

(необязательный)
Тип: Число.
Номер последней строки области таблицы.
Если выделяется область из колонок (параметр не задан), то указывается номер строки, из которой берется формат строк.

(необязательный)
Тип: Число.
Номер последней колонки области таблицы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *