СКД. Вставка разрыва страницы

21.08.12

Разработка - СКД

Столкнувшись с достаточно типовой проблемой при разработке отчетов на системе компоновки данных(СКД), вставка разрыва страницы в конце группировки, на форумах и в документации не нашел простого решения этой задачи. Пост-обработкой табличного документа заниматься не хотелось, хотя совсем этого избежать пока не удалось :) , поэтому было найдено не сложное решение которым я хочу с вами поделиться.

 

Столкнувшись с достаточно типовой проблемой при разработке отчетов на системе компоновки данных(СКД), вставка разрыва страницы после в конце группировки, на форумах и в документации не нашел простого решения этой задачи. Пост-обработкой табличного документа заниматься не хотелось, хотя совсем этого избежать пока не удалось :) , поэтому было найдено не сложное решение которым я хочу с вами поделиться.

Отчет будем формировать программно переопределив событие "ПриКомпоновкеРезультата"

 

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка=ЛОжь;

Настройки = КомпоновщикНастроек.ПолучитьНастройки();

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки);

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);

ПроцессорВывода.НачатьВывод();

ЭлементРезультата = ПроцессорКомпоновки.Следующий();
Пока
ЭлементРезультата <> Неопределено Цикл
    Если
ЭлементРезультата.ЗначенияПараметров.Количество()=1 Тогда
            Если
ЭлементРезультата.ЗначенияПараметров[0].Значение = "Разорвать" Тогда
           
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
    КонецЕсли;
   
ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
   
ЭлементРезультата = ПроцессорКомпоновки.Следующий();
КонецЦикла;
ПроцессорВывода.ЗакончитьВывод();

 

Как вы видите здесь все шаблонно, весь фокус находится в анализе ЭлементРезультата, в нем нужно определить когда собсвенно резать. Как я это решил для себя:

В СКД был добавлен Параметр РазрывСтраницы с типом строка и заданным значением "Разорвать"

 

В моей задачи мне нужно было выводить показатели списка врачей, при этом каждый врач должен был печататься на своем листе. В настройках отчета я сделал именованную группировку:

 

В настройка этой группировки я убрал Авто поля и вставил свой парметр РазрывСтраницы.

 

 

Далее для этой группировки сделал свой макет:

 

Чтобы сделать группировку не видимой я в настройках, для этой группировки установил условное оформление: цвета текста, фона, линий - белые.

На закладке Другие настройки установил: Тип макета - вертикально, Выводить отбор - не выводить.

Для чего все это было сделано, напомню кусочек кода:

 

    Если ЭлементРезультата.ЗначенияПараметров.Количество()=1 Тогда
            Если
ЭлементРезультата.ЗначенияПараметров[0].Значение = "Разорвать" Тогда
           
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
    КонецЕсли;

 

Для группировки ГруппировкаРазрыв у нас количество в коллекции ЗначенияПараметров будет равно 1. Всегда будет 1 параметр и его значение будет всегда равно нашей строке "Разорвать"  Благодаря этому и появляется выловить его при обходе результата. В пост обработки табличного документа придется удалить 2 последние строки, иначе у нас будет печататься пустая страница.

С уважение Петр Юрьевич Чечин


См. также

SALE! %

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

12000 10000 руб.

02.09.2020    93353    476    380    

531

Разрыв страницы в СКД. Легко!

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Когда отчет надо разделить по страницам, это всегда проблема для разработчика. Поскольку в СКД нет стандартных вариантов, как это сделать. Нашел (на свой взгляд) самое простое и оптимальное решение.

01.09.2023    2560    KVIKS    14    

76

Гибкие отборы через СКД на управляемых формах. Демо-обработка

СКД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

В данной публикации предлагаю вам рабочий пример использования системы компоновки данных для отборов на управляемых формах.

2 стартмани

07.06.2023    4197    24    quazare    7    

45

Вывод элементов иерархии верхнего уровня на СКД

СКД Платформа 1С v8.3 Абонемент ($m)

Как получить родителя первого уровня иерархического справочника с помощью СКД.

1 стартмани

06.06.2023    3335    echo77    6    

71

Обработка результатов запроса произвольными вычисляемыми полями. Обзор некоторых новых функций СКД

Запросы СКД Платформа 1С v8.3 Запросы Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

В данной статье вспомним, как обрабатывать результаты запроса в вычисляемых полях СКД, а также сделаем небольшой обзор на новые функции СКД платформы 8.3.20.

07.02.2023    4731    quazare    7    

38

Выборочная свертка группировок для СКД

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Россия Абонемент ($m)

Методика разработки отчета на СКД с возможностью свёртки части группировок по заданному программно условию. - свертка по значению поля (неотрицательные - сворачиваются); - свертка подчиненных в иерархии с произвольным количеством уровней.

1 стартмани

16.01.2023    2816    schthaxe    3    

30
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
0. stoptime 385 30.10.11 14:22 Сейчас в теме
Столкнувшись с достаточно типовой проблемой при разработке отчетов на системе компоновки данных(СКД), вставка разрыва страницы в конце группировки, на форумах и в документации не нашел простого решения этой задачи. Пост-обработкой табличного документа заниматься не хотелось, хотя совсем этого избежать пока не удалось :) , поэтому было найдено не сложное решение которым я хочу с вами поделиться.


Перейти к публикации

MarMargo; user712426; Adineska; igor-tit; +4 Ответить
1. Boroda 90 30.10.11 15:39 Сейчас в теме
Спасибо за хорошую публикацию, но почему-то, как ни старался, не могу посмотреть картинки к ней. Вместо них - лишь рамка с красным крестиком
2. stoptime 385 30.10.11 19:23 Сейчас в теме
Не знаю , почему у тебя проблеммы с картинками у меня отображаются нормально.
3. max082 31.10.11 11:33 Сейчас в теме
stoptime, как раз искал решение такой задачи месяц назад. В итоге решил тупо пост-обработкой(. Ваш вариант интереснее!
user712426; +1 Ответить
4. stoptime 385 31.10.11 11:55 Сейчас в теме
Да я тоже раньше постобработкой справлялся, просто нужно было сделать серию отчетов, и не все достаточно простые, для разбора потом табличного документа. Вот и придумал этот фокус. Нужда заставляет нас творить чудеса
user712426; +1 Ответить
5. echo77 1830 31.10.11 17:26 Сейчас в теме
1С расчетные листки в ЗУПе постобработкой режет
user712426; +1 Ответить
6. Saipl 7 01.11.11 15:06 Сейчас в теме
А если в СКД в макете создать макет заголовка группировки для врачей, создать именную область макета в свойствах которой в группе Параграф указать "Начало страницы" ???
7. stoptime 385 01.11.11 18:51 Сейчас в теме
(6) Saipl, Пробовал. вставлять разрыв страницы в макете, настраивать параграф. Убирамть макет оформления. в нем кстате нельзя настроить Параграф. Вобщем я досточно пошарился по всему механизму работы с макетами. Все пробовал на платформе 8.2.13, надо будет посмотреть может в следующих они испавят это поведение
8. bulpi 211 03.11.11 11:40 Сейчас в теме
Все это здорово напоминает удаление гланд через задний проход. Виртуозно, да. А через рот не пробовали? ( в смысле, обязательно КАЖДЫЙ отчет делать в СКД? Это религия такая?)
9. dandrontiy 07.11.11 13:28 Сейчас в теме
Гениально просто. Это зачёт.
defini; igor-tit; +2 Ответить
10. Kesr 08.11.11 10:47 Сейчас в теме
Тоже думал над этой проблемой в СКД. Попробую такой вариант.
11. stoptime 385 08.11.11 20:07 Сейчас в теме
(10) Если получится что то добавить к придумке, сообщи. Статью расширим
12. marinelle 11.11.11 11:33 Сейчас в теме
Спасибо!!! хоть появился еще один вариант, кроме постобработки.
13. rusrus 50 26.02.12 12:46 Сейчас в теме
Гениально. Спасибо
igor-tit; +1 Ответить
14. lsp71 28.02.12 13:57 Сейчас в теме
Присоединяюсь к плюсующим. Спасибо за идею.
igor-tit; +1 Ответить
15. irenkaN 29.02.12 09:38 Сейчас в теме
Большое спасибо, вы очень помогли
igor-tit; +1 Ответить
16. chmod660 417 17.04.12 14:03 Сейчас в теме
спасибо за идею, воспользовался!
igor-tit; +1 Ответить
17. Armando 1399 16.07.12 18:28 Сейчас в теме
Спасибо
Что бы группировка-пустышка не выводилась я дописал чуть-чуть:
Если ЭлементРезультата.ЗначенияПараметров[0].Значение = "Разорвать" Тогда
	ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
	ЭлементРезультата = ПроцессорКомпоновки.Следующий();
	Продолжить;
КонецЕсли;
user712426; igor-tit; rendalina; manaxov83; zqzq; KindLion; ERP-master; zus; alex15650; +9 Ответить
28. logarifm 1112 08.07.14 18:04 Сейчас в теме
(17) Armando,

можно и так

Пока ЭлементРезультата <> Неопределено Цикл
		Если ЭлементРезультата.ЗначенияПараметров.Количество() = 1 Тогда
			Если ЭлементРезультата.ЗначенияПараметров[0].Значение = Истина Тогда
				ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
			КонецЕсли;
		Иначе
			ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
		КонецЕсли;
		ЭлементРезультата = ПроцессорКомпоновки.Следующий();
	КонецЦикла;


Показать
18. владимирп 25 16.07.12 18:34 Сейчас в теме
Все гениальное просто! Это надо взять на вооружение
igor-tit; +1 Ответить
19. www2000 58 21.08.12 10:49 Сейчас в теме
Спасибо, отличная идея!

Но в конце поста левая картинка с правилами обмена данными, или они сюда каким-то боком относятся.
20. stoptime 385 21.08.12 11:15 Сейчас в теме
(19) Это я на редактировал. правил 2 статьи сразу.
21. Den_D 54 21.08.12 17:39 Сейчас в теме
Голь на выдумки хитра) Автору большое спасибо!
igor-tit; +1 Ответить
22. AlexO 134 21.08.12 17:47 Сейчас в теме
Т.е. снова "пустышку" выводим?
Ничего в 1С не меняется... :(
23. vamleshka 13.09.12 14:29 Сейчас в теме
Спасибо за классную идею! буду пробовать ее реализовать
igor-tit; +1 Ответить
24. herfis 485 13.02.13 15:27 Сейчас в теме
Как уже было сказано выше, группировку-пустышку можно просто не выводить при поэлементном выводе отчета.
Это сразу несколько плюшек дает:
1) не выводится лишняя строка
2) отпадает необходимость настраивать оформление группировки-пустышки, обеспечивая её условную невидимость
3) а самое вкусное - не надо удалять строки с "хвостовым" разрывом строки. Т.к. после последнего разрыва теперь нет данных для вывода, то пустой лист не выгоняется.
igor-tit; +1 Ответить
25. pau74 82 02.06.13 20:32 Сейчас в теме
Спасибо за идею.
Можно перед выводом элементов, найти в схеме компоновки данных макет, в котором присутствует нужный параметр и далее в цикле проверять, что в элементе результата содержится этот макет.
user712426; igor-tit; +2 Ответить
37. igor-tit 1 20.02.17 22:22 Сейчас в теме
(25) Имена Макетов в СКД "Макет1", "Макет2" и т.д. НЕ совпадут и похожими именами макетов при выводе. Порядковые номера макетов в СКД завися от порядка их создания, а номера макетов при выводе связаны с порядком Группировок в структуре отчета.
user712426; +1 Ответить
26. oafan 27 26.07.13 10:59 Сейчас в теме
Замечу следующее: если требуется выводить итоги к группировки (в вашем случае направивший врач) - то разделитель некорректно выводится. Мои рекомендации - в макете, где выводятся итоги (в вашем случае итогов нет, но в это относится к параметру "РазрывСтраницы" см. рис) слово итоги сделать параметром, а параметр можно заполнять в параметрах макета.
Прикрепленные файлы:
27. zus 33 18.08.13 20:10 Сейчас в теме
Гениально и просто! Спасибо за публикацию!
29. kosmius 7 12.12.14 15:12 Сейчас в теме
//аналогично настройкам масштаба «по ширине страницы»

МОжно подробней...? нету такого свойства у ТабДока.... и негде нету об этом ( как зделать чтобы при печати по умолчанию стояла "по ширине страницы"???
30. stoptime 385 16.12.14 00:40 Сейчас в теме
(29) Тебе наверное здесь спрашивать нужно было http://infostart.ru/public/83627/ . Табличный документ имеет свойства АвтоМасштаб. А по ширине страницы это в настройках печати нужно смотреть. а не в свойствах элемента.(меню файл, параметры страницы)
31. victory 09.05.15 08:53 Сейчас в теме
Спасибо за статью!
Чтобы не терять расшифровки добавил бы:

ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ,ДанныеРасшифровки);
Diks_Soft; igor-tit; rendalina; steve77; +4 Ответить
32. Kamikadze 46 10.08.15 09:37 Сейчас в теме
Спасибо за идею. С СКД в полной мере начинаю только работать. Механизм рабочий, даже скажу больше - делит на печатные страницы отлично.
igor-tit; +1 Ответить
33. AndroidRu 3 01.02.16 15:21 Сейчас в теме
Хорошее решение.
igor-tit; +1 Ответить
34. sank84 03.10.16 08:30 Сейчас в теме
Спасибо!
igor-tit; +1 Ответить
35. stoptime 385 04.10.16 16:21 Сейчас в теме
удивляюсь что все еще актуально. :)
MarMargo; user712426; igor-tit; +3 Ответить
38. igor-tit 1 23.02.17 01:10 Сейчас в теме
Спасибо. Очень к стати публикация.
39. NatalyaVP 15.05.17 08:56 Сейчас в теме
Здравствуйте.
Подскажите, а в какую часть модуля нужно вставить процедуру "ПриКомпоновкеРезультата"?
Я сделала всё как описано, но ничего не получилось, программа просто не заходит в процедуру "Процедура ПриКомпоновкеРезультата".
40. herfis 485 15.05.17 09:41 Сейчас в теме
(39) Это событие объекта "Отчет". Соответственно - в модуль отчета (не формы).
41. NatalyaVP 15.05.17 09:57 Сейчас в теме
Что значит "программно переопределив событие "ПриКомпоновкеРезультата""?
Как это сделать?
Я скопировала полностью процедуру "ПриКомпоновкеРезультата" , вставила её в модуль отчета, но программа туда не заходит.
Наверно, нужно что-то ещё написать. Подскажите, пожалуйста.
Спасибо.
42. herfis 485 15.05.17 10:19 Сейчас в теме
(41)
1) Может и заходит. Если клиент-сервер, то без перевода сервера в отладочный режим серверный модуль отладить не получится
2) Да нет, копирования должно быть достаточно. Для переопределения события объекта (не формы) достаточно правильной сигнатуры процедуры.
Для очистки совести можете в конфигураторе в модуле нажать Ctrl+Alt+P. Если "ПриКомпоновкеРезультата" будет в угловых скобках в конце списка - значит, не переопределилась (ошибка в названии или списке параметров). Ну или удалить всю вашу писанину и выбрать событие в угловых скобках из списка процедур/событий. Тогда конфигуратор сам переопределит событие, а вы внутрь скопируете все остальное.
3) честно говоря, судя по уровню знаний, у вас в чем угодно может быть затык. В таких случаях бывает сложно удаленно диагностировать :)
BelskyAV; +1 Ответить
44. NatalyaVP 15.05.17 12:18 Сейчас в теме
(42), " в модуле нажать Ctrl+Alt+P. Если "ПриКомпоновкеРезультата"" - я так и делаю. Не заходит программа в процедуру "ПриКомпоновкеРезультата".
45. vikad 127 15.05.17 12:21 Сейчас в теме
43. NatalyaVP 15.05.17 11:58 Сейчас в теме
Я делаю согласно написанной инструкции, значит этот метод не ко всем отчетам подходит, либо инструкция так написана.
Уровень знаний у меня нормальный, с скд только сейчас столкнулась.
46. user_2010 883 29.01.18 12:04 Сейчас в теме
Большое спасибо за статью!
Выручила!

сама не пробовала, но подумалось, чтобы не устанавливать цвет белый, может быть можно сделать пустым значение поля?
вот так:
   Если ЭлементРезультата.ЗначенияПараметров.Количество()=1 Тогда
            Если ЭлементРезультата.ЗначенияПараметров[0].Значение = "Разорвать" Тогда

ЭлементРезультата.ЗначенияПараметров[0].Значение = "";
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
    КонецЕсли;

или так нельзя изменять?
47. herfis 485 29.01.18 14:20 Сейчас в теме
(46) Читай комментарии. Смотри (17), (24), (28)
Я делал так:

	
ПроцессорВывода.НачатьВывод();
ЭлементРезультата = ПроцессорКомпоновки.Следующий();
Пока ЭлементРезультата <> Неопределено Цикл
	Если ЭлементРезультата.ЗначенияПараметров.Количество() = 1 И ЭлементРезультата.ЗначенияПараметров[0].Значение = "РазрывСтраницы" Тогда
		ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
	Иначе	
		ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
	КонецЕсли;
	ЭлементРезультата = ПроцессорКомпоновки.Следующий();
КонецЦикла;
ПроцессорВывода.ЗакончитьВывод();
Показать
48. user_2010 883 29.01.18 14:23 Сейчас в теме
(47) Спасибо!
49. Elected 20 31.01.18 10:08 Сейчас в теме
Разрыв страницы работает только, если отчет "нарисован" в макете?
50. Elected 20 31.01.18 11:03 Сейчас в теме
В таблице разделитель страниц не работает, но зато правильно расставляет параметр в группировке.
Прикрепленные файлы:
51. BelskyAV 28.11.18 19:24 Сейчас в теме
Спасибо!
52. keyn5565` 16 04.02.19 09:28 Сейчас в теме
каряво работает, пол документа выводит разрыв другую половину нет
53. oafan 27 04.02.19 09:52 Сейчас в теме
(52) Отчет можно посмотреть?
54. keyn5565` 16 06.02.19 13:03 Сейчас в теме
(53)
либо я запутался
либо отчет криво написал
пытался вместо параметра сделать через вычисляемое поле, результат тот же
Прикрепленные файлы:
ЗП_ЛичнаяКарточкаСотрудникаСКД.erf
55. oafan 27 06.03.19 16:25 Сейчас в теме
(54)Или закомментируйте Э
лементРезультата = ПроцессорКомпоновки.Следующий();:
Для каждого Стр из ЭлементРезультата.ЗначенияПараметров Цикл
		Если Стр.Значение = "Разорвать" Тогда
			ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
			//ЭлементРезультата = ПроцессорКомпоновки.Следующий();
			Выведена = истина;
			//Продолжить;
		КонецЕсли;
КонецЦикла;
		
Если выведена Тогда
	Продолжить	
КонецЕсли;

или без 
Если выведена Тогда
	Продолжить	
КонецЕсли;
Показать
56. keyn5565` 16 11.03.19 08:56 Сейчас в теме
(55)
Спасибо что откликнулись!
уже разобрался
проблема была в моей невнимательности
просто не указал
СтандартнаяОбработка = Ложь
в начале процедуры вывода
57. timurhv 30.07.19 01:08 Сейчас в теме
Если нельзя вклиниться в типовой вывод, можно использовать еще один велосипед в дополнение к статье:

КонечнаяОбласть = ДокументРезультат.НайтиТекст("Разорвать");
Если КонечнаяОбласть <> Неопределено Тогда
	пТабличныйДокумент1 = Новый ТабличныйДокумент;
	пТабличныйДокумент2 = Новый ТабличныйДокумент;
	пТабличныйДокумент1.Вывести(ДокументРезультат.ПолучитьОбласть("R1:R" + Формат(КонечнаяОбласть.Верх - 1,"ЧГ=")));
	пТабличныйДокумент2.Вывести(ДокументРезультат.ПолучитьОбласть("R" + Формат(КонечнаяОбласть.Верх + 1,"ЧГ=") + ":R" + Формат(ДокументРезультат.ВысотаТаблицы,"ЧГ=")));
	
	ДокументРезультат.Очистить();
	ДокументРезультат.Вывести(пТабличныйДокумент1);
	ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
	ДокументРезультат.Вывести(пТабличныйДокумент2);
КонецЕсли;
Показать


P.S: это пример деления на 2 части, можно переделать под массив
58. axelerleo 330 21.06.20 18:20 Сейчас в теме
Всем привет.
нашел, мне кажется, достаточно элегантное решение - в процедуре при компоновке, после вывода отчета, пишем

Для Инд = 1 по ДокументРезультат.ВысотаТаблицы Цикл
		Если ДокументРезультат.Область(Инд, 1).Текст = "ЭтоРазрывСтраницы" Тогда
			ДокументРезультат.Область("R"+Инд).КонецСтраницы = Истина;
			ДокументРезультат.Область(Инд, 1).Текст = "";
		КонецЕсли;	
	КонецЦикла;

Поэлементный вывод мне не подошел, т.к. СКД отказалась так выводить отчет с диаграммами.
Может, кому пригодится
SagittariusA; user712426; stoptime; +3 Ответить
59. Jungle Murzik 16.04.21 11:00 Сейчас в теме
Чтобы не добавлять лишние элементы в структуру, добавил параметр в макет к остальным параметрам и поправил код
ПроцессорВывода.НачатьВывод();
	
	ЭлементРезультата = ПроцессорКомпоновки.Следующий();
	Пока ЭлементРезультата <> Неопределено Цикл
		
		//Если ЭлементРезультата.ЗначенияПараметров.Количество()=1 Тогда
		//	Если ЭлементРезультата.ЗначенияПараметров[0].Значение = "РазрывСтраницы" Тогда
		//		ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
		//	КонецЕсли;
		//КонецЕсли;
		
		ВывестиРазделитель = Ложь;
		Для Каждого _п из ЭлементРезультата.ЗначенияПараметров Цикл
			Если _п.Значение = "РазрывСтраницы" Тогда
				_п.Значение = "";//Очистить служебный текст
				ВывестиРазделитель = Истина;
				Прервать;
			КонецЕсли;
		КонецЦикла;
		
		ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
		
		Если ВывестиРазделитель Тогда
			ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		
		ЭлементРезультата = ПроцессорКомпоновки.Следующий();
		
	КонецЦикла;
	ПроцессорВывода.ЗакончитьВывод();
Показать

Во вложении в отчете не выводится текст "РазделительСтраниц"
Прикрепленные файлы:
user1233720; stoptime; +2 Ответить
60. user930087 11.02.23 01:02 Сейчас в теме
сделал как все описано в статье
сделал все как указано - выводит ошибку
Синтаксическая ошибка
{ОбщийМодуль.ВариантыОтчетов.Модуль(1755)}:ОтчетОбъект.СкомпоноватьРезультат(Результат.ТабличныйДокумент, Результат.Расшифровка);
{ОбщийМодуль.ВариантыОтчетов.Модуль(2801)}:Формирование = СформироватьОтчет(Параметры, Ложь, Ложь);
{(1)}:ВариантыОтчетов.СформироватьОтчетВФоне(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5276)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1370)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(603)}:ВызватьПроцедуру(ИмяПроцедуры, ПараметрыЭкспортнойПроцедуры);
{ОбщаяФорма.ФормаОтчета.Форма(1530)}:Результат = ДлительныеОперации.ВыполнитьВФоне(

по причине:
Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата'
по причине:
Синтаксическая ошибка
по причине:
Ошибка компоновки макета
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка
В макетах помимо разрыва указано - Отчет: Заголовок и область начало и конец ячеек.
Если удалить Отчет: Заголовок то ошибку не выдает но не формирует ничего
ОтчетОбъект.ОпределитьНастройкиФормы(Неопределено, КлючВарианта, НастройкиОтчета);
метод не обнаружен ОпределитьНастройкиФормы
выдает синтаксическую ошибку - ошибка в выражении при компоновке макета. Но без разрыва никаких ошибок нет.
и почему-то сохраняешь значение ячейки для разрыва, а оно затем все равно само меняется)))
61. HIVvich 14.06.23 11:47 Сейчас в теме
Актуально и сейчас, спасибо за статью!
62. svbel85 36 30.08.23 18:22 Сейчас в теме
Тоже помогло, спасибо. Как бы еще сделать если нужно несколько группировок вывести - заранее неопределенного размера. Чтоб они по страницам не прыгали ...
Оставьте свое сообщение