Добрый день! помогите разобраться. В копии тестирую, работает как надо. в рабочей базе не находит, хотя совпадение есть
Функция ПолучитьЦенуСоскидкой(ДокЗаказ, _Номенклатура,_Характеристика)
ТабТовары = ДокЗаказ.Товар;
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Номенклатура", _Номенклатура);
ПараметрыОтбора.Вставить("Характеристика", _Характеристика);
НайденныеСтроки = ТабТовары.НайтиСтроки(ПараметрыОтбора);
Если НайденныеСтр.Количество() > 0 Тогда
_Цена = НайденныеСтр[0].Цена;
Иначе
сообщить("Позиция " + _Номенклатура + " "+ _Характеристика + " в заказе не найдена");
Конецесли;
Возврат _Цена;
КонецФункции
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Изначально в копии у меня не работало тоже, делала проверки и даже проверила через типа
Если _Номенклатура = стр.Номенклатура тогда, в этот момент заработало и я постепенно, убирая проверки, вернула все к первоначальному коду и всё продолжило работать. вот такая странность
Если _Номенклатура = стр.Номенклатура тогда, в этот момент заработало и я постепенно, убирая проверки, вернула все к первоначальному коду и всё продолжило работать. вот такая странность
(10) если вся инфа в базе, то обычно запросы используют.
если так хочется объектную модель,
то ищите по одному параметру,
а результат-массив перебирайте в цикле, сравнивая второй параметр.
(первым лучше делать тот параметр который даст наименьший массив)
PS если Характеристика жестко привязана к Номенклатуре, то достаточно искать по номенклатуре
если так хочется объектную модель,
то ищите по одному параметру,
а результат-массив перебирайте в цикле, сравнивая второй параметр.
(первым лучше делать тот параметр который даст наименьший массив)
PS если Характеристика жестко привязана к Номенклатуре, то достаточно искать по номенклатуре
(10) лучше через запросик получить цену.
Функция ПолучитьЦенуСоскидкой(ДокЗаказ, _Номенклатура,_Характеристика)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", ДокЗаказ);
Запрос.УстановитьПараметр("Номенклатура", _Номенклатура);
Запрос.УстановитьПараметр("Характеристика", _Характеристика);
Запрос.Текст = "ВЫБРАТЬ
| ЗаказКлиентаТовары.Ссылка КАК Ссылка,
| ЗаказКлиентаТовары.Номенклатура КАК Номенклатура,
| ЗаказКлиентаТовары.Характеристика КАК Характеристика,
| ЗаказКлиентаТовары.Цена КАК Цена
|ИЗ
| Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
|ГДЕ
| ЗаказКлиентаТовары.Ссылка = &Ссылка
| И ЗаказКлиентаТовары.Номенклатура = &Номенклатура
| И ЗаказКлиентаТовары.Характеристика = &Характеристика";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Цена = Выборка.Цена;
Иначе
Сообщить(СтрШаблон("Позиция %1 %2 в заказе %3 не найдена", _Номенклатура, _Характеристика, ДокЗаказ));
КонецЕсли;
Возврат Цена;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот