#0
by К_Дач
1 набор данных ХозрасчетныйОбороты: поля ВалютаОперации определена как: ВЫБОР ДатаОперации определена как: 2 наборданных КурсыВалютСрезПоследних: запрос: ВЫБРАТЬ КурсыВалютСрезПоследних.Период КАК ДатаКурса, КурсыВалютСрезПоследних.Курс КАК Курс 1. Источник ДатаОперации Приемник ДатаКурса Параметр ----> ДатаСреза 2. Источник ВалютаОперации Приемник Валюта Параметр ----> ТекВалюта Так вот. Соединение по дате отлично работает. По валюте работает во всех случаях, если валюта не рубли. То есть получает курсы валют, все кроме рублей. Есть мнение, что получение данных в наборе производится ДО передачи в них параметров, которые не являются критичными (все, кроме параметров виртуальных таблиц). Параметр &Рубль, он определяет заполнение поля и критичным для связи не является. То есть, как я думаю происходит так: 1. Получение данных в наборе. 2. Связывание с другим набором. 3. Заполнение полей в наборах, определенных передачей параметров. Если определить поле ВалютаОперации = &Рубль и связывать по нему - работать не будет... Вопрос: Есть поле XYNULL, могущее принимать значения X, Y, Null. Как "подменить" Null, чтобы потом по полю организовать связь? Прокомментируйте, плз...
#2
by К_Дач
Ты не понял... Null не на уровне получения данных в запросе. То есть параметр еще для подмены Null еще не передан, но фактически вместо параметра там Null
#5
by К_Дач
я просто обобщил свой пример.... причем тут название поля то. Какая разница, какие наборы связывать, вопрос то не в этом же.
#7
by К_Дач
Прочитай внимательно, плз: То есть, как я думаю происходит так: 1. Получение данных в наборе. 2. Связывание с другим набором. 3. Заполнение полей в наборах, определенных передачей параметров.
#9
by GLazNik
для начала бы более понятно сформировать вопрос. я в ваши "подменах" запутался. В запросе можно использовать ЕСТЬNULL и ЕСТЬ NULL isnull(isnull(isnull(&Рубль, &Рубль), &Рубль), &Рубль) так надежнее будет
#10
by shuhard
[Null не на уровне получения данных в запросе.] передавать NULL в запрос да мсье прост эсперт в извращениях
#11
by К_Дач
да привязались вы к этому Null, это всего лишь мое предположение. Упрощу вопрос: по полю ВалютаОперации = &Рубль связь наборов данных в СКД не работает
#12
by GLazNik
вот убей, но фразы "на момент соединения параметр еще не передан, другими словами" не понимаю. запрос просто не выполнится без переданных параметров
#14
by К_Дач
Все верно ты говоришь, это и без слов понятно... В запросе первого набора есть поле, как написано в Соединияя со вторым набором, запрос которого: КурсыВалютСрезПоследних.Курс КАК Курс с помощью связи: Источник ВалютаОперации Приемник Валюта Параметр ----> ТекВалюта ничего не получаем. я не знаю, как еще понятнее объяснить, ну могу оба запроса тут привести или СКД сохранить в файл и куда-нить залить
#15
by GLazNik
наверное вам нужно что-то типа такого условия: (ВалютаОперации ЕСТЬ NULL) ИЛИ (ВалютаОперации = &Рубль)
#16
by shuhard
не а, надо передать в правый набор валюту и вернуть её для связи ссылка на сайт СКД выкладывалась на мисту 100500 раз
#17
by К_Дач
именно, передать в правый набор для связи (то есть в параметр второго набора) но как передать, если он в первом наборе то еще не заполнен... ткни носом в этот сайт, если нетрудно
#24
by К_Дач
В примере по ссылке из соединяют наборы по ЗАПОЛНЕННЫМ полям. А у меня поле в момент связи еще не заполнено... Я не просто так написал
#28
by К_Дач
____________________________________________________________ ____________________________________________________________ ВЫБРАТЬ КурсыВалютСрезПоследних.Курс КАК Курс 2 связи на закладки "связи наборов": ДатаОперации - ДатаКурса - Параметр ДатаСреза ВалютаОперации - Валюта - Параметр ТекВалюта
#32
by К_Дач
Спасибо)) Только я пишу отчет для тонкого клиента, СКД мне нужна, чтобы вытащить на форму настройки отборов и сортировок и еще всякие плюшки... я бы не стал тему создавать, если б удовлетворился решением с помощью запроса.... сначала сам всю голову сломал
#33
by ProDeveloper
И? Для тонкого и что? В СКД делай все в 1 наборе, срез последних на каждую дату получай в запросе как я тебе написал и будет тебе счастье
#34
by К_Дач
все, что написано по ссылке - у меня настроено. честное пионерское. ну как вариант... по-видимому, так и придется поступить
#36
by ProDeveloper
каждый случай индивидуален, по личному опыту скажу что СКД далеко не идеальна и баги в ней есть, почитай хотя бы эту ветку
#37
by shuhard
[СКД далеко не идеальна и баги в ней есть,] речь не о багах, а о том, что многие задачи не имеют иных решений, кроме связи наборов
#38
by К_Дач
Вобщем, если выборку валюты из ХозрасчетныйОборот убрать во вложенный запрос - работает... вот
#39
by ProDeveloper
попробуй сделать то, что пишет ТС, в результате в таком случае получается не совсем корректный срез последних на каждую дату для валюты когда она определена в 1 наборе как через СКД связыванием 2х наборов данных через параметр связи
#40
by ProDeveloper
Помочь может кстати, если в 1 наборе все поместить во временную таблицу, а потом просто ещё раз все из неё выбрать. И делать через 2 связанных набора СКД по параметрам связи
#42
by ProDeveloper
+ это все равно будет работать медленнее по производительности, нежели 1 набор и получения среза последних на каждую дату в запросе. "В итоге делаем вывод что oldschool style вывозит, срез последних на каждую дату в запросе производительнее, чем финт ушами СКД через 2 набора и связи между ними через параметр связи"
#43
by К_Дач
спорно, потому что фактически набор-запрос - после выполнения компоновки - это тот же самый запрос... спасибо всем отписавшимся за внимание
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Связи наборов данных в СКД
- СКД: СКД. Понимает ли СКД ссылки на МенеджерВременныхТаблиц?
- СКД: как в СКД значеняи параметров по умолчанию заполнять?
- СКД: Диаграмма в СКД
- СКД: СКД. Как задать устанавливать параметры вложенных схем СКД?
- СКД: Объединение в СКД
- СКД: Соединение наборов данных - не выводится null
- СКД: Как сделать вычисляемое поле в СКД
- СКД: СКД - можно ди получить промежуточные итоги по колонкам
- СКД: Настройки СКД
- СКД: СКД: Программное обращение к полям группировки СКД
- СКД: СКД. Вычисляемое поле на основе агрегатных функций запроса...
В этой группе 1С
- Сменить повторяющуюся строку в табличном документе
- полное разукомплектование в УПП
- Вопрос знатокам КД, ПКС ПометкаУдаления
- Как временно обойти РЛС (УПП 8.2)?
- Контроль лимита задолженности в УПП
- Динамическое обновление общего модуля
- Обмен из БСП - как с ним работать?
- Планировщик Win Server 2003
- перенос данных по зарплате в 1С УПП
- УТ 11 Справочник ВидыКонтактнойИнформации выдает лажу.
- Контроль отрицательных остатков
- Задание.ПолучитьСообщенияПользователю(УдалятьПолученные) - параметр не работает?
- Какие ресурсы нужны для 200 сеансов 1С в Citrix
- v8: Как удалить строку в таблице на MSSQL не запросом. {Решено}
- Корректировка реализации БП 2.0. Лезет в старый период. Зачем?
- Редактор HTML в 1с
- Установка Apache на Windows Server 2008 64bit
- v7: 1C++ Покажите пример запроса к DBF базе за период по позицию документа
- v7: Как запустить или зарегистрировать .SP
- 1с8.2 БП v2.0.38.6 проводки документа Отчет о розничных продажах