Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 20:02

Как правильно написать запрос.

Автор Lereli, 15 янв 2013, 01:02

0 Пользователей и 1 гость просматривают эту тему.

Lereli

Есть документ - ОтчетыОбъемовОказУслугЗаПрошлыеГода, а так же документ - ПрогнозОбъемовОказываемыхУслуг.

В ТЧ документа Прогноз.. вводятся значения реквизитов НаименованиеОбъемовУслугПоРемонтуОборудования (из справочника работ) и Год. Основываясь на эти введенные значения надо найти значение объема, которое хранится в Отчетах.

На данный момент выглядит это так:

&НаКлиенте
Процедура Клиент(Элемент)

ПрогнозОбъемовОказываемыхУслугПоРемонтуОборудованияЗаПервыйГодПриИзменении (Элемент);

КонецПроцедуры
&НаСервере
Процедура ПрогнозОбъемовОказываемыхУслугПоРемонтуОборудованияЗаПервыйГодПриИзменении(Элемент)

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

Пока Выборка.Следующий() Цикл
     Сообщить("Выборка прошла успешно:" + Выборка.Всего);
     Элементы.ПрогнозОбъемовОказываемыхУслугПоРемонтуОборудования.Объем = Выборка.Всего;
КонецЦикла;
КонецПроцедуры

Выходит ошибка:
{Документ.ПрогнозОбъемовОказываемыхУслуг.Форма.ФормаДокумента.Форма(4)}: Ошибка при вызове метода контекста (ПрогнозОбъемовОказываемыхУслугПоРемонтуОборудованияЗаПервыйГодПриИзменении)
ПрогнозОбъемовОказываемыхУслугПоРемонтуОборудованияЗаПервыйГодПриИзменении (Элемент);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'param':
форма: Элемент
имя: {http://v8.1c.ru/8.2/managed-application/modules}param
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ПолеФормы'

Какой должен быть тип и где его задать? В обращении к процедуре на клиенте?

Dethmontt

А зачем вы элемент формы с клиента на сервер передаете???
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Lereli

Потому что не знаю, что именно там надо написать) Об этом я и спрашивала, собственно.
Добавлено: 15 янв 2013, 20:54


По идее надо передать значения наименования и года...

Dethmontt

ПрогнозОбъемовОказываемыхУслугПоРемонтуОборудованияЗаПервыйГодПриИзменении(); //Ничего передавать не нужно в контексте формы на сервере доступен сам объект

Запрос.УстановитьПараметр("Год",Объект.Год);//ГОД - реквизит объекта
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Lereli

Спасибо, предыдущая ошибка ушла, но теперь появилась ошибка:
{Документ.ПрогнозОбъемовОказываемыхУслуг.Форма.ФормаДокумента.Форма(19)}: Поле объекта не обнаружено (Год)
Запрос.УстановитьПараметр("Год",Объект.Год);

Пробовала там сделать Объект.НазваниеТЧ.Год, но без результатов.

Dethmontt

Ну нету у вашего Объекта поля ГОД
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Lereli

А там какой объект учитывается? Формы или документа?

Dethmontt

Формы
Контекст формы в которой вы пишите
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Lereli

Тогда совсем не пойму что он хочет...

Пишу:
Запрос.УстановитьПараметр("Год",Объект.ПрогнозОбъемовОказываемыхУслугПоРемонтуОборудования.Год);
Получаю:
{Документ.ПрогнозОбъемовОказываемыхУслуг.Форма.ФормаДокумента.Форма(19)}: Поле объекта не обнаружено (Год)
Запрос.УстановитьПараметр("Год",Объект.ПрогнозОбъемовОказываемыхУслугПоРемонтуОборудования.Год);

Dethmontt

Это табличная часть????

Для обращению к строкам табличной части вы должны сначала с позиционироваться на конкретной строке ТЧ
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск