Имя: Пароль:
1C
1С v8
Как правильно прописать условие?
0 Leada
 
10.04.20
12:40
Здравствуйте. Я работаю над созданием билетной кассы.
Начну с общего описания:
У меня есть справочник "тит_КатегорияБилета" в нём я указываю наименование билета, цену и тип билета.
В типе билета указывается информация из созданного мной перечисления "тит_Типбилета" экскурсия или входной билет.
Так же есть справочник "тит_Экскурсоводы" где перечисляю экскурсоводов и так же есть вариант "без экскурсовода".
И есть документ "тит_Билет", где в свою очередь есть табличная часть. В табличной части такие реквизиты: КатегорияБилета, Экскурсовод, Цена, Количество, Сумма.

И вот с чем возник вопрос: Как сделать что бы   когда выбиралась категория билета с указанными типом билета "входной билет" в экскурсоводе выставлялось "без экскурсовода"?
1 lodger
 
10.04.20
12:43
(0) а) при создании по входящему параметру
б) в уже живой форме в событии ПриИзменении
2 Ненавижу 1С
 
гуру
10.04.20
12:44
используй пустую ссылку вместо "без экскурсовода"
3 lodger
 
10.04.20
12:44
короче, вам надо базовый курс программирования на 1с сперва пройти.
4 Leada
 
10.04.20
12:48
(1) О спасибо большое, попробую!) (3) Да, на данный момент прохожу курсы и в принципе стараюсь учиться.Начала обучение полтора месяца назад. Извините что отвлекаю)

(2) Спасибо, приступаю к реализации)
5 Leada
 
10.04.20
13:34
(1) А можно по подробнее пункт "а"? Не очень поняла.
6 Ёпрст
 
10.04.20
13:45
(0) "без экскурсовода" сделай предопределенным элементом этого справочника. Потом уже в ПриИзменении нужного реквизита воткнешь, что,
Ежели категориябилета.тип = нужный тип, тогда экскурсовод = справочники.экскурсоводы.безЭкскурсовода.
7 Ёпрст
 
10.04.20
13:45
и усё
8 Leada
 
10.04.20
14:10
(6)  прописываю тогда так?
Функция ПолучитьТипБилетаНаСервере()
Возврат Перечисления.тит_ТипБилета.ВходнойБилет;
КонецФункции;

Элементы.<Название табличной части>.ТекущиеДанные.КатегорияБилета.ТипБилета = ПолучитьТипБилетаНаСервере() тогда
и.т.
9 Ёпрст
 
10.04.20
14:22
(8) неа
10 Ёпрст
 
10.04.20
14:32
(8) тип того (не оптимально, но, сойдет для области)

&НаКлиенте
Процедура ИмяТабличнойЧастиКатегорияБилетаПриИзменении(Элемент)
    ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
        Если ТекущаяСтрока.КатегорияБилета.ТипБилета  = ПредопределенноеЗначение("Перечисление.тит_Типбилета.Хрень") Тогда
             ТекущаяСтрока.Куровод = ПредопределенноеЗначение("Справочник.Куроводы.БезКуровода");
        КонецЕсли;
11 Ёпрст
 
10.04.20
14:33
а чорт.. ТипБилета на клиенте так не получишь, придётся на сервер топать за реквизитом
12 Leada
 
10.04.20
14:56
(10)
13 Leada
 
10.04.20
15:00
(10) &НаСервере
Функция ПолучитьЗначениеВходнойБилет()
    
    ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
    ТекущаяСтрока.КатегорияБилета.ТипБилета  = ПредопределенноеЗначение("Перечисление.тит_Типбилета.ВходнойБилетНесоставной")

КонецФункции



&НаКлиенте
Процедура СоставКатегорияБилетаПриИзменении(Элемент)
    
    Если ПолучитьЗначениеВходнойБилет() тогда
        Элементы.Состав.ТекущиеДанные.Экскурсовод = ПредопределенноеЗначение("Справочник.Экскурсоводы.БезКуровода");
        КонецЕсли;

КонецПроцедуры

Может так сработать?