Имя: Пароль:
1C
1C 7.7
v7: ТиС, что не так с запросом?
0 егаис
 
13.09.13
14:23
Допиливаю Планирование закупок с учетом минимального остатка по складам.
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ДатаНачала по ДатаКонца;
    |Номенклатура = Регистр.Продажи.       Номенклатура,
    |               Регистр.ОстаткиТМЦ.    Номенклатура;
    |Склад          = Регистр.Продажи.       ТекущийДокумент.Склад,
    |               Регистр.ОстаткиТМЦ.    Склад;
    |Фирма        = Регистр.ОстаткиТМЦ.    Фирма,
    |               Регистр.Продажи.       Фирма;
    |ЮрЛицо       = Регистр.ОстаткиТМЦ.    Фирма.ЮрЛицо,
    |               Регистр.Продажи.       Фирма.ЮрЛицо;
    |УпрАналитика = Регистр.Продажи.       Фирма.УпрАналитика,
    |               Регистр.ОстаткиТМЦ.    Фирма.УпрАналитика;
    |КолПродажи  = Регистр.Продажи.   Количество;
    |КолВозврата = Регистр.Продажи.   КоличествоВ;
    |КолОстатки  = Регистр.ОстаткиТМЦ.    Количество;";
    
        
    // Проверка на необходимость включения в запрос переменной "Автор"
    ЕстьАвтор = 0;
    ЕстьПроект = 0;                          
    НомСтроки = 0;
    НомКолонки = 0;
    
    // Сначала проверим, есть ли множественный фильтр по автору.
    Если ТаблицаМФ.НайтиЗначение("Автор", НомСтроки, НомКолонки) = 1 Тогда
        Если ТаблицаМФ.ПолучитьЗначение(НомСтроки, "ФлВкл") = 2  Тогда
            ЕстьАвтор = 1;
        КонецЕсли;
    КонецЕсли;                                                  
    
    // Проверка на необходимость включения в запрос переменной "Проект"    
    НомСтроки = 0;
    НомКололонки = 0;
    Если ТаблицаМФ.НайтиЗначение("Проект", НомСтроки, НомКолонки) = 1 Тогда
        Если ТаблицаМФ.ПолучитьЗначение(НомСтроки, "ФлВкл") = 2  Тогда
            ЕстьПроект = 1;
        КонецЕсли;
    КонецЕсли;            
    
    Если ЕстьАвтор=1 Тогда
        ТекстЗапроса = ТекстЗапроса +
        "
        |Автор      = Регистр.Продажи.ТекущийДокумент.Автор;";
    КонецЕсли;    
    
    Если ЕстьПроект=1 Тогда
        ТекстЗапроса = ТекстЗапроса +
        "
        |Проект  = Регистр.Продажи.ТекущийДокумент.Проект;";
    КонецЕсли;
    
    ТекстЗапроса = ТекстЗапроса +
    "
    |Функция Продано    = Сумма(КолПродажи );
    |Функция Возвращено = Сумма(КолВозврата);
    |Функция НачОст     = НачОст(КолОстатки);
    |Функция КонОст     = КонОст(КолОстатки);
    |Функция Приход     = Приход(КолОстатки);
    |Функция Расход     = Расход(КолОстатки);
    |Группировка Номенклатура без групп;
    |Группировка Документ;
    |Условие (Склад = ВыбСклад);
    |"//}}ЗАПРОС
    ;
.
.
.
.
не пойму где затык (
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{C:\DOCUMENTS AND SETTINGS\DIRECTOR\РАБОЧИЙ СТОЛ\БАХУС\ПЛАНИРОВАНИЕПОКУПОК.ERT(428)}: Склад          = Регистр.Продажи.       ТекущийДокумент. <<?>> Склад,
Запрос[5] : Неверно заданный путь 'Склад'
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{C:\DOCUMENTS AND SETTINGS\DIRECTOR\РАБОЧИЙ СТОЛ\БАХУС\ПЛАНИРОВАНИЕПОКУПОК.ERT(428)}: Условие (Склад = ВыбСклад <<?>> );
Запрос[24] : Ошибка в условии
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{C:\DOCUMENTS AND SETTINGS\DIRECTOR\РАБОЧИЙ СТОЛ\БАХУС\ПЛАНИРОВАНИЕПОКУПОК.ERT(428)}: Условие (Номенклатура в ВыбТМЦ <<?>> );
Запрос[25] : Ошибка в условии
1 Otkr
 
13.09.13
14:24
Есть регистраторы, у которых нет склада в шапке
2 NS
 
13.09.13
14:24
Склад не общий реквизит документов.
3 егаис
 
13.09.13
14:25
подозревал
у меня из регистраторов только Реализация и Отчет ККМ (
4 егаис
 
13.09.13
14:28
(2) это обязательное условие?
проверил регпринтом, только два вида документа, реквизит шапки присутствует в обоих
5 КонецЦикла
 
13.09.13
14:31
Продажи.ТекущийДокумент - тут система предусматривает документ ЛЮБОГО вида, а что у тебя там в данных неважно
6 егаис
 
13.09.13
14:31
(5) понял, спасибо
7 NS
 
13.09.13
14:33
|Склад = Регистр.Продажи.ТекущийДокумент.Реализация.Склад, Регистр.Продажи.ТекущийДокумент.ОтчетККМ.Склад;
8 егаис
 
13.09.13
14:33
(7) да, так и сделал
благодарю
Закон Брукера: Даже маленькая практика стоит большой теории.