Проверьте модуль!!! Где ошибка? Глючит после Если Контрагент.Выбран () = 1 Тогда

Новая тема
"Процедура ОбработкаПодбора(ВыбрНоменклатура)<br><br> Если ВыбрНоменклатура.ТипНоменклатуры <> Перечисление.ТипыНоменклатуры.Услуга Тогда <br><br> Предупреждение ("Нельзя оформить данным видом документов!", 5);<br><br> Возврат;<br><br> КонецЕсли;  <br><br> ВыбратьСтроки();<br><br> Пока ПолучитьСтроку() = 1 Цикл<br><br>    Если Услуга = ВыбрНоменклатура Тогда<br><br>        Предупреждение("Значение уже выбрано", 10);<br><br> Возврат;<br><br> КонецЕсли;<br><br> <br><br> КонецЦикла; <br><br> Если Контрагент.Выбран () = 1 Тогда <br><br> Система = СоздатьОбъект("СписокЗначений");<br><br>    ВыбрСистем = СоздатьОбъект("Справочник.Системы");<br><br> ВыбрСистем.ИспользоватьВладельца(Контрагент);<br><br> ВыбрСистем.ВыбратьЭлементы();<br><br> Пока ВыбрСистем.ПолучитьЭлемент() = 1 Цикл <br><br> Система = ВыбрСистем;<br><br> Если Система <> ВыбрНоменклатура Тогда      //Система<br><br>    Предупреждение("Данной системы нет у клиента");  <br><br> Возврат;<br><br> КонецЕсли; <br><br> КонецЦикла; <br><br> КонецЕсли;<br><br> Кол = 1;<br><br> Если ВвестиЧисло(Кол, "Введите количество", 14, 3) = 0 Тогда<br><br>   Возврат;<br><br> ИначеЕсли Кол = 0 Тогда<br><br> Возврат;<br><br> КонецЕсли;<br><br> <br><br> НоваяСтрока();<br><br> Услуга = ВыбрНоменклатура;<br><br> Количество = Кол;<br><br> АктивизироватьСтроку();<br><br> Пересчет("Услуга");<br><br> <br><br>КонецПроцедуры // ОбработкаПодбора()"
а что это за?...<br><br>перед перебором справочника системы создаем список значений, и в ту же переменную вешаем _выборку__справочник__, которую в дальнейшем сравниваем с _элементом__справочника_(!!)<br><br>в общем разберись что к чему и расскажи как должно было бы быть :-)
"Скорее всего там надоть что-о в таком роде:<br><br><br><br> ВыбрСистем = СоздатьОбъект("Справочник.Системы"); <br><br> ВыбрСистем.ИспользоватьВладельца(Контрагент); <br><br> Если ВыбрСистем.НайтиПоРеквизиту("Номенклатура", ВыбрНоменклатура, 0) = 0 Тогда<br><br> Предупреждение("Данной системы нет у клиента"); <br><br> Возврат; <br><br> КонецЕсли;"
В общем, в акте оказанных услуг мы указываем номенклатуру услуг. Для контроля был создан подчиненный справочник у контрагента с названием "Сиситемы" куда записываются данные из номенклатуры по услугам. При заполнении акта нужно что бы он проверял если данная система у клиента, если данной системы нет, то он должен об этом сообщить (что бы лишние услуги не впарили клиенту!!!). По переменной Система я уже тоже понял, но он и с ней и без нее все равно пишет что данной системы у клиента нет, а она у него есть! Короче после обеда попробую проверить твой "кусок". Может еще что посоветуешь???<br><br>Благодарен за ответ!!! :)
в твоем коде, даже если ты приведешь в порядок переменные, все равно работать не будет, т.к. проверяется первый элемент только...<br><br>Т.ч. если делать перебором, то надо вводить еще одну переменную флаг...
Вопрос: "Как ее ввести и где?"
"    Если Контрагент.Выбран () = 1 Тогда <br><br>        есть_система = 0;<br><br>        ВыбрСистем = СоздатьОбъект("Справочник.Системы"); <br><br>        ВыбрСистем.ИспользоватьВладельца(Контрагент); <br><br>        ВыбрСистем.ВыбратьЭлементы(); <br><br>        Пока ВыбрСистем.ПолучитьЭлемент() = 1 Цикл <br><br>            Если ВыбрСистем.ТекущийЭлемент() = ВыбрНоменклатура Тогда<br><br>                есть_система = 1; <br><br>                Прервать;; <br><br>            КонецЕсли; <br><br>        КонецЦикла;<br><br>        Если есть_система = 0 Тогда<br><br>            Предупреждение("Данной системы нет у клиента"); <br><br>            Возврат; <br><br>        КонецЕсли;<br><br>    КонецЕсли;<br><br>"
Не работает, пишет то же самое :(
Сори, тормознул :-)<br><br><br><br>Если ВыбрСистем.Номенклатура = ВыбрНоменклатура Тогда <br><br><br><br>Ну или как там называется реквизит в котором номенклатура лежит...<br><br>
конкретно с контрагентом поможет:<br><br>если пустоеЗначение( Контрагент)=0 тогда ...<br><br><br><br>видимо контрагент иногда имеет не агрегатный тип, вот и глючит.
Читают тему
(гостей: 1)

Быстрый переход