|
СКД: 2 регистра, две таблицы, одни параметры | ☑ | ||
---|---|---|---|---|
0
dsdred
20.07.12
✎
08:22
|
Стоит задача сделать отчет именно в СКД
по 2 однотипным регистрам сведений ЦенаНоменклатуры и ЦенаНоменклатуыПоставщиков вывести 2 таблицы вывод осуществляется по заданым пользователем параметрам Номенклатура, артикул ну и тому подобное. Без СКД понимаю как сделать с ней неврубаюсь, направте в нужное русло пожалуйста. |
|||
1
LAAry
20.07.12
✎
08:37
|
В запросе выбираешь 2 таблицы без объединения/соединения. Выбираешь из них нужные поля. В Настройках структуры строишь 2 таблицы из разных полей с 2-я отборами: ЦенаНоменклатуры.Номенклатура = ВыборПользователя и ЦенаНоменклатуыПоставщиков .Номенклатура = ВыборПользователя.
|
|||
2
dsdred
20.07.12
✎
09:44
|
(1)
Сложность в том для меня, что параметры могут быть пустыми Если параметр пустой то его неучитывать в выборе данных |
|||
3
Jokerman
20.07.12
✎
09:48
|
(2) параметры вынести в отбор СКД, а у отбора в СКД есть галка "использовать"
|
|||
4
dsdred
20.07.12
✎
09:51
|
(3)
Я правельно понимаю, что после этих действий у пользователя будет возможность ввести данные параметры, но если он их не введет то запрос отработает так как будто они неучаствуют в отборе вовсе? |
|||
5
Jokerman
20.07.12
✎
10:03
|
(4) нужно будет отреагировать на события изменения, если значение пустое, то программно убирать галку
|
|||
6
Jokerman
20.07.12
✎
10:03
|
Процедура УстановитьОтбор(ИмяПоля,Значение)
ПолеОтбора = Новый ПолеКомпоновкиДанных(ИмяПоля); Для каждого Элемент Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл Если Элемент.ЛевоеЗначение = ПолеОтбора Тогда ЭлементОтбора = Элемент; Прервать; КонецЕсли; КонецЦикла; Если ЭлементОтбора = Неопределено Тогда ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); КонецЕсли; ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ЛевоеЗначение = ПолеОтбора; ЭлементОтбора.ПравоеЗначение = Значение; ЭлементОтбора.Использование = НЕ Значение.Пустая(); КонецПроцедуры |
|||
7
Администратор 1С
20.07.12
✎
12:40
|
ВЫБРАТЬ
ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура, ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена, ЦеныНоменклатурыСрезПоследних.Цена КАК Ценапоставщика ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, {(Номенклатура) КАК Товар}) КАК ЦеныНоменклатурыСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(, {(Номенклатура) КАК Товар}) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура {ГДЕ ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура КАК Товар} |
|||
8
Администратор 1С
20.07.12
✎
12:40
|
товар добавить в отбор СКД
|
|||
9
dsdred
23.07.12
✎
15:09
|
Сделал все гораздо проще))
3 запроса всех данных 1 по номенклатуре и 2 по регистрам Связь через номенклатуру и отбор через нее же. Вывод таблиц сформированых по нужным данным. Собственно все просто получилось. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |