Имя: Пароль:
1C
1С v8
Использование характеристика в СКД
,
0 Zixxx
 
18.07.13
07:13
1. Создал обработку по заполнению табличной части на основании результата запроса СКД
2. В конструкторе через вкладку Характеристики, создал запрос к свойствам
3. На форму обработки выложил КомпоновщикНастроект.Отбор

Все хорошо, все работает, но беда в том что когда указываю в отборе свойство, то при выборе значений этого свойства вываливаются все значения свойств, а не те которые привязаны к выбранному свойству.

Решил перед началом выбора значения навешать свою форму и установить владельцы для свойства. Но вот беда, само свойство в компоновке указано как "Доступное поле компоновки данных" и ни как не получается выдернуть тип "ПланыВидовХарактеристик.СвойстваОбъектов". Как быть?
1 Zixxx
 
18.07.13
09:27
ап
2 Zixxx
 
18.07.13
15:37
fg
3 Zixxx
 
18.07.13
18:28
up
4 Fragster
 
гуру
18.07.13
18:41
у тебя неправильные настройки для значений
5 acsent
 
18.07.13
18:43
просто настройками такую задачу не решить
6 Zixxx
 
18.07.13
18:50
(4) Почему не правильные?
7 Zixxx
 
18.07.13
18:51
(5) Так в настройках у нас есть есть Ключ - ссылка, почему его выловить тогда не представляется возможным?
8 Fragster
 
гуру
18.07.13
19:07
В характеристиках можно использовать временные таблицы запроса, только тссс!
9 Zixxx
 
18.07.13
19:12
(8) Что я смогу из них вытянуть, чем они мне смогут помочь?
10 Zixxx
 
18.07.13
19:20
Максимум что можно сделать в характеристике запроса, это выбрать значения свойств у которых владелец из запроса по свойствам. Но настроить связь по владельцам там же нельзя.
11 Zixxx
 
18.07.13
19:46
ап
12 Fragster
 
гуру
18.07.13
20:06
(10) ну думай, как же тебе сделать так, чтобы в таблице характеристик были только нужные, учитывая то, что ты туда можешь пихнуть таблицу из запроса...
13 Zixxx
 
18.07.13
20:11
(12) Ну могу я для значений использовать не таблицу а запрос, могу там по объекту сказать что используй не все значения а только те которые принадлежат свойствам.
Но у меня у документа Заказ, 2 свойства, и в таблице запроса по значениям я укажу отбор по двум свойствам и опять будут вываливаться значения не для выбранного свойства а все значения этих двух свойств
14 Лефмихалыч
 
18.07.13
20:24
(0) описание характеристики покажи
15 Zixxx
 
18.07.13
20:25
(14)
ВЫБРАТЬ
   ЗаказПокупателя.Ссылка КАК ЗаказПокупателя
ИЗ
   Документ.ЗаказПокупателя КАК ЗаказПокупателя
{ХАРАКТЕРИСТИКИ
   ТИП(Документ.ЗаказПокупателя)
   ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
           СвойстваОбъектов.Ссылка,
           " (Свойство) " + СвойстваОбъектов.Наименование КАК Наименование,
           СвойстваОбъектов.ТипЗначения
       ИЗ
           ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
       ГДЕ
           СвойстваОбъектов.НазначениеСвойства = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Документ_ЗаказПокупателя)
           И НЕ СвойстваОбъектов.ПометкаУдаления)
   ПОЛЕКЛЮЧА Ссылка
   ПОЛЕИМЕНИ Наименование
   ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения
   ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.ЗначенияСвойствОбъектов
   ПОЛЕОБЪЕКТА Объект
   ПОЛЕВИДА Свойство
   ПОЛЕЗНАЧЕНИЯ Значение }
16 Zixxx
 
18.07.13
20:28
Тут все обычно и стандартно, но во всех примерах которые видел значения характеристик вываливались либо все либо частично отобранные, но не для конкретного свойства.

Вот например, мы можем в запросе по характеристикам указать запрос для "Виды характеристик" и можем указать запрос для "Значения характеристик" но связи то мы не можем настроить, для какого вида характеристики, какие значения характеристик выводить при отборе.
17 Лефмихалыч
 
18.07.13
20:28
(15) и что не так?
18 Лефмихалыч
 
18.07.13
20:29
а, вон оно чо. Ну, ЗНАЧЕНИЯХАРАКТЕРИСТИК тоже запросом выбери те, у котрых Свойство.Назначение правильное
19 Zixxx
 
18.07.13
20:31
(17) У меня у документ Заказ 10 свойств, у каждого свойства 10 значений. Если я на форме у КомпоновщикаНастроек укажу отбор по свойству то он мне выведет 100 значений. Можно навешать отбор на владельца при выборе, но типа у меня нет Планов видов характеристик
20 Zixxx
 
18.07.13
20:34
(18) Если навешаю максимум отберу значения по 10 свойствам которых будет 100, а мне нужно ограничить выбор значения в зависимости от выбранного свойства. Это можно поймать только при добавлении отбора у КомпоновщикаНастройки, но до типа ПланыВидовХарактеристик из него не добраться, там все типа "ДоступноеПолеКомпоновкиДанных". Т.е. одно из наших свойств будет не с типом планы видов характеристик а с типом доступное поле компоновки данных и отобрать по владельцу не получится
21 Zixxx
 
18.07.13
20:52
В общем для временного решения пока сделал следующим образом, может кому пригодиться, можно также использовать для одинаковых по наименованию свойств, если кто придумает лучше, жду решений.

В запросе по характеристикам формируем наименование с кодом
[code]
" (Свойство) " + СвойстваОбъектов.Наименование + " (код: " + СвойстваОбъектов.Код + "#)" КАК Наименование,
[/code]

Далее у компоновщика настроек для правого значения при начале выбора устанавливаем владельца по коду

[code]
   ТекущаяСтрока = ЭлементыФормы.КомпоновщикНастроек.ТекущаяСтрока;
   Если ТекущаяСтрока <> Неопределено Тогда
       
       СтандартнаяОбработка = Ложь;
       
       Свойство            = Строка(ТекущаяСтрока.ЛевоеЗначение);
       Структура            = Новый Структура;
       Свойство            = СтрЗаменить(Свойство, "#", """); Структура.Вставить(""ПравоеЛишнее"",""");
       СтрокаВыполнения    = "Структура.Вставить(""ЛишнееЛевое"",""" + СтрЗаменить(Свойство, "(код: ", """); Структура.Вставить(""ИскомоеЗначение"",""") + """);";
       
       Выполнить(СтрокаВыполнения);
       
       ФормаВыбора = Справочники.ЗначенияСвойствОбъектов.ПолучитьФормуВыбора();
       ФормаВыбора.Отбор.Владелец.Установить(ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду(Структура.ИскомоеЗначение));
       ФормаВыбора.Отбор.Владелец.Использование = ИСТИНА;
       ФормаВыбора.ОткрытьМодально();
       
   КонецЕсли;
[/code]