#0
by nikitaz
Есть регистр сведений ФотоотчетыЗначенияФильтров. В нем есть три измерения: Фотоотчет, ФильтрФотоотчета, ЗначениеФильтра. Мне нужно получить все фотоотчеты, в которых соблюдается условие: ФильтрФотоотчета = "Раздел сайта", ЗначениеФильтра = "Брендирование интерьеров" И ФильтрФотоотчета = "Вид работ", ЗначениеФильтра = "Вывеска интерьерная" Вот это, естественно, не работает. Помогите, завис. ВЫБРАТЬ ФотоотчетыЗначенияФильтров.Фотоотчет ИЗ РегистрСведений.ФотоотчетыЗначенияФильтров КАК ФотоотчетыЗначенияФильтров И ФотоотчетыЗначенияФильтров.ЗначениеФильтра = "Брендирование интерьеров" И ФотоотчетыЗначенияФильтров.ФильтрФотоотчета = "Вид работ" И ФотоотчетыЗначенияФильтров.ЗначениеФильтра = "Вывеска интерьерная" СГРУППИРОВАТЬ ПО ФотоотчетыЗначенияФильтров.Фотоотчет
#1
by Крошка Ру
>>Мне нужно получить все фотоотчеты, в которых соблюдается условие: ФильтрФотоотчета = "Раздел сайта", ЗначениеФильтра = "Брендирование интерьеров" И ФильтрФотоотчета = "Вид работ", ЗначениеФильтра = "Вывеска интерьерная" Может все-таки ИЛИ? Не думаю, что измерение может принимать одновременно два значения...
#2
by nikitaz
Нет, мне нужны фотоотчеты, в которых встречается и та, и та комбинация. Если поставить ИЛИ, то будут выведены фотоотчеты, в которых есть первая комбинация ИЛИ вторая комбинация.
#3
by Dmitrii
Какова структура регистра? Как может один отчет иметь одновременно две комбинации фильтров?
#4
by Крошка Ру
Ну так поподробней надо структуру РС описывать. И что у фотоотчета может быть несколько описаний фильтров. Хорошо ещё, что я свой telepat.dll пока не отключил. Выбирай в одну ВТ с одной комбинацией, в другую - с другой, потом - внутренне соединение.
#5
by Dmitrii
ГДЕ (ФильтрФотоотчета = "Раздел сайта" ИЛИ ФильтрФотоотчета = "Вид работ") И (ЗначениеФильтра = "Брендирование интерьеров" ИЛИ ЗначениеФильтра = "Вывеска интерьерная")
#6
by Крошка Ру
Неа. Надо, чтоб у одного и того же фильтра, в одной строке РС встречалась одна комбинация, а в другой - другая.
#7
by nikitaz
В регистре есть три измерения, больше ничего нет: Фотоотчет (документссылка), ФильтрФотоотчета (планвидовхарактеристик), ЗначениеФильтра (множество типов). Один фототоотчет имеет много комбинаций фильтров и значений. Близко, спасибо. Вертелось в голове, не мог выразить человеческим языком. Может лучше сделать рекурсией? Вначале получаем ТЗ1, потом уходим в рекурсию с источником ТЗ1 и получаем ТЗ2? Не подходит. Крошка права.
#9
by Dmitrii
Сделать ТЗ из двух колонок и двух строк. ТЗ передать в запрос. ИЗ Что-то типо этого. Набирал вручную, синтаксис может хромать.
#11
by nikitaz
Да, только мне нужно запрос формировать на лету. Количество комбинаций фильтр - значение может меняться. Видимо, рекурсия меня спасет.
#12
by Dmitrii
>> Количество комбинаций фильтр - значение может меняться. Ну и заполняй ТЗ, которая передается в качестве параметра запроса теми комбинациями ,которые тебе нужны. Не понял проблемы... А вообще неплохо бы видеть всю задачу.
#13
by nikitaz
Есть куча документов "Фотоотчет", в каждой из которых есть табличная часть "Фильтры". В табличной части "Фильтры" есть такие реквизиты - ФильтрФотоотчета и ЗначениеФильтра. Имеем фотоотчет #1 ("Вывеска Адидас"). В нем в тч Фильтры 2 строки: 1. ФильтрФотоотчета = "Раздел сайта", ЗначениеФильтра = "Брендирование интерьеров" 2. ФильтрФотоотчета = "Вид работ", ЗначениеФильтра = "Вывеска интерьерная" При проведении это все записыватся в регистр сведений с тремя измерениями: Фотоотчет, ФильтрФотоотчета, ЗначениеФильтра. Имеем фотоотчет #2 ("Табличка Сони"). тч Фильтры: 1. 1. ФильтрФотоотчета = "Раздел сайта", ЗначениеФильтра = "Брендирование интерьеров" И т.д. Мне нужно написать обработку, которая ищет по списку комбинаций фильтр - значение фильтра необходимые фотоотчеты.
#14
by ktvladimir
а кто мешает сделать условие ГДЕ (ФотоотчетыЗначенияФильтров.ФильтрФотоотчета = "Раздел сайта" И ФотоотчетыЗначенияФильтров.ЗначениеФильтра = "Брендирование интерьеров") ИЛИ (ФотоотчетыЗначенияФильтров.ФильтрФотоотчета = "Вид работ" И ФотоотчетыЗначенияФильтров.ЗначениеФильтра = "Вывеска интерьерная") всего лишь скобки а как влияет на приоритет условия
#15
by nikitaz
Будут найдены фотоотчеты, которые имеют или первую или вторую комбинацию. А мне нужны фотоотчеты, в которых встречаются обе комбинации, а не одна из них.
#16
by Escander
Налицо ошибка проектирования! При нормальном проектировании выбирают не измерения а ресурсы.
#17
by ktvladimir
ну тогда ВЫБРАТЬ ФотоотчетыЗначенияФильтров.Фотоотчет ИЗ И ФотоотчетыЗначенияФильтров.ЗначениеФильтра = "Брендирование интерьеров" 2 ИЗ ИМЕЮЩИЕ ну так к примеру
#19
by Крошка Ру
Это ты разработчикам типовых скажи, у которых настройки пользователя именно так устроены
#21
by ktvladimir
не поверю по сравнение с у меня выдаст варианты где либо й набор либо второй в случае с ничего не выдаст
#22
by nikitaz
А если элегантней, чтобы запрос красиво формировать на лету или еще как? ))) Циклом обходить все комбинации фильтр - значение и из ТЗ выбирать ТЗ? Мой вариант нифига не выдает. Это правда. Само условие бредовое.
#23
by ktvladimir
а если элегантней чтоб из тз ок ВЫБРАТЬ ФильтрФотоотчета, ЗначениеФильтра ИЗ ТЗВРем)
#24
by ktvladimir
на синтаксиси мне пофиг) идею я толкнул реализация твоя. мне влом 1с открывать чтоб рисовать красиво
#25
by Крошка Ру
У условия И приоритет выше, чем у ИЛИ, так что скобки в ни на что не влияют. А про сравнение с никто и не говорил.
#26
by ktvladimir
че правда? а я думал у скобок высший приоритет и будет выполнено условие И в первых скобках, условие И во вторых скобках а потом уже результаты соединяться по ИЛИ иди учи матчасть
#28
by nikitaz
Курю, не понимаю полностью. Сильно мудрёный... Если не сложно, объясните, плиз, логику.
#29
by ktvladimir
ну первый пакет это просто я тз загоняю во временную таблицу второй когдла я с регистра выбираю все записи удовлетворяющие данным из тз в данном случае такое условие двойное это когда оба реквизита соответсвуют записи ис тз ну и последнее свертка количество таких записей должно быть равным количеству строк в тз, то есть фотоотчет соответсвует ВСЕМ условиям из тз
#30
by ktvladimir
ВЫБРАТЬ Фотоотчеты.Фотоотчет ИЗ (Фотоотчеты.ФильтрФотоотчета, Фотоотчеты.ЗначениеФильтра) В (ВЫБРАТЬ ТЗВРем.ФильтрФотоотчета, ТЗВРем.ЗначениеФильтра ИЗ ТЗВРем) так немножко понятнее чтоб не путаться
#31
by Escander
там другой случай и там есть допиндексы, мне что-то подсказывает что допиндексов тут нет
#33
by ktvladimir
просто по кускам делайте сперва без СГРУППИРОВАТЬ ПО Фотоотчет посмотрите что будет выбрано из регистра по такому условию далее добавьте группировку СУММА И Фотоотчеты.Фотоотчет ну и окончательно условие ИМЕЮЩИЕ
#34
by nikitaz
Извините меня извращенца и спасибо за идею. Сделал циклом. 1. Первый проход - формируем ТЗ 1 из всего регистра по первой связке "фильтр - значение" 2. Второй проход - формируем ТЗ 2 по второй связке "фильтр - значение" из ТЗ 1 3. Третий проходе - ТЗ 3 из ТЗ 2 Ну и т.е., пока не кончатся искомые связки "фильтр-значение"
#35
by Escander
вам-бы про запросы чего почитать... 1.загружаем переданную параметром ТЗ во временную таблицу. там правда ошибка и вместо из ТЗВрем должно быть из &ТЗВрем 2.собираем все записи из РС у которых ключевые измерения из набора и считаем сколько раз Фотоотчеты.Фотоотчет там встречается.... но опять ошибка, в предложеном варианте отберёт Фотоотчеты.Фотоотчет только 1 раз, тут нужно не ГДЕ (Фотоотчеты.ФильтрФотоотчета, Фотоотчеты.ЗначениеФильтра) В а внутреннее соединение и уже результат группировать. 3.Финальное условие ИМЕЮЩИЕ отрабатывает на то, что было уже получено после выполнения группировки (а не до как это с ГДЕ). PS конструкция вида ИЗ РС.ФотоотчетыЗначенияФильтров КАК Фотоотчеты, СУММА выглядит забавно но вполне может нормально отработать - нужно проверить
#36
by ktvladimir
Приношу свои извинения таки да скобки в принципе лишние, видимо перед сном уже плохо думалось ну про синтаксис я сразу предупреждал что ошибки имеют место быть) так как пишу от руки, по сути это алгоритм а не решение проблемы насчет неправильности где НЕ согласен. отберутся ВСЕ записи удовлетворяющие условию признака выбирать различные нет те до использовани ИМЕЮЩИЕСЯ будет табличка типа фотоочет 1 фотоочет 1 фотоочет2 1 итд
#37
by nikitaz
Спасибо! Начинаю стремительно въезжать. Heaving (имеющие) рулит. Я не профессиональный программист, просто хобби такое странное. Книжку по sql бросил на середине - времени не было )) Сегодня попробую, отпишусь.
#38
by nikitaz
ТЗВрем в первом пакете - это таблица значений с комбинациями "ФильтрФотоотчета - ЗначениеФильтра"?
#41
by nikitaz
Так, накалякал я запрос по вашим подсказкам. В результат попадают фотоотчеты, в которых есть одна (любая) из связок "фильтр - значение". А мне нужно обе. Не могу разобраться с СУММА ((( ИЗ РегистрСведений.ФотоотчетыЗначенияФильтров КАК Фотоотчеты ИЗ
#43
by nikitaz
Мне кажется вариант с ГДЕ более правильным. Т.к. в этом случае можно проверять один и тот же фильтр на несколько значений. Т.е. если в фотоотчете допускается повторение фильтра. Например: "Материал изготовления = Пластик" или "Материал изготовления = Металл". Теперь думаю, что делать с условиями больше и меньше. Т.е. проверять не только равенство, но и больше/меньше
#44
by ktvladimir
а чтоб исключить повторы фильтров нужно предварительно сделать выборку по таблице РС с условие РАЗЛИЧНЫЕ к примеру
#45
by ktvladimir
вру в подзапросе Различные нельзя делать. вывести подзапрос во временную таблицу по поводу меньше больше, а какая в принципе разница? ИМЕЮЩИЕ СУММА > 2 те все фотоочеты имеющие более 2 фильтров
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- 1С 8. Запрос. Группировка по значениям табличной части ресурса регистра сведений
- Один запрос - все ок , два запрос - не получается :(
- Как связать период Регистра накопления и Регистра сведений во внутреннем запросе
- Как написать запрос, с условием, где параметр запроса входит в группу переменной
- как в скд результат одного запроса сделать условием в другом запросе?
- 1C КА: запрос для получения значения период.регистра сведений на дату документа
- 1С 8.3. Запрос из регистра сведений, итоги.
- Запрос в обработке и запрос в консоли отчетов выдают разные результаты
В этой группе 1С
- РИБ Под полными правами под пользователем
- v7: ТИИ - пересчет служебных данных - это что?
- Сохранить результат отчета на СКД, и использовать его при следующем открытии.
- как сгруппировать в СКД 2 запроса?
- бгу 2.0 документ пко, где прячется вкладка бух операция
- УТ 11 расхождение в регистре Себестоимость и партии товаров организации
- Горизонтальная полоса прокрутки на диаграмме Ганта
- Обнаруженны ссылки на объекты помеченные на удаление при обновлении 2.0 на 3.0
- Как можно программно управлять видимостью кнопки командной панели ?
- Какие действия необходимы для входа в ЛК по 223-ФЗ после смены сертификата?
- Фоновые задания для мобильных приложений
- СКД: Итоги по периоду по вычисляемым полям - суммируются остатки по периодам
- Бухгалтерия 3.0 незавершенное производство
- Розница 2.1 Изменение текущего магазина
- Кто работал с instantcms, как создать страницу в ней?
- Конвертация данных: ПВД, ВыгрузитьПоПравилу
- УПП каким документом списывать топливо израсходованное автотранспортом.
- ЗУП 3 Сотрудник на больничном в конце месяца
- сравнить два файла на содержимое
- 1С УПП неправильный вывод вида времени