Объединение в макете

1. serq82 8 24.07.13 07:32 Сейчас в теме
доброе утро!
подскажите как правильно объединять ячейки в макете
делаю
область = ТабДокумент.Область(35,19,35,24);
	область.Объединить();

он эти ячейки объединяет,но получается такая фигня(см. рисунок)
заранее спасибо
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Ягг 495 24.07.13 07:44 Сейчас в теме
(1) serq82, пустота, видимо по тому, что в первой ячейке (верхней левой) ничего не было - при объединении текст и рамка (кажется) берется по ней.

А по "теоретически должно объединится..." так ты вроде про эту часть когда тут (в вопросе) не написал.
3. serq82 8 24.07.13 07:53 Сейчас в теме
(2) Ягг, вот макет...по условию мне надо их объединять три колонки (количество листов,длина листа и ширина листа)
Прикрепленные файлы:
Документ ЗаказПокупателя_ Макет.mxl
4. Ягг 495 24.07.13 08:10 Сейчас в теме
(3) serq82, а объединить так же как объединил первую область не получается? там код праивльный
6. serq82 8 24.07.13 08:28 Сейчас в теме
(4) Ягг, в том и дело что не получается.пробовал по разному.если без объединения то норм печатает,ни пустот ничего...
7. Ягг 495 24.07.13 08:38 Сейчас в теме
(6) serq82, думается, тогда не правильно подгадываешь ячейки и строки. попробуй
1. отладчиком прогнать
2. вместо объединения задать изменения цвета области (область.ЦветФона = ...) - тогда сразу будет видно какая область затрагивается.
5. amaksimov 24.07.13 08:25 Сейчас в теме
(1) serq82, у меня получилось
вот код:

Макет=ПолучитьМакет("Макет");

Область = Макет.Область(35,19,35,24);
Область.Объединить();

Макет.Показать();
Прикрепленные файлы:
ВнешняяОбработка1.epf
17. Xershi 1500 17.02.19 23:21 Сейчас в теме
(1) у меня такой код все отлично объединил.
В первой ячейке текст был, который нужно!
Рекомендую сначала проделать данную операцию в пользовательском режиме, а только потом программно, чтобы понять какой код писать!
8. serq82 8 24.07.13 08:45 Сейчас в теме
вот код
ТабДокумент              = Новый ТабличныйДокумент;
      Макет  	  	       = Документы.ЗаказПокупателя.ПолучитьМакет("Макет");
      ЛистоваяПродукция      = Макет.ПолучитьОбласть("ЛистоваяПродукция");
      н=0;
	Для Каждого Стр Из Супермонтеррей Цикл
		н=н+1;
		ЛистоваяПродукция.Параметры.НомерСтроки = н;
		ЛистоваяПродукция.Параметры.Товар            = Стр.Номенклатура;
			Если ЗначениеЗаполнено(Стр.Цвет) Тогда 
       			ЛистоваяПродукция.Параметры.Товар = ""+стр.Номенклатура+" - "+Стр.Цвет;
			Иначе 
				ЛистоваяПродукция.Параметры.Товар = ""+стр.Номенклатура;
				
			КонецЕсли;
		ЛистоваяПродукция.Параметры.КоличествоЛистов = Стр.КоличествоЛистов;
		ЛистоваяПродукция.Параметры.ДлинаЛиста       = Стр.ДлинаЛиста;
		ЛистоваяПродукция.Параметры.ШиринаЛиста      = Стр.ШиринаЛиста;
		ЛистоваяПродукция.Параметры.Количество       = Стр.Количество;
		ЛистоваяПродукция.Параметры.ЕдиницаИзмерения = Стр.ЕдиницаИзмерения;
		ЛистоваяПродукция.Параметры.Цена             = Стр.Цена;
		ЛистоваяПродукция.Параметры.Сумма            = Стр.Сумма;
		//Тут по условию надо объединять
		Область = ТабДокумент.Область(35,19,35,24);
		Область.Объединить();
		//Тут по условию надо объединять
		ТабДокумент.Вывести(ЛистоваяПродукция);
	КонецЦикла;
Показать
9. Ягг 495 24.07.13 08:48 Сейчас в теме
(8) serq82, а зачем на каждом проходе цикла делать объединение? ты же уже конечный табличный документ должен обработать.
10. serq82 8 24.07.13 08:51 Сейчас в теме
(9) Ягг,есть другой вид изделия, размеры другие...поэтому мне надо объединить
11. Ягг 495 24.07.13 08:52 Сейчас в теме
(10) serq82, но не в цикле же наврено
12. amaksimov 24.07.13 08:52 Сейчас в теме
(8) serq82, попробуйте так

ТабДокумент              = Новый ТабличныйДокумент;
Макет                 = Документы.ЗаказПокупателя.ПолучитьМакет("Макет");
ЛистоваяПродукция      = Макет.ПолучитьОбласть("ЛистоваяПродукция");
н=0;
Для Каждого Стр Из Супермонтеррей Цикл
	н=н+1;
	ЛистоваяПродукция.Параметры.НомерСтроки = н;
	ЛистоваяПродукция.Параметры.Товар            = Стр.Номенклатура;
	Если ЗначениеЗаполнено(Стр.Цвет) Тогда 
		ЛистоваяПродукция.Параметры.Товар = ""+стр.Номенклатура+" - "+Стр.Цвет;
	Иначе 
		ЛистоваяПродукция.Параметры.Товар = ""+стр.Номенклатура;
		
	КонецЕсли;
	//!![[
	//ЛистоваяПродукция.Параметры.КоличествоЛистов = Стр.КоличествоЛистов;
	//ЛистоваяПродукция.Параметры.ДлинаЛиста       = Стр.ДлинаЛиста;
	//ЛистоваяПродукция.Параметры.ШиринаЛиста      = Стр.ШиринаЛиста;
	ЛистоваяПродукция.Параметры.КоличествоЛистов = "" + Стр.КоличествоЛистов + "/" + Стр.ДлинаЛиста + "/" + Стр.ШиринаЛиста;
	//!!]]
	ЛистоваяПродукция.Параметры.Количество       = Стр.Количество;
	ЛистоваяПродукция.Параметры.ЕдиницаИзмерения = Стр.ЕдиницаИзмерения;
	ЛистоваяПродукция.Параметры.Цена             = Стр.Цена;
	ЛистоваяПродукция.Параметры.Сумма            = Стр.Сумма;
	//Тут по условию надо объединять
	//!![[
	//Область = ТабДокумент.Область(35,19,35,24);
	Область = ЛистоваяПродукция.Область(1,19,1,24);
	Область.Объединить();
	//!!]]
	//Тут по условию надо объединять
	ТабДокумент.Вывести(ЛистоваяПродукция);
КонецЦикла;
Показать
13. serq82 8 24.07.13 09:01 Сейчас в теме
(12) crabzzy, сработало))))а почему (1,19,1,24)??????????????
14. amaksimov 24.07.13 09:09 Сейчас в теме
(13) serq82, ну мы берём покорректнее,
мы же создали по сути новый табдок: ЛистоваяПродукция
он сам по себе живёт
его и в Вывести(ЛистоваяПродукция) подгоняем
значит в нём и надо объединять
а не в макете
макет сам по себе живёт
он только поставщик областей (вырезаем оттуда)

Ну вот если всё это на бумажном листе
мы вырезали ножницами блок - этот блок из одной строки, поэтому и 1цы как начало и конец диапазона строк
сделали что надо с блоком и приклеили к результату (Вывести)
потом опять взяли и вырезали из макета такой же блок ножницами (ну его по факту там нет, если на бумаге, но в программе есть)
15. serq82 8 24.07.13 09:11 Сейчас в теме
16. amaksimov 24.07.13 10:59 Сейчас в теме
(15) serq82, пожалуйста
Вообще шаблоны ведь ещё есть (вида <Текст [Параметр] Текст [ДругойПараметр]>
Может сразу в макете объединить ячейки и поставить вид заполнения "Шаблон"?
И такой вот текст задать [Количество] [Ширина] [Длина]
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот