8.х Создание набора констант !

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем New1CCoder8, 10 апр 2008.

  1. TopicStarter Overlay
    New1CCoder8
    Offline

    New1CCoder8

    Регистрация:
    19 мар 2008
    Сообщения:
    39
    Симпатии:
    0
    Баллы:
    1
    Везде написано, что создание набора констант задается командой:
    НаборКонстант = Константы.СоздатьНабор("Список констант");
    При этом метод СоздатьНабор() создаст объект типа "КонстантыНабор".
    Свойствами этого объекта будут все имена констант, которые вошли в
    список констант (перечисляются через запятую), переданный методу СоздатьНабор() в качестве параметра.
    В справке 1С дан пример:
    // Создание набора по строке
    НаборКонстант = Константы.СоздатьНабор("Директор,Бухгалтер");
    Однако при компиляции ругается на ошибку вызова данного метода, говоря: недопустимое значение параметра
    (параметр номер "1")((Директор))

    В чем проблема то?
    Как надо создавать НаборКонстант ?
    Я пробовал и одинарные кавычки и без них, ничего не помогает, хотя везде пишут двойные!!!!
  2. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    А системе то такие константы Директор,Бухгалтер существуют?
  3. TopicStarter Overlay
    New1CCoder8
    Offline

    New1CCoder8

    Регистрация:
    19 мар 2008
    Сообщения:
    39
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте!
    Нет, это для примера было.
    Есть 2 константы: ДатаРегистрации типа Дата и НаименованиеОрганизации типа строка.
    Если написать:
    НаборКонстант = Константы.СоздатьНабор("ДатаРегистрации,НаименованиеОрганизации");
    Если НаборКонстант.ДатаРегистрации.Прочитать() = '00030101' Тогда
    // Тогда установим 1 января текущего года
    НаборКонстант.ДатаРегистрации.Записать(НачалоГода(ТекущаяДата()));
    КонецЕсли;
    то будет выдана ошибка:
    {МодульПриложения(23)}: Значение не является значением объектного типа (Прочитать)
    Если НаборКонстант.ДатаРегистрации.Прочитать() = '00030101' Тогда

    Если написать:
    НаборКонстант = Константы.СоздатьНабор("00030101,Шлюмберже");
    Если НаборКонстант.ДатаРегистрации.Прочитать() = '00030101' Тогда
    // Тогда установим 1 января текущего года
    НаборКонстант.ДатаРегистрации.Записать(НачалоГода(ТекущаяДата()));
    КонецЕсли;
    то будет выдана ошибка:
    {МодульПриложения(20)}: Ошибка при вызове метода контекста (СоздатьНабор): Недопустимое значение параметра (параметр номер "1") ( (00030101))
    НаборКонстант = Константы.СоздатьНабор("00030101,Шлюмберже");
    по причине: Недопустимое значение параметра (параметр номер "1") ( (00030101))

    Дата (Date)
    Литералы:
    Строка цифр, заключенная в одинарные кавычки вида: 'ГГГГММДДччммсс'

    На дату "ругается".
    Как переписать кусок кода:
    НаборКонстант = Константы.СоздатьНабор("00030101,Шлюмберже");
    Если НаборКонстант.ДатаРегистрации.Прочитать() = '00030101' Тогда
    // Тогда установим 1 января текущего года
    НаборКонстант.ДатаРегистрации.Записать(НачалоГода(ТекущаяДата()));
    КонецЕсли;
    ?????
  4. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Наверное вот так будет проще:
    Код:
    ЗначениеТакоеТо=Константы.КонстантаТакаяТо.Получить(); 
    Константы.КонстантаТакаяТо.Установить(ЗначениеТакоеТо)
    
    

Поделиться этой страницей