Ошибка " Получение элемента по индексу для значения не определено"

1. Stanislav1993 13.01.19 09:16 Сейчас в теме
Всем добрый день!
При нажатии команда1у меня появляется ошибка " Получение элемента по индексу для значения не определено" и данные для табличной части дублируются. Посоветуйте как исправить.
Всем спасибо!
&НаКлиенте
Процедура Команда1(Команда)
	ПолучитьДанныеОтбором(Объект.ЛотТикета,Объект.Тикет);
	Объект.Организация = ПолучитьДанныеОтбором(Объект.ЛотТикета,Объект.Тикет);
	Структура = ПолучитьСтруктураОрганизации(Объект.Организация);
	Объект.ИНН = Структура.ИНН;
	//Объект.Сумма = ПолучитьДанныеОтбором(Объект.ЛотТикета,Объект.Тикет)[1];
	КонецПроцедуры
Показать


&НаСервере
Функция ПолучитьДанныеОтбором(ЛотТикета,Тикет)
	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ОборотыДоговоровОбороты.Организация КАК Организация,
	|	ОборотыДоговоровОбороты.ИНН КАК ИНН,
	|	ОборотыДоговоровОбороты.Район КАК Район,
	|	ОборотыДоговоровОбороты.АдресПоставки КАК АдресПоставки,
	|	ОборотыДоговоровОбороты.Номенклатура КАК Номенклатура,
	|	ОборотыДоговоровОбороты.МодельТовара КАК МодельТовара,
	|	ОборотыДоговоровОбороты.ВидыНоменклатуры КАК ВидыНоменклатуры,
	|	ОборотыДоговоровОбороты.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	|	ОборотыДоговоровОбороты.КоличествоОборот КАК Количество,
	|	ОборотыДоговоровОбороты.СуммаДоговораОборот КАК СуммаДоговора
	|ИЗ
	|	РегистрНакопления.ОборотыДоговоров.Обороты(
	|			&НачалоПериода,
	|			&КонецПериода,
	|			,
	|			Тикет = &Тикет
	|				И ЛотТикета = &ЛотТикета) КАК ОборотыДоговоровОбороты";
	
	
	Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(ТекущаяДата()));
	Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(ТекущаяДата()));
	Запрос.УстановитьПараметр("ЛотТикета", ЛотТикета);
	Запрос.УстановитьПараметр("Тикет", Тикет);
	
	РезультатЗапроса = Запрос.Выполнить();
	Массив = Новый Массив;
	Если Не РезультатЗапроса.Пустой() Тогда
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		
		Если ВыборкаДетальныеЗаписи.Следующий() Тогда
			НоваяСтрока = Объект.ПрайсЛист.Добавить();
			
			НоваяСтрока.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
			Структура = ПолучитьСтруктуруНоменклатуры(НоваяСтрока.Номенклатура);
			НоваяСтрока.МодельТовара = Структура.МодельТовара;
			НоваяСтрока.ВидыНоменклатуры = Структура.ВидыНоменклатуры;
			НоваяСтрока.ЕдиницыИзмерения = Структура.ЕдиницаИзмерения;
			НоваяСтрока.Количество = ВыборкаДетальныеЗаписи.Количество;
			//Массив.Вставить(1,ВыборкаДетальныеЗаписи.СуммаДоговора);
			
			Возврат ВыборкаДетальныеЗаписи.Организация;
		КонецЕсли;
	КонецЕсли;
КонецФункции

Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Dmitrij-2 45 13.01.19 09:19 Сейчас в теме
не все функции выложены. Пройдитесь отладчиком и посмотрите на какой строке спотыкается
3. Stanislav1993 13.01.19 09:35 Сейчас в теме
(2)
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Объект.ПрайсЛист.Загрузить(РезультатЗапроса);

Табличная часть заполняется верно, но теперь другая ошибка :
{Документ.ЗаявкаНаДоставку.Форма.ФормаДокумента.Форма(51)}: Метод объекта не обнаружен (Выбрать)
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
4. Stanislav1993 13.01.19 09:45 Сейчас в теме
(3) исправил ошибку.
Но больше всего хочу узнать советы как исправить ошибку "Получение элемента по индексу для значения не определено"
Я создаю массив и вставляю туда значения, которые выбрал через запрос.
5. mkalimulin 1170 13.01.19 11:15 Сейчас в теме
(4) А ты все-таки нажми кнопку "Подробно".
Bob_Dobr; +1 Ответить
6. mkalimulin 1170 13.01.19 11:18 Сейчас в теме
(4) Функция должна возвращать массив.
7. Stanislav1993 13.01.19 11:31 Сейчас в теме
(6)
&НаСервере
Функция ПолучитьЦены(Номенклатура)
	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
	|	ЦеныНоменклатурыСрезПоследних.СтартоваяЦена КАК СтартоваяЦена,
	|	ЦеныНоменклатурыСрезПоследних.ДоговорнаяЦена КАК ДоговорнаяЦена
	|ИЗ
	|	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, Номенклатура = &Номенклатура) КАК ЦеныНоменклатурыСрезПоследних
	|ГДЕ
	|	ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура";
	
	Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
	Запрос.УстановитьПараметр("Период",ТекущаяДата());
	
	РезультатЗапроса = Запрос.Выполнить();
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Массив = Новый Массив(3);
		Массив[0] = ВыборкаДетальныеЗаписи.СтартоваяЦена;
		Массив[1] = ВыборкаДетальныеЗаписи.ДоговорнаяЦена;
		Возврат Массив;
	КонецЦикла;
КонецФункции

Показать



&НаКлиенте
Процедура ПрайсЛистНоменклатураПриИзменении(Элемент)
	Стр 						= Элементы.ПрайсЛист.ТекущиеДанные;
	Структура 					= ПолучитьСтруктуруНоменклатуры(Стр.Номенклатура);
	Стр.МодельТовара		 	= Структура.МодельТовара;
	Стр.ВидыНоменклатуры 		= Структура.ВидыНоменклатуры;
	Стр.ЕдиницаИзмерения 		= Структура.ЕдиницаИзмерения;
	Стр.СтартоваяЦена  			= ПолучитьЦены(Стр.Номенклатура)[0];
	Стр.ДоговорнаяЦена 			= ПолучитьЦены(Стр.Номенклатура)[1];
КонецПроцедуры

Показать
8. independ 1520 13.01.19 11:50 Сейчас в теме
(7) Вместо
Массив = Новый Массив(3);
        Массив[0] = ВыборкаДетальныеЗаписи.СтартоваяЦена;
        Массив[1] = ВыборкаДетальныеЗаписи.ДоговорнаяЦена;


Нужно
Массив=Новый Массив;
Массив.Добавить(ВыборкаДетальныеЗаписи.СтартоваяЦена);
Массив.Добавить(ВыборкаДетальныеЗаписи.ДоговорнаяЦена);

Вместо
    Стр.СтартоваяЦена              = ПолучитьЦены(Стр.Номенклатура)[0];
    Стр.ДоговорнаяЦена             = ПолучитьЦены(Стр.Номенклатура)[1];

Нужно
МассивЦен=ПолучитьЦены(Стр.Номенклатура)
Стр.СтартоваяЦена=МассивЦен[0];
Стр.ДоговорнаяЦена=МассивЦен[1];
Stanislav1993; +1 Ответить
9. Stanislav1993 13.01.19 12:09 Сейчас в теме
(8)Все равно выходит ошибка у меня "Получение элемента по индексу для значения не определено"
10. Stanislav1993 13.01.19 12:15 Сейчас в теме
(9)Регистр сведений на данный момент, не имеет в себе никаких записей.
11. independ 1520 13.01.19 13:30 Сейчас в теме
(10) Понятно, тогда нужно делать проверку
Массив = Новый Массив();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
   Массив.Добавить(ВыборкаДетальныеЗаписи.СтартоваяЦена);
   Массив.Добавить(ВыборкаДетальныеЗаписи.ДоговорнаяЦена);
Иначе
   Массив.Добавить(0);
   Массив.Добавить(0);
КонецЕсли;
Возврат МассивЦен;
Показать
12. meriferi 14.01.19 09:22 Сейчас в теме
Установлена галочка "Использовать обмен электронными документами" в "Настройка параметров учёта"?
13. user1344393 20.01.20 11:20 Сейчас в теме
Здравствуйте!
При попытке провести документ "Начисление зарплаты и взносов" программа выдает ошибку "Получение элемента по индексу для значения не определено". Как можно исправить ситуацию?
Спасибо.
Оставьте свое сообщение

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