Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

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

mulla
читатель
офлайн
Дата регистрации: 03.08.2005
Сообщений: 106
Пост №1
 
04.08.2005 09:17

"Процедура ОбработкаПодбора(ВыбрНоменклатура)<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>КонецПроцедуры // ОбработкаПодбора()"

Dolter
читатель
офлайн
Дата регистрации: 27.07.2005
Сообщений: 17
Пост №2
 
04.08.2005 10:04

а что это за?...<br><br>перед перебором справочника системы создаем список значений, и в ту же переменную вешаем _выборку__справочник__, которую в дальнейшем сравниваем с _элементом__справочника_(!!)<br><br>в общем разберись что к чему и расскажи как должно было бы быть :-)

Dolter
читатель
офлайн
Дата регистрации: 27.07.2005
Сообщений: 17
Пост №3
 
04.08.2005 10:25

"Скорее всего там надоть что-о в таком роде:<br><br><br><br> ВыбрСистем = СоздатьОбъект("Справочник.Системы"); <br><br> ВыбрСистем.ИспользоватьВладельца(Контрагент); <br><br> Если ВыбрСистем.НайтиПоРеквизиту("Номенклатура", ВыбрНоменклатура, 0) = 0 Тогда<br><br> Предупреждение("Данной системы нет у клиента"); <br><br> Возврат; <br><br> КонецЕсли;"

mulla
читатель
офлайн
Дата регистрации: 03.08.2005
Сообщений: 106
Пост №4
 
04.08.2005 10:39

В общем, в акте оказанных услуг мы указываем номенклатуру услуг. Для контроля был создан подчиненный справочник у контрагента с названием "Сиситемы" куда записываются данные из номенклатуры по услугам. При заполнении акта нужно что бы он проверял если данная система у клиента, если данной системы нет, то он должен об этом сообщить (что бы лишние услуги не впарили клиенту!!!). По переменной Система я уже тоже понял, но он и с ней и без нее все равно пишет что данной системы у клиента нет, а она у него есть! Короче после обеда попробую проверить твой "кусок". Может еще что посоветуешь???<br><br>Благодарен за ответ!!! :)

Dolter
читатель
офлайн
Дата регистрации: 27.07.2005
Сообщений: 17
Пост №5
 
04.08.2005 12:19

в твоем коде, даже если ты приведешь в порядок переменные, все равно работать не будет, т.к. проверяется первый элемент только...<br><br>Т.ч. если делать перебором, то надо вводить еще одну переменную флаг...

mulla
читатель
офлайн
Дата регистрации: 03.08.2005
Сообщений: 106
Пост №6
 
04.08.2005 12:31

Вопрос: "Как ее ввести и где?"

Dolter
читатель
офлайн
Дата регистрации: 27.07.2005
Сообщений: 17
Пост №7
 
04.08.2005 12:45

" Если Контрагент.Выбран () = 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>"

mulla
читатель
офлайн
Дата регистрации: 03.08.2005
Сообщений: 106
Пост №8
 
04.08.2005 13:43

Не работает, пишет то же самое :(

Dolter
читатель
офлайн
Дата регистрации: 27.07.2005
Сообщений: 17
Пост №9
 
04.08.2005 13:47

Сори, тормознул :-)<br><br><br><br>Если ВыбрСистем.Номенклатура = ВыбрНоменклатура Тогда <br><br><br><br>Ну или как там называется реквизит в котором номенклатура лежит...<br><br>

Голос за кадром
читатель
офлайн
Дата регистрации: 12.08.2005
Сообщений: 6
Пост №10
 
12.08.2005 03:44

конкретно с контрагентом поможет:<br><br>если пустоеЗначение( Контрагент)=0 тогда ...<br><br><br><br>видимо контрагент иногда имеет не агрегатный тип, вот и глючит.

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация