Имя: Пароль:
1C
 
Ошибка в запросе
0 asisdes
 
22.08.19
12:58
Доброго дня! Коллеги можете подсказать как решить проблему
запрос ошибку выдает что


{ОбщийМодуль.НастройкаПравДоступа.Модуль(143)}: Ошибка при вызове метода контекста (Выполнить)
    Выборка = Запрос.Выполнить().Выбрать();
по причине:
{(3, 17)}: Несовместимые типы "ССЫЛКА"
КОГДА &Ссылка <<?>>ССЫЛКА Документ.ПриемНаРаботуВОрганизацию

Суть в том что по Ссылке я хотел проверять , принадлежит ли документ одному нужных.


Запрос = Новый Запрос("ВЫБРАТЬ
                          |    ВЫБОР
                          |        КОГДА &Ссылка ССЫЛКА Документ.ПриемНаРаботуВОрганизацию
                          |            ТОГДА ИСТИНА
                          |        КОГДА &Ссылка ССЫЛКА Документ.КадровоеПеремещениеОрганизаций
                          |            ТОГДА ИСТИНА
                          |        КОГДА &Ссылка ССЫЛКА Документ.УвольнениеИзОрганизаций
                          |            ТОГДА ИСТИНА
                          |        КОГДА &Ссылка ССЫЛКА Документ.РасходныйКассовыйОрдер
                          |            ТОГДА ИСТИНА
                          |        ИНАЧЕ ЛОЖЬ  
                          |    КОНЕЦ КАК Результат");
1 ДенисЧ
 
22.08.19
13:02
А то тебе обещал, что ты сможешь проверять таим образом параметр?
2 AliceLight
 
22.08.19
13:23
Вопрос в цели такого запроса. Что им нужно сделать? То, какого типа параметр, можно выяснить и до запроса. Ну и обычно можно проверять конструкцией вроде ТИПЗНАЧЕНИЯ(Регистратор) = ТИП(Документ.ТутТипДокумента), но не знаю, насколько прокатит с параметром.
3 piter3
 
22.08.19
13:24
Лучше поясни,что нужно
4 mikecool
 
22.08.19
13:25
запрос прикольный, я бы даже сказал - фееричный
5 asisdes
 
22.08.19
13:42
Суть задачи что документы Заработной платы нельзя редактировать, можно редактировать только Автору.
Есть общий модуль по проверки редактирования который есть во всех документах,
поэтому я хочу в одном месте прописать, типа
если документ типа "Начисление заработной платы", то включить проверку кто автор.
Типа такого
Если ДокументЗП(ЭтотОбъект.Ссылка) Тогда
        //Якупов АС
        Если НЕ ЭтотОбъект.Автор = ПараметрыСеанса.ТекущийПользователь Тогда
            ЭтаФорма.ТолькоПросмотр = Истина;
        КонецЕсли;
        //Якупов АС
КонецЕсли;

но мне нужно это проверять только в документах по Заработной плате.
Поэтому такой запрос.
Если подскажите что . буду благодарен.
6 ДенисЧ
 
22.08.19
13:46
А зачем это делать запросом?
Если ТипЗнч(ЭтотОбъект) = Тп("ДокументОбъект.ЗП")
и вперёд
7 asisdes
 
22.08.19
13:50
Так у меня документов по заработной плате целая куча.
и начисление, расчет и прочие.
не хочется повторяться
если
если
8 ДенисЧ
 
22.08.19
13:50
(7) Один раз в список все типы засунь и ищи по этому списку
9 asisdes
 
22.08.19
13:55
(8)
пример можно. Буду благодарен
10 ДенисЧ
 
22.08.19
13:57
(9)
//Это можно один раз и сохранить куда-то
СписокТипов   = НОвый СписокЗначений;
СписокТипов.Добавить(Тип("ДокументСсылка.Док1");
СписокТипов.Добавить(Тип("ДокументСсылка.Док2");
СписокТипов.Добавить(Тип("ДокументСсылка.Док3");


//... потом в нужном месте
Если СписокТипов.НайтиПОЗначению(ЭтотОбъект.Ссылка) <> Неопределено Тогда
//нашли!
11 asisdes
 
22.08.19
14:10
Ок. Попробую вариант ДенисЧ. Спасибо всем заранее, думаю получится.
Еще думал по вхождению в подсистем, то это как говорится уже другая история.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.