Нужно присоединение справа табличного документа
По сути каждый макет формируется в СКД, получается у каждого свой формат.
1С плохо подклеивает справа такие макеты.
Получается так как показал на картинке.
Нужно подклеить нормально.
Прикрепляю также тестовую обработку.
1С плохо подклеивает справа такие макеты.
Получается так как показал на картинке.
Нужно подклеить нормально.
Прикрепляю также тестовую обработку.
Прикрепленные файлы:
ТестПрисоединенияМакетов.epf
По теме из базы знаний
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- Загрузка чеков в 1С из ФНС в документы БП, УНФ, ERP, КА и УТ
- Как быстро развернуть автоматическую линию проверки своего решения на 1С, затратив 8 часов и получив выигрыш в 1 человеко/месяц
- Смотрим запросы 1С через Microsoft SQL Profiler по следам ошибок разработчиков, приводящих к проблемам производительности
- Каждому проекту – сценарные тесты! Быстрый старт в тестирование с помощью СППР
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Не понимаю эту технологию до конца, но вот в таком виде макеты сливаются в один нормально.
Без пустышки в начале таблицы все расползается.
Процедура ВывестиНаСервере()
Результат.Очистить();
ОО = РеквизитФормыВЗначение("Объект");
М1 = ОО.ПолучитьМакет("М1");
М2 = ОО.ПолучитьМакет("М2");
М3 = ОО.ПолучитьМакет("М3");
Результат.Присоединить(Новый ТабличныйДокумент);
Результат.Присоединить(М1);
Результат.Присоединить(М2);
Результат.Присоединить(М3);
КонецПроцедуры
ПоказатьБез пустышки в начале таблицы все расползается.
(6) Более-менее работает. Но вставляет первую колонку, если она широкая не смотрится.
Как бы ее убрать?
И да, чтобы сохранялась ширина, нужно создавать свой формат строк, причем даже в таблицу М0, если у нее не будет формата строк, то ширина ее колонок изменится. Но это думаю, излечимо.
Вот код:
Добавил макет М0.
Результат на картинке.
Как бы ее убрать?
И да, чтобы сохранялась ширина, нужно создавать свой формат строк, причем даже в таблицу М0, если у нее не будет формата строк, то ширина ее колонок изменится. Но это думаю, излечимо.
Вот код:
&НаСервере
Процедура ВывестиНаСервере()
Результат.Очистить();
ОО = РеквизитФормыВЗначение("Объект");
М = ОО.ПолучитьМакет("М0");
Результат.Вывести(М);
Т = Новый ТабличныйДокумент();
Результат.Вывести(Т);
Результат.Присоединить(Т);
М = ОО.ПолучитьМакет("М1");
Результат.Присоединить(М);
М = ОО.ПолучитьМакет("М2");
Результат.Присоединить(М);
М = ОО.ПолучитьМакет("М3");
Результат.Присоединить(М);
КонецПроцедуры
ПоказатьДобавил макет М0.
Результат на картинке.
Прикрепленные файлы:
(10) Да, действительно. Хорошо, сейчас потестирую на продакте, отпишусь.
&НаСервере
Процедура ВывестиНаСервере()
Результат.Очистить();
ОО = РеквизитФормыВЗначение("Объект");
М = ОО.ПолучитьМакет("М0");
Результат.Вывести(М);
НачалоПодвала = Результат.ВысотаТаблицы + 1;
Т = Новый ТабличныйДокумент();
Результат.Вывести(Т);
Результат.Присоединить(Т);
М = ОО.ПолучитьМакет("М1");
Результат.Присоединить(М);
М = ОО.ПолучитьМакет("М2");
Результат.Присоединить(М);
М = ОО.ПолучитьМакет("М3");
Результат.Присоединить(М);
КонецПодвала = Результат.ВысотаТаблицы;
Область = Результат.Область(НачалоПодвала,1, КонецПодвала, 1);
Результат.УдалитьОбласть(Область,ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецПроцедуры
ПоказатьПрикрепленные файлы:
Что-то не вытанцовывается на продакте.
Есть два отчета Оплаты и Расходы, выдаются СКД, формат строк у них есть.
Но при выводе почему-то теряется...
Ширина колонок разъезжается.
И между Оплаты и Расходы большой промежуток появляется. Примеры макетов выложил в обработке.
Я на практике подкорректировал ширину кодом:
Но хотелось бы без этих бубнов.
Есть два отчета Оплаты и Расходы, выдаются СКД, формат строк у них есть.
Но при выводе почему-то теряется...
Ширина колонок разъезжается.
И между Оплаты и Расходы большой промежуток появляется. Примеры макетов выложил в обработке.
&НаСервере
Процедура ВывестиНаСервере()
Результат.Очистить();
ОО = РеквизитФормыВЗначение("Объект");
М = ОО.ПолучитьМакет("М0");
Результат.Вывести(М);
НачалоПодвала = Результат.ВысотаТаблицы + 1;
Т = Новый ТабличныйДокумент();
Результат.Вывести(Т);
Результат.Присоединить(Т);
М = ОО.ПолучитьМакет("М1");
Результат.Присоединить(М);
М = ОО.ПолучитьМакет("М2");
Результат.Присоединить(М);
М = ОО.ПолучитьМакет("М3");
Результат.Присоединить(М);
КонецПодвала = Результат.ВысотаТаблицы;
Результат.Вывести(Т);
Результат.Присоединить(Т);
М = ОО.ПолучитьМакет("СКД1");
Результат.Присоединить(М);
М = ОО.ПолучитьМакет("СКД2");
Результат.Присоединить(М);
Область = Результат.Область(НачалоПодвала,1, КонецПодвала, 1);
Результат.УдалитьОбласть(Область,ТипСмещенияТабличногоДокумента.ПоГоризонтали);
КонецПроцедуры
ПоказатьЯ на практике подкорректировал ширину кодом:
ДокументРезультат.Область(НачалоПодвала + 4, 2).ШиринаКолонки = 20;
ДокументРезультат.Область(НачалоПодвала + 4, 3).ШиринаКолонки = 15;
ДокументРезультат.Область(НачалоПодвала + 4, 6).ШиринаКолонки = 20;
ДокументРезультат.Область(НачалоПодвала + 4, 7).ШиринаКолонки = 15;
Но хотелось бы без этих бубнов.
Прикрепленные файлы:
(13) если бы клиента устроило выводить друг под дружкой, не было бы этой ветки.
Наша задача - не сдаться на милостьприроды 1С, а взять от нее то, что нам нужно.
Сдаваться на компромисс не годится, ведь вручную кодом я могу скорректировать ширину колонок, значит, это можно сделать и универсально.
Наша задача - не сдаться на милость
Сдаваться на компромисс не годится, ведь вручную кодом я могу скорректировать ширину колонок, значит, это можно сделать и универсально.
(12)
"Ширина колонок разъезжается..."
блоки формируются естественным образом.
Но ширина колонок она сквозная для всего документа. и если мы вставляем блок в уже существующий, то ширина берется из того который существуюет, а не та которая в прикрепляемом блоке.
ИМХА это очевидно.
И если мы хотим чтобы ширина была нужная - то надо эту ширину задать у исходного блока к которому мы клеим свою часть.
"Ширина колонок разъезжается..."
блоки формируются естественным образом.
Но ширина колонок она сквозная для всего документа. и если мы вставляем блок в уже существующий, то ширина берется из того который существуюет, а не та которая в прикрепляемом блоке.
ИМХА это очевидно.
И если мы хотим чтобы ширина была нужная - то надо эту ширину задать у исходного блока к которому мы клеим свою часть.
(17)
Странно, что гений этого не понимает.
Впрочем нет. Не странно.
универсальный код по присоединению
Нет такого. В силу того, что механика табличного документа позволяет создать формат строк, но не формат столбцов. Присоединение справа макета с другими высотами строки технически невозможно. Поэтому любое решение будет учитывать конкретный случай.
Странно, что гений этого не понимает.
Впрочем нет. Не странно.
(14) если вы скачаете обработку, то увидите, что у макетов СКД1 и СКД2, созданных через СКД, для строк указан свой формат ширины. Логично ожидать, что свой формат будет поддерживаться и при присоединении.
Но этого не происходит.
Следовательно, для корректного присоединения нужно как-то дорабатывать ширину колонок. Поэтому я и дал поупражняться читателям, которым эта задача интересна.
Но этого не происходит.
Следовательно, для корректного присоединения нужно как-то дорабатывать ширину колонок. Поэтому я и дал поупражняться читателям, которым эта задача интересна.
(16) не логично.
и совсем не понятно, чего вы ожидаете получить.
код обработки - написан тоже без явной логики. что допустимо для тестовой задачи.
у вас макеты такие... смысл которых ускользает от не посвященного пользователя.
могу предположить, что вы хотите сохранить некую "красивость" исходных форматов и этих форматов вместе.
но исходные форматы у вас максимально кривые... после объединения и/или присоединения эта кривость усогубляется.
общая логика объединения/ присоеденения доступна для любителей игры в тетрис.
ширина колонок и высота строк - сквозная для всего документа.
и совсем не понятно, чего вы ожидаете получить.
код обработки - написан тоже без явной логики. что допустимо для тестовой задачи.
у вас макеты такие... смысл которых ускользает от не посвященного пользователя.
могу предположить, что вы хотите сохранить некую "красивость" исходных форматов и этих форматов вместе.
но исходные форматы у вас максимально кривые... после объединения и/или присоединения эта кривость усогубляется.
общая логика объединения/ присоеденения доступна для любителей игры в тетрис.
ширина колонок и высота строк - сквозная для всего документа.
(21) на этот вопрос могу дать простой ответ.
Есть макет СКД1 и СКД2.
Я хочу чтобы макет СКД2 присоединился справа с сохранением ширины колонок СКД1 и СКД2.
Сейчас ширина колонок нарушается, хотя у строк СКД1 и СКД2 создан свой формат строк (это создает СКД).
Думаю, предельно ясно изложил свое пожелание?
Есть макет СКД1 и СКД2.
Я хочу чтобы макет СКД2 присоединился справа с сохранением ширины колонок СКД1 и СКД2.
Сейчас ширина колонок нарушается, хотя у строк СКД1 и СКД2 создан свой формат строк (это создает СКД).
Думаю, предельно ясно изложил свое пожелание?
(1)
держи макет.
посмотри как работать с макетами, как с областями.
и как это все группировать в нужные конструкции.
ширина колонок регулируется отдельно.
PS. обычно шаблон формируют целиковый и уже правят только параметры, но можно и так поиграться.
держи макет.
посмотри как работать с макетами, как с областями.
и как это все группировать в нужные конструкции.
ширина колонок регулируется отдельно.
PS. обычно шаблон формируют целиковый и уже правят только параметры, но можно и так поиграться.
Прикрепленные файлы:
ТестПрисоединенияМакетов_01.epf
(12)
Промежуток появляется из-за того, что в макетах СКД в обработке есть формат строк для 12 колонок.
Можно удалить пустые колонки макета перед выводом.
И между Оплаты и Расходы большой промежуток появляется.
Промежуток появляется из-за того, что в макетах СКД в обработке есть формат строк для 12 колонок.
Можно удалить пустые колонки макета перед выводом.
Прикрепленные файлы:
ТестПрисоединенияМакетов.epf
Кстати, запишу еще одну мысль для общности.
Отдельные макеты можно сконвертировать в картинку (сохранить в PDF, далее командной строкой в JPEG) и идеально вставить рядом друг с другом.
Это, кстати, универсальное решение. Даже с разной высотой строк. Но не для моей конкретной задачи.
Там достаточно доработать ширину строк.
Отдельные макеты можно сконвертировать в картинку (сохранить в PDF, далее командной строкой в JPEG) и идеально вставить рядом друг с другом.
Это, кстати, универсальное решение. Даже с разной высотой строк. Но не для моей конкретной задачи.
Там достаточно доработать ширину строк.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот