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

Публикация № 96583

Разработка - Практика программирования

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

 

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

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

 

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

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

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

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

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

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

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

 

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

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

 

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

 

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

 

 

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

 

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

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

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

 

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

 

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

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


Специальные предложения

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


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

Adineska; igor-tit; +2 Ответить
1. Boroda 90 30.10.11 15:39 Сейчас в теме
Спасибо за хорошую публикацию, но почему-то, как ни старался, не могу посмотреть картинки к ней. Вместо них - лишь рамка с красным крестиком
2. stoptime 312 30.10.11 19:23 Сейчас в теме
Не знаю , почему у тебя проблеммы с картинками у меня отображаются нормально.
3. max082 31.10.11 11:33 Сейчас в теме
stoptime, как раз искал решение такой задачи месяц назад. В итоге решил тупо пост-обработкой(. Ваш вариант интереснее!
4. stoptime 312 31.10.11 11:55 Сейчас в теме
Да я тоже раньше постобработкой справлялся, просто нужно было сделать серию отчетов, и не все достаточно простые, для разбора потом табличного документа. Вот и придумал этот фокус. Нужда заставляет нас творить чудеса
5. echo77 1161 31.10.11 17:26 Сейчас в теме
1С расчетные листки в ЗУПе постобработкой режет
6. Saipl 6 01.11.11 15:06 Сейчас в теме
А если в СКД в макете создать макет заголовка группировки для врачей, создать именную область макета в свойствах которой в группе Параграф указать "Начало страницы" ???
7. stoptime 312 01.11.11 18:51 Сейчас в теме
(6) Saipl, Пробовал. вставлять разрыв страницы в макете, настраивать параграф. Убирамть макет оформления. в нем кстате нельзя настроить Параграф. Вобщем я досточно пошарился по всему механизму работы с макетами. Все пробовал на платформе 8.2.13, надо будет посмотреть может в следующих они испавят это поведение
8. bulpi 174 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 312 08.11.11 20:07 Сейчас в теме
(10) Если получится что то добавить к придумке, сообщи. Статью расширим
12. marinelle 11.11.11 11:33 Сейчас в теме
Спасибо!!! хоть появился еще один вариант, кроме постобработки.
13. rusrus 49 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 415 17.04.12 14:03 Сейчас в теме
спасибо за идею, воспользовался!
igor-tit; +1 Ответить
17. Armando 1393 16.07.12 18:28 Сейчас в теме
Спасибо
Что бы группировка-пустышка не выводилась я дописал чуть-чуть:
Если ЭлементРезультата.ЗначенияПараметров[0].Значение = "Разорвать" Тогда
	ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
	ЭлементРезультата = ПроцессорКомпоновки.Следующий();
	Продолжить;
КонецЕсли;
igor-tit; rendalina; manaxov83; zqzq; KindLion; ERP-master; zus; alex15650; +8 Ответить
28. logarifm 1077 08.07.14 18:04 Сейчас в теме
(17) Armando,

можно и так

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


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

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

МОжно подробней...? нету такого свойства у ТабДока.... и негде нету об этом ( как зделать чтобы при печати по умолчанию стояла "по ширине страницы"???
30. stoptime 312 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 Сейчас в теме
34. sank84 03.10.16 08:30 Сейчас в теме
35. stoptime 312 04.10.16 16:21 Сейчас в теме
удивляюсь что все еще актуально. :)
igor-tit; +1 Ответить
38. igor-tit 1 23.02.17 01:10 Сейчас в теме
Спасибо. Очень к стати публикация.
39. NatalyaVP 15.05.17 08:56 Сейчас в теме
Здравствуйте.
Подскажите, а в какую часть модуля нужно вставить процедуру "ПриКомпоновкеРезультата"?
Я сделала всё как описано, но ничего не получилось, программа просто не заходит в процедуру "Процедура ПриКомпоновкеРезультата".
40. herfis 366 15.05.17 09:41 Сейчас в теме
(39) Это событие объекта "Отчет". Соответственно - в модуль отчета (не формы).
41. NatalyaVP 15.05.17 09:57 Сейчас в теме
Что значит "программно переопределив событие "ПриКомпоновкеРезультата""?
Как это сделать?
Я скопировала полностью процедуру "ПриКомпоновкеРезультата" , вставила её в модуль отчета, но программа туда не заходит.
Наверно, нужно что-то ещё написать. Подскажите, пожалуйста.
Спасибо.
42. herfis 366 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. Если "ПриКомпоновкеРезультата"" - я так и делаю. Не заходит программа в процедуру "ПриКомпоновкеРезультата".
43. NatalyaVP 15.05.17 11:58 Сейчас в теме
Я делаю согласно написанной инструкции, значит этот метод не ко всем отчетам подходит, либо инструкция так написана.
Уровень знаний у меня нормальный, с скд только сейчас столкнулась.
46. user_2010 489 29.01.18 12:04 Сейчас в теме
Большое спасибо за статью!
Выручила!

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

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

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

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

или без 
Если выведена Тогда
	Продолжить	
КонецЕсли;
Показать
56. keyn5565` 6 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 294 21.06.20 18:20 Сейчас в теме
Всем привет.
нашел, мне кажется, достаточно элегантное решение - в процедуре при компоновке, после вывода отчета, пишем

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

Поэлементный вывод мне не подошел, т.к. СКД отказалась так выводить отчет с диаграммами.
Может, кому пригодится
stoptime; +1 Ответить
Оставьте свое сообщение

См. также

Использование программных перечислений, ч.1: строковые константы Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    36785    unichkin    46    

Вывод дерева в табличный документ СКД

Практика программирования Универсальные функции v8 v8::СКД Бесплатно (free)

Вывод содержимого элемента формы "ДанныеФормыДерево" в табличный документ средствами СКД.

09.07.2020    2149    Yashazz    4    

Роль "Остатки" поля набора данных СКД в отчете и в расшифровке

Практика программирования v8::СКД 1cv8.cf Бесплатно (free)

В СКД создан набор данных "Запрос". Запрос выполняется к виртуальной таблице "Остатки и обороты", периодичность регистра "Авто", выбираются все измерения и ресурсы регистра, а так же выбирается Регистратор и ПериодСекунда. Для полей содержащих остатки устанавливается роль "Остатки". Для полей "Регистратор" и "ПериодСекунда" устанавливается роль "Период". Для поля "Регистратор" устанавливается выражение упорядочивания.

24.05.2020    2626    kasper076    16    

Макет оформления в отчете с несколькими СКД

Практика программирования v8::СКД Россия Бесплатно (free)

Как заставить работать макет оформления в отчёте с несколькими СКД.

14.05.2020    2071    vendim    1    

Вспомогательные инструкции в коде 1С Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    29292    tormozit    100    

СКД. Использование Менеджера временных таблиц в системе компоновки

Практика программирования v8 v8::Запросы v8::СКД 1cv8.cf Бесплатно (free)

С выпуском платформы 8.3.17 фирма 1С анонсировала возможность передачи в механизм системы компоновки данных менеджера временных таблиц. Платформа вышла из беты, самое время разобраться с новым механизмом, тем более в комментариях я встретил непонимание принципов работы этого нововведения. Постараюсь кратко.

29.04.2020    5230    the1    28    

Ограничения полей, или как обмануть СКД?

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Каждое из ограничений полей можно обойти. Рассмотрим варианты обхода и способы обезопасить свой отчет.

15.04.2020    5842    SeiOkami    38    

Работа с запросами в 1С СКД. Отладка СКД

Практика программирования v8::Запросы v8::СКД Россия Бесплатно (free)

В предыдущем разделе мы изучали с вами особенности работы с запросами в СКД. Для изучения (отладки) работы различных схем компоновки данных я использовал консоль компоновки данных.

15.04.2020    3089    ProfessionStore    3    

Оформление и рефакторинг сложных логических выражений Промо

Практика программирования v8 Россия Бесплатно (free)

В сложных логических выражениях нередко самому автору спустя какое-то время тяжело разобраться, не говоря уже о других программистах. Предлагаемая методика позволяет повысить наглядность таких выражений путем оформления в виде И-ИЛИ дерева и одновременно выполнять их рефакторинг.

20.09.2012    77191    tormozit    131    

Работа с запросами в 1С СКД. Особенности работы запросов в СКД. Часть 3

Практика программирования v8::Запросы v8::СКД Россия Бесплатно (free)

Почему при отборе по контрагенту наш отчет работает неправильно. Посмотрим на примере другого отчета, в котором нам нужно выбрать данные из расходных накладных и связанные с номенклатурой данные по ВСЕМ заявкам.

13.04.2020    4922    ProfessionStore    4    

СКД: Прозрачная обработка результата

Практика программирования v8::СКД 1cv8.cf Бесплатно (free)

В статье дан ответ на вопрос о том, как "прозрачно" обработать результат компоновки (да хотя бы картинки вставить после того, как отчет сформирован).

13.04.2020    3685    starik-2005    16    

Работа с запросами в 1С СКД. Особенности работы запросов в СКД. Часть 2

Практика программирования v8::Запросы v8::СКД Россия Бесплатно (free)

Все примеры разобраны с помощью консолей компоновки данных, речь о которых пойдет в предпоследнем разделе статьи.

12.04.2020    3826    ProfessionStore    11    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007    47477    tormozit    40    

Работа с запросами в 1С СКД. Особенности работы запросов в СКД. Часть 1

Практика программирования v8::Запросы v8::СКД 1cv8.cf Россия Бесплатно (free)

Все примеры разобраны с помощью консолей компоновки данных, речь о которых пойдет в предпоследнем разделе статьи.

11.04.2020    4590    ProfessionStore    8    

Работа с запросами в 1С СКД. Язык выражений СКД и подмена запросов

Практика программирования v8::Запросы v8::СКД Россия Бесплатно (free)

Хотя эта статья называется «Работа с запросами в 1С СКД», нельзя не упомянуть про язык выражений СКД. Да – у системы компоновки данных есть свой язык! Это не язык платформы 1С, это не язык запросов. Это еще один язык, который используется 1С в СКД для обработки полученного набора (ов) данных.

11.04.2020    5200    ProfessionStore    24    

Работа с запросами в 1С СКД. Примеры использования расширения языка запросов СКД

Практика программирования v8::Запросы v8::СКД Россия Бесплатно (free)

Все тонкости использования расширения языка запросов 1С для СКД вы можете изучить по ссылкам, которые приведены в предыдущей статье. Здесь мы рассмотрим конкретные кейсы применения данного расширения.

10.04.2020    5120    ProfessionStore    4    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    43773    tormozit    74    

Запросы 1С СКД. Возможности и ограничения

Практика программирования v8::Запросы v8::СКД Россия Бесплатно (free)

В этом цикле статей мы рассмотрим особенности работы системы компоновки данных с запросами в 1С.

10.04.2020    6156    ProfessionStore    14    

Вложенные СКД

Практика программирования Конфигурирование 1С v8 v8::СКД Бесплатно (free)

Возможности, нюансы, заметки.

26.03.2020    5294    Yashazz    19    

СКД - одна из проблем связи Наборов данных

Практика программирования v8::СКД 1cv8.cf Россия Бесплатно (free)

Официальная информация: 1. В схеме компоновки данных нет указания типа связи. Все связи считаются ЛЕВЫМИ внешними соединениями. 2. Если для вложенного набора данных указано условие фильтра, тогда связь вложенного набора данных с родительским набором данных считается ВНУТРЕННЕЙ. Или как получить все результаты основного набора при отборе в зависимом.

03.03.2020    4678    BelikovSA    9    

Выгрузка документа по условию Промо

Практика программирования Разработка v8 Бесплатно (free)

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

25.04.2019    15843    m-rv    2    

Получение значений всех полей в иерархии структуры отчета

Практика программирования Математика и алгоритмы v8::СКД Россия Бесплатно (free)

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

28.02.2020    2067    real_MaxA    1    

Для чего нужен флаг "Автозаполнение" в СКД и каких проблем без него можно избежать

Практика программирования v8 v8::СКД Бесплатно (free)

Речь пойдет о флаге «Автозаполнение» в наборе данных Запрос Системы компоновки данных (СКД). Сразу хочу отметить, что флаг «Автозаполнение» доступен только в наборе данных - Запрос.

26.02.2020    5775    Neti    41    

Программная работа с настройками СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

27.01.2020    21889    ids79    26    

Как прикрутить ГУИД к регистру сведений Промо

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

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

16.04.2019    19832    m-rv    17    

[СКД] Программное создание схемы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    20464    John_d    22    

СКД. Лайфхак №2. Собираем отчет еще удобнее

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

20.11.2019    9791    aximo    15    

Некоторые редко используемые возможности СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

11.11.2019    11047    kser87    39    

Как сделать запрос на изменение данных Промо

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    29927    m-rv    21    

Лайфхак работы с СКД. Собираем отчет.

Практика программирования v8::СКД 1cv8.cf Бесплатно (free)

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

25.10.2019    18841    aximo    37    

Немного про СКД. Характеристики и проверка пустого отчета

Практика программирования v8::СКД 1cv8.cf Бесплатно (free)

Пример использования характеристик в СКД и программная работа с ними. А также описание проверки результата отчета на заполненность.

10.10.2019    11098    YPermitin    7    

Полезняшки по СКД и построителям. Просто код

Практика программирования Универсальные функции v8 v8::СКД Бесплатно (free)

Полезные процедуры и функции для работы с построителями и СКД. Просто исходник.

10.10.2019    9638    Yashazz    45    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Вариант решения задач с проведением по типовым регистрам нетиповыми регистраторами. Зачем - чтобы при сравнении конфигурации не обращать внимание на свойства регистров и исключить вероятность допущения горькой оплошности при обновлении информационных баз, заменив типы регистраторов основной конфигурации типами конфигурации поставщика. Для программных продуктов, имеющих в своем составе метаданных документ "Корректировка регистров"("Корректировка записей регистров").

05.12.2017    27988    itriot11    34    

Две схемы СКД в одном отчете с пользовательскими параметрами

Практика программирования v8::СКД Россия Бесплатно (free)

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

10.10.2019    8549    evgeni-red    8    

Три способа создания одного отчета на СКД

Практика программирования v8 v8::СКД ERP2 УТ11 КА2 Бесплатно (free)

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

08.10.2019    13810    ids79    26    

СКД. Отчеты с картинками

Практика программирования Работа с интерфейсом v8::СКД 1cv8.cf Бесплатно (free)

Решение популярных кейсов с картинками в отчетах на СКД.

25.09.2019    19280    YPermitin    35    

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    75432    Serginio    108    

СКД не только для отчетов

Практика программирования v8::СКД 1cv8.cf Бесплатно (free)

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

18.09.2019    18695    YPermitin    36    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Программное создание практически всех популярных элементов формы.

06.09.2019    43515    rpgshnik    63    

Агрегатные функции СКД, о которых мало кто знает

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    45190    ids79    54    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С Промо

Математика и алгоритмы Практика программирования v8 v8::blocking 1cv8.cf Бесплатно (free)

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    33660    ids79    40    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    71722    ids79    49    

Разбираемся с параметрами редактирования СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Связь по типу, Параметры выбора, Связи параметров выбора

31.07.2019    21491    json    13    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    53053    ids79    11    

Тестер: частые вопросы Промо

Практика программирования v8 Бесплатно (free)

Ошибкам бой - тесты норма жизни!

25.07.2018    28855    grumagargler    28    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Инструментарий разработчика Практика программирования v8 v8::СКД Бесплатно (free)

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    33719    ids79    27    

Пользовательские настройки системы компоновки данных

Практика программирования Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

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

09.07.2019    23919    ids79    2    

"Меньше копипаста!", или как Вася универсальную процедуру писал

Практика программирования Разработка v8 v8::СКД 1cv8.cf Бесплатно (free)

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    19268    SeiOkami    50    

Ускоряем 1С: модули с повторным использованием возвращаемых значений Промо

Практика программирования v8 Бесплатно (free)

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

04.09.2017    51764    m-rv    61    

Работа с настройками системы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

02.07.2019    41465    ids79    17    

Создание отчетов с помощью СКД - основные понятия и элементы

Практика программирования Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    48739    ids79    25    

Не провоцируйте СКД, или пример "как не надо"

Практика программирования Разработка v8::СКД 1cv8.cf Бесплатно (free)

Пример того, что не нужно использовать в запросах, чтобы не провоцировать СКД.

10.06.2019    13509    SeiOkami    95    

Ошибки (?) работы СКД

Практика программирования Разработка v8 v8::СКД Бесплатно (free)

СКД неверно ставит отборы?

31.05.2019    4956    skydivespb    6