Имя: Пароль:
1C
1C 7.7
v7: Помогите отобрать в запросе элементы справочника по условию - они все находятся в папке
,
0 narayanan
 
24.01.19
13:12
Помогите отобрать в запросе элементы справочника по условию - они все находятся в одной папке.
Пытаюсь отобрать все статьи затрат что находятся в папке с кодом 00121.
Вот код запроса:
    ТекстЗапроса =     "
    |//{{ЗАПРОС(ПоступлениеДенСредств)
    |Период с НачПериодаЗаявки по КонПериодаЗаявки;
    |ОбрабатыватьДокументы Проведенные;
    |Док            = Документ.ПоступлениеДенСредств.ТекущийДокумент;
    |Подразделение     = Документ.ПоступлениеДенСредств.ВладелецПоступления;
    |Департамент    = Документ.ПоступлениеДенСредств.ВладелецПоступления.Родитель;
    |СтатьяЗатрат    = Документ.ПоступлениеДенСредств.СтатьяЗатрат;
    |КодСтатьи        = Документ.ПоступлениеДенСредств.СтатьяЗатрат.Код;
    |Имком          = Документ.ПоступлениеДенСредств.СтатьяЗатрат.ФлИмком;
    |Сумма            = Документ.ПоступлениеДенСредств.Сумма;
    |Группировка Док Упорядочить по Док.ДатаПлат;
    |Условие ((Док.ДатаПлат>=ДатаНачала) и (Док.ДатаПлат<=ДатаКонца));
    |Условие (Подразделение.Выбран() = 1);
    |Условие (СтатьяЗатрат.ФлНепланируемая = ФлНепланируемая);
    |Условие (СтатьяЗатрат.Группа = Справочники.СтатьиПоступлений.НайтиПоКоду(00121));
//    |Условие (СтатьяЗатрат.флИмком = Имком);
    |"//}}ЗАПРОС
    ;

Ругается:
{Отчет.КонсолидированныйБюджет.Форма.Модуль(997)}: Условие (СтатьяЗатрат.Группа = Справочники.СтатьиПоступлений.НайтиПоКоду(00121) <<?>> );
Запрос[16] : Ошибка в выражении 'Справочники'
1 Василий Алибабаевич
 
24.01.19
13:13
(0)
Вариант 1:
Условие (СтатьяЗатрат.Группа.Код = "00121")
2 Василий Алибабаевич
 
24.01.19
13:16
(1) Сторно. Что такое "Группа"? Это сленг непонятный 1сПредприятие.
Для 1сПредприятие нужно писать СтатьяЗатрат.Родитель.Код. Именно РОДИТЕЛЬ. А не группа.
3 Василий Алибабаевич
 
24.01.19
13:17
(0) текст из восьмерочных конфигураций типа
"Справочники.СтатьиПоступлений.НайтиПоКоду(00121)"
в клюшках писать можно. Только оно такого не поймет.
4 Kigo_Kigo
 
24.01.19
13:19
СтатьиПоступ = СоздатьОбъект("Справочник.СтатьиПоступлений");
СтатьяЗатратГруппа = Справочники.СтатьиПоступлений.НайтиПоКоду(00121);
|Условие (СтатьяЗатрат.Родитель= СтатьяЗатратГруппа );
5 Kigo_Kigo
 
24.01.19
13:19
СтатьяЗатратГруппа = СоздатьОбъект("Справочник.СтатьиПоступлений");
СтатьяЗатратГруппа = СтатьяЗатратГруппа .СтатьиПоступлений.НайтиПоКоду(00121);
|Условие (СтатьяЗатрат.Родитель= СтатьяЗатратГруппа );
6 Василий Алибабаевич
 
24.01.19
13:20
Итак есть 2(два) варианта.
1. Условие(СтатьяЗатрат.Родитель.Код="00121")

2.
Перед запросом
Спр = СоздатьОбъект("Справочник.СтатьиЗатрат");
Спр.НайтиПоКоду("00121");
НужныйРодитель = Спр.ТекущийЭлемент();

в тексте запроса
Условие(СтатьяЗатрат.Родитель = НужныйРодитель)
7 Масянька
 
24.01.19
13:20
(4) Маленькое уточнение - Код в кавычках.
8 Kigo_Kigo
 
24.01.19
13:23
(7) ну да, пишу то не в конфигураторе
9 Гад
 
24.01.19
13:24
сп.создатьсписокзначений
сп.добавитьзначение
условие статьязатрат в сп
10 Василий Алибабаевич
 
24.01.19
13:24
(7) Точно.
Вариант 1 должен выглядеть так :
Условие(СтатьяЗатрат.Родитель.Код=""00121"")
В двойных кавычках. Потому что текст.
11 Василий Алибабаевич
 
24.01.19
13:26
(9) Тогда попадут все уровни вложения в сп.
12 narayanan
 
24.01.19
13:26
Всем большое спасибо! Получилось
(2) Да, СтатьяЗатрат.Родитель.Код сразу подошло.
13 Zmich
 
24.01.19
13:26
(4). НайтиПоКоду в 7.7 не так работает. Он 0 или 1 возвращает. Там надо еще ТекущийЭлемент() использовать. Как в (6).
14 Василий Алибабаевич
 
24.01.19
13:27
(12) Это для ленивых. Сменится код у группы - что будешь делать? Лучше вариант 2 + уточнение от (9).
15 Гад
 
24.01.19
13:28
(11) че серьезно?
16 Mikeware
 
24.01.19
13:29
(7) если код текстовый
17 Василий Алибабаевич
 
24.01.19
13:29
(15) Гы. Где-то читал... )))
18 narayanan
 
24.01.19
13:29
(14) спасибо!
19 Kigo_Kigo
 
24.01.19
13:31
(13) вот так верно
СтатьяЗатратГруппа = СоздатьОбъект("Справочник.СтатьиПоступлений");
СтатьяЗатратГруппа .СтатьиПоступлений.НайтиПоКоду("00121");
|Условие (СтатьяЗатрат.Родитель= СтатьяЗатратГруппа );
20 Zmich
 
24.01.19
13:39
(19). Тогда так:
СтатьяЗатратГруппа = СоздатьОбъект("Справочник.СтатьиПоступлений");
СтатьяЗатратГруппа.НайтиПоКоду("00121");
|Условие (СтатьяЗатрат.Родитель= СтатьяЗатратГруппа.ТекущийЭлемент());
21 narayanan
 
24.01.19
13:52
Скажите в условия понимаются как "И" или "ИЛИ" ?

    |Условие ((Док.ДатаПлат>=ДатаНачала) и (Док.ДатаПлат<=ДатаКонца));
    |Условие (Подразделение.Выбран() = 1);
    |Условие (СтатьяЗатрат.ФлНепланируемая = ФлНепланируемая);
    |Условие (СтатьяЗатрат.Группа = Справочники.СтатьиПоступлений.НайтиПоКоду(00121));
22 Mikeware
 
24.01.19
13:54
(21) только И
23 narayanan
 
24.01.19
13:57
(22)
понятно спасибо
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.