Имя: Пароль:
1C
1С v8
Условия в запросе
,
0 rull9ss
 
27.08.12
13:50
Сильно не пинать, только учусь.

Учебная задача.
Есть 2 плана видов расчета(Основные И Доп начисления).
Есть документ начисление зарплаты(http://s3.hostingkartinok.com/uploads/images/2012/08/c205de0a49d6a36fb3eb815bcec730a5.jpg)
где Вид Расчета = ПланВидовРасчетаСсылка

Есть запрос:

ВЫБРАТЬ
   НачислениеЗарплатыНачисления.НомерСтроки,
   НачислениеЗарплатыНачисления.ФИО,
   НачислениеЗарплатыНачисления.Подразделение,
   НачислениеЗарплатыНачисления.ВидРасчета,
   НачислениеЗарплатыНачисления.ВидРасчета.ЗачетОтработанногоВремени КАК ЗачетОтработанногоВремени,
   НачислениеЗарплатыНачисления.ВидРасчета.СпособРасчета КАК СпособРасчета,
   НачислениеЗарплатыНачисления.ДатаНачала КАК ПериодДействияНачало,
   ВЫБОР
       КОГДА НачислениеЗарплатыНачисления.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
           ТОГДА ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
       ИНАЧЕ КОНЕЦПЕРИОДА(НачислениеЗарплатыНачисления.ДатаОкончания, ДЕНЬ)
   КОНЕЦ КАК ПериодДействияКонец,
   НачислениеЗарплатыНачисления.Размер,
   НачислениеЗарплатыНачисления.ГрафикРаботы
ИЗ
   Документ.НачислениеЗарплаты.Начисления КАК НачислениеЗарплатыНачисления
ГДЕ
   НачислениеЗарплатыНачисления.Ссылка = &Ссылка

Вопрос: Как в запросе ограничить условие чтобы в результате были или только Основные начисления(все)

Думаю что передавать каждое значение видов расчета - не есть оптимально.

Что-то подсказывает что можно воспользоваться такой конструкцией

НачислениеЗарплатыНачисления.ВидРасчета = ЗНАЧЕНИЕ(??)

только вот не знаю что передать в ??. пробовал ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисления) - Ошибка.

Подскажите как решить задачу.
1 vmv
 
27.08.12
13:51
направление верное, попробуй, чего бояться?
2 Ненавижу 1С
 
гуру
27.08.12
13:52
" Как в запросе ограничить условие чтобы в результате были или только Основные начисления(все)"

тоже самое, но по-русски
3 Kashemir
 
27.08.12
13:52
ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисления.XXXXX)
4 Kashemir
 
27.08.12
13:54
оператор проверки типа в запросе - ССЫЛКА

Также посмотри на ТипЗначения() и Тип()
5 rull9ss
 
27.08.12
13:54
(2) из исходного запроса мы получаем все виды расчета которые есть документе.
мне же необходимо выбрать только те что относятся к Основным начислениям.

(3)
у меня около 10 видов расчета в Основных - ты предлагаешь передавать 10 значений?
6 Ненавижу 1С
 
гуру
27.08.12
13:55
ВидРасчета ССЫЛКА ПланВидоРасчета.ОсновныеНачисления
7 Kashemir
 
27.08.12
13:55
(5) Я не предлагаю - показываю как должна конструкция обращения к предопределенному значению выглядеть.
8 vmv
 
27.08.12
13:56
1-й вариант

Где ....
И (&БезОтбораПоВР
   ИЛИ НачислениеЗарплатыНачисления.ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисления.XXXXX))

2-й вариант и он же 1-ый

Где ....
И (&БезОтбораПоВР
   ИЛИ НачислениеЗарплатыНачисления.ВидРасчета В (&СзВр))



СзВр - список ссылок видов расчета
Если БезОтбораПоВР = Истина, то все виды попадут в запрос без обработки условия после ИЛИ

все, остальные варианты от лукавого
9 GANR
 
27.08.12
13:58
См. функции ТИПЗНАЧЕНИЯ и ТИП языка запросов 1С
10 vmv
 
27.08.12
14:00
ЗУП сто лет не открывал, но уверен что банальным поиском там можно влет найти решение этой задачи и через ТИП в том числе, ленивый автор)
11 GANR
 
27.08.12
14:02
(0)Так

ТИПЗНАЧЕНИЯ(ВидРачета) = ТИП(ПланВидовРасчета.ОсновныеНачисления)

или так

ВидРачета ССЫЛКА ПланВидовРасчета.ОсновныеНачисления
12 rull9ss
 
27.08.12
14:03
(11)

то что надо. премного благодарен)
13 GANR
 
27.08.12
14:07
(12) Всегда пожалуйста, а (4) и (6) также заслуживают благодарности. Они по сути такой же ответ написали быстро, но "сыровато", что-ли.