Имя: Пароль:
1C
1С v8
Вставить данные в документ из регистра накопления
, ,
0 Andryyyyyxa
 
19.05.15
09:38
Здравствуйте! Нужно заполнить документ из регистра накопления: отобрать все НЕВЫПОЛНЕННЫЕ заявки. Документ имеет такие поля табличной части:
НомерЗаявки    ДатаИзЗаявкиКлиента  ПлановаяДата   Исполнитель


Где, ПлановаяДата=ДатаИзЗаявкиКлиента+4дня

Прописал процедуру (ошибок не выбивает, но документ не заполняется при нажатии кнопки Заполнить)Подскажите, пожалуйста, что не так:

Процедура ЗаполнитьНажатие(Элемент)

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Реноме_ЗаявкиНаЗамеры.Заявка.Ссылка КАК ЗаявкаНаЗаказ,
                   |    Реноме_ЗаявкиНаЗамеры.Заявка.Дата КАК ДатаЗаказа,
                   |    ДОБАВИТЬКДАТЕ(Реноме_ЗаявкиНаЗамеры.Заявка.Дата, ДЕНЬ, 3) КАК ПлановаяДата,
                   |    Реноме_ЗаявкиНаЗамеры.Заявка.Ответственный КАК Ответственный,
                   |    Реноме_ЗаявкиНаЗамеры.Выполено
                   |ИЗ
                   |    РегистрНакопления.Реноме_ЗаявкиНаЗамеры КАК Реноме_ЗаявкиНаЗамеры
                   |ГДЕ
                   |    Реноме_ЗаявкиНаЗамеры.Заявка.Ссылка = &ВыбСсылка";
                  
    Запрос.УстановитьПараметр("ВыбСсылка", Ссылка);
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий()Цикл
        Если РегистрыНакопления.Реноме_ЗаявкиНаЗамеры.Выполнено = Ложь Тогда
        ЭлементыФормы.НомерЗаявки.Заполнить(ВыборкаДетальныеЗаписи.ЗаявкаНаЗаказ);
        ЭлементыФормы.ДатаИзЗаявкиКлиента.Заполнить(ВыборкаДетальныеЗаписи.ДатаЗаказа);
        ЭлементыФормы.ПлановаяДата.Заполнить(ВыборкаДетальныеЗаписи.ПлановаяДата);
        ЭлементыФормы.Исполнитель.Заполнить(ВыборкаДетальныеЗаписи.Ответственный);

    КонецЕсли;
                  
    КонецЦикла;
КонецПроцедуры
1 МаксимМП23
 
19.05.15
09:42
Если РегистрыНакопления.Реноме_ЗаявкиНаЗамеры.Выполнено = Ложь Тогда


- это ужс
2 МаксимМП23
 
19.05.15
09:43
Да тут все ужас.
3 lucifer
 
19.05.15
09:49
(1) что-т я вообще потерялся что это
РегистрыНакопления.Реноме_ЗаявкиНаЗамеры.Выполнено
тут же РегистрыНакопления.Реноме_ЗаявкиНаЗамеры - это РегистрНакопленияМенеджер?
4 Andryyyyyxa
 
19.05.15
09:52
Да
5 Andryyyyyxa
 
19.05.15
09:53
Ужас) а как правильно прописать?
6 fishb1
 
19.05.15
10:04
(0) (5)

1) Почему в задаче звучит "Заявки" если в запросе отбор по
конкретной заявке?
2) Очень странно, что это у вас регистр накопления.
3) Цикл не нужен. Все условия делай в запросе, а результат запроса в ТЧ:

ТЧ.Загрузить(Запрос.Выполнить.Выгрузить());
7 lucifer
 
19.05.15
10:06
(5) отбор Выполнено = ложь сделай в запросе, выбирай первую запись (ибо нет смысла больше отбирать, ты ж заполняешь поля шапки документа)
8 Serg_1960
 
19.05.15
10:10
Автор ошибку допустил в первой строке - опечатался, с кем не бывает. Вместо "Если РегистрыНакопления.Реноме_ЗаявкиНаЗамеры.Выполнено = Ложь Тогда" надо типа "Если Не ВыборкаДетальныеЗаписи.Выполнено Тогда"
9 Serg_1960
 
19.05.15
10:11
*(8) в первой строке цикла
10 fishb1
 
19.05.15
10:12
(7) Он же вроде бы хочет в ТЧ грузить. Похоже, код не выдает ошибок, потому что результат запроса пустой. У элемента формы нет метода Заполнить(), как минимум.
11 Serg_1960
 
19.05.15
10:18
(10) +1. Плюс характерная ошибка - обращаться к элементам формы вместо данных. ТС, элементы связанны с данными- ТЧ документа - с ними работай.
12 Serg_1960
 
19.05.15
10:34
Что-то типа как-то так :)

    Запрос = Новый Запрос();
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Реноме.Заявка.Ссылка КАК НомерЗаявки,
    |    Реноме.Заявка.Дата КАК ДатаИзЗаявкиКлиента,
    |    ДОБАВИТЬКДАТЕ(Реноме.Заявка.Дата, ДЕНЬ, 3) КАК ПлановаяДата,
    |    Реноме.Заявка.Ответственный КАК Исполнитель
    |ИЗ
    |    РегистрНакопления.Реноме_ЗаявкиНаЗамеры КАК Реноме
    |ГДЕ
    |    Реноме.Заявка.Ссылка = &ВыбСсылка
    |    И Реноме.Выполнено = ЛОЖЬ";
    
    ЭтотОбъект.ТвояТабличнаяЧасть.Загрузить(Запрос.Выполнить().Выгрузить());
13 Andryyyyyxa
 
19.05.15
16:09
Serg_1960, сделал, как Вы советуете, попросило установить параметр на ссылку, установил. Потом просит: Не задано значение параметра "Ложь"
И Реноме_ЗаявкиНаЗамеры.Выполено = <<?>>&Ложь


Как задать значение для параметра ложь? Прописал: ЗначЛожь = о.

Синтаксис без ошибок, а при проверке тоже самое. Как быть, подскажите?
14 ДенисЧ
 
19.05.15
16:15
И НЕ Реноме_ЗаявкиНаЗамеры.Выполено
15 fishb1
 
19.05.15
16:58
(13)
Запрос.УстановитьПараметр("Ложь", Ложь);

А вообще: рукалицо.jpg
16 dumb851
 
19.05.15
17:17
Должно работать, ошибок не вижу
17 Andryyyyyxa
 
19.05.15
21:35
большое спасибо!
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.