Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как заполнить перечисление программно          
Klotilda Подменю пользователя
сообщение 27.11.15, 15:27
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 8
Спасибо сказали: 0 раз
Рейтинг: 0

Здравствуйте! Мне надо из файла заполнить перечисление. Такой код не помогает
  СтавкиНДС            =Перечисления.СтавкиНДС.Получить(ЗначСтавкаНДС);
          Если СтавкиНДС    = Неопределено ИЛИ СокрЛП(ЗначСтавкаНДС)="" Тогда
        ЗначениеНДС            =СтавкиНДС.БезНДС;
              
          КонецЕсли;


Очень прошу помощи

Нонна Подменю пользователя
сообщение 27.11.15, 16:35
Сообщение #2

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Харьков
Спасибо сказали: 50 раз
Рейтинг: 0

СокрЛП работает со строкой, а метод Получить работает с индексом (числом). Это правильно?

Klotilda Подменю пользователя
сообщение 27.11.15, 17:10
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 8
Спасибо сказали: 0 раз
Рейтинг: 0

ЗначСтавкаНДС это строка. мне надо сравнить , есть такое значение в Перечислении и если нет записать. Никак не получается сделать

Petre Подменю пользователя
сообщение 27.11.15, 17:11
Сообщение #4

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Опишите переменные.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

VikingKosmo Подменю пользователя
сообщение 27.11.15, 17:11
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 44
Из: Харьков
Спасибо сказали: 12 раз
Рейтинг: 0

Цитата(Klotilda @ 27.11.15, 15:27) *
Здравствуйте! Мне надо из файла заполнить перечисление. Такой код не помогает
  СтавкиНДС            =Перечисления.СтавкиНДС.Получить(ЗначСтавкаНДС);
          Если СтавкиНДС    = Неопределено ИЛИ СокрЛП(ЗначСтавкаНДС)="" Тогда
        ЗначениеНДС            =СтавкиНДС.БезНДС;
              
          КонецЕсли;


Очень прошу помощи


Собственно приведенный код и не должен работать. А искать ссылку на значение перечисления по имени можно, например, так:
Функция НайтиВидСообщения(прм_имя)
    имя=СокрЛП(прм_имя);
    Для Каждого эл из Метаданные.Перечисления.ИмяПеречисления.ЗначенияПеречисления Цикл
        Если СокрЛП(эл.Синоним)=имя Тогда
            Возврат Вычислить("Перечисления.ИмяПеречисления."+эл.Имя);
        КонецЕсли;    
    КонецЦикла;
    Возврат Неопределено;
КонецФункции

Petre Подменю пользователя
сообщение 27.11.15, 17:14
Сообщение #6

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Цитата(Klotilda @ 27.11.15, 17:10) *
ЗначСтавкаНДС это строка. мне надо сравнить , есть такое значение в Перечислении и если нет записать. Никак не получается сделать

Во-первых, что содержит строка? Число индекса, предположительное имя значения перечисления, предположительный синоним значения перечисления.
Во-вторых, что значит "если нет записать"? Значения перечислений создаются на уровне конфигурации.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Klotilda Подменю пользователя
сообщение 30.11.15, 9:30
Сообщение #7

Молчаливый
*
Группа: Пользователи
Сообщений: 8
Спасибо сказали: 0 раз
Рейтинг: 0

спасибо большое

Klotilda Подменю пользователя
сообщение 30.11.15, 11:05
Сообщение #8

Молчаливый
*
Группа: Пользователи
Сообщений: 8
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(VikingKosmo @ 27.11.15, 17:11) *
Собственно приведенный код и не должен работать. А искать ссылку на значение перечисления по имени можно, например, так:
Функция НайтиВидСообщения(прм_имя)
    имя=СокрЛП(прм_имя);
    Для Каждого эл из Метаданные.Перечисления.ИмяПеречисления.ЗначенияПеречисления Цикл
        Если СокрЛП(эл.Синоним)=имя Тогда
            Возврат Вычислить("Перечисления.ИмяПеречисления."+эл.Имя);
        КонецЕсли;    
    КонецЦикла;
    Возврат Неопределено;
КонецФункции


код не работает. можно как-то проще сделать?

lex2707 Подменю пользователя
сообщение 01.12.15, 21:54
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 28
Спасибо сказали: 2 раз
Рейтинг: 0

Попытка

НайденоЗначение = Перечисления.СтавкиНДС[СокрЛП(ИмяСтавкиДляПоиска)]
//выполняем действия если значение найдено
Исключение
//выполняем действия если значение не найдено
Конецпопытки


Сообщение отредактировал Vofka - 03.12.15, 9:11

Нонна Подменю пользователя
сообщение 02.12.15, 18:53
Сообщение #10

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Харьков
Спасибо сказали: 50 раз
Рейтинг: 0

Цитата(Klotilda @ 30.11.15, 11:05) *
код не работает. можно как-то проще сделать?

Вместо: Вычислить("Перечисления.ИмяПеречисления."+эл.Имя); попробуйте: Вычислить("""Перечисления.ИмяПеречисления.""+эл.Имя");


Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.04.24, 16:27
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!