Не работает НайтиСтроки

1. ТатьянкаО 19.07.24 11:25 Сейчас в теме
Добрый день! помогите разобраться. В копии тестирую, работает как надо. в рабочей базе не находит, хотя совпадение есть

Функция ПолучитьЦенуСоскидкой(ДокЗаказ, _Номенклатура,_Характеристика)
	
	ТабТовары = ДокЗаказ.Товар;
	
	ПараметрыОтбора = Новый Структура;
	ПараметрыОтбора.Вставить("Номенклатура", _Номенклатура);
	ПараметрыОтбора.Вставить("Характеристика", _Характеристика);
	
	НайденныеСтроки = ТабТовары.НайтиСтроки(ПараметрыОтбора);  
	Если НайденныеСтр.Количество() > 0 Тогда  
		_Цена = НайденныеСтр[0].Цена; 
			Иначе
		сообщить("Позиция "  + _Номенклатура + "  "+ _Характеристика +  " в заказе не найдена");
	Конецесли;
	
	Возврат _Цена;

КонецФункции
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
11. Fox-trot 162 19.07.24 12:41 Сейчас в теме
(1) это старый баг, ограничьтесь одним реквизитом
2. user2033930 19.07.24 11:29 Сейчас в теме
Что именно не работает? Что приходит в ДокЗаказ? Откуда вызывается эта функция?
4. ТатьянкаО 19.07.24 11:34 Сейчас в теме
(2) ссылка на документ Заказ Покупателя
Не находит совпадений, хотя точно есть
7. user2033930 19.07.24 11:42 Сейчас в теме
(4) В рабочей используется тот же самый документ?
Случайно ссылку не при создании нового документа отправляешь?
И вообще - использовать поиск в табличной части по ссылке через НайтиСтроки - это зашквар.
8. ТатьянкаО 19.07.24 11:50 Сейчас в теме
(7) да, тот же документ. ссылка уже на ранее созданный документ
9. user2033930 19.07.24 11:55 Сейчас в теме
(8) Остается только верить на слово. Что контрпродуктивно.
3. soft_wind 19.07.24 11:32 Сейчас в теме
может выдавать ошибку если товар не найден, _Цена - неоапределена

добавьте ее



Иначе
_Цена = 0; //// вот это добавить!!!
сообщить("Позиция " + _Номенклатура + " "+ _Характеристика + " в заказе не найдена");
Конецесли;

5. Lenten 26 19.07.24 11:37 Сейчас в теме
если в копии работает, то значит код норм, а данные нет. Возможно в рабочей базе дубли номенклатуры или характеристик
6. ТатьянкаО 19.07.24 11:39 Сейчас в теме
Изначально в копии у меня не работало тоже, делала проверки и даже проверила через типа
Если _Номенклатура = стр.Номенклатура тогда, в этот момент заработало и я постепенно, убирая проверки, вернула все к первоначальному коду и всё продолжило работать. вот такая странность
10. ТатьянкаО 19.07.24 11:58 Сейчас в теме
что лучше использовать?
12. -AI- 19.07.24 13:45 Сейчас в теме
(10) если вся инфа в базе, то обычно запросы используют.

если так хочется объектную модель,
то ищите по одному параметру,
а результат-массив перебирайте в цикле, сравнивая второй параметр.

(первым лучше делать тот параметр который даст наименьший массив)

PS если Характеристика жестко привязана к Номенклатуре, то достаточно искать по номенклатуре
13. Anton_new01 19.07.24 14:22 Сейчас в теме
(10) лучше через запросик получить цену.

Функция ПолучитьЦенуСоскидкой(ДокЗаказ, _Номенклатура,_Характеристика)
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Ссылка", ДокЗаказ);
	Запрос.УстановитьПараметр("Номенклатура", _Номенклатура);
	Запрос.УстановитьПараметр("Характеристика", _Характеристика);
	Запрос.Текст = "ВЫБРАТЬ
					|	ЗаказКлиентаТовары.Ссылка КАК Ссылка,
					|	ЗаказКлиентаТовары.Номенклатура КАК Номенклатура,
					|	ЗаказКлиентаТовары.Характеристика КАК Характеристика,
					|	ЗаказКлиентаТовары.Цена КАК Цена
					|ИЗ
					|	Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
					|ГДЕ
					|	ЗаказКлиентаТовары.Ссылка = &Ссылка
					|	И ЗаказКлиентаТовары.Номенклатура = &Номенклатура
					|	И ЗаказКлиентаТовары.Характеристика = &Характеристика";
	Выборка = Запрос.Выполнить().Выбрать();
	Если Выборка.Следующий() Тогда
		Цена = Выборка.Цена;
	Иначе
		Сообщить(СтрШаблон("Позиция %1  %2 в заказе %3 не найдена", _Номенклатура, _Характеристика, ДокЗаказ));
	КонецЕсли;
	
	Возврат Цена;
	
КонецФункции
Показать
14. spacecraft 19.07.24 16:21 Сейчас в теме
(13) Не факт, что это ссылка и что данные по ней актуальные.
15. user2033930 19.07.24 16:26 Сейчас в теме
(14) Авторка в (8) мамой клянётся!!!
16. Anton_new01 22.07.24 09:16 Сейчас в теме
(14) не факт.
На этот случай у нас есть пользователь который владеет информацией.
и если это Объект или что-то еще надеюсь он сообщит об этом.
Оставьте свое сообщение

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