Ошибка " Получение элемента по индексу для значения не определено"
Всем добрый день!
При нажатии команда1у меня появляется ошибка " Получение элемента по индексу для значения не определено" и данные для табличной части дублируются. Посоветуйте как исправить.
Всем спасибо!
При нажатии команда1у меня появляется ошибка " Получение элемента по индексу для значения не определено" и данные для табличной части дублируются. Посоветуйте как исправить.
Всем спасибо!
&НаКлиенте
Процедура Команда1(Команда)
ПолучитьДанныеОтбором(Объект.ЛотТикета,Объект.Тикет);
Объект.Организация = ПолучитьДанныеОтбором(Объект.ЛотТикета,Объект.Тикет);
Структура = ПолучитьСтруктураОрганизации(Объект.Организация);
Объект.ИНН = Структура.ИНН;
//Объект.Сумма = ПолучитьДанныеОтбором(Объект.ЛотТикета,Объект.Тикет)[1];
КонецПроцедуры
Показать
&НаСервере
Функция ПолучитьДанныеОтбором(ЛотТикета,Тикет)
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОборотыДоговоровОбороты.Организация КАК Организация,
| ОборотыДоговоровОбороты.ИНН КАК ИНН,
| ОборотыДоговоровОбороты.Район КАК Район,
| ОборотыДоговоровОбороты.АдресПоставки КАК АдресПоставки,
| ОборотыДоговоровОбороты.Номенклатура КАК Номенклатура,
| ОборотыДоговоровОбороты.МодельТовара КАК МодельТовара,
| ОборотыДоговоровОбороты.ВидыНоменклатуры КАК ВидыНоменклатуры,
| ОборотыДоговоровОбороты.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ОборотыДоговоровОбороты.КоличествоОборот КАК Количество,
| ОборотыДоговоровОбороты.СуммаДоговораОборот КАК СуммаДоговора
|ИЗ
| РегистрНакопления.ОборотыДоговоров.Обороты(
| &НачалоПериода,
| &КонецПериода,
| ,
| Тикет = &Тикет
| И ЛотТикета = &ЛотТикета) КАК ОборотыДоговоровОбороты";
Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(ТекущаяДата()));
Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(ТекущаяДата()));
Запрос.УстановитьПараметр("ЛотТикета", ЛотТикета);
Запрос.УстановитьПараметр("Тикет", Тикет);
РезультатЗапроса = Запрос.Выполнить();
Массив = Новый Массив;
Если Не РезультатЗапроса.Пустой() Тогда
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
НоваяСтрока = Объект.ПрайсЛист.Добавить();
НоваяСтрока.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
Структура = ПолучитьСтруктуруНоменклатуры(НоваяСтрока.Номенклатура);
НоваяСтрока.МодельТовара = Структура.МодельТовара;
НоваяСтрока.ВидыНоменклатуры = Структура.ВидыНоменклатуры;
НоваяСтрока.ЕдиницыИзмерения = Структура.ЕдиницаИзмерения;
НоваяСтрока.Количество = ВыборкаДетальныеЗаписи.Количество;
//Массив.Вставить(1,ВыборкаДетальныеЗаписи.СуммаДоговора);
Возврат ВыборкаДетальныеЗаписи.Организация;
КонецЕсли;
КонецЕсли;
КонецФункции
ПоказатьПрикрепленные файлы:
По теме из базы знаний
- ОбменComXML
- Перенос данных из ЗУП2.5 в ЗУП3.0 (Исправление правил)
- Счет на оплату покупателю (исправлена ошибка: "Получение элемента по индексу для значения не определено")
- "Заплатка" для больничного листа, для КА 2.4.8.82
- Распространенные ошибки разработчиков, приводящие к проблемам производительности
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
Табличная часть заполняется верно, но теперь другая ошибка :
{Документ.ЗаявкаНаДоставку.Форма.ФормаДокумента.Форма(51)}: Метод объекта не обнаружен (Выбрать)
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Объект.ПрайсЛист.Загрузить(РезультатЗапроса);
Табличная часть заполняется верно, но теперь другая ошибка :
{Документ.ЗаявкаНаДоставку.Форма.ФормаДокумента.Форма(51)}: Метод объекта не обнаружен (Выбрать)
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
(6)
&НаСервере
Функция ПолучитьЦены(Номенклатура)
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
| ЦеныНоменклатурыСрезПоследних.СтартоваяЦена КАК СтартоваяЦена,
| ЦеныНоменклатурыСрезПоследних.ДоговорнаяЦена КАК ДоговорнаяЦена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, Номенклатура = &Номенклатура) КАК ЦеныНоменклатурыСрезПоследних
|ГДЕ
| ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("Период",ТекущаяДата());
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Массив = Новый Массив(3);
Массив[0] = ВыборкаДетальныеЗаписи.СтартоваяЦена;
Массив[1] = ВыборкаДетальныеЗаписи.ДоговорнаяЦена;
Возврат Массив;
КонецЦикла;
КонецФункции
Показать
&НаКлиенте
Процедура ПрайсЛистНоменклатураПриИзменении(Элемент)
Стр = Элементы.ПрайсЛист.ТекущиеДанные;
Структура = ПолучитьСтруктуруНоменклатуры(Стр.Номенклатура);
Стр.МодельТовара = Структура.МодельТовара;
Стр.ВидыНоменклатуры = Структура.ВидыНоменклатуры;
Стр.ЕдиницаИзмерения = Структура.ЕдиницаИзмерения;
Стр.СтартоваяЦена = ПолучитьЦены(Стр.Номенклатура)[0];
Стр.ДоговорнаяЦена = ПолучитьЦены(Стр.Номенклатура)[1];
КонецПроцедуры
Показать
(7) Вместо
Нужно
Вместо
Нужно
Массив = Новый Массив(3);
Массив[0] = ВыборкаДетальныеЗаписи.СтартоваяЦена;
Массив[1] = ВыборкаДетальныеЗаписи.ДоговорнаяЦена;
Нужно
Массив=Новый Массив;
Массив.Добавить(ВыборкаДетальныеЗаписи.СтартоваяЦена);
Массив.Добавить(ВыборкаДетальныеЗаписи.ДоговорнаяЦена);
Вместо
Стр.СтартоваяЦена = ПолучитьЦены(Стр.Номенклатура)[0];
Стр.ДоговорнаяЦена = ПолучитьЦены(Стр.Номенклатура)[1];
Нужно
МассивЦен=ПолучитьЦены(Стр.Номенклатура)
Стр.СтартоваяЦена=МассивЦен[0];
Стр.ДоговорнаяЦена=МассивЦен[1];
(10) Понятно, тогда нужно делать проверку
Массив = Новый Массив();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Массив.Добавить(ВыборкаДетальныеЗаписи.СтартоваяЦена);
Массив.Добавить(ВыборкаДетальныеЗаписи.ДоговорнаяЦена);
Иначе
Массив.Добавить(0);
Массив.Добавить(0);
КонецЕсли;
Возврат МассивЦен;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот