Имя: Пароль:
1C
1С v8
v8: Как отобрать записи определенной бухоперации. Ошибка "Ожидается имя таблицы. "
0 GreenDay1986
 
29.04.13
18:26
Процедура КнопкаВыполнитьНажатие(Кнопка)    
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство КАК ОС,
|ЕСТЬNULL(ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.СрокПолезногоИспользования, 0) КАК СрокИспользованияБУ,
|ЕСТЬNULL(ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.СрокИспользованияДляВычисленияАмортизации, 0) КАК СрокИспользованияДляВычисленияАмортизации
|ИЗ РегистрСведений.ПараметрыАмортизацииОСБухгалтерскийУчет.СрезПоследних(&Дата,) КАК ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних
|ГДЕ ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.Регистратор ССЫЛКА &ОперацияБух";
Запрос.УстановитьПараметр("ОперацияБух", Документы.ОперацияБух.НайтиПоНомеру("00000000875"));
////     РегистрБУ = РегистрыСведений.ПараметрыАмортизацииОСБухгалтерскийУчет.СоздатьНаборЗаписей();
       Рез = Запрос.Выполнить().Выбрать();
       Пока Рез.Следующий Цикл
           Сообщить(Рез.ОС+" "+Рез.СрокИспользованияБУ+" "+Рез.СрокИспользованияДляВычисленияАмортизации);
       КонецЦикла;



Ошибка {Форма.Форма.Форма(33)}: Ошибка при вызове метода контекста (Выполнить)
       Рез = Запрос.Выполнить().Выбрать();
по причине:
{(6, 77)}: Ожидается имя таблицы
ГДЕ ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.Регистратор ССЫЛКА <<?>>&ОперацияБух

Граждане, подскажите пожалуйста как отобрать из определенной бухоперации записи рег.сведений.
1 GreenDay1986
 
29.04.13
18:27
То есть интересует можно ли передать параметром определенную бух. операцию?
2 Ёпрст
 
гуру
29.04.13
18:29
ГДЕ ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.Регистратор  = &ОперацияБух
3 GreenDay1986
 
29.04.13
18:33
(2) Ошибка ушла, что-то не выдает ничего. Основное средство мож неверно выбираю?
4 zladenuw
 
29.04.13
18:35
(3) а где &Дата выставляешь ?
5 GreenDay1986
 
29.04.13
18:36
(4) на форме реквизит, мне из определенной бух.опер нужно инфу достать.
6 GreenDay1986
 
29.04.13
18:39
В принципе если можно без даты, нужно выбрать все строки из данной бух.операции
7 GreenDay1986
 
29.04.13
18:40
Может в периоде дело :(
8 zladenuw
 
29.04.13
18:40
я тебе про то что ты не передаешь параметр в запрос.
9 Fram
 
29.04.13
18:41
ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.Регистратор ССЫЛКА Документ.ОперацияБух
10 Fram
 
29.04.13
18:42
Хотя если "определенной" тогда конечно (2)
11 GreenDay1986
 
29.04.13
18:43
(9) Так он мне записи из всех документов выберет ОперацияБух. Да нужно из одной. Там записей много очень.
(10) Ничего не выдает почему то :(
12 GreenDay1986
 
29.04.13
18:44
Запрос.УстановитьПараметр("ОперацияБух", Документы.ОперацияБух.НайтиПоНомеру("00000000875"));
13 GreenDay1986
 
29.04.13
18:44
Запрос.УстановитьПараметр("Дата",Дата); вроде тоже передаю
14 Fram
 
29.04.13
18:44
(11) Фильтр работает ))
Есть уверенность что записи указанной операции являются последними на указанную дату?
15 GreenDay1986
 
29.04.13
18:45
(14) нету, как прописать?
16 Fram
 
29.04.13
18:47
(15) что прописать?
если надо получить все записи операции, то надо выбирать из таблицы регистра, а не из среза последних
17 GreenDay1986
 
29.04.13
18:48
(16) Пример можно?
18 Fram
 
29.04.13
18:49
|ИЗ РегистрСведений.ПараметрыАмортизацииОСБухгалтерскийУчет КАК ПараметрыАмортизацииОСБухгалтерскийУчет
19 GreenDay1986
 
29.04.13
18:49
А, срез последних убрать
20 Fram
 
29.04.13
18:52
Ага.. и понять почему неплохо бы
21 GreenDay1986
 
29.04.13
19:05
(20) Все равно ничего не выдает
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|ПараметрыАмортизацииОСБухгалтерскийУчет.ОсновноеСредство.Наименование КАК ОС,
    |ЕСТЬNULL(ПараметрыАмортизацииОСБухгалтерскийУчет.СрокПолезногоИспользования, 0) КАК СрокИспользованияБУ,
    |ЕСТЬNULL(ПараметрыАмортизацииОСБухгалтерскийУчет.СрокИспользованияДляВычисленияАмортизации, 0) КАК СрокИспользованияДляВычисленияАмортизации
    |ИЗ РегистрСведений.ПараметрыАмортизацииОСБухгалтерскийУчет КАК ПараметрыАмортизацииОСБухгалтерскийУчет
    // |ГДЕ ПараметрыАмортизацииОСБухгалтерскийУчетСрезПоследних.Регистратор ССЫЛКА &ОперацияБух"
    |ГДЕ ПараметрыАмортизацииОСБухгалтерскийУчет.Регистратор=&ОперацияБух";
Запрос.УстановитьПараметр("ОперацияБух",Документы.ОперацияБух.НайтиПоНомеру("00000000875"));
////     РегистрБУ = РегистрыСведений.ПараметрыАмортизацииОСБухгалтерскийУчет.СоздатьНаборЗаписей();
       Рез = Запрос.Выполнить().Выбрать();
       Пока Рез.Следующий() Цикл
           Сообщить(Рез.ОС);
           
       КонецЦикла;
22 Fram
 
29.04.13
19:08
А можно еще в начале
Сообщить(Документы.ОперацияБух.НайтиПоНомеру("00000000875"));
добавить?
23 Fram
 
29.04.13
19:10
А лучше Док = Документы.ОперацияБух.НайтиПоНомеру("00000000875").ПолучитьОбъект();
Сообщить(Док.Движения.ПараметрыАмортизацииОСБухгалтерскийУчет.Количество());
24 GreenDay1986
 
29.04.13
19:12
Ошибка при вызове метода контекста (ПолучитьОбъект)
   Док = Документы.ОперацияБух.НайтиПоНомеру("00000000875").ПолучитьОбъект();
по причине:
Элемент не выбран!
25 Fram
 
29.04.13
19:13
(24) Ну вот тебе и ответ!
26 GreenDay1986
 
29.04.13
19:38
(25) Странно, а операция с данным номером в базе есть
27 Wobland
 
29.04.13
19:41
а я вот тут сижу и задаюсь вопросом.. приводит ли опускание второго параметра к гарантированному ненахождению документа?
28 Aprobator
 
29.04.13
20:47
(26) у метода найтипономеру укажи второй параметр. В СП найдешь какой и будет тебе счастье.
29 Aprobator
 
29.04.13
20:48
(27) приводит.
30 Aprobator
 
29.04.13
20:50
Там смотришь периодичность документа и ставишь любую дату этогго периода, Т.е. периодичность год - любую дату года. Иначе метод не отрабатывает.
31 Aprobator
 
29.04.13
21:01
А вообще, судя по коду, тут какая то разовая обработка. Вытащи реквизит типа документ ссылка на форму и все.
32 GreenDay1986
 
30.04.13
10:20
Спасибо! )
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.