Имя: Пароль:
1C
 
Регламентное задание заказ
0 dima-zgr
 
23.09.15
11:13
Ребята всем привет. помогите разобраться с ошибкой. Не судите строго
1 dima-zgr
 
23.09.15
11:13
Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    Док = Документы.ЗаказПоставщику.СоздатьДокумент();        
    Док.Дата = ТекущаяДата();
    Док.Организация = Справочники.Организации.НайтиПоКоду("000000001");
    
    
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура1,
    |    ПРЕДСТАВЛЕНИЕ(ЦеныНоменклатурыСрезПоследних.Номенклатура) КАК НоменклатураПредставление1,
    |    ЦеныНоменклатурыСрезПоследних.Цена,
    |   ЦенаПрданногоТовара КАК ЦеныНоменклатурыСрезПоследних.Номенклатура,
    |    ТоварыВРозницеОстатки.Номенклатура,
    |    ТоварыВРозницеОстатки.КоличествоОстаток,
    |    ТоварыВРозницеОстатки.Склад КАК Склад,
    |    ТоварыВРозницеОстаткиИОбороты.КоличествоРасход
    |   ЦенаПрданногоТовара КАК ЦеныНоменклатурыСрезПоследних.Номенклатура
    |ИЗ
    |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРознице.Остатки(&Дата1,&Дата2, , ) КАК ТоварыВРозницеОстатки
    |        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыВРозницеОстатки.Номенклатура
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРознице.ОстаткиИОбороты(, Склад = &Склад) КАК ТоварыВРозницеОстаткиИОбороты
    |        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыВРозницеОстаткиИОбороты.Номенклатура
    |ГДЕ
    |    ЦеныНоменклатурыСрезПоследних.Цена > 0";
    
    
    
    Запрос.УстановитьПараметр("Дата1", ТекущаяДата());
    Запрос.УстановитьПараметр("Дата2", ТекущаяДата() - 30 * 24 * 60 * 60);
    Запрос.УстановитьПараметр("Склад", Склад);
    
    
    
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Стр = Док.Товары.Добавить();
        Стр.Номенклатура = ВыборкаДетальныеЗаписи. КоличествоОстаток;
        
        КоличествоОстаток = ВыборкаДетальныеЗаписи.КоличествоОстаток;
        
        КоличествоРасход = ВыборкаДетальныеЗаписи.КоличествоРасход;
        
        ЦенаПроданногоТовара = ВыборкаДетальныеЗаписи.ЦенаПроданногоТовара;
        
        Если КоличествоОстаток>0 Тогда
            Если КоличествоРасход/2-КоличествоОстаток>0 Тогда
                КоличествоДляЗаказа=КоличествоРасход/2-КоличествоОстаток
            Иначе
                КоличествоДляЗаказа=0
            КонецЕсли
        Иначе
            Если ЦенаПроданногоТовара < 800 Тогда
                Если КоличествоРасход/2>2 Тогда
                    КоличествоДляЗаказа=КоличествоРасход/2
                Иначе
                    КоличествоДляЗаказа=2
                КонецЕсли
            Иначе
                Если КоличествоРасход/2>1 Тогда
                    КоличествоДляЗаказа=КоличествоРасход/2
                Иначе
                    КоличествоДляЗаказа=1
                КонецЕсли
            КонецЕсли
        КонецЕсли;
        
        Стр.Количество = КоличествоДляЗаказа;
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
    КонецЦикла;
    Док.записать();
КонецПроцедуры
2 dima-zgr
 
23.09.15
11:14
ругается на : {Форма.Форма.Форма(49)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)
        Если ТекущийОстатокТовара>0 Тогда
3 ДенисЧ
 
23.09.15
11:15
Убейте меня семеро, но в приведённом коде я не вижу переменной ТекущийОстатокТовара...
4 dima-zgr
 
23.09.15
11:17
Вот я и говорю не судите строго!=) все когда-то начинали с учебы
5 ДенисЧ
 
23.09.15
11:20
(4) Тут не судить надо, а расстреливать...
Где строка ошибки в приведённом коде?
6 dima-zgr
 
23.09.15
11:21
а блин я не то код кинуЛ)))) лошара
7 dima-zgr
 
23.09.15
11:22
Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    Док = Документы.ЗаказПоставщику.СоздатьДокумент();        
    Док.Дата = ТекущаяДата();
    Док.Организация = Справочники.Организации.НайтиПоКоду("000000001");
    
    
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура1,
    |    ПРЕДСТАВЛЕНИЕ(ЦеныНоменклатурыСрезПоследних.Номенклатура) КАК НоменклатураПредставление1,
    |    ЦеныНоменклатурыСрезПоследних.Цена,
    |   ЦенаПрданногоТовара КАК ЦеныНоменклатурыСрезПоследних.Номенклатура,
    |    ТоварыВРозницеОстатки.Номенклатура,
    |    ТоварыВРозницеОстатки.КоличествоОстаток,
    |    ТоварыВРозницеОстатки.Склад КАК Склад,
    |    ТоварыВРозницеОстаткиИОбороты.КоличествоРасход
    |  
    |ИЗ
    |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРознице.Остатки(&Дата1,&Дата2, , ) КАК ТоварыВРозницеОстатки
    |        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыВРозницеОстатки.Номенклатура
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРознице.ОстаткиИОбороты(, Склад = &Склад) КАК ТоварыВРозницеОстаткиИОбороты
    |        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыВРозницеОстаткиИОбороты.Номенклатура
    |ГДЕ
    |    ЦеныНоменклатурыСрезПоследних.Цена > 0";
    
    
    
    Запрос.УстановитьПараметр("Дата1", ТекущаяДата());
    Запрос.УстановитьПараметр("Дата2", ТекущаяДата() - 30 * 24 * 60 * 60);
    Запрос.УстановитьПараметр("Склад", Склад);
    
    
    
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Стр = Док.Товары.Добавить();
        Стр.Номенклатура = ВыборкаДетальныеЗаписи. КоличествоОстаток;
        
        КоличествоОстаток = ВыборкаДетальныеЗаписи.КоличествоОстаток;
        
        КоличествоРасход = ВыборкаДетальныеЗаписи.КоличествоРасход;
        
        ЦенаПроданногоТовара = ВыборкаДетальныеЗаписи.ЦенаПроданногоТовара;
        
        Если КоличествоОстаток>0 Тогда
            Если КоличествоРасход/2-КоличествоОстаток>0 Тогда
                КоличествоДляЗаказа=КоличествоРасход/2-КоличествоОстаток
            Иначе
                КоличествоДляЗаказа=0
            КонецЕсли
        Иначе
            Если ЦенаПроданногоТовара < 800 Тогда
                Если КоличествоРасход/2>2 Тогда
                    КоличествоДляЗаказа=КоличествоРасход/2
                Иначе
                    КоличествоДляЗаказа=2
                КонецЕсли
            Иначе
                Если КоличествоРасход/2>1 Тогда
                    КоличествоДляЗаказа=КоличествоРасход/2
                Иначе
                    КоличествоДляЗаказа=1
                КонецЕсли
            КонецЕсли
        КонецЕсли;
        
        Стр.Количество = КоличествоДляЗаказа;
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
    КонецЦикла;
    Док.записать();
КонецПроцедуры
8 dima-zgr
 
23.09.15
11:23
{Форма.Форма.Форма(39)}: Ошибка при вызове метода контекста (Выполнить)
    РезультатЗапроса = Запрос.Выполнить();
по причине:
{(5, 28)}: Неправильный псевдоним "ЦеныНоменклатурыСрезПоследних.Номенклатура"
ЦенаПрданногоТовара КАК <<?>>ЦеныНоменклатурыСрезПоследних.Номенклатура,
9 dima-zgr
 
23.09.15
11:23
новая ошибка
10 dima-zgr
 
23.09.15
11:23
я сейчас убьюсь
11 ДенисЧ
 
23.09.15
11:24
У тебя осталась последняя попытка...
12 ДенисЧ
 
23.09.15
11:25
"ЦенаПрданногоТовара КАК ЦеныНоменклатурыСрезПоследних.Номенклатура,"

О боги... Что эт было, Бэрримор?
13 Галахад
 
гуру
23.09.15
11:25
Прд, такая прд...
14 dima-zgr
 
23.09.15
11:27
да да! вот что сожгите меня на костре)
Можете помочь где и что исправить?
чтоб он из запроса заполнил документ, по условию
15 silent person
 
23.09.15
11:27
(8) ну хотя бы так:
ЦеныНоменклатурыСрезПоследних.Номенклатура КАК ЦенаПрданногоТовара,
16 Галахад
 
гуру
23.09.15
11:29
(15) Гм. Эту строчку можно вообще убрать.
17 Ыт
 
23.09.15
11:31
Опять троль пришел
18 dima-zgr
 
23.09.15
11:31
Объясню что точно было понятно! то есть мне надо, чтоб из запроса бралось: если есть цена на товар, то чтоб он смотрел остатки и расход за прошлый месяц, и делал а\заказ по условию.
19 silent person
 
23.09.15
11:37
еще ошибки:

Стр.Номенклатура = ВыборкаДетальныеЗаписи.КоличествоОстаток;

ЦенаПроданногоТовара = ВыборкаДетальныеЗаписи.ЦенаПроданногоТовара; а в запросе у тебя "ЦенаПрданногоТовара", да и та типа СправочникСсылка.Номенклатуры
20 Галахад
 
гуру
23.09.15
11:37
(18) И? На ошибку уже указали. Или хочешь, на блюдечке с голубой каемочкой?
21 dima-zgr
 
23.09.15
11:39
все исправил теперь пишет:
{Форма.Форма.Форма(39)}: Ошибка при вызове метода контекста (Выполнить)
    РезультатЗапроса = Запрос.Выполнить();
по причине:
{(13, 20)}: Неверные параметры "РегистрНакопления.ТоварыВРознице.Остатки"
ЛЕВОЕ СОЕДИНЕНИЕ <<?>>РегистрНакопления.ТоварыВРознице.Остатки(&Дата1,&Дата2, , ) КАК ТоварыВРозницеОстатки
22 ДенисЧ
 
23.09.15
11:42
(21) Справку почитать по запросам - не?
Откуда в Остатках (Карл!!) две даты?
23 dima-zgr
 
23.09.15
11:45
ну до этого он не ругался))))
24 Lexey_
 
23.09.15
11:48
(23) до этого он был в шоке от "ЦенаПрданногоТовара КАК ЦеныНоменклатурыСрезПоследних.Номенклатура"
25 dima-zgr
 
23.09.15
11:57
ну сдвинулось с места, идет все ок, буду дальше разбираться почему число к заказу не считает
26 dima-zgr
 
23.09.15
11:57
СПАСИБО ОГРОМНОЕ!