Имя: Пароль:
1C
1С v8
Использование характеристик во временных таблицах запросов в СКД
0 Leksus
 
25.01.12
14:59
Допустим задача следующая... Необходимо использовать отбор по свойствам номенклатуры когда самой номенклатуры нет в таблице по которой формируется выборка.
Например запрос - источник данных СКД выглядит следующим образом:

ВЫБРАТЬ
   Продажи.ДоговорКонтрагента
ПОМЕСТИТЬ втДоговораКонтрагентов
ИЗ
   РегистрНакопления.Продажи.Обороты({(&ДатаНачала)}, {(&ДатаОкончания)}, , {(Номенклатура).*}) КАК Продажи

СГРУППИРОВАТЬ ПО
   Продажи.ДоговорКонтрагента

ИМЕЮЩИЕ
   СУММА(Продажи.КоличествоОборот) > 10
{ХАРАКТЕРИСТИКИ
   ТИП(Справочник.Номенклатура)
   ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
           СвойстваОбъектов.Ссылка,
           СвойстваОбъектов.Наименование,
           СвойстваОбъектов.ТипЗначения
       ИЗ
           ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
       ГДЕ
           СвойстваОбъектов.НазначениеСвойства = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура))
   ПОЛЕКЛЮЧА Ссылка
   ПОЛЕИМЕНИ Наименование
   ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения
   ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.ЗначенияСвойствОбъектов
   ПОЛЕОБЪЕКТА Объект
   ПОЛЕВИДА Свойство
   ПОЛЕЗНАЧЕНИЯ Значение }
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.Владелец КАК Контрагент,
   ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(
           ,
           ДоговорКонтрагента В
               (ВЫБРАТЬ
                   втДоговораКонтрагентов.ДоговорКонтрагента
               ИЗ
                   втДоговораКонтрагентов)) КАК ВзаиморасчетыСКонтрагентамиОстатки
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ втДоговораКонтрагентов

В данном случае 1С не видит свойства и не позволяет создать соответствующий отбор.
Кто-нибудь пробовал такое?
1 Leksus
 
25.01.12
15:01
В данном случае выводим остатки по взаиморасчетам по тем договорам, по которым были продажи (с учетом отбора!) в количестве более 10 шт.
2 Maxus43
 
25.01.12
15:04
в СКД со свойствами работать кошерней на закладке характеристика. в выборку то прикрепи номенклатуру, только поставь ограничения на использование этого поля при отображении и отборе
3 Reaper_1c
 
25.01.12
15:05
Ну ты хотя бы поле с пустой ссылкой на номенклатуру в результат запроса формирующего набор данных выведи...
4 Maxus43
 
25.01.12
15:09
(2) + не то чото сказал, ибо с Характеристиками и так работаеш. а без номенклатуры в выборке ВТ имхо не прокатит
5 Reaper_1c
 
25.01.12
15:12
(4) Прокатит. Просто у него в наборе данных вообще нет поля "номенклатура". А значит она недоступна в отборе.
6 Leksus
 
25.01.12
15:44
(2) это упрощенный пример запроса. В реальной ситуации у меня нет возможности прикрепить номенклатуру в выборку
(3) Добавил. Не помогло :(

ВЫБРАТЬ
   Продажи.ДоговорКонтрагента
ПОМЕСТИТЬ втДоговораКонтрагентов
ИЗ
   РегистрНакопления.Продажи.Обороты({(&ДатаНачала)}, {(&ДатаОкончания)}, , {(Номенклатура).*}) КАК Продажи

СГРУППИРОВАТЬ ПО
   Продажи.ДоговорКонтрагента

ИМЕЮЩИЕ
   СУММА(Продажи.КоличествоОборот) > 10
{ХАРАКТЕРИСТИКИ
   ТИП(Справочник.Номенклатура)
   ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
           СвойстваОбъектов.Ссылка,
           СвойстваОбъектов.Наименование,
           СвойстваОбъектов.ТипЗначения
       ИЗ
           ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
       ГДЕ
           СвойстваОбъектов.НазначениеСвойства = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура))
   ПОЛЕКЛЮЧА Ссылка
   ПОЛЕИМЕНИ Наименование
   ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения
   ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.ЗначенияСвойствОбъектов
   ПОЛЕОБЪЕКТА Объект
   ПОЛЕВИДА Свойство
   ПОЛЕЗНАЧЕНИЯ Значение }
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
   ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.Владелец КАК Контрагент,
   ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(
           ,
           ДоговорКонтрагента В
               (ВЫБРАТЬ
                   втДоговораКонтрагентов.ДоговорКонтрагента
               ИЗ
                   втДоговораКонтрагентов)) КАК ВзаиморасчетыСКонтрагентамиОстатки
;

////////////////////////////////////////////////////////////////////////////////

УНИЧТОЖИТЬ втДоговораКонтрагентов
7 Leksus
 
25.01.12
15:45
Сори, вот новый запрос

ВЫБРАТЬ
   Продажи.ДоговорКонтрагента
ПОМЕСТИТЬ втДоговораКонтрагентов
ИЗ
   РегистрНакопления.Продажи.Обороты({(&ДатаНачала)}, {(&ДатаОкончания)}, , {(Номенклатура).*}) КАК Продажи

СГРУППИРОВАТЬ ПО
   Продажи.ДоговорКонтрагента

ИМЕЮЩИЕ
   СУММА(Продажи.КоличествоОборот) > 10
{ХАРАКТЕРИСТИКИ
   ТИП(Справочник.Номенклатура)
   ВИДЫХАРАКТЕРИСТИК (ВЫБРАТЬ
           СвойстваОбъектов.Ссылка,
           СвойстваОбъектов.Наименование,
           СвойстваОбъектов.ТипЗначения
       ИЗ
           ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
       ГДЕ
           СвойстваОбъектов.НазначениеСвойства = ЗНАЧЕНИЕ(ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура))
   ПОЛЕКЛЮЧА Ссылка
   ПОЛЕИМЕНИ Наименование
   ПОЛЕТИПАЗНАЧЕНИЯ ТипЗначения
   ЗНАЧЕНИЯХАРАКТЕРИСТИК РегистрСведений.ЗначенияСвойствОбъектов
   ПОЛЕОБЪЕКТА Объект
   ПОЛЕВИДА Свойство
   ПОЛЕЗНАЧЕНИЯ Значение }
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
   ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК Номенклатура,
   ВзаиморасчетыСКонтрагентамиОстатки.ДоговорКонтрагента.Владелец КАК Контрагент,
   ВзаиморасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(
           ,
           ДоговорКонтрагента В
               (ВЫБРАТЬ
                   втДоговораКонтрагентов.ДоговорКонтрагента
               ИЗ
                   втДоговораКонтрагентов)) КАК ВзаиморасчетыСКонтрагентамиОстатки
;

////////////////////////////////////////////////////////////////////////////////

УНИЧТОЖИТЬ втДоговораКонтрагентов
8 Reaper_1c
 
25.01.12
15:46
Значение(Справочник.Номенклатура.ПустаяСсылка)
в твоей версии платформы отменено?
9 Leksus
 
25.01.12
15:47
(8) см. (7)
10 Leksus
 
25.01.12
15:49
причем поле {ХАРАКТЕРИСТИКИ} втыкал везде где можно
11 Leksus
 
25.01.12
15:57
Интересно что все работает прекрасно с отбором по номенклатуре или реквизитам номенклатуры... просто свойства не цепляет :(
12 Reaper_1c
 
25.01.12
15:59
В наборе данных поле "Номенклатура" появилось?
13 Maxus43
 
25.01.12
16:07
а в запросе эти характеристики ты не увидиш, на других закладках смотри отборы по ним
14 Leksus
 
25.01.12
16:23
(12) она там есть даже при варианте запроса из (0)
(13) не понял про какие закладки вы говорите... я смотрю в автоматически генерируемой платформой форме настроек СКД
15 Maxus43
 
25.01.12
16:29
(14) дак на закладке вычисляемые поля сначала вытяни эти характеристики, а на них уже можно и отборы накладывать
16 Leksus
 
25.01.12
16:36
(15) какой укзать путь к данным применительно к запросу из (0)?
17 Maxus43
 
25.01.12
16:40
"Номенклатура.[Имя свойства даже с пробелами в таких скобках, от оно чо]",
для этого и говорю что надо в выборке номенклатуру указать, потом её не выводи просто пользователю
18 kabanoff
 
25.01.12
16:44
Характеристики пытаешься увидеть в конфигураторе или в режиме предприятия?
19 Leksus
 
25.01.12
16:51
(18) предприятия конечно
20 Leksus
 
25.01.12
16:55
(17) во-первых мне не нужен отбор по конкретному одному свойству, во вторых не работает
21 Maxus43
 
25.01.12
16:58
(20) у меня всё работает, по Хрусталёвой делал сам недавно так.
Не совсем понятно по каким параметрам нужен отбор тогда...
Не бери характеристики, в ВТ соединяй с регистром ЗначенияСвойствОбъектов по Номенклатуре, и делай со свойствами что душе угодно в таком случае
22 Reaper_1c
 
25.01.12
17:12
Схему компоновки в студию
23 kabanoff
 
25.01.12
17:15
А зачем использовать свойства номенклатуры, если самой номенклатуры в запросе нет (ну или как у тебя используется пустая ссылка)? Какой в этом смысл?
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.