[РЕШЕНО] Реализация некой глобальной переменной в конфигурации. Как?

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

  1. TopicStarter Overlay
    nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Дано: некая конфигурация(см. приложенный файл)
    Необходимо реализовать в ней некую глобальную переменную числового типа.
    Работа кода должна быть на любой версии платформы, начиная с 8.0

    Вопрос: как?

    Вложения:

    • 1Cv8.cf
      Размер файла:
      14,9 КБ
      Просмотров:
      4
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Констатну заведите. и с ней работайте.
  3. TopicStarter Overlay
    nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Хм, как вариант.
    Но как будет себя чувствовать система в целом, если эта переменная в виде константы будет активно использоваться: при каждом запросе инкремент на 1?
  4. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    хм, а это не работает?
    Код:
    ПЕРЕМ ВашаПеременная Экспорт;
  5. TopicStarter Overlay
    nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Вы конфигурацию-то хотя б одним глазком поглядели? Если бы было все так просто.....
  6. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    А вы думаете константа ВалютаРегламентированногоУчета, мало где встречается, практически в каждой процедуре при работе с сумма к ней идет обращение.
  7. TopicStarter Overlay
    nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Оно просто читает, в моем случае еще и записывать каждый раз придется.
  8. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Да не должно, там же не таблицу в 10 000 записей писать.
    Я правда не знаю для чего Вам эта переменная нужна, но если через константу работать, то при выключение компа и 1С она сохраниться ну или ее последнее значение. Не надо например писать запрос на выборку каких либо значений что бы получить последнее и устновить его и продолжать работать.
  9. TopicStarter Overlay
    nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Хорошо, допустим есть у нас переменная в виде константы.
    Такая реализация позволит соблюсти уникальность возвращаемых значений константы при каждом запросе при условии, что запросов может быть несколько одновременно?

    Код:
    Код:
    Функция ПолучитьЗначениеСчетчика() Экспорт
    
    ТекЗначение = Константы.ЗначениеСчетчика.Получить();
    
    Константы.ЗначениеСчетчика.Установить(ТекЗначение + 1);
    
    Возврат ТекЗначение;
    
    КонецФункции
  10. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    В файловой думаю проблем не должно быть, а серверная через блокировки разруит. Просто какая нарузка будет... Ну это все нагрузочным тестирование м прогнать можно
    nomad_irk нравится это.
  11. TopicStarter Overlay
    nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Только клиент-серверный вариант, ибо каким образом работают регламентные задания в файловом варианте - не к ночи будет упомянуто :)

    Нагрузка может быть до 150 обращений единовременно, может даже больше.
    Я понимаю, что тут уже железо может не справится, но все же.....

    Ладно, попробую такой вариант.....
  12. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    то есть после каждого запроса будет код который типа +1 то где храниться?
  13. TopicStarter Overlay
    nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    да. именно так.
    реализация должна быть максимально быстрой в плане временных затрат на получение текущего значения и установку нового.
    Если есть какой-то способ не хранить в БД эти данные или в каком другом "медленном" хранилище, тот это будет просто идеально.
    Последнее редактирование: 6 ноя 2014
  14. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    а хранить результат надо при выходе?
  15. TopicStarter Overlay
    nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    да, хранить надо. Текущее значение - хранится всегда, независимо от того, запущена ли 1С.
  16. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    экспортная функция с локальной переменной?
  17. TopicStarter Overlay
    nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    не получится, потому что текущее значение переменной должно быть доступно в регламентном задании.
    регламентных заданий может быть много.
  18. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    это что там такое намудрённое?
  19. TopicStarter Overlay
    nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Простейший пример в приложенной конфигурации. Необходимо получать значение переменной, которая по своей сути является счетчиком.
    Там еще много чего намудренного может быть :)
    Последнее редактирование: 6 ноя 2014
  20. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    на счёт скорости

    Код:
    Процедура Кнопка1Нажатие(Элемент)
       
        Стартовали = ТекущаяУниверсальнаяДатаВМиллисекундах();
        Для ии=1 ПО 1000 Цикл
            ТекЗначение = Константы.СчитаемКолвоРаз.Получить();
            Константы.СчитаемКолвоРаз.Установить(ТекЗначение + 1);
            //ПолучитьЗначениеСчетчика();
        КонецЦикла;
        Финишировали = ТекущаяУниверсальнаяДатаВМиллисекундах();
        Сообщить("Сек = "+(Финишировали-Стартовали)/1000);
       
       
        Стартовали1 = ТекущаяУниверсальнаяДатаВМиллисекундах();
        Для ии=1 ПО 1000 Цикл
            //ТекЗначение = Константы.СчитаемКолвоРаз.Получить();
            //Константы.СчитаемКолвоРаз.Установить(ТекЗначение + 1);
            Счёт=ПолучитьЗначениеСчетчика();
        КонецЦикла;
        Финишировали1 = ТекущаяУниверсальнаяДатаВМиллисекундах();
        Сообщить("Сек1 = "+(Финишировали1-Стартовали1)/1000);
    КонецПроцедуры
    
    в файловой у меня вышло
    --- Объединение сообщений, 6 ноя 2014 ---
    upload_2014-11-6_21-0-31.png

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