В цикле не находит нужную позицию из заказа поставщика в заказе клиента

1. Lllypuk 05.04.22 15:43 Сейчас в теме
Всем привет! Подскажите пожалуйста, где моя ошибка. Мне необходимо когда изменяют цену в "Заказе поставщика" обратиться по назначению этой строки к "Заказу клиента" и найти там такую же номенклатуру для дальнейших действий. С 1 строкой в табличной части заказа поставщику всё работает на УРА! а вот если перехожу на вторую строчку сразу ошибка о "сравнении типов". Отладкой прошелся, цикл по заказу клиента почему то всегда видит только 1 строку с номенклатурой, хотя я работаю уже со 2 строкой.
За ранее спасибо за ответы.
Пробывал так.
ИзмененнаяЦена  = Объект.Товары[Элементы.Товары.ТекущаяСтрока];
			
			СсылкаЗК = ПолучитьЗначениеРеквизита(ИзмененнаяЦена.Назначение, "Заказ");
			ОбъектЗК = СсылкаЗК.ПолучитьОбъект();	
			
			Если Объект.ЦенаВключаетНДС = Истина И ОбъектЗК.Валюта = Объект.Валюта Тогда
				Для Каждого СтрокаКлиента Из ОбъектЗК.Товары Цикл 
					Если	СтрокаКлиента.Номенклатура = ИзмененнаяЦена.Номенклатура Тогда
						Сообщить(СтрокаКлиента.Цена);
						Сообщить(ИзмененнаяЦена.Цена);  
						Расчет = СтрокаКлиента.Цена / ИзмененнаяЦена.Цена;  
					ИначеЕсли Расчет < 0.95 Тогда
						Сообщить("Товар111 " + ИзмененнаяЦена.Номенклатура + " МЕНЬШЕ 15%");	
					КонецЕсли;
				КонецЦикла; 
			КонецЕсли;

Показать


И так тоже не прокатывает.
ИзмененнаяЦена  = Объект.Товары[Элементы.Товары.ТекущаяСтрока];
			
			СсылкаЗК = ПолучитьЗначениеРеквизита(ИзмененнаяЦена.Назначение, "Заказ");
			ОбъектЗК = СсылкаЗК.ПолучитьОбъект();
                        Если Объект.ЦенаВключаетНДС = Ложь И ОбъектЗК.Валюта = Объект.Валюта Тогда
                         	СтрокаКлиента = ОбъектЗК.Товары.Найти(ИзмененнаяЦена.Номенклатура, "Номенклатура");				
					сообщить(СтрокаКлиента.Наименование);			
				 Если	СтрокаКлиента = ИзмененнаяЦена.Номенклатура Тогда
					Сообщить(СтрокаКлиента.Цена);
					Сообщить(ИзмененнаяЦена.Цена);
					Расчет = СтрокаКлиента.Цена / ИзмененнаяЦена.Цена;  
					Сообщить("Товар222 " + ИзмененнаяЦена.Номенклатура + " МЕНЬШЕ 15%");	
				КонецЕсли;
			КонецЕсли;			
	

Показать
По теме из базы знаний
Найденные решения
4. user1203706 13 05.04.22 15:58 Сейчас в теме
(1) надо использовать НайтиПоИдентификатору(<тут индекс текущей строки, т.е твоя ТекущаяСтрока>)
user1619761; ya.Avoronov; +2 Ответить
8. user1203706 13 05.04.22 16:50 Сейчас в теме
(7) к такой же, это к какой ? Просто массивСтрок = ТвойЗаказКлиентоса.ТвояТЧТовары.НайтиСтроки(Новый Структура("Номенклатура",ТвояСтрока.Номенклатура);

далее бегай по массиву, устанавливай, чего там надобно..
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ya.Avoronov 115 05.04.22 15:51 Сейчас в теме
ИзмененнаяЦена = Объект.Товары[Элементы.Товары.ТекущаяСтрока];

Тут кажется чушня. пользуйте идентификаторы строки или текущие данные
3. Lllypuk 05.04.22 15:57 Сейчас в теме
(2) Переделал на текущие данные.
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;

Ошибка при получении значения атрибута контекста (ТекущиеДанные)
по причине:
Текущие данные таблицы недоступны на сервере
4. user1203706 13 05.04.22 15:58 Сейчас в теме
(1) надо использовать НайтиПоИдентификатору(<тут индекс текущей строки, т.е твоя ТекущаяСтрока>)
user1619761; ya.Avoronov; +2 Ответить
5. Lllypuk 05.04.22 16:41 Сейчас в теме
(4) Сделал так
СтрокаКоллекции = Объект.Товары.НайтиПоИдентификатору(Элементы.Товары.ТекущаяСтрока);
ИндексСтрокиКоллекции = Объект.Товары.Индекс(СтрокаКоллекции);

Индекс выводит, а как теперь из заказа поставщику найти по индексу эту же номенклатуру из строки в табличной части заказа клиента ?
6. user1203706 13 05.04.22 16:45 Сейчас в теме
(5) ты же ужо получил строку коллекции по идентификатору, можешь смотреть её реквизиты.
user1619761; +1 Ответить
7. Lllypuk 05.04.22 16:46 Сейчас в теме
(6) Так это строка из заказа поставщику, как теперь мне обратиться к такой же строчке в заказе клиента?
8. user1203706 13 05.04.22 16:50 Сейчас в теме
(7) к такой же, это к какой ? Просто массивСтрок = ТвойЗаказКлиентоса.ТвояТЧТовары.НайтиСтроки(Новый Структура("Номенклатура",ТвояСтрока.Номенклатура);

далее бегай по массиву, устанавливай, чего там надобно..
9. Lllypuk 05.04.22 16:55 Сейчас в теме
(8)Где номенклатура совпадает
СтрокаЗаказПоставщика.Номенклатура = СтрокаЗаказКлиента.Номенклатура
10. user1203706 13 05.04.22 16:59 Сейчас в теме
(9) ну и делай НайтиСтроки у табличной части нужного дока.. будешь иметь массив строк с нужным отбором, там просто меняй значения и записывай объект потом. Всё.
11. FatPanzer 05.04.22 23:28 Сейчас в теме
Так и представляю себе - я что-то заказал в магазине, мы согласовали товары и цены, а потом магазин вдруг в одностороннем порядке начинает что-то изменять в моем заказе в зависимости от проблем со своими поставщиками...
12. Lllypuk 06.04.22 10:42 Сейчас в теме
(10) Спасибо, всё получилось!
Оставьте свое сообщение

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