PDA

Просмотр полной версии : Проблема с циклом



qwerty3
29.01.2015, 16:34
У меня тема аптека. есть перечень лекарств,, которые можно продать людям и купить у поставщика. есть виды измерения товара(граммы, упаковки и штуки).Есть количество упаковок, мы можем выбрать, сколько в упаковке пластинок с лекарствами и таблетками (например, 1:10 означает 1 пластинка по 10 таблеток). При выборе измерения товара(упаковки), программа умножает 1*10 * количество упаковок, т.е. мы получаем общее количество таблеток. на основании общего количества мы формируем цену и т.д. Итак, сама проблема: у некоторых лекарств при заполнении всех данных и выборе измерения (упаковка) у некоторых лекарств ничего не происходит, т.е. не происходит умножения 1*10 * количество упаковок. при анализе даннной странности я пришел к циклу
ОбТов = Элемент.Родитель.ТекущиеДа нные;
Сер= ОбТов.Серия;
ЕдИзм = ОбТов.ЕдиницыИзмерения;
Если ЕдИзм = ЕдИзмер("Упаковка") Тогда
Сообщить(Сер);//здесь у всех лекарств выводит сообщение
Если Сер = Серии("1:10") Тогда
Сообщить(Сер);//здесь у некоторых лекарств выводит сообщение
КонецЕсли;
КонецЕсли;
Функция Серии(Строк)
Возврат Справочники.Серии.НайтиПоН аименованию(Строк);
КонецФункции
если вы зайтете в конфигурацию, там в документе поступление товаров есть документ, в котором 2 лекарства. с одним все отлично, со вторым беда.

avm3110
30.01.2015, 07:30
т.е. не происходит умножения 1*10 * количество упаковок
А поставить в отладчике точку остановки, войти в цикл и посмотреть что и как происходит - нельзя? Какой смысл гадать "со стороны" там, где легко можно самому посмотреть :confused:

alexandr_ll
31.01.2015, 09:06
Вы же видите, что не выполняется условие:
Если Сер = Серии("1:10") Тогда
Потому что в функции Серии(Строк) он не находит серию с точным наименованием "1:10"
Проверяйте наименование