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

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

Приемы и методы разработки

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

 

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

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

 

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

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

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

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

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

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

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

 

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

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

 

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

 

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

 

 

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

 

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

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

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

 

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

 

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

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


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

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


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

user712426; Adineska; igor-tit; +3 Ответить
1. Boroda 90 30.10.11 15:39 Сейчас в теме
Спасибо за хорошую публикацию, но почему-то, как ни старался, не могу посмотреть картинки к ней. Вместо них - лишь рамка с красным крестиком
2. stoptime 321 30.10.11 19:23 Сейчас в теме
Не знаю , почему у тебя проблеммы с картинками у меня отображаются нормально.
3. max082 31.10.11 11:33 Сейчас в теме
stoptime, как раз искал решение такой задачи месяц назад. В итоге решил тупо пост-обработкой(. Ваш вариант интереснее!
user712426; +1 Ответить
4. stoptime 321 31.10.11 11:55 Сейчас в теме
Да я тоже раньше постобработкой справлялся, просто нужно было сделать серию отчетов, и не все достаточно простые, для разбора потом табличного документа. Вот и придумал этот фокус. Нужда заставляет нас творить чудеса
user712426; +1 Ответить
5. echo77 1451 31.10.11 17:26 Сейчас в теме
1С расчетные листки в ЗУПе постобработкой режет
user712426; +1 Ответить
6. Saipl 6 01.11.11 15:06 Сейчас в теме
А если в СКД в макете создать макет заголовка группировки для врачей, создать именную область макета в свойствах которой в группе Параграф указать "Начало страницы" ???
7. stoptime 321 01.11.11 18:51 Сейчас в теме
(6) Saipl, Пробовал. вставлять разрыв страницы в макете, настраивать параграф. Убирамть макет оформления. в нем кстате нельзя настроить Параграф. Вобщем я досточно пошарился по всему механизму работы с макетами. Все пробовал на платформе 8.2.13, надо будет посмотреть может в следующих они испавят это поведение
8. bulpi 188 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 321 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 416 17.04.12 14:03 Сейчас в теме
спасибо за идею, воспользовался!
igor-tit; +1 Ответить
17. Armando 1396 16.07.12 18:28 Сейчас в теме
Спасибо
Что бы группировка-пустышка не выводилась я дописал чуть-чуть:
Если ЭлементРезультата.ЗначенияПараметров[0].Значение = "Разорвать" Тогда
	ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
	ЭлементРезультата = ПроцессорКомпоновки.Следующий();
	Продолжить;
КонецЕсли;
user712426; igor-tit; rendalina; manaxov83; zqzq; KindLion; ERP-master; zus; alex15650; +9 Ответить
28. logarifm 1101 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 321 21.08.12 11:15 Сейчас в теме
(19) Это я на редактировал. правил 2 статьи сразу.
21. Den_D 54 21.08.12 17:39 Сейчас в теме
Голь на выдумки хитра) Автору большое спасибо!
igor-tit; +1 Ответить
22. AlexO 132 21.08.12 17:47 Сейчас в теме
Т.е. снова "пустышку" выводим?
Ничего в 1С не меняется... :(
23. vamleshka 13.09.12 14:29 Сейчас в теме
Спасибо за классную идею! буду пробовать ее реализовать
igor-tit; +1 Ответить
24. herfis 427 13.02.13 15:27 Сейчас в теме
Как уже было сказано выше, группировку-пустышку можно просто не выводить при поэлементном выводе отчета.
Это сразу несколько плюшек дает:
1) не выводится лишняя строка
2) отпадает необходимость настраивать оформление группировки-пустышки, обеспечивая её условную невидимость
3) а самое вкусное - не надо удалять строки с "хвостовым" разрывом строки. Т.к. после последнего разрыва теперь нет данных для вывода, то пустой лист не выгоняется.
igor-tit; +1 Ответить
25. pau74 79 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 26 26.07.13 10:59 Сейчас в теме
Замечу следующее: если требуется выводить итоги к группировки (в вашем случае направивший врач) - то разделитель некорректно выводится. Мои рекомендации - в макете, где выводятся итоги (в вашем случае итогов нет, но в это относится к параметру "РазрывСтраницы" см. рис) слово итоги сделать параметром, а параметр можно заполнять в параметрах макета.
Прикрепленные файлы:
27. zus 33 18.08.13 20:10 Сейчас в теме
Гениально и просто! Спасибо за публикацию!
29. kosmius 7 12.12.14 15:12 Сейчас в теме
//аналогично настройкам масштаба «по ширине страницы»

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

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

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

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

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

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

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

Во вложении в отчете не выводится текст "РазделительСтраниц"
Прикрепленные файлы:
user1233720; stoptime; +2 Ответить
Оставьте свое сообщение

См. также

Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо

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

В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.

12.12.2020    4694    Eugen-S    23    

Варианты применения СКД вне отчетов в отраслевых конфигурациях

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

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

18.11.2021    1634    drmaxart    0    

Кейсы решения задач на СКД

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

Разработчик 1С в компании Neti Александр Крынецкий выступил на Infostart Meetup, посвященном практике работы с СКД. Александр поделился с коллегами кейсами по решению сложных задач при работе с СКД.

08.11.2021    2830    echo77    7    

Грабли на СКД

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

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

02.11.2021    3981    echo77    16    

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

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

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

27.01.2016    86026    Serginio    116    

СКД: 5 советов, как сделать лучше

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

Несколько примеров решения задач с использованием разных подходов

27.10.2021    4735    Neti    19    

Программное создание отчета на СКД с расшифровкой (обычные формы)

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

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

04.10.2021    1118    Neti    4    

Программное открытие отчета СКД с параметрами и отбором

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

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

07.08.2021    5697    Eugen-S    19    

Звуковое управление в 1С 8.3 Промо

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

В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.

16.03.2021    7327    velemir    33    

СКД: скрываем нужные группы (блоки) по требованию пользователя

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

Видимость блоков в определённой группе, регулируемая пользователем в отчёте СКД.

14.07.2021    2795    olja-ljaaa    7    

Изменение расшифровки макета СКД до компоновки

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

Это не про работу с данными расшифровки. Это про изменение расшифровок полей ДО того, как СКД выполнилась. Быстрый способ сделать нужные расшифровки.

12.07.2021    2461    Yashazz    6    

Чтоб в СКД по таблице значений был порядок!

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

Сортировка СКД и источник - таблица значений. Заметка.

28.06.2021    1399    Yashazz    0    

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions Промо

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

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    9067    comol    31    

Формирование отчета СКД с расшифровкой из обработки

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

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

27.04.2021    4272    John_d    14    

Обзор полезных методов БСП 3.1.4. Часть 2

БСП (Библиотека стандартных подсистем) v8 Бесплатно (free)

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

27.04.2021    16703    rayastar    7    

Нестандартное использование СКД

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

Программист 1С в компании «БКС-технологии» Алексей Шиянов в ходе Infostart Meetup Novosibirsk продемонстрировал необычный способ использования СКД и сравнил результаты заполнения движений документа через СКД с классическим подходом к заполнению движений через запросы и циклы.

14.04.2021    4135    user1127305    11    

Как я начал администрировать сервер 1С: Предприятие 8.3 с телефона Промо

Инструменты администратора БД Мобильная разработка v8 Бесплатно (free)

Развитие инструментов управления кластером серверов 1С:Предприятие 8.3.

14.04.2017    67803    user700211_a.straltsou    30    

Полезные примеры СКД, ч.2

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

Еще несколько примеров решения задач в СКД.

06.04.2021    11046    Neti    8    

Пример платежного календаря. СКД. Работает на любой платформе, без привязки к данным. Подробное описание действий

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

Отчет-пример, в котором на СКД рассмотрены принципы построения платежного календаря без привязки к данным и работающий на любой платформе. Подробно описаны этапы решения задачи. Тестирование проводилось на платформе 8.3.16.1814.

02.04.2021    1274    parshachello    2    

Полезные примеры СКД, ч.1

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

Подборка видео по решению различных задач в отчетах на СКД.

30.03.2021    13812    Neti    21    

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

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

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

10.12.2016    41218    unichkin    74    

Обзор полезных методов БСП 3.1.4

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

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

25.03.2021    42701    rayastar    51    

Сравнение данных с февралем високосного года (проблема 29 февраля)

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

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

02.03.2021    465    aleksei_adamov    4    

Отбор на форму (документа, справочника, обработки) с помощью СКД

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

Добавляем удобный отбор на форму документа с помощью СКД

09.02.2021    6184    John_d    15    

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

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

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

15.10.2018    36289    tormozit    106    

Работа с СКД в продукте "Infostart Toolkit"

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

Infostart Toolkit обладает большим количеством уникальных возможностей для работы с СКД – это анализ исполняемых текстов запросов, работа с внешними источниками в схеме СКД, получение данных в отладке и многое другое. Обо всех этих возможностях рассказал разработчик продукта Евгений Люлюк.

24.12.2020    3166    Evg-Lylyk    2    

Сохранение настроенного запроса набора данных СКД

Универсальные функции v8 v8::СКД 1cv8.cf Бесплатно (free)

Как сохранить запрос набора данных СКД в том виде, каким он будет выполнен системой для открытия в консоли запросов с диска ИТС.

09.11.2020    1746    Serge R    0    

Установка нескольких фильтров/отбора СКД в табличной форме, хранение в табличной части для отправки push/email уведомлений (ОтборКомпоновкиДанных, КомпоновщикНастроек, ДинамическийСписок)

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

Рассмотрим, как организовать установку фильтров/отбора СКД (динамического списка) на push/email уведомления в подсистеме EDIbot (WebApp) для 1С в табличной части "События уведомлений".

02.11.2020    1520    SizovE    0    

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

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

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

20.09.2012    82973    tormozit    131    

Вычислить РАЗНОСТЬДАТ в рабочих днях

БСП (Библиотека стандартных подсистем) Практика программирования v8::Запросы v8::СКД ERP2 БП3.0 УТ11 ЗУП3.x Бесплатно (free)

Вычисление количества рабочих днях между двумя датами в запросе.

20.10.2020    3911    antonivan    18    

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

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

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

09.07.2020    4390    Yashazz    7    

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

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

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

24.05.2020    6771    kasper076    17    

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

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

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

11.07.2007    54639    tormozit    51    

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

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

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

14.05.2020    4428    vendim    2    

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

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

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

29.04.2020    12294    the1    48    

Переопределение настроек отчета на СКД. 1С: БСП

БСП (Библиотека стандартных подсистем) v8::СКД ERP2 Россия Бесплатно (free)

Изменение настроек СКД отчета без доработки модулей БСП

24.04.2020    4229    klimsrv    6    

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

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

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

10.09.2017    51436    tormozit    74    

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

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

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

15.04.2020    16424    SeiOkami    41    

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

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

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

15.04.2020    4923    ProfessionStore    3    

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

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

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

13.04.2020    8806    ProfessionStore    4    

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

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

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

25.04.2019    18086    m-rv    3    

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

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

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

13.04.2020    5720    starik-2005    16    

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

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

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

12.04.2020    7115    ProfessionStore    11    

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

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

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

11.04.2020    11604    ProfessionStore    9    

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

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

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

16.04.2019    23436    m-rv    18    

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

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

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

11.04.2020    10295    ProfessionStore    25    

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

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

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

10.04.2020    9814    ProfessionStore    4    

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

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

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

10.04.2020    12589    ProfessionStore    14    

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

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

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

01.06.2018    37231    m-rv    23    

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

Прочие инструменты разработчика Консоль запросов v8::УФ v8::Запросы v8::СКД Бесплатно (free)

Консоль запросов и СКД – один из наиболее часто используемых программистом инструментов. Как с его помощью можно упростить разработку, в своем докладе на конференции Infostart Event 2019 Inception рассказал Евгений Люлюк, ведущий программист компании GLT.

06.04.2020    12420    Evg-Lylyk    2