Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 15:20

Где ошибка

Автор ab30ru, 22 июн 2017, 11:55

0 Пользователей и 1 гость просматривают эту тему.

ab30ru

Помогите пожалуйста найти ошибку в коде
&НаКлиенте
Процедура Заполнить   (Элемент)
   Если объект.ФормаОбучения="Заочная" тогда  Сообщить ("1")КонецЕсли;
   Если объект.ФормаОбучения="Очная" тогда  Сообщить ("2") КонецЕсли;
КонецПроцедуры

Если просто по команде Сообщить (объект.ФормаОбучения), то выводится и "очная" и  "Заочная", а по условию ничего не выходит

ilyay

Цитата: ab30ru от 22 июн 2017, 11:55
Помогите пожалуйста найти ошибку в коде
&НаКлиенте
Процедура Заполнить   (Элемент)
   Если объект.ФормаОбучения="Заочная" тогда  Сообщить ("1")КонецЕсли;
   Если объект.ФормаОбучения="Очная" тогда  Сообщить ("2") КонецЕсли;
КонецПроцедуры

Если просто по команде Сообщить (объект.ФормаОбучения), то выводится и "очная" и  "Заочная", а по условию ничего не выходит

Просто сделать так, но не значит, что надо делать так:
Если Строка(объект.ФормаОбучения)="Очная"

oleg-x

Цитата: ab30ru от 22 июн 2017, 11:55
Помогите пожалуйста найти ошибку в коде
&НаКлиенте
Процедура Заполнить   (Элемент)
   Если объект.ФормаОбучения="Заочная" тогда  Сообщить ("1")КонецЕсли;
   Если объект.ФормаОбучения="Очная" тогда  Сообщить ("2") КонецЕсли;
КонецПроцедуры

Если просто по команде Сообщить (объект.ФормаОбучения), то выводится и "очная" и  "Заочная", а по условию ничего не выходит
Скорее всего реквизит ФормаОбучения это справочник или перечисление и в условие надо писать:
Если объект.ФормаОбучения= Перечисление/Справочник.НашЭлемент Тогда
    Сообщить ("1");
ИначеЕсли объект.ФормаОбучения= Перечисление/Справочник.НашЭлемент Тогда
    Сообщить ("2");
КонецЕсли;
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

ab30ru

Цитата: oleg-x от 22 июн 2017, 12:08
Цитата: ab30ru от 22 июн 2017, 11:55
Помогите пожалуйста найти ошибку в коде
&НаКлиенте
Процедура Заполнить   (Элемент)
   Если объект.ФормаОбучения="Заочная" тогда  Сообщить ("1")КонецЕсли;
   Если объект.ФормаОбучения="Очная" тогда  Сообщить ("2") КонецЕсли;
КонецПроцедуры

Если просто по команде Сообщить (объект.ФормаОбучения), то выводится и "очная" и  "Заочная", а по условию ничего не выходит
Скорее всего реквизит ФормаОбучения это справочник или перечисление и в условие надо писать:
Если объект.ФормаОбучения= Перечисление/Справочник.НашЭлемент Тогда
    Сообщить ("1");
ИначеЕсли объект.ФормаОбучения= Перечисление/Справочник.НашЭлемент Тогда
    Сообщить ("2");
КонецЕсли;

ФормаОбучения это перечисление

oleg-x

Тогда либо как ilyay написал либо
Перечисления.ФормаОбучения.НужноеПеречисление
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

ilyay

На клиенте и на сервере работает ПредопределенноеЗначение("Перечисление.ИмяПеречисления.Значение")

ab30ru

Цитата: ilyay от 22 июн 2017, 12:08
Цитата: ab30ru от 22 июн 2017, 11:55
Помогите пожалуйста найти ошибку в коде
&НаКлиенте
Процедура Заполнить   (Элемент)
   Если объект.ФормаОбучения="Заочная" тогда  Сообщить ("1")КонецЕсли;
   Если объект.ФормаОбучения="Очная" тогда  Сообщить ("2") КонецЕсли;
КонецПроцедуры

Если просто по команде Сообщить (объект.ФормаОбучения), то выводится и "очная" и  "Заочная", а по условию ничего не выходит

Просто сделать так, но не значит, что надо делать так:
Если Строка(объект.ФормаОбучения)="Очная"
С этим условием получилось. Немного переработал и поместил его в КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
Смысл такой, если Форма обучения = Очная, то в регистр накопления ставится 1, если Заочная, то 0. Поместил код
Если Строка(объект.ФормаОбучения)="Очная" Тогда Движение.ОчнаяФорма = 1
   ИначеЕсли Строка(объект.ФормаОбучения)="Заочная" Тогда Движение.ОчнаяФорма = 0
   КонецЕсли;
Выдает ошибку Переменная не определена (объект)

ilyay

Во-первых, в этом случае надо использовать сравнение с перечислением, как я написал выше.
Во-вторых, "Объект." надо вообще убрать (это в форме так, а не в модуле объекта), ну или заменить на "ЭтотОбъект.".

ab30ru

Цитата: ilyay от 22 июн 2017, 12:35
Во-первых, в этом случае надо использовать сравнение с перечислением, как я написал выше.
Во-вторых, "Объект." надо вообще убрать (это в форме так, а не в модуле объекта), ну или заменить на "ЭтотОбъект.".
Сделал    
Если ЭтотОбъект.ФормаОбучения="Очная" Тогда Движение.ОчнаяФорма = 1
   ИначеЕсли Этотобъект.ФормаОбучения="Заочная" Тогда Движение.ОчнаяФорма = 0
   КонецЕсли;
Ошибку не выдает, но и не заполняет. Помогите пожалуйста

ilyay

Первый пункт не выполнили.
Если ЭтотОбъект.ФормаОбучения=Перечисления.ФормыОбучения.Очная

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск