Версия для печати темы (https://pro1c.org.ua/index.php?s=ee64f8ffc5f8762b74c7578294155672&showtopic=36146)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Работа с пречислениями (платформа 8.2.19.106)

Автор: andrew76 24.03.17, 18:03

Добрый всем вечер !

Имеется следующее перечисление- "Родственники".Задействовано в ТЧ справочника Сотрудники.
Почему то при переборе записей ТЧ значение реквизита Родственник(тип перечисление) можно прочитать
следующим образом:

Значение_реквизита=Строка(Родственник); //псевдокод

Если не использовать функцию Строка(),то на выходе пусто.В отладчике -тип Перечисление.

Кто с таким сталкивался ?

Автор: Vofka 27.03.17, 8:07

Покажите код функции полностью: что пишете, что не работает. Непонятно ж нифига.

Автор: Petre 27.03.17, 8:24

andrew76 @ 24.03.17, 18:03 * ,
И какой же тип у "Значение_реквизита"?

Автор: andrew76 27.03.17, 8:51

Цитата(Vofka @ 27.03.17, 11:07) *
Непонятно ж нифига.


Это точно. wink.gif

Для Каждого ТекущаяСтрока Из СоставСемьи Цикл 
      Родственник=Строка(ТекущаяСтрока.Родство);
КонецЦикла;


У реквизита Родство -тип Перечисление;Если убрать из кода функцию Строка,то переменная Родственник получает пустое значение.


Автор: Vofka 27.03.17, 9:01

Petre правильный вопрос задал. Похоже, что переменная, которой вы присваиваете значение не может впитать в себя это присваиваемое значение. Типы у Родственник и ТекущаяСтрока.Родство одинаковые?

Автор: andrew76 27.03.17, 9:16

Если в коде "Родственник=Строка(" , значит переменная Родственник имеет тип Строка.Мне нужно прочитать значение Перечисления,но почему-то
прочитать это значение я могу взяв его в качестве аргумента для функции Строка.На выходе значение соответственно преобразуется в строку в этом данном случае.Аналогично можно прочитать через функцию Сообщить().Может это особенности работы с перечислением в 8.2 ? Мне просто нужно прочитать
значение перечисления.

Автор: Vofka 27.03.17, 9:27

andrew76, вы либо давайте прямые ответы на вопросы, либо я удаляюсь из темы, потому что играть дальше в угадай мелодию становится не интересно.

Автор: andrew76 27.03.17, 9:29

Типы у Родственник и ТекущаяСтрока.Родство разные.Родственник -строка,ТекущаяСтрока.Родство-имеет тип Перечисление.

Автор: Petre 27.03.17, 9:40

andrew76 @ Сегодня, 9:16 * ,
Не понимаю, чего вы хотите. Если реквизит имеет тип "строка", то ему надо давать только строку. Функция "Строка()" преобразует всякие типы в строку. У вас все корректно происходит. Так чего же вы хотите?

Цитата(andrew76 @ 27.03.17, 9:16) *
Может это особенности работы с перечислением в 8.2 ?

Наведите примеры другого поведения с иным типом (кроме примитива)...

Автор: andrew76 27.03.17, 9:45

Мне просто нужно было получить значение перечисления,(его текстовое представление).

Автор: Petre 27.03.17, 9:54

andrew76 @ Сегодня, 9:45 * ,
Нет. Значение перечисления имеет тип перечисления. Представление перечисления вы и так получаете одним из вариантом ("Строка()").
Возможно, вы хотите получить имя метаданных значения перечисления. Тогда его следует получать из метаданных.

Автор: andrew76 27.03.17, 9:58

Нет,мне нужно было именно значение перечисления.В метаданных оно "обозвано" как представление.

Автор: Petre 27.03.17, 10:07

andrew76 @ Сегодня, 9:58 * ,
Тогда я не пойму, какой смысл присваивать значение перечисления (тип "перечислениессылка") реквизиту с типом "строка"? Поставьте у реквизита тип перечисления.

andrew76 @ Сегодня, 9:58 * ,
"представление" - это строка, формирующаяся по определенному алгоритму в зависимости от типа значения, его метасвойств (наименование, синоним...), свойств (код, номер, дата...) и текущего языка пользователя.

Автор: andrew76 27.03.17, 10:18

Результат

Цитата(Petre @ 27.03.17, 13:07) *
Тогда я не пойму, какой смысл присваивать значение перечисления (тип "перечислениессылка") реквизиту с типом "строка"? Поставьте у реквизита тип перечисления.


Не подходит,потому что мне надо заполнять в итоге этими значениями таблицу в файле Ms Word.Мне нужен тип-строка.

Тему можно закрывать.

Автор: andr_andrey 27.03.17, 14:43

Цитата(andrew76 @ 24.03.17, 19:03) *
Почему то при переборе записей ТЧ значение реквизита Родственник(тип перечисление) можно прочитать
следующим образом:


Потому что функция "Строка(Родственник)" возвращает "Синоним" значения или строковое представление значения (если синоним пустой), которое хранится в реквизите "Родственник".

Автор: andrew76 27.03.17, 15:30

Спасибо.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua