|
v7: Ну почему же не работает условие | ☑ | ||
---|---|---|---|---|
0
8troyan8
17.11.12
✎
14:06
|
Не работает запрос с условием. Ну просто не могу понять почему.
Реквизит Инвалид в спр.Сотрудники Число 1,0, Периодический. Без условия выводит струдников. Есть идеи ? Процедура Сформировать() ТекстЗапроса = "//{{ЗАПРОС(СписокСотрудников) |Сотр = Справочник.Сотрудники.ТекущийЭлемент; |Оклад = Справочник.Сотрудники.Оклад; |ТарифС = Справочник.Сотрудники.Тариф; |Должность = Справочник.Сотрудники.Должность; |Совместитель = Справочник.Сотрудники.ТипСотрудника; |ДатаПриема = Справочник.Сотрудники.ДатаПриема; |ДатаУвольнения = Справочник.Сотрудники.ДатаУвольнения; |Условие (Сотр.Инвалид=1); |Группировка Сотр Упорядочить По Сотр.Наименование без групп;"; Запрос = СоздатьОбъект("Запрос"); Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда Возврат; КонецЕсли; Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); Пока Запрос.Группировка() = 1 Цикл Таб.ВывестиСекцию("Сотр"); КонецЦикла; Таб.ТолькоПросмотр(1); Таб.Показать("Таблица", ""); КонецПроцедуры |
|||
1
m-serg74
17.11.12
✎
14:13
|
перед запросом не помню точно но типа ИспользоватьДату
|
|||
2
viktor_vv
17.11.12
✎
14:14
|
А так ?
|Сотр = Справочник.Сотрудники.ТекущийЭлемент; |Инвалид = Справочник.Сотрудники.Инвалид; |Условие (Инвалид = 1); |
|||
3
viktor_vv
17.11.12
✎
14:15
|
И это, инвалиды вообще есть в справочнике ?
|
|||
4
8troyan8
17.11.12
✎
14:16
|
Да есть конечно )
|
|||
5
m-serg74
17.11.12
✎
14:17
|
(3) реквизит "периодический"
|
|||
6
viktor_vv
17.11.12
✎
14:19
|
(5) В запросах всегда берется на дату окончания периода, если период не указан, то на рабочую вроде.
|
|||
7
8troyan8
17.11.12
✎
14:19
|
(2) Не помогло.. я уже хз что делать
|
|||
8
m-serg74
17.11.12
✎
14:20
|
тады ХЗ, *задумавшись* что мешает попробовать?
|
|||
9
viktor_vv
17.11.12
✎
14:22
|
(7) На всякий случай спрошу, тип значения реквизита Инвалид какой ?
|
|||
10
m-serg74
17.11.12
✎
14:22
|
Число 1,0, Периодический
|
|||
11
viktor_vv
17.11.12
✎
14:25
|
И такой код выведет хотя бы одну единицу ?
СпрСотр= СоздатьОбъект("Справочник.Сотрудники"); СпрСотр.ВыбратьЭлементы(); Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл Сообщить(""+СпрСотр.Инвалид.Получить(РабочаяДата())); КонецЦикла ; |
|||
12
viktor_vv
17.11.12
✎
14:30
|
И можно в запросе еще в явном виде период указать. А то по умолчанию может на ТА берется, вот тут не помню.
ДатаДанных = РабочаяДата() ; ТекстЗапроса = "//{{ЗАПРОС(СписокСотрудников) |Период с ДатаДанных по ДатаДанных ; |Сотр = Справочник.Сотрудники.ТекущийЭлемент; |Инвалид = Справочник.Сотрудники.Инвалид; |Условие (Инвалид = 1); |
|||
13
m-serg74
17.11.12
✎
14:32
|
(12) Период для чего?
|
|||
14
m-serg74
17.11.12
✎
14:33
|
(0) попробуй (1)
|
|||
15
viktor_vv
17.11.12
✎
14:34
|
(13) Не помню на какую дату берутся значения периодического реквизита, без периода. Могут браться на ТА при установленной компоненте оперучет, в конфе она может не использоваться, соотвественно ТА далеко взад стоит.
|
|||
16
m-serg74
17.11.12
✎
14:34
|
(15) - (8)
|
|||
17
viktor_vv
17.11.12
✎
14:38
|
Ага, вот из справки
Если в описании запроса оператор Период С опущен, то интервал дат формирования запроса устанавливается в точку актуальности итогов (ТА) (или на РабочуюДату, если не установлена компонента «Оперативный учет»), запрос формируется только на этот момент времени. |
|||
18
m-serg74
17.11.12
✎
14:39
|
там про периобические реквизиты что то писано?
|
|||
19
m-serg74
17.11.12
✎
14:40
|
периобические читай периодические
|
|||
20
viktor_vv
17.11.12
✎
14:42
|
(18) Зуб даю, в запросе значения берутся на дату окончания периода :).
|
|||
21
m-serg74
17.11.12
✎
14:43
|
(20) - (8)
|
|||
22
viktor_vv
17.11.12
✎
14:52
|
(21) Че-то ТС пропал куда-то :).
|
|||
23
8troyan8
17.11.12
✎
17:00
|
Вот если делаю перебором то все нормально
Процедура Сформировать() СпрСотр= СоздатьОбъект("Справочник.Сотрудники"); СпрСотр.ВыбратьЭлементы(); Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл Если СпрСотр.Инвалид.Получить(ТекущаяДата())=1 Тогда Сообщить(""+СпрСотр.Наименование); КонецЕсли; КонецЦикла ; КонецПроцедуры |
|||
24
ЧеловекДуши
17.11.12
✎
17:25
|
(23)Тяжёлый, ты.
В запросе период укажи, у тебя же периодический реквизит :) |
|||
25
Азат
17.11.12
✎
17:36
|
Функция ПолучитьИнвалида(Сотрудник)
Возврат Сотрудник.Инвалид.Получить(ХерЗнаетКакаяТутДата); КонецФункции Процедура Сформировать() ТекстЗапроса = "//{{ЗАПРОС(СписокСотрудников) |Сотр = Справочник.Сотрудники.ТекущийЭлемент; |Оклад = Справочник.Сотрудники.Оклад; |ТарифС = Справочник.Сотрудники.Тариф; |Должность = Справочник.Сотрудники.Должность; |Совместитель = Справочник.Сотрудники.ТипСотрудника; |ДатаПриема = Справочник.Сотрудники.ДатаПриема; |ДатаУвольнения = Справочник.Сотрудники.ДатаУвольнения; |Условие (ПолучитьИнвалида(Сотр)=1); |Группировка Сотр Упорядочить По Сотр.Наименование без групп;"; Запрос = СоздатьОбъект("Запрос"); Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда Возврат; КонецЕсли; Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); Пока Запрос.Группировка() = 1 Цикл Таб.ВывестиСекцию("Сотр"); КонецЦикла; Таб.ТолькоПросмотр(1); Таб.Показать("Таблица", ""); КонецПроцедуры |
|||
26
8troyan8
17.11.12
✎
17:38
|
И период указал всеровно нифига
ДатаДанных = РабочаяДата() ; ТекстЗапроса = "//{{ЗАПРОС(СписокСотрудников) |Период с ДатаДанных по ДатаДанных ; |Сотр = Справочник.Сотрудники.ТекущийЭлемент; |Оклад = Справочник.Сотрудники.Оклад; |Инвалид = Справочник.Сотрудники.Инвалид; |ТарифС = Справочник.Сотрудники.Тариф; |Должность = Справочник.Сотрудники.Должность; |Совместитель = Справочник.Сотрудники.ТипСотрудника; |ДатаПриема = Справочник.Сотрудники.ДатаПриема; |ДатаУвольнения = Справочник.Сотрудники.ДатаУвольнения; |Условие (Сотр.Инвалид=1); |Группировка Сотр Упорядочить По Сотр.Наименование без групп;"; |
|||
27
Азат
17.11.12
✎
17:40
|
автор, йобтвою, смотри в (25)
|
|||
28
8troyan8
17.11.12
✎
17:45
|
(27) Спасибо братуха !!!!
|
|||
29
viktor_vv
17.11.12
✎
17:49
|
(26) А если таки
ТекстЗапроса = "//{{ЗАПРОС(СписокСотрудников) |Период с ДатаДанных по ДатаДанных ; |Сотр = Справочник.Сотрудники.ТекущийЭлемент; |Оклад = Справочник.Сотрудники.Оклад; |Инвалид = Справочник.Сотрудники.Инвалид; |Условие (Инвалид = 1) ; А то все время так делаю, проблем не было. |
|||
30
ЧеловекДуши
17.11.12
✎
17:56
|
(26)Может у тебя нет инвалидов :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |