Как объединить ячейки в 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 тексту предыдущей строки того же столбца. Если равно, продолжаем цикл.
- Если текст отличается от предыдущей строки, значит объединяем ячейки в первой колонке, начиная с ячейки начала объединения, по последнюю с тем же значением.
- После объединения меняем значение переменной НачалоОбъединения, чтобы следующее объединение начиналось уже со следующей строки.
Раздел: Программирование Статьи по 1С Метки: Табличный документ
Программное объединение ячеек табличного документа в 1С : 10 комментариев
- Вадим 10.05.2017 Здорово! Спасибо. А я то думаю, как бы сделать такое же для колонок. Но там аналогично)
- Нестандартные решения в 1С Автор записи 26.05.2017 Рады, что помогло 🙂 Кстати объединение можно делать не только в уже полностью сформированном табличном документе, но и в отдельных областях, которые только готовятся для вывода. Делается все аналогично, но так бывает даже удобнее.
- Нестандартные решения в 1С Автор записи 26.03.2018 Спасибо за замечание, надо попробовать. Хотя есть некоторые сомнения. Ведь мы переменную Строка берем не из экселевского файла, в котором могут быть разделители групп. Эта переменная образуется в цикле ДЛЯ, ей значения присваивает 1С, они и так будут без разделителей.
- Ммммм? 24.07.2019 Имел ввиду «не равно»
- Нестандартные решения в 1С Автор записи 10.09.2019 Думаю, нет. Мы же хотим объединить ячейки с одинаковым содержимым. Значит должно быть «равно».
Добавить комментарий Отменить ответ

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

Сообщение сайта
(Сообщение закроется через 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 Сейчас в теме
Для удобства можете обращаться к области не по имени, а по координатам. Вот выдержка из синтакс-помощника:
(необязательный)
Тип: Число.
Номер первой строки области таблицы.
Если отсутствует, то указывается область, состоящая из колонок.
(необязательный)
Тип: Число.
Номер первой колонки области таблицы.
Если отсутствует, то указывается область, состоящая из строк.
(необязательный)
Тип: Число.
Номер последней строки области таблицы.
Если выделяется область из колонок (параметр не задан), то указывается номер строки, из которой берется формат строк.
(необязательный)
Тип: Число.
Номер последней колонки области таблицы.