Имя: Пароль:
1C
1С v8
Синтаксическая ошибка, не могу понять почему (в // ошибка)
0 igoza
 
22.08.13
21:38
Если Не обЗначениеНеЗаполнено(МестоХранения) Тогда
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ОстаткиКомлектующихОстатки.Помещение,
        |    ОстаткиКомлектующихОстатки.МестоХранения,
        |    ОстаткиКомлектующихОстатки.Комплектующая,
        |    ОстаткиКомлектующихОстатки.ШтрихКод,
        |    ОстаткиКомлектующихОстатки.КоличествоОстаток,
        |    ОстаткиКомлектующихОстатки.СуммаОстаток
        |ИЗ
        |    РегистрНакопления.ОстаткиКомлектующих.Остатки КАК ОстаткиКомлектующихОстатки
        |ГДЕ
        |  "+ПерУсловие+"
        |";
        Если МестоХранения.Метаданные().Имя = "Помещения" Тогда
            ПерУсловие = "ОстаткиКомлектующихОстатки.Помещение = &МестоХранения";
        КонецЕсли;
        Если МестоХранения.Метаданные().Имя = "РабочиеМеста" Тогда
            ПерУсловие = "ОстаткиКомлектующихОстатки.МестоХранения = &МестоХранения";
        КонецЕсли;
    КонецЕсли;
    
    Если обЗначениеНеЗаполнено(МестоХранения) Тогда
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ОстаткиКомлектующихОстатки.Помещение,
        |    ОстаткиКомлектующихОстатки.МестоХранения,
        |    ОстаткиКомлектующихОстатки.Комплектующая,
        |    ОстаткиКомлектующихОстатки.ШтрихКод,
        |    ОстаткиКомлектующихОстатки.КоличествоОстаток,
        |    ОстаткиКомлектующихОстатки.СуммаОстаток
        |ИЗ
        |    РегистрНакопления.ОстаткиКомлектующих.Остатки КАК ОстаткиКомлектующихОстатки
        |";
    КонецЕсли;
    
    Запрос.УстановитьПараметр("МестоХранения", МестоХранения);    
    Результат = Запрос.Выполнить(); // ругается однако!
1 igoza
 
22.08.13
21:40
инвалид в 1С, где тут ошибка, а то опять стёб один бдудет)))
2 Поросенок Петр
 
22.08.13
21:40
Надо было написать не "// ругается однако!", а "// программа не работает :(".
было бы понятнее.
3 Hans
 
22.08.13
21:41
какая ошибка ?
4 spectre1978
 
22.08.13
21:41
а каков текст ошибки?
5 mehfk
 
22.08.13
21:42
Гед ошибка? Нет ошибки. Все хорошо. Тебе показалось. Закрой конфигуратор и позови кого-нибудь из взрослых.
6 mehfk
 
22.08.13
21:42
(5) fix: Гед -> Где
7 igoza
 
22.08.13
21:43
{Отчет.ОстаткиНаМестахХранения.Форма.ФормаОтчета.Форма(49)}: Ошибка при вызове метода контекста (Выполнить)
    Результат = Запрос.Выполнить();
по причине:

по причине:
{(12, 1)}: Синтаксическая ошибка
8 spectre1978
 
22.08.13
21:44
ну и при чем тут //?
Ошибка-то времени выполнения.
Накосячил в запросе.
Отладь в консоли, потом запускай в коде.
9 mehfk
 
22.08.13
21:44
(7)
сделай перед запрос.выполнить();

сообщить(Запрос.Текст);
и скопипасть сюда.
10 Поросенок Петр
 
22.08.13
21:44
1) Идиотское условие Если - Если. "Иначе" отменили?
2) обЗначениеЗаполнено() - кто-то ещё использует?
3) Параметры не в вирт таблице, а в "ГДЕ".
4)... можно продолжить
11 vde69
 
модератор
22.08.13
21:45
Если Не обЗначениеНеЗаполнено(МестоХранения) Тогда
        Если МестоХранения.Метаданные().Имя = "Помещения" Тогда
            ПерУсловие = "ОстаткиКомлектующихОстатки.Помещение = &МестоХранения";
        КонецЕсли;
        Если МестоХранения.Метаданные().Имя = "РабочиеМеста" Тогда
            ПерУсловие = "ОстаткиКомлектующихОстатки.МестоХранения = &МестоХранения";
        КонецЕсли;

        Запрос.Текст =
        "ВЫБРАТЬ
        |    ОстаткиКомлектующихОстатки.Помещение,
        |    ОстаткиКомлектующихОстатки.МестоХранения,
        |    ОстаткиКомлектующихОстатки.Комплектующая,
        |    ОстаткиКомлектующихОстатки.ШтрихКод,
        |    ОстаткиКомлектующихОстатки.КоличествоОстаток,
        |    ОстаткиКомлектующихОстатки.СуммаОстаток
        |ИЗ
        |    РегистрНакопления.ОстаткиКомлектующих.Остатки КАК ОстаткиКомлектующихОстатки
        |ГДЕ ИСТИНА И
        |  "+ПерУсловие+"
        |";
    КонецЕсли;
    
    Если обЗначениеНеЗаполнено(МестоХранения) Тогда
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ОстаткиКомлектующихОстатки.Помещение,
        |    ОстаткиКомлектующихОстатки.МестоХранения,
        |    ОстаткиКомлектующихОстатки.Комплектующая,
        |    ОстаткиКомлектующихОстатки.ШтрихКод,
        |    ОстаткиКомлектующихОстатки.КоличествоОстаток,
        |    ОстаткиКомлектующихОстатки.СуммаОстаток
        |ИЗ
        |    РегистрНакопления.ОстаткиКомлектующих.Остатки КАК ОстаткиКомлектующихОстатки
        |";
    КонецЕсли;
    
    Запрос.УстановитьПараметр("МестоХранения", МестоХранения);    
    Результат = Запрос.Выполнить(); // ругается однако!
12 mehfk
 
22.08.13
21:47
(11) Или

ПерУсловие = "";

в самом начале
13 vde69
 
модератор
22.08.13
21:47
а вообще если стаж у тебя годик есть и не видишь таких простых вещей, может профессию поменять?

такие вещи простительны новичкам до 1 месяца...
14 vde69
 
модератор
22.08.13
21:48
(12) и чего?

пустое условие "ГДЕ" выдает ошибку...
15 igoza
 
22.08.13
21:49
(12) 3 мес стаж с нул9
16 Fragster
 
модератор
22.08.13
21:49
вот нет бы построителем пользоваться
17 mehfk
 
22.08.13
21:49
(13) Может он год фуры с коробками разгружал.
18 vde69
 
модератор
22.08.13
21:50
(15) ну тогда еще простительно :)

короче у тебя запрос с пустым условием кривой
19 mehfk
 
22.08.13
21:51
(14)
ГДЕ ИСТИНА И
        |  "+ПерУсловие+"


при пустом ПерУсловие тоже выдаст ошибку
20 vde69
 
модератор
22.08.13
21:53
(19) согласен :) ну я направление дал
21 igoza
 
22.08.13
21:56
Блин надобыло определение ПерУсловие до запроса сделать, а не после XD
спасибо большое!