Имя: Пароль:
1C
1С v8
Проверка типа значения
0 NovichokAlena
 
20.07.15
09:22
Доброго времени суток. Подскажите, пожалуйста как в этот запрос добавить проверку еще для документа "ОприходованиеМатериаловИзПроизвоства"

Если ТипЗнч(текСтрока.ДокументПеремещение) = Тип("ДокументСсылка.ТребованиеНакладная")Тогда
                Запрос.УстановитьПараметр("СтруктурнаяЕдиница", текСтрока.Отправитель);
            Иначе    
                Запрос.УстановитьПараметр("СтруктурнаяЕдиница", текСтрока.Получатель);
            КонецЕсли;
1 NovichokAlena
 
20.07.15
09:23
Делаю так..но выдает ошибку


Если ТипЗнч(текСтрока.ДокументПеремещение) = Тип("ДокументСсылка.ТребованиеНакладная")Тогда
                ИначеЕсли ТипЗнч(текСтрока.ДокументПеремещение) = Тип("ДокументСсылка.ОприходованиеМатериаловИзПроизводства")Тогда
                Запрос.УстановитьПараметр("СтруктурнаяЕдиница", текСтрока.Отправитель);
            Иначе    
                Запрос.УстановитьПараметр("СтруктурнаяЕдиница", текСтрока.Получатель);
            КонецЕсли;
2 mikecool
 
20.07.15
09:24
Выбор когда &СтруктурнаяЕдиница ссылка Документ.ОприходованиеМатериаловИзПроизвоства тогда блабла
иначе блабла конец
3 dshka
 
20.07.15
09:30
(0) Если ТипЗнч(текСтрока.ДокументПеремещение) = Тип("ДокументСсылка.ТребованиеНакладная")Тогда
    Запрос.УстановитьПараметр("СтруктурнаяЕдиница", текСтрока.Отправитель);
ИначеЕсли ТипЗнч(текСтрока.ДокументПеремещение) = Тип("ДокументСсылка.ОприходованиеМатериаловИзПроизвоства") Тогда
    Запрос.УстановитьПараметр("СтруктурнаяЕдиница", текСтрока.Отправитель);
Иначе
    Запрос.УстановитьПараметр("СтруктурнаяЕдиница", текСтрока.Получатель);
КонецЕсли;

Так наверное хотели?
4 1Сергей
 
20.07.15
09:31
(1) Какую ошибку?
5 NovichokAlena
 
20.07.15
09:57
(4) {Обработка.КонтрольПеремещенияТоваров.Форма.Форма.Форма(136)}: Ошибка при вызове метода контекста (Выполнить)
            ТЗОтветственные = Запрос.Выполнить().Выгрузить();
по причине:
{(6, 84)}: Не задано значение параметра "СтруктурнаяЕдиница"
РегистрСведений.УТС_ОтветственныеЛица.СрезПоследних(&Период, СтруктурнаяЕдиница = <<?>>&СтруктурнаяЕдиница) КАК УТС_ОтветственныеЛицаСрезПоследних
6 Лефмихалыч
 
20.07.15
09:58
(0) запрос-то покажи
7 palpetrovich
 
20.07.15
10:02
(5) ну да, в (1) не задана

Если ТипЗнч(текСтрока.ДокументПеремещение) = Тип("ДокументСсылка.ТребованиеНакладная")Тогда
    // вот тут не задана
ИначеЕсли ТипЗнч(текСтрока.ДокументПеремещение) = Тип("ДокументСсылка.ОприходованиеМатериаловИзПроизводства")Тогда
    Запрос.УстановитьПараметр("СтруктурнаяЕдиница", текСтрока.Отправитель);
8 НЕА123
 
20.07.15
10:03
в (3) ответ.
9 NovichokAlena
 
20.07.15
10:14
в конструкторе запроса пишу произвольное выражение:

ВЫБРАТЬ                  
                  
                     |ВЫБОР    
                   |        КОГДА ДокументПеремещение = ЗНАЧЕНИЕ(Документ.ОприходованиеМатериаловИзПроизводства)
                   |        ТОГДА РезервНаПеремещениеОстатки.Отправитель = &Получатель
                   |        ИНАЧЕ РезервНаПеремещениеОстатки.Отправитель = &Отправитель
                   |    КОНЕЦ КАК Отправитель
                   |ИЗ
                   |    РегистрНакопления.РезервНаПеремещениеОстатки КАК РезервНаПеремещениеОстатки
                   |ГДЕ
                   |    РезервНаПеремещениеОстатки.Ссылка = &Ссылка


Пишет {[1,1]}:Синтаксическая ошибка "Выбрать"
<<?>> Выбрать

как правильно нужно тут строить запросы?
10 NovichokAlena
 
20.07.15
10:16
Мне нужно в документе ОприходываниеМатериаловИзПроизводства поменять местами отправителя и получателя. т.е если этот докумен, тогда отправитель = получатель, а получатель = отправитель
11 dshka
 
20.07.15
10:16
(9) Не, ну вы все-таки с синтаксисом как то самостоятельно разберитесь. Курсы или там книжки.
А за семантикой приходите сюда.
12 NovichokAlena
 
20.07.15
10:18
(11) да искала как правильно построить..ну не понимаю что еще ему нужно
13 Cyberhawk
 
20.07.15
10:19
"в документе ОприходываниеМатериаловИзПроизводства поменять местами отправителя и получателя" // нужно поменять в названии документа одну букву на другую для начала
14 1Сергей
 
20.07.15
10:24
(12) напиши два запроса
15 dshka
 
20.07.15
10:32
(9) Предполагаю что в конструкторе нужно вот эти "|" символы убрать
16 NovichokAlena
 
20.07.15
10:37
(15) пробовала и без них, ничего не изменилось
17 dshka
 
20.07.15
10:38
В (16) После тогда указывается сразу нужное значение, а не оператор присваивания.
18 NovichokAlena
 
20.07.15
10:38
(13) в запросе правильно написано Ориходование
19 dshka
 
20.07.15
10:39
+(17) Как и после "Иначе"
20 D_E_S_131
 
20.07.15
11:35

КОГДА ДокументПеремещение = ЗНАЧЕНИЕ(Документ.ОприходованиеМатериаловИзПроизводства)

Что такое "ДокументПеремещение" запрос не понимает. Возможно д.б. "РезервНаПеремещениеОстатки.ДокументПеремещение".
21 D_E_S_131
 
20.07.15
11:37
бл... и каким боком тут "ЗНАЧЕНИЕ(Документ.ОприходованиеМатериаловИзПроизводства)".
Если нужна проверка на тип документа, то делается так:

КОГДА ДокументПеремещение ССЫЛКА Документ.ОприходованиеМатериаловИзПроизводства
22 hhhh
 
20.07.15
11:56
(20) если нет неоднозначностей, то "РезервНаПеремещениеОстатки." можно не писать

ТО есть ДокументПеремещение запрос поймет

Например, можно писать

Выбрать Ссылка Из Справочник.Номенклатура

и всё нормально поймет.
23 NovichokAlena
 
20.07.15
12:12
(21) без разницы...писала РезервНаПеремещениеОстатки.ДокументПеремещение не изменилось ничего
24 palpetrovich
 
20.07.15
14:34
(23) я не понял, ты хочешь что-бы тебе ЗАПРОС в документе переставил реквизиты?  что ты делаешь после того как (9) отработал?
25 D_E_S_131
 
20.07.15
14:38
(23) Ты вообще конструктором запрос делаешь?
26 palpetrovich
 
20.07.15
14:43
(25) 99% что нет, ручками пишет :)
27 NovichokAlena
 
21.07.15
08:36
и рукам писала и конструктором делала, разницы все равно никакой
28 NovichokAlena
 
21.07.15
08:37
Вот конструктором:

ВЫБРАТЬ
    РезервНаПеремещениеОстатки.ДокументПеремещение,
    РезервНаПеремещениеОстатки.Отправитель,
    РезервНаПеремещениеОстатки.Получатель
ИЗ
    РегистрНакопления.РезервНаПеремещение.Остатки КАК РезервНаПеремещениеОстатки
ГДЕ
    РезервНаПеремещениеОстатки.Отправитель = &Получатель
    И РезервНаПеремещениеОстатки.Получатель = &Отправитель
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн