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