Имя: Пароль:
1C
1С v8
Параметры виртуальных таблиц
,
0 senior
 
02.10.15
18:53
Есть схема СКД, как для вирт. таблицы указать больше одного необязательного параметра, что-то наподобие РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , {Условие1} и {Условие2}) КАК Остатки
1 Fragster
 
гуру
02.10.15
18:57
{Условие1, Условие2}
2 Tateossian
 
02.10.15
18:59
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&Начало, &rКонец, Авто, , {(Номенклатура = &Номенклатура
                И Организация = &Орг)}) КАК ПартииТоваровНаСкладахОстаткиИОбороты
4 senior
 
05.10.15
07:52
(1) (2) пробовал
5 Мимохожий Однако
 
05.10.15
07:53
А вместо параметров в виртуальной таблицы пробовал использовать отборы в настройках СКД?
6 Web00001
 
05.10.15
07:54
(4)И как успехи? А вообще юзай отборы СКД. Они именно для этого и придуманы.
7 senior
 
05.10.15
08:17
(6) т.е. он отбор наложит до вычисления вирт. таблицы?
8 Cyberhawk
 
05.10.15
08:30
(7) в большинстве случаев - да. Но лучше покажи сам запрос сначала и на что планируется накладывать отбор.
9 senior
 
05.10.15
08:35
(8) спасибо, почитал про отборы
10 senior
 
05.10.15
11:02
а кто-нибудь подскажет как будет работать отбор, если сначала готовится временная таблица, и там стоит условие типа {ГДЕ
    АналитикаУчетаЗатрат.Затрата.*}? Т.к. в данном случае нет прямой связи с полем, которое в след. запросе попадает в выборку.
11 aleks_default
 
05.10.15
11:05
Не видя самого запроса никто не скажет, да и потом... все на усмотрение оптимизатора запроса СКД
12 Cyberhawk
 
05.10.15
11:08
Если в доступных полях отбора СКД есть поле "АналитикаУчетаЗатрат.Затрата", то все будет норм
13 Лефмихалыч
 
05.10.15
11:21
(0) пользуйся конструктором, не делай мозг.

А вообще это делается так: {поле1., поле2.}

если так делаешь и не получается, значит ты что-то не так делаешь.
14 Лефмихалыч
 
05.10.15
11:22
+(13) там после точки - звёздочка, которая означает "включать подчиненные поля".
15 senior
 
05.10.15
12:37
Короче запрос:

ВЫБРАТЬ
    АналитикаВидаУч.Ссылка
ПОМЕСТИТЬ Аналитика1
ИЗ
    РегистрСведений.АналитикаВидаУчета КАК АналитикаВидаУч
{ГДЕ
    АналитикаВидаУч.Склад = &Склад}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    УчетЗатратОстатки.КоличествоОстаток
ИЗ
    РегистрНакопления.УчетЗатрат.Остатки(
            ,
            АналитикаВидаУчета В
                (ВЫБРАТЬ
                    Аналитика1.Ссылка
                ИЗ
                    Аналитика1)) КАК УчетЗатратОстатки
16 senior
 
05.10.15
12:38
(15) вернее с отборами так:
ВЫБРАТЬ
    АналитикаВидаУч.Ссылка
ПОМЕСТИТЬ Аналитика1
ИЗ
    РегистрСведений.АналитикаВидаУчета КАК АналитикаВидаУч
{ГДЕ
    АналитикаВидаУч.Склад}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    УчетЗатратОстатки.КоличествоОстаток
ИЗ
    РегистрНакопления.УчетЗатрат.Остатки(
            ,
            АналитикаВидаУчета В
                (ВЫБРАТЬ
                    Аналитика1.Ссылка
                ИЗ
                    Аналитика1)) КАК УчетЗатратОстатки
17 senior
 
05.10.15
12:39
(16) будет ли наложено условие на запрос, создающий врем. табл?
18 GenAcid
 
05.10.15
13:04
Что мешает сделать так:

ВЫБРАТЬ
    УчетЗатратОстатки.КоличествоОстаток
ИЗ
    РегистрНакопления.УчетЗатрат.Остатки(
            ,
            {АналитикаВидаУчета.*}) КАК УчетЗатратОстатки

или так:

ВЫБРАТЬ
    УчетЗатратОстатки.КоличествоОстаток
ИЗ
    РегистрНакопления.УчетЗатрат.Остатки(
            ,
            {АналитикаВидаУчета.Склад}) КАК УчетЗатратОстатки

А если хочешь через параметр, а не отбор:

ВЫБРАТЬ
    УчетЗатратОстатки.КоличествоОстаток
ИЗ
    РегистрНакопления.УчетЗатрат.Остатки(
            ,
            {АналитикаВидаУчета.Склад В (&НужныеСклады)}) КАК УчетЗатратОстатки
19 GenAcid
 
05.10.15
13:05
(17) будет наложено условие если будет соответствующий отбор.
20 Cyberhawk
 
05.10.15
13:10
(17) будет, СКД накладывает отбор на поля ВТ даже без { }
21 Cyberhawk
 
05.10.15
13:10
Вон в (19) тебе повторили меня из (12)
22 senior
 
05.10.15
13:15
всем спасибо, разобрался
23 GenAcid
 
05.10.15
13:36
(20) это только если Автозаполнение в СКД включено. Иногда ж нужно не все отборы в виртуальные таблицы транслировать.
24 Cyberhawk
 
05.10.15
13:41
(23) в таком случае более простым и быстрым способом кажется обозвать поля по-своему на вкладке "Компоновка данных" для ВТ, чем выключать автозаполнение
Независимо от того, куда вы едете — это в гору и против ветра!