|   |   | 
| 
 | Глобальные переменные на УФ | ☑ | ||
|---|---|---|---|---|
| 0
    
        ArturDoo 08.06.22✎ 18:24 | 
        Есть форма, создал в ней глобальную переменную. В процедуре задал ей значение, но в других процедурах она пустая. В чем здесь ошибка? 
 Перем Данные; &НаСервере Процедура ИзменитьИсп (Значение) Попытка Данные = Значение; Исключение КонецПопытки; КонецПроцедуры | |||
| 1
    
        Галахад гуру 08.06.22✎ 18:24 | 
        По умолчанию на клиенте.     | |||
| 2
    
        DGorgoN 08.06.22✎ 18:25 | 
        Сервер и клиент вестимо.     | |||
| 3
    
        butterbean 08.06.22✎ 18:25 | 
        это все переменные бессмысленны на сервере, нужно делать через реквизиты формы или передавать параметрами процедур     | |||
| 4
    
        ArturDoo 08.06.22✎ 18:25 | 
        (1) Можно пользоваться ГП на сервере?     | |||
| 5
    
        DGorgoN 08.06.22✎ 18:26 | 
        (4) Я вообще против ГП     | |||
| 6
    
        ArturDoo 08.06.22✎ 18:26 | 
        (3) А можно как-то передать данные на сервере без реквизитов формы в не взаимосвязанных процедурах?     | |||
| 7
    
        Выпрь 08.06.22✎ 18:28 | 
        На сервере переменные будут жить до конца вызова. Юзай временное ранилище     | |||
| 8
    
        Выпрь 08.06.22✎ 18:28 | 
        (1) таки по умолчанию на сервере     | |||
| 9
    
        ArturDoo 08.06.22✎ 18:29 | 
        Так как передать адрес в не взаимосвязанных процедурах?     | |||
| 10
    
        butterbean 08.06.22✎ 18:31 | 
        (9) чем не устраивает реквизит формы или параметр процедуры (если без контекста)?     | |||
| 11
    
        Выпрь 08.06.22✎ 18:31 | 
        Адрес через реквизит передают обычно     | |||
| 12
    
        ArturDoo 08.06.22✎ 18:32 | 
        Без реквизита. Да и данные текстовые все равно, как их передавать, через хранилище или без него     | |||
| 13
    
        Выпрь 08.06.22✎ 18:33 | 
        (12) юзай метод г1с через справочник     | |||
| 14
    
        Выпрь 08.06.22✎ 18:33 | 
        Можно еще через параметр сеанса     | |||
| 15
    
        butterbean 08.06.22✎ 18:33 | 
        (12) сделай параметр сеанса     | |||
| 16
    
        ArturDoo 08.06.22✎ 18:34 | 
        (13) можно подробней?     | |||
| 17
    
        RomanYS 08.06.22✎ 18:40 | 
        (4) только если понимаешь, в каждом сервером вызове контекст формы создаётся заново     | |||
| 18
    
        ДедМорроз 08.06.22✎ 22:59 | 
        Есть еще вариант через функции повторного вызова,когда функция возвращает структуру,а потом в эту структуру добавляется все,что хочется сохранить между вызовами.     | |||
| 19
    
        Бабрак Кармаль 08.06.22✎ 23:17 | 
        (18) > Есть еще вариант
 А потом наступает одно из https://its.1c.ru/db/v8321doc#bookmark:dev:TI000000181 "Сохраненные значения будут удалены: - на сервере, в толстом клиенте, во внешнем соединении, в тонком клиенте и в веб-клиенте с обычной скоростью соединения - через 20 минут после вычисления сохраняемого значения или через 6 минут после последнего использования; - в тонком клиенте и веб-клиенте с низкой скоростью соединения - через 20 минут после вычисления сохраняемого значения; - при нехватке оперативной памяти в рабочем процессе сервера; - при перезапуске рабочего процесса; - при переключении клиента на другой рабочий процесс." И очередного ливингстара, доверившегося "профи" с мисты увольняют нахрен, потому что он ничего не может понять. | |||
| 20
    
        palsergeich 09.06.22✎ 00:55 | 
        (1) По умолчанию - на сервере.
 Но до конца текущего вызова) | |||
| 21
    
        palsergeich 09.06.22✎ 00:57 | 
        (19) - при переключении клиента на другой рабочий процесс.
 - при нехватке оперативной памяти в рабочем процессе сервера; от эти штуки я ловил. когда вопт исп жило меньше минуты, и это была поццтава) С тех пор я к документацииотношусь гораздо трепетнее и читаю ее внимательнее) | |||
| 22
    
        palsergeich 09.06.22✎ 00:58 | 
        (0) Если нужна глобальная серверная переменная - используй параметры сеанса.
 1с так и делает кста) | |||
| 23
    
        palsergeich 09.06.22✎ 00:58 | 
        (22) никакой магии и ограниченного времени жизни     | |||
| 24
    
        Сергиус 09.06.22✎ 01:27 | 
        (0)Сделай реквизит формы и в нем храни.     | |||
| 25
    
        MyNick 09.06.22✎ 06:18 | 
        (24) он боится. Этож целый реквизит надо создавать, а ему всего лишь переменная нужна (сарказм).
 Всегда удивляли люди, упорно изобретающие квадратные колеса при наличии круглых в свободном доступе. Автор, реквизиты формы - это самое верное и надёжное решение для твоей Перем. Кроме того, механизм реквизитов формы и создан именно для того, чтобы решить твою "проблему". И используются повсеместно и независимо от того, что ты свою "проблему" считаешь уникальной, придумывая какой бы костыль, да покривее вкорячить в свою никчемную поделку. | |||
| 26
    
        Мультук гуру 09.06.22✎ 07:04 | 
        Вот такой просто пример.
 Желающие могут написать, что скажет "сообщить" при двух нажатиях на кнопку "Тест" &НаСервере Перем Данные; &НаСервере Процедура ТестНаСервере() Сообщить(Данные); Данные = Данные + 1; КонецПроцедуры &НаКлиенте Процедура Тест(Команда) ТестНаСервере(); КонецПроцедуры Данные = 123; | |||
| 27
    
        DimVad 09.06.22✎ 07:10 | 
        (25) Про реквизит формы - вещь общеизвестная. Ещё у Хрусталёвой в её книжке про управляемые формы всё описано.
 Однако люди продолжают спрашивать ибо в реальной работе "возникают нюансы". Что-то типа "вот отчёт, вызывается форма, а из неё - ещё форма, а из неё - серверный код, он получает данные которые нужно передать в дальние долбеня и вернуть их потом в зад (в вызывающую всю хрень процедуру)". Вот тут возникаю НЕУДОБСТВА к которым программист 1С, который много лет был в ОФ просто не привык. Он привык заводить переменные уровня модуля этого отчёта с ключом "Экспорт" - и всё. Хоть структура там, хоть ТЗ, хоть соответствие... И ничто никуда не пропадает между разными вызовами. Под УФ же он не о задаче думает - а с бубнами танцует. Вот и рождаются идеи в стиле "а заведу я справочник/РС/временный файл и буду писать туда мою ценную хрень". | |||
| 28
    
        Выпрь 09.06.22✎ 07:10 | 
        (26) а как сохранить значение между нажатиями?     | |||
| 29
    
        DimVad 09.06.22✎ 07:13 | 
        +(27) Знаю я чела - он имел специальный каталог на сервере "для обмена". Там он туда файлы сбрасывал.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |