СписокПриПолученииДанныхНаСервере в расширении: "Поле объекта не обнаружено"
Надо добавить Реквизит СуммаНДС и связанный с ним элемент формы списка документа РТиУ (1с:БП3)
Делаю по .
1. Заимствую ФормуСписка в расширение.
2. В открывшейся форме: пкм на реквизите Список-Добавить в расширение, чтобы отредактировать текст запроса
3. В текст запроса добавляю выбор поля Выразить(0 Как Число (11,2)) Как рсСуммаНДС,
4. Убеждаюсь, что у реквизита формы Список появляется дочерний элемент "рсСуммаНДС"
5. Добавляю обработчик СписокПриПолученииДанныхНаСервере()
Получаю ошибку, которая не лечится доработкой формы в ПриСоздании на сервере(), т.к. это событие вызывается позже получения данных списком.
Как добавить вычисляемое поле в список в расширении?
Делаю по .
1. Заимствую ФормуСписка в расширение.
2. В открывшейся форме: пкм на реквизите Список-Добавить в расширение, чтобы отредактировать текст запроса
3. В текст запроса добавляю выбор поля Выразить(0 Как Число (11,2)) Как рсСуммаНДС,
4. Убеждаюсь, что у реквизита формы Список появляется дочерний элемент "рсСуммаНДС"
5. Добавляю обработчик СписокПриПолученииДанныхНаСервере()
&НаСервереБезКонтекста
Процедура Расш1_СписокПриПолученииДанныхНаСервереПосле(ИмяЭлемента, Настройки, Строки)
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать Ссылка КАК Ссылка Поместить Документы ИЗ Документ.РеализацияТоваровУслуг как Документы Где Ссылка В (&Документы);
|Выбрать
|Документы.Ссылка,
|Сумма(Услуги.СуммаНДС)+Сумма(Товары.СуммаНДС) Как СуммаНДС
|Из
|Документы Как Документы
|Левое Соединение Документ.РеализацияТоваровУслуг.Товары Как Товары
|По Документы.Ссылка=Товары.Ссылка
|Левое Соединение Документ.РеализацияТоваровУслуг.Услуги Как Услуги
|По Документы.Ссылка=Услуги.Ссылка
|Сгруппировать по Документы.Ссылка
|";
Запрос.УстановитьПараметр("Документы",Строки.ПолучитьКлючи());
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СтрокаСписка = Строки[Выборка.Ссылка];
СтрокаСписка.Данные["рсСуммаНДС"] = Выборка.СуммаНДС;
СтрокаСписка.Оформление["рсСуммаНДС"].УстановитьЗначениеПараметра("Формат","ЧЦ=15; ЧДЦ=2; ЧН=-");
КонецЦикла;
КонецПроцедуры ПоказатьПолучаю ошибку, которая не лечится доработкой формы в ПриСоздании на сервере(), т.к. это событие вызывается позже получения данных списком.
Поле объекта не обнаружено (рсСуммаНДС)
{Расширение Документ.РеализацияТоваровУслуг.Форма.ФормаСписка.Форма(71)}:СтрокаСписка.Данные["рсСуммаНДС"] = Выборка.СуммаНДС;
{ОбщийМодуль.ОбщегоНазначенияБПКлиент.Модуль(859)}:ОткрытьФорму(ПараметрыОткрытия.ИмяФормы,
{ОбщаяФорма.ДлительнаяОперацияОткрытиеСписка.Форма(40)}:ОбщегоНазначенияБПКлиент.ОткрытьОсновнуюФорму(Истина, ПараметрыОткрытияКлиент, Параметры.ПараметрыОткрываемойФормы);
{Расширение Документ.РеализацияТоваровУслуг.Форма.ФормаСписка.Форма(71)}:СтрокаСписка.Данные["рсСуммаНДС"] = Выборка.СуммаНДС;
{ОбщийМодуль.ОбщегоНазначенияБПКлиент.Модуль(859)}:ОткрытьФорму(ПараметрыОткрытия.ИмяФормы,
{ОбщаяФорма.ДлительнаяОперацияОткрытиеСписка.Форма(40)}:ОбщегоНазначенияБПКлиент.ОткрытьОсновнуюФорму(Истина, ПараметрыОткрытияКлиент, Параметры.ПараметрыОткрываемойФормы);
Как добавить вычисляемое поле в список в расширении?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
мне кажется, нужно проверять, что такое поле есть в СтрокаСписка.Данные перед тем как к нему обращаться
(3) Проблема как раз, что его нет при доработке БП3, проверил на ДемоБСП-там есть. Глюк?
Сменить пришлось в обработчик "После" расширении на "Перед"
Сменить пришлось в обработчик "После" расширении на "Перед"
&НаСервереБезКонтекста
Процедура Расш2_СписокПриПолученииДанныхНаСервереПеред(ИмяЭлемента, Настройки, Строки)
гс=новый ГенераторСлучайныхЧисел;
Ключи = Строки.ПолучитьКлючи();
Для Каждого Ключ Из Ключи Цикл
СтрокаСписка = Строки[Ключ];
СтрокаСписка.Данные["рсСуммаНДС"] = гс.СлучайноеЧисло(1, 9);
СтрокаСписка.Оформление["рсСуммаНДС"].УстановитьЗначениеПараметра("Формат","ЧЦ=11; ЧДЦ=2; ЧН=-");
КонецЦикла;
КонецПроцедуры ПоказатьПрикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
