Ошибки в запросе 1с

1. G_115320280818002410641 20.12.21 13:30 Сейчас в теме
Уже 4 дня борюсь с практической частью курсовой работы. Послезавтра - сдача.
Активно гуглил решение проблемы - не помогло.
Нужно реализовать автозаполнение реквизита СуммаОплаты, при выборе реквизита Объект. Данные берутся из регистра накопления.


 &НаСервере 
Функция СуммаДолга (ЭлементНоменклатуры) экспорт 
	Запрос = Новый Запрос;
Запрос.Текст =	

"ВЫБРАТЬ
|	СУММА(ЗадолжностиКлиентовОстатки.СуммаОстаток) КАК СуммаОстаток
|ИЗ
|	РегистрНакопления.ЗадолжностиКлиентов.Остатки КАК ЗадолжностиКлиентовОстатки
|ГДЕ
|	ЗадолжностиКлиентовОстатки.Объект = &Объект";

Запрос.УстановитьПараметр("Объект",ЭлементНоменклатуры);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Возврат РезультатЗапроса;
КонецФункции
 
  
&НаКлиенте
Процедура ОбъектПриИзменении(Элемент)
ВыбранныйОБ=Элемент.Объект;
Элемент.СуммаОплаты=СуммаДолга(ВыбранныйОБ);
КонецПроцедуры
Показать
По теме из базы знаний
Найденные решения
16. Sashares 34 20.12.21 13:57 Сейчас в теме
(15)Да, функцию тоже надо изменить.

&НаСервере
Функция СуммаДолга (ЭлементНоменклатуры) экспорт
Запрос = Новый Запрос;
Запрос.Текст =

"ВЫБРАТЬ
| СУММА(ЗадолжностиКлиентовОстатки.СуммаОстаток) КАК СуммаОстаток
|ИЗ
| РегистрНакопления.ЗадолжностиКлиентов.Остатки(,Объект = &Объект) КАК ЗадолжностиКлиентовОстатки";

Запрос.УстановитьПараметр("Объект",ЭлементНоменклатуры);
РезультатЗапроса = Запрос.Выполнить();
Сумма = 0;
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
Сумма = Выборка.СуммаОстаток;
КонецЕсли;
Возврат Сумма ;
КонецФункции
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 34 20.12.21 13:34 Сейчас в теме
(1)Мда, сложно вам будет, если вы с этим 4 дня бьетесь.
3. G_115320280818002410641 20.12.21 13:36 Сейчас в теме
(2)С самой работой, а не этой конкретной проблемой. + 1с после конца этого семестра я заниматься не буду.
4. Sashares 34 20.12.21 13:44 Сейчас в теме
(3)Покажите скрин формы из конфигуратора.
6. G_115320280818002410641 20.12.21 13:48 Сейчас в теме
(4)вот
Прикрепленные файлы:
9. Sashares 34 20.12.21 13:50 Сейчас в теме
(6)Так надо:


&НаКлиенте
Процедура ОбъектПриИзменении(Элемент)
ВыбранныйОБ=Объект.Объект;
Объект.СуммаОплаты=СуммаДолга(ВыбранныйОБ);
КонецПроцедуры
10. cassper 20.12.21 13:51 Сейчас в теме
(9) а параметр отбора из секции ГДЕ перенести в параметры виртуальной таблицы? :)
11. Sashares 34 20.12.21 13:52 Сейчас в теме
(10)И без этого заработает))
12. cassper 20.12.21 13:53 Сейчас в теме
(11) вопрос оптимизации)
Sashares; +1 Ответить
13. G_115320280818002410641 20.12.21 13:53 Сейчас в теме
(9)Ошибка при вызове метода контекста (СуммаДолга)
{Документ.Оплата.Форма.ФормаДокумента.Форма(52)}:Объект.СуммаОплаты=СуммаДолга(ВыбранныйОБ);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: ret Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'

Вот, что выдало
15. G_115320280818002410641 20.12.21 13:54 Сейчас в теме
(9)Вот, что выдало:
Прикрепленные файлы:
16. Sashares 34 20.12.21 13:57 Сейчас в теме
(15)Да, функцию тоже надо изменить.

&НаСервере
Функция СуммаДолга (ЭлементНоменклатуры) экспорт
Запрос = Новый Запрос;
Запрос.Текст =

"ВЫБРАТЬ
| СУММА(ЗадолжностиКлиентовОстатки.СуммаОстаток) КАК СуммаОстаток
|ИЗ
| РегистрНакопления.ЗадолжностиКлиентов.Остатки(,Объект = &Объект) КАК ЗадолжностиКлиентовОстатки";

Запрос.УстановитьПараметр("Объект",ЭлементНоменклатуры);
РезультатЗапроса = Запрос.Выполнить();
Сумма = 0;
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
Сумма = Выборка.СуммаОстаток;
КонецЕсли;
Возврат Сумма ;
КонецФункции
Показать
19. gybson 21.12.21 19:06 Сейчас в теме
как-то громоздко

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
    Возврат Выборка.СуммаОстаток;
КонецЕсли;

Возврат 0;
5. G_115320280818002410641 20.12.21 13:47 Сейчас в теме
вот
Прикрепленные файлы:
7. alex_bob 246 20.12.21 13:48 Сейчас в теме
Проверьте, есть ли у объекта метаданных РегистрНакопления.ЗадолжностиКлиентов измерение Объект и какой имеет тип данных. Сдается мне, что речь должна идти о клиентах, а не о номенклатуре.
8. G_115320280818002410641 20.12.21 13:50 Сейчас в теме
(7)Измерение есть, и является ссылкой на соответствующий справочник
14. ImHunter 315 20.12.21 13:53 Сейчас в теме
(1) С сервера на клиент передаете таблицу значений, что не работает в тонком клиенте. Вероятно, в этом причина.
17. Arkadag 20.12.21 14:07 Сейчас в теме
Функция СуммаДолга (ЭлементНоменклатуры) экспорт
Запрос = Новый Запрос;
Запрос.Текст =
Результат = 0;
"ВЫБРАТЬ
| СУММА(ЗадолжностиКлиентовОстатки.СуммаОстаток) КАК СуммаОстаток
|ИЗ
| РегистрНакопления.ЗадолжностиКлиентов.Остатки КАК ЗадолжностиКлиентовОстатки
|ГДЕ
| ЗадолжностиКлиентовОстатки.Объект = &Объект";

Запрос.УстановитьПараметр("Объект",ЭлементНоменклатуры);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Результат = Выборка. СуммаОстаток;
КонецЦикла;
Возврат Результат;
КонецФункции 
Показать


Я очень сильно сомневаюсь, что сработает установка параметра, но как-то так...

А какой процент студентов Вашего учебного заведения после этого семестра не будет заниматься 1с?
Интересуюсь в плане изучения будущего рынка труда программистов 1с :-)
18. G_115320280818002410641 20.12.21 15:11 Сейчас в теме
Всем ОГРОМНОЕ СПАСИБО
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот