Маленькая хитрость СКД - выводим строки X раз

0. alexandersh 247 17.12.16 15:28 Сейчас в теме
Здесь я расскажу, как вывести в отчет СКД произвольное количество одинаковых строк.

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ardn 473 19.12.16 06:01 Сейчас в теме
В чем же заключается хитрость СКД?
Патриот; +1 Ответить
4. alexandersh 247 19.12.16 12:23 Сейчас в теме
(1)
В чем же заключается хитрость СКД?

Хитрость заключается в том, что на вскидку я не знаю другого способа в СКД без дополнительной обработки результата, вывести сколько угодно раз пустые строки. Если есть альтернатива - поделись, с удовольствием добавлю со ссылкой на твое авторство ;-)
5. ardn 473 19.12.16 13:22 Сейчас в теме
(4)
В Вашей статье описывается "хитрый" запрос, который путем соединения таблицы с данными и искусственно созданной таблицы дает нужный результат. Этот запрос можно запустить в консоли, встроить в свою обработку, отчет, отчет на СКД, на построителе отчетов.
Боюсь, что упоминание СКД в заголовке вводит в заблуждение.
xzorkiix; ABudnikov; TreeDogNight; Murik_1984; ixijixi; Патриот; CyberCerber; krv2k; bulpi; klinval; Ганс; +11 Ответить
6. alexandersh 247 19.12.16 13:43 Сейчас в теме
(5) Ну как сказать вводит в заблуждение. То что запрос можно использовать в любом другом месте - это понятно, на то он и запрос.Статья решает не проблему использования запроса. У тебя есть другой способ решения данной задачи именно на СКД? Чтобы не делать пост-обработку результата. Если нет, то не вижу основания в критике. )
"Здесь я расскажу, как вывести в отчет СКД произвольное количество одинаковых строк." - вот какая задача решается в статье с приложением минимальных усилий, разве нет?)) или ты хочешь сказать, что эта задача не решена?))
7. NeviD 19.12.16 15:05 Сейчас в теме
(6) У вас задача решена не на СКД. Она решена в запросе. Поэтому название "Маленькая хитрость СКД ..." неправильно - СКД тут вообще не при чем.
TreeDogNight; +1 Ответить
8. alexandersh 247 19.12.16 15:20 Сейчас в теме
(7) ок, еще раз суть задачи: сделать отчет СКД, в который необходимо выводить X пустых строк. есть другой вариант решения этой задачи?
9. klinval 330 19.12.16 16:56 Сейчас в теме
(8) Александр, я плюсанул статью, но всё-таки вам верное замечание делают. У вас статья про "хитрость" в запросе, а не в СКД! То что вы написали в статье никак не затрагивает механизмов СКД, и можно применять и вне СКД.
ок, еще раз суть задачи: сделать отчет СКД, в который необходимо выводить X пустых строк. есть другой вариант решения этой задачи?

Пример 1: вы задачу для какой конфигурации решали? Допустим для УПП 1.3. Вы можете назвать статью "Маленькая хитрость УПП 1.3 - выводим строки X раз"? Можете, но на самом деле статья касается не чисто этой конфигурации, и не СКД. А в ответ всем можно говорить "еще раз суть задачи: сделать отчет для УПП 1.3"... Логика выбора названия та-же, логика ответа оппонентам та-же.

Пример 2: ваша же статья "Распределение в запросе" или "избавляемся от перебора". Если бы вы сделали распределение для отчета на СКД, то тоже назвали "Распределение в СКД"?

Пример 3: допустим я написал функцию, которая очень быстро возвращает какой-нибудь показатель, и допустим до этого никто не додумался так сделать. Но эту функцию я применяю в вычисляемых полях СКД. Сами понимаете, раз это функция, то её в принципе можно применять где угодно - вызвать, получить результат и дальше работать с ним. А я статью назвал "<Описание того что делает функция> на СКД". Т.е. я заведомо в названии статьи сузил область применения до СКД.

На инфостарте грешат писать "Универсальное...." хотя оно совсем не универсально, а например написано для одной конкретной конфы. Т.е. заведомо расширять область применения. Вы же наоборот зачем-то сузили.

Плюс какая такая это хитрость СКД, если механизмы СКД никак не задействованы?
veretennikoff; TreeDogNight; maxopik2; ixijixi; CyberCerber; krv2k; Scop; Serj1C; le0nid; molodoi1sneg; ardn; bulpi; +12 1 Ответить
14. Патриот 426 23.12.16 23:59 Сейчас в теме
1.
(1), поддерживаю -- очевидно, что СКД здесь не при чём.
(8), А следуя логике
ок, еще раз суть задачи: сделать отчет СКД, в который необходимо выводить X пустых строк. есть другой вариант решения этой задачи?
можно название поменять например на "Маленькая хитрость СКД в УТ и УПП на платформе 8.2.12.3 в ясный зимний день" после чего вопрошать есть ли другой вариант решения задачи для отчёта на "СКД в УТ и УПП на платформе 8.2.12.3 в ясный зимний день".

2.
Другой вариант решения? Пожалуйста! И относиться к СКД они будут больше, нежели представленный в статье:
а) Сформировать таблицу чисел вне СКД (любым способом, хоть тем же, что в статье) и передать его в СКД в качестве внешнего набора данных.
б) Доработать запрос перед компоновкой данных, как это делает ЗУП в механизме "генерируемых представлений".
в) Доработать ТабДок после вывода отчёта компоновщиком.
!!!И эти варианты реально связаны с СКД, т.к. затрагивают её механизмы. А вот вариант наподобие вашего:
в) Доработать запрос, но таблицу чисел не генерировать самому а брать из регистра БД, где она гарантированно д.б., например взять РС График работы.

Уверен, что есть и другие способы, т.к. это пришло в голову примерно за 5 сек - дольше времени на набор текста ушло.

3.
Самое главное. Суть статьи далеко не новая - сгенерить таблицу чисел в запросе и использовать для своих целей. Такая задача не раз обсуждалась и на ИС в том числе. Лучшие решения в данной области собирает Ильдарович
TreeDogNight; dabu-dabu; NeviD; ardn; Yashazz; +5 Ответить
2. klinval 330 19.12.16 12:18 Сейчас в теме
В
ВЫБРАТЬ
        ВТ_Комнаты.Комната КАК Комната,
        ВТ_Комнаты.КоличествоМест - ЕСТЬNULL(КОЛИЧЕСТВО(ВТ_ИнфорамцияОПроживающих.Постоялец), 0) КАК СвободноМест
    ИЗ
        ВТ_Комнаты КАК ВТ_Комнаты
            ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ИнфорамцияОПроживающих КАК ВТ_ИнфорамцияОПроживающих
            ПО ВТ_Комнаты.Комната = ВТ_ИнфорамцияОПроживающих.Постоялец
    
    СГРУППИРОВАТЬ ПО
        ВТ_Комнаты.Комната,
        ВТ_Комнаты.КоличествоМест
Показать

Ошибка в связи. Нужно:
 ВТ_Комнаты.Комната = ВТ_ИнфорамцияОПроживающих.Комната 
3. alexandersh 247 19.12.16 12:21 Сейчас в теме
(2)
Ошибка в связи. Нужно:
ВТ_Комнаты.Комната = ВТ_ИнфорамцияОПроживающих.Комната

да, спасибо, обновил
10. amatey 21.12.16 09:15 Сейчас в теме
Автору зачет! Название привлекательное, поэтому и обратил внимание т.к. УПП меня не интересует. А вот механизм в запросе зачетный. Спасибо за идею! Критикуем название, а ведь главное идея. Критиковать и я умею, а вот хорошие идеи - для меня редкость
11. chek.e.l@mail.ru 21.12.16 10:52 Сейчас в теме
Добрый день!
В чем собственно хитрость СКД?
Представлен код который соединяет искуственно созданную таблицу (что не совсем хитрость, а скорее костыль (как минимуму данную таблицу нужно собирать циклом перед запросом)) с данными.
+ Данный код можно использовать как в СКД так и в обычном запросе, предлагаю переименовать в "хитрость в запросе" =)

P.S. Автору бесспорно плюс.
12. Onwardv 58 21.12.16 12:04 Сейчас в теме
Была такая тема пару месяцев назад.
Вот, нашел:
http://forum.infostart.ru/forum9/topic156546/
13. mitia.mackarevich 28 21.12.16 12:21 Сейчас в теме
Если кому интересно, откройте типовой зуп 3.1 например и посмотрите как получаются (запихано в представления) все дни периода, это будет полная версия методики которую попытался донести автор.
15. Yashazz 4477 25.12.16 01:54 Сейчас в теме
Автор, смотри публикации Ильдаровича, и познаешь, как надо)
16. botokash 374 28.12.16 17:58 Сейчас в теме
Мне кажется приведенную в начале проблему нужно было решать на уровне метаданных, а не хитростью запросов. Все таки койко-место, комнаты и хостелы это физические объекты, можно было выразить их перечень и состояния в виде справочников и регистров.
UniversaLL; Yashazz; +2 Ответить
Оставьте свое сообщение
Вакансии
Программист
Москва
зарплата от 150 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Москва
зарплата от 200 000 руб.
Полный день

Аналитик
Москва
зарплата от 150 000 руб. до 300 000 руб.
Полный день

Системный архитектор
Москва
зарплата от 150 000 руб.
Полный день