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

0. 1091 12.04.12 00:33 Сейчас в теме
Нюансы при работе из СКД на программном уровне.

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. SergDi 12.04.12 00:33 Сейчас в теме
Огромное спасибо, сэкономил время, как раз думал над подобным вопросом
2. AltF1 12.04.12 11:20 Сейчас в теме
3. vlengin 12.04.12 17:29 Сейчас в теме
Отлично. Большое спасибо за
  • Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"))
  • АдресСхемыПродаж = ПоместитьВоВременноеХранилище(СхемаКомпоновкиПродажи, УникальныйИдентификатор);

1. Но если выполнять все это в контексте отчета, а не обработки (а что мешает использовать отчет для обработки? ), то будет конечно же проще (не надо будет заморачиваться в ПриСозданииНаСервере)

Модуль Формы:

&НаСервере
Функция ЗаполнитьСервер()
	Объект=РеквизитФормыВЗначение("Отчет");
    СхемаКомпоновкиДанных=Объект.СхемаКомпоновкиДанных;
	Компоновщик=Новый КомпоновщикМакетаКомпоновкиДанных;
	Макет=Компоновщик.Выполнить(СхемаКомпоновкиДанных, Отчет.КомпоновщикНастроек.Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
	Процессор=Новый ПроцессорКомпоновкиДанных;
	Процессор.Инициализировать(Макет);
	ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
	ТабДок=Новый ТабличныйДокумент;
	ТЗ=Новый ТаблицаЗначений;
	ПроцессорВывода.УстановитьОбъект(ТЗ);
	ПроцессорВывода.Вывести(Процессор);
	ТЗФорма.Загрузить(ТЗ);
КонецФункции
Показать


2. И не понял трудности с результирующей таблицей значений: у меня колонки идут в произовольном порядке, вывод результата в одной строке (ТЗФорма.Загрузить(ТЗ)).
4. vlengin 12.04.12 17:31 Сейчас в теме
ТабДок=Новый ТабличныйДокумент; - у меня лишняя строка, нужно удалить.
5. logarifm 1091 12.04.12 19:10 Сейчас в теме
Отчетом нет. сущность в том, что пользователь должен иметь возможность еще интерактивно на форме указывать флагами, что он хочет выгружать, а что нет. В этом весь смысл, что выгрузка в ТабличныйДокумент намного проще, а вот выгрзузка в ТаблицуЗначений есть сложность.
6. vlengin 13.04.12 09:24 Сейчас в теме
(5)
Я понял смысл, что пользователь должен интерактивно отмечать нужные строки, но ничего не мешает создать свою форму отчета с таблицей значений на ней и загружать в нее результат СКД , в этом случае все намного проще.
В моем коде (см. выше) как раз и идет выгрузка в таблицу значений в форме отчета .
7. logarifm 1091 13.04.12 10:17 Сейчас в теме
Здесь не одна схема компоновки, а в моем случае 5.
8. karakozov 13.04.12 10:30 Сейчас в теме
Отличная статья, тема СКД всегда актуально, сколько материалов бы не попадало на глазу, все время подчеркнешь для себя что нибудь новое.
9. USER--1C 57 14.04.12 21:35 Сейчас в теме
Спасибо. Все больше конфигураций на УФ. Универсальный отчет не спасает. СКД - удобно.
10. xzorkiix 32 16.04.12 09:30 Сейчас в теме
Есть вопрос про Управляемые Формы и СКД. Не удаётся корректно установить программно отчёту произвольную СКД (проблему описал здесь http://forum.infostart.ru/forum26/topic58720/ ) после программной установке, как я понимаю проблему, отчет на стороне клиента не видит новые наборы данных, следовательно нет доступных реквизитов (полей для выбора).
11. ms200999 16.04.12 17:24 Сейчас в теме
Спасибо, очень интересная статья.
12. H0SE 18.04.12 15:53 Сейчас в теме
Спасибо большое за такие стати по СКД
13. electronik 19.04.12 12:39 Сейчас в теме
Статья просто супер. Сколько не читай все одно есть что почерпнуть. Таких статей бы побольше. Автору заслуженое 5+++ Респект Так Держать
14. EarlyBird 6 20.04.12 08:07 Сейчас в теме
Полезная статья.
Почерпнул!
15. Gandalf Белый 20.04.12 10:04 Сейчас в теме
Большое спасибо! Очень позновательно написано! Взял себе на заметку! ))
16. Den_D 54 20.04.12 16:46 Сейчас в теме
И новичку и опытному грузовичку)))
17. Sairys 27.04.12 10:13 Сейчас в теме
Интересная статья. Вообще СКД выручает во многих задачах. И ещё замечено что СКД на управляемом приложении работаю быстрей, чем то же СКД которая работает на обычном приложении.
И ещё есть вопрос "Мягкое задание параметров" таких как в данной статье по периоду, работает только в СКД или его можно использовать и в обычных запросах ?
18. Den_D 54 29.08.12 12:58 Сейчас в теме
Спасибо большое за науку. Вообще очень удобно все отчеты делать с полем "Период". Не зря 1С делают ставку на СКД инструмент мощный и очень полезный, хотя и не всегда логично-понятный.
19. Поручик 4490 15.01.13 00:01 Сейчас в теме
Один из примеров программной генерации и использования СКД http://infostart.ru/public/122215/
20. Yimaida 35 23.05.13 22:38 Сейчас в теме
Была одна задача, которая была отодвинута в долгий ящик. Там нужно было по сложным отборам (динамическим) заполнять табличную часть документа. Я тоже думал использовать СКД из-за одной очень важной функции, которую я видел только в СКД. Это возможность объединять условия в группы. Т.е. не простое "И", как в том же универсальном отчете, а сложные группы "И", "ИЛИ", "НЕ". Автору большое спасибо. Как только моя задача станет актуальной, буду за образец брать эту статью.
21. VasilevaHelen 135 07.10.13 16:33 Сейчас в теме
Спасибо, очень познавательно.
22. Odinas 11.10.13 15:45 Сейчас в теме
изучаю Скд по книге Хрусталевой, такие статьи отличное дополнение, спасибо!
23. dock 43 23.12.13 19:49 Сейчас в теме
Требуем продолжение банкета! автору вынести благодарность!
24. bayce 38 03.02.14 21:48 Сейчас в теме
25. Bukaska 134 04.02.14 10:49 Сейчас в теме
Спсасибо! Очень интересно читать статьи подобного уровня)
26. Pervuy 36 05.03.14 19:59 Сейчас в теме
Спасибо, очень познавательно)
27. sldz 20.03.14 00:33 Сейчас в теме
Сейчас только изучаю СКД довольно интересная статья
28. poyson 08.05.14 10:53 Сейчас в теме
29. igo-osetro 22.05.14 10:08 Сейчас в теме
Спасибо Автору! Интересная, познавательная статья.
30. zqzq 21 11.06.14 11:57 Сейчас в теме
А теперь очень важно в точной последовательности добавлять колонки ТЗ и с одинаковыми именами, а также с типизацией поля, что указана в схеме СКД в выбранных полях.
Можно результат СКД вывести в новую пустую ТЗ, далее
ЭтаФорма.РезультатПродажи.Загрузить(ТЗ);
если верить справке
Загружает данные коллекции из таблицы значений.
Все элементы коллекции будут удалены.
В коллекцию будут добавлены строки из таблицы значений и заполнены значениями в совпадающих по идентификаторам колонках.
т.е. порядок колонок не важен, также может не совпадать количество колонок.

Кстати, для программного вывода СКД в ТЗ удобно пользоваться процедурой ПолучитьДанныеНаОснованииСКД из http://infostart.ru/public/80164/ т.к. всё равно нереально все эти классы СКД запомнить.
31. MrAzat 18.06.14 11:07 Сейчас в теме
Спасибо, то, что надо было
32. konstruktiv 23.09.14 06:40 Сейчас в теме
"ВАЖНО! Не называйте поля в условие на период документов "ДатаНачала" и "ДатаОкончания" это зарезервированые поля самой системой СКД и она это понимает совершенно по другому, для чистоты эксперимента можете перепроверить." - а про это можно поподробнее??
35. the1 868 30.07.15 10:35 Сейчас в теме
(32) konstruktiv, по-моему, это ошибочное мнение. На моей практике СКД использует параметры
Период, НачалоПериода и КонецПериода
, и, кстати, ничего мне не мешает использовать их самому.
36. oldfornit 08.09.15 09:07 Сейчас в теме
(35) the1, а ДатаНачала и ДатаОкончания - это вроде бы методы интервала
33. eaa 20.03.15 10:26 Сейчас в теме
+ 100 помогло, спасибо. На первый взгляд делал все тоже самое, но таблица значений была пуста... Неужели проблема была в том, что СКД получал через Обработки.Обработка.ПолучитьМакет("Макет") ??
34. LexSeIch 208 21.05.15 11:00 Сейчас в теме
Мир этому дому!
Спасибо за интересную статью!
37. konstruktiv 08.09.15 10:22 Сейчас в теме
38. ZMGMSC 71 30.10.15 17:48 Сейчас в теме
Вот пример работы с табличным полем документа
http://infostart.ru/public/293252/
используется СКД также есть примеры программной работы с СКД.
http://infostart.ru/public/288319/
39. logarifm 1091 14.11.15 00:57 Сейчас в теме
Ребята очень рекомендую обратить время даты статьи и то что вы пользуетесь сейчас новыми возможностями и обновленными версиями не значит, что такое можно было сделать на момент статьи. Спасибо. Ей уже три года, естествено, что определенные ограничения уже давно могут быть исправлены 1С.
40. ZMGMSC 71 02.06.16 11:40 Сейчас в теме
Вопрос на применение скд:
Есть регистр сведений (сетка расписания) измерения Кабинет, День недели, Час.
надо вывести в отчет так, чтобы заполненные часы во всех колонках (дни недели)
собрались вверху по порядку, т.е. по максимум заполняли пустые места в верхних строчках.
соотв свое место освобождали
полностью пустые строки не выводились.
бьюсь второй день. Говорят такое возможно....
в коде это выгладит так:
Пока ВыборкаДень.Следующий() Цикл
ВыборкаЧас = ВыборкаДень.Выбрать();
Пока ВыборкаЧас.Следующий() Цикл
МассСтрок = ТЗЧас.НайтиСтроки(Новый Структура("кабинет, " + ВыборкаЧас.День, ВыборкаЧас.кабинет, 0); // ЧАС ЧИСЛО ОТ 9 ДО 18
Если МассСтрок.Количество() Тогда
СтрТЧ = МассСтрок[0];
Иначе
СтрТЧ = ТЗЧас.Добавить();
СтрТЧ.кабинет= ВыборкаЧас.кабинет;
КонецЕсли;
СтрТЧ[Строка(ВыборкаЧас.День)] = ВыборкаЧас.Час;
КонецЦикла;

Т.Е. ищем не заполненные значения по колонкам если находим то записываем туда свое значение
иначе добавляем строку.
суть задачи сделать это в скд.
41. Новичок1с 24.11.16 14:28 Сейчас в теме
Благодарю за статью, всё хорошо расписано. Хотелось бы видеть сам пример обработки(отчёта), т.к. не совсем получается :(
Оставьте свое сообщение
Вопросы с вознаграждением