Имя: Пароль:
1C
 
Как правильно написать условие
,
0 dancing_rabbit
 
21.08.19
11:48
есть конфигурация тестовая, пустая. Есть документ ПродажаТовара, хочу сделать движение, но есть условие, если ТипНоменклатуры = Товар, тогда одно значение иначе другое, но что-то видимо я не так делаю, как правильно найти не могу.У меня так:


Процедура ОбработкаПроведения(Отказ, Режим)
    
    Движения.Проводки.Записывать = Истина;
    Для Каждого стр Из Товары Цикл
        Движение = Движения.Проводки.Добавить();
        Движение.СчетДт = ПланыСчетов.Бухгалтерский.счет01;
        Движение.СчетКт = ПланыСчетов.Бухгалтерский.счет02;
        Движение.Период = Дата;
        Если стр.Номенклатура.ТипНоменклатуры = Строка("Товар" ) тогда //Вот эта строка не нравится,т.к конечно работает, но как правильно то должно быть?
            
        Движение.сумма = стр.Цена*100;
    иначе
        Движение.сумма = стр.Цена/100;
        конецЕсли;
        
        
        Движение.содержание = комментарий;
        
        Движение.Номенклатура = стр.Номенклатура;
    КонецЦикла;


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


Заранее спасибо)
1 ДенисЧ
 
21.08.19
11:50
Если стр.Номенклатура.ТипНоменклатуры = Перечисления.ТипыНоменклптурыТовар

Или какой там у тебя тип типа?
2 dancing_rabbit
 
21.08.19
11:51
(1) ТипНоменклатуры-это справочник содержит стандартные реквизиты(код, наименование);
3 rintik
 
21.08.19
11:54
Наверное лучше запросом к тч товары. В запросе же и вычислить сумму. Обойти выборку без всяких условий.
4 rintik
 
21.08.19
11:56
(3) При этом при наличии дублей строк по номенклатуре - не будут делаться лишние движения.
5 Cyberhawk
 
21.08.19
11:58
(4) Что за лишние движения?
6 dancing_rabbit
 
21.08.19
12:01
Т.е я создаю функцию Насервере, которая возвращает типНоменклатуры, а потом вызываю её в процедуре обработкиПроведения?
7 Ёпрст
 
21.08.19
12:04
(2) задай предопределенный элемент в справочнике, его и используй в условии.
8 Ёпрст
 
21.08.19
12:05
Ну и
>>>Строка("Товар" )

строку приводить к строке - тут что-то в консерватории поменять надо.
9 dancing_rabbit
 
21.08.19
12:12
(8) вот я согласно, что что-то не так, но вот без преобразования типа не работает.. вот и не могу понять почему, у меня и вопрос задался, что что-то не то, как-то по другому надо...
10 dancing_rabbit
 
21.08.19
12:13
(7) и вот если честно два элемента предопределённые, Товар и Услуга....
11 dancing_rabbit
 
21.08.19
12:18
вот так тоже работает, справочники.ТипНоменклатуры.НайтиПоНаименованию("Товар")
но меня больше интересует, как должно быть правильно.
12 catena
 
21.08.19
12:43
(11)Если он предопределенный, то справочники.ТипНоменклатуры.Товар
13 Дмитрий
 
21.08.19
13:10
если говорить о правильном преобразованиии типов, то

Строка(стр.Номенклатура.ТипНоменклатуры)  = "Товар"

коряво, но должно сработать )) (9)
14 Ёпрст
 
21.08.19
13:14
(10) тогда, как в (12):


Ежели стр.Номенклатура.ТипНоменклатуры =  справочники.ТипНоменклатуры.Товар Тогдашеньки
    ...
ИначеЕжели  стр.Номенклатура.ТипНоменклатуры =  справочники.ТипНоменклатуры.Услуга Тогдашеньки
...
Иначе ой-ли;