Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/93: Рейтинг темы: голосов - 93, средняя оценка - 4.89
umkmowm181538
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
1

8.1 отбор

24.03.2009, 00:08. Просмотров 16811. Ответов 9
Метки нет (Все метки)

Нужно, чтобы в форме отчета можно было выбрать вид отбора - по контрагенту, в группе, в списке, в группе из списка... Обязательно нужно динамически формировать текст запроса, или запрос умеет сам определять, что делать в зависимости от параметра, или можно использовать какую-нибудь общую форму типовой конфы для формирования текста?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2009, 00:08
Ответы с готовыми решениями:

Отбор
в журнале заявок есть отбор: ТЗ.РодительСтр = СокрЛ(ТЗ.Номенклатура.Родитель); Мне нужно...

отбор
док = документы.Учет.СоздатьДокумент(); док.Дата=текущаяДата(); док.Записать(); Набор =...

Отбор
Как установить значение для отбора "Заявка"

Организовать отбор
Всем привет. 8.2. БГУ. Обычное приложение. Надо организовать отбор сразу по 5ти полям, имея...

СКД. Отбор и тп
Всем привет. Хочу понять как в отчетах на форме создаются отборы и прочее. Полез посмотреть код но...

9
myotord
0 / 0 / 0
Регистрация: 26.12.2008
Сообщений: 47
25.03.2009, 06:31 2
Здраствуйте. Прочитал ваш вопрос, не совсем понятно зачем динамически менять текст запроса. Насколько я сталкивался с данными проблемами, всегда и безболезненно выкручивался с использованием компоновщика. Ну, уж, если у вас действительно трёхступенчатый запрос, и вы не хотите создавать себе проблем с отборами я бы рекомендовал следующее.
Весь код писать не буду, лень, я простывший и мне, писать даже тяжело.
1. Создаем текст запроса.
2. Генерируем форму отчета с ТЗ "Результат".
3. Меняем обработчик кнопки сформировать, пишем текст запроса, и определяем компоновщик, и просессорВывода.
4. Вызываем из этой же процедуры макет компоновки данных.
5. Создаем новый макет компоновки данный, набор - данных - объект, определяем данные макета и макет.
6. Готовим начальные настройки отчета.
7. Переименовываем кнопку "Настройка" - "Настройка для экспертов".
8. Создаем кнопку "Настройка" и копируем форму настройки универсального отчета (либо из другого отчета по вашему вкусу). Переопределяем данные объектов.
9. Всё это закидываем во внешний отчет, дабы не болтался в конфигураторе.
10. Вставляем в меню вызов данного отчета при выборе (предварительно подключив отчет к ИБ)
Отчет будет выглядеть примерно так:
http:///style_images/1/fol.../attach_add.png
Вот в принципе и все.
+ Отчет не является частью конфигурации и не мешается при обновлении конфигураций релизами от поставщика.
+ Отчет позволяет устанавливать настройки любой сложности, без лишнего программирования, и внесение изменений в него займет 2-3 минуты в зависимости от сложности изменения
+ При необходимости убрать отчет конфигурации просто сохраняем в файл, в папку "Старые отчеты" не трогая конфигурацию, и при необходимости загружаем его обратно с изычканной легкостью.
+ И, я считаю, это самый существенный плюс. Мы получаем дружественный пользовательский интерфейс, затратив на отчет в среднем 10 мин (при первой разработке от 30 мин до 3 часов в зависимости от квалификации программиста), с определенными расшифровками. Позволяющий выводить данные в виде списка, таблицы, сводной таблицы и диаграммы, используя пользовательские настройки в режиме 1С с легким и беспринцыпным сохранением настроек пользователя, без использования языка программироания и фхода в режим конфигурирования 1С.
- Набор - данных - объект является самым сложным набором данных, используемым компоновщиком данных, и для его формирования в первый раз придется потдудиться. Если вы ранее не пользовались компоновщиком данных советую начать с чего - нибудь попроще, либо не формировать текст запроса динамически и тогда создать набор - данных - запрос, легко и удобно.
Удачи в познании!!! Если есть вопросы пиши, постараюсь разъяснить.
0
umkmowm181538
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
25.03.2009, 23:18 3
Спасибо за подробынй ответ. Часть текста даже лишняя) С компоновщиком почти не работал, хотя думал, что можно его использовать. Но можно ли его использовать для заполнения табличной части обработки? Дело в том, что я пишу не отчет, а обработку. Текст запроса как раз довольно простой. Собственно, не сложно написать и динамическое формирование текста. Интересно все-таки есть ли более рациональное решение.
0
myotord
0 / 0 / 0
Регистрация: 26.12.2008
Сообщений: 47
26.03.2009, 05:33 4
И еще раз здраствуйте. Пройдемся по гвоздям.


Спасибо за подробынй ответ. Часть текста даже лишняя)
Всегда пожалуйста. А лишнего текста я не вижу. Старался описать подробно дабы дать максимально точное решение.


С компоновщиком почти не работал, хотя думал, что можно его использовать
Не понял я, в данном случае, оборота этого предложения.


Но можно ли его использовать для заполнения табличной части обработки?
Система компоновки данных предназначена для создания сложных аналитических ?отчетов в программах 1С:Предприятия 8, и ничего более. Вопрос, если честно, очень странный. Может быть вы хотели спросить можно ли результат выгрузить в табличную часть?. Тогда ответ мой, ДА, и не только можно, а нужно. Объекты выгрузки данных могут быть самые разнообразные. Для выгрузки данных используется ПроцессорВывода.
Приведу пример ко всему вышесказанному:

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


Дело в том, что я пишу не отчет, а обработку
И что? СхемаКомпоновкиДанных На уровне метаданных, хранится в макетах. Сначала создайте отчет и схему, для проверки вывода данных. Потом перетащите Схему в макеты обработки, и, скопируйте код.


Текст запроса как раз довольно простой.
Это хорошо. Скорость выбора данных из ИБ зависит не только от объема выбираемых данных, но и от сложности текста запроса.


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


Интересно все-таки есть ли более рациональное решение.
Рациональных решений как таковых в нашей жизни, к сожалению, вообще нет Более рациональное в каком плане? Не понятно, что вы имели ввиду? Есть разнообразные механизмы для выполнения одной и той же задачи. Какой из механизмов выберите вы, дело ваше, так как вы программист своей конфиги. Вы и принимаете решение, что с ней делать. Я выбрал именно этот метод для написания большинства отчетностей (помимо исключений, где не компоновщик, не построитель не вживались), по одной простой причине. А именно, у запроса остается одна задача выбрать данные, без условий, без группировок, далее компоновщик загружает в себя настройки пользователя и реструктуризирует данные согласно настройкам. Так что дерзайте, и делайте выбор.
Все что я могу - показать Вам в каком направлении двигаться. А сделаете ли вы шаг, в указанном мной напрвлении, дело ваше. Удачи в познании!!!

Кстати. Если вас не устраивает компоновщик, Можете вполне успешно использовать ПостроительОтчета
0
26.03.2009, 05:33
umkmowm181538
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
26.03.2009, 23:42 5
Цитата Сообщение от mialord
Всегда пожалуйста. А лишнего текста я не вижу. Старался описать подробно дабы дать максимально точное решение.
Еще раз спасибо, просто часть из приведнного я и так знаю. Например, преимущества внешнего отчета перед встроенным.


Цитата Сообщение от mialord
Не понял я, в данном случае, оборота этого предложения.
Имел ввиду, что плохо знаком с СКД.


Цитата Сообщение от mialord
Система компоновки данных предназначена для создания сложных аналитических ?отчетов в программах 1С:Предприятия 8, и ничего более.
Повторюсь, пишу как раз не отчет. Запрос нужен для заполнения таб части документами, на основании которых должны создаваться документы другого вида.



Цитата Сообщение от mialord
Объекты выгрузки данных могут быть самые разнообразные.
Стало быть можно. ТабличныйДокумент, если я не путаюсь - это другое)



Цитата Сообщение от mialord
Это я думаю вы пишите про запрос. Эт дело хозяйское, формируйте так, как вам удобней.
Нет, ну все-таки хочется "познать")
0
umkmowm181538
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
28.03.2009, 21:17 6
В итоге добавил реквизит "СписокЗначений" на форму. В запросе поставил условие Контрагент В ИЕРАРХИИ &сзКонтрагенты.
0
myotord
0 / 0 / 0
Регистрация: 26.12.2008
Сообщений: 47
29.03.2009, 05:49 7
Еще один день добрый, :unsure:.


Нужно, чтобы в форме отчета можно было выбрать вид отбора - по контрагенту, в группе, в списке, в группе из списка...
&


Запрос нужен для заполнения таб части документами, на основании которых должны создаваться документы другого вида.
Бррррррррррррррррр. Какие сложности ;).
Кажется я всё таки понял что вам нужно давайте пройдемся.


Нужно, чтобы в форме отчета можно было выбрать вид отбора - по контрагенту, в группе, в списке, в группе из списка...
1. Создайте табличную часть(имеется в виду в метаданных объекта "Табличные части")
2. Добавте реквизиты табличной части
3. Назначте типы реквизитов = типам, возвращемым из запроса
4. Вставте табоичную часть в форму, предварительно нажав флажок "Вставит командную панель" (Вставляет все допустимые команды для табличной части. Набор кнопок и их поведение определяются автоматически (Зависит от платформы), действие кнопок можно изменить)
5. Установите "Данные" табличной части, созданную табличную часть метаданных. В результате у вас автоматически будут добавлены колонки ТаблЧасти.
Проверяем. Запускаем в 1С. ПКМ кликаем, появляется контекстное меню. Выбираем "Установить Отбор", появляется окно с установленными реквизитами. Взависимости от типа реквизита будут доступны соответствующие отборы.
Из последних сообщений мне показалось что вам нужно именно это. Если нет, постарайтесь более подробно описать задачу и выложить код, ибо, иначе я вас не понимаю
0
umkmowm181538
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
29.03.2009, 22:30 8
В общем-то, я уже удовлетворен результатом. Последний пост не очень понял.
А все-таки, построитель или компоновщик сюда бы удалось прикрутить?
0
vbs
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
30.03.2009, 00:06 9
Цитата Сообщение от mialord
Добавте
Назначте
Вставте
Что-то "знаток русского языка" совсем уж отличился
0
myotord
0 / 0 / 0
Регистрация: 26.12.2008
Сообщений: 47
30.03.2009, 06:47 10
Последний пост не очень понял.
Последний пост указывает, как включить команды отборов, если вы загружаете данные в таблицу значений, и хотите включить стандартно-реализованные в платформе механизмы отбора. Пример, ЗаказПокупателя. Отсюда следует, что вам, например, можно не использовать механизмы построителя отчета или компоновщика данных, можно заполнить ТЗ из запроса и включить команду отбор. Попробуйте прежде чем ответить, оч удобный механизм.


А все-таки, построитель или компоновщик сюда бы удалось прикрутить?
КУДА?
0
30.03.2009, 06:47
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2009, 06:47

Отбор в платежке
Здравствуйте, какой лучше осуществить отбор, чтобы выбрать платежные поручения исходящие...

Отбор информации в 1С 8.3
Добрый день,уважаемые форумчане.Необходимо сделать отбор в списке по нажатию на кнопку. Есть...

Отбор по периоду
Есть документ Закрытие20и43счетов. В нем процедура для определения периода Процедура...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.