![]() |
|
Как бороться с "Серверные вызовы при завершении работы запрещены"? | ☑ | ||
---|---|---|---|---|
0
DTX 4th
01.09.17
✎
15:41
|
При закрытии обработки сохраняю настройки в хранилище. Всё ок, но если попытаться закрыть 1С при открытой обработке, появляется ошибка
"Серверные вызовы при завершении работы запрещены" Можно как-нибудь обойти? Не сохранять же настройки при каждом изменении |
|||
1
Господин ПЖ
01.09.17
✎
15:41
|
в ОФ все реализовано
|
|||
2
Мыш
01.09.17
✎
15:43
|
Если в ПриЗакрытии выполняется сохранение настроек формы, то следует отказаться от обработчика ПриЗакрытии и перенести этот код в обработчики событий, вызываемые при действиях пользователя.
Было: &НаКлиенте Процедура ПриЗакрытии() СохранитьНастройки(); КонецПроцедуры &НаСервере Процедура СохранитьНастройки() // Сохраняем дату последнего отображения. ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("Настройка", " ДатаПоследнегоОтображенияПредложения", ТекущаяДатаСеанса()); КонецПроцедуры Стало: &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ... // Сохраняем дату последнего отображения. ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("Настройка", "ДатаПоследнегоОтображенияПредложения", ТекущаяДатаСеанса()); ... КонецПроцедуры Если событие, которое возникает при действиях пользователя, вызывается на стороне клиента, рекомендуется выполнять сохранение настроек в безконтекстном серверном вызове, чтобы избежать перерисовки формы: &НаКлиенте Процедура НапомнитьПозже(Команда) СохранитьНастройки(); КонецПроцедуры &НаСервереБезКонтекста Процедура СохранитьНастройки() // Сохраняем дату последнего отображения. ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("Настройка", "ДатаПоследнегоОтображенияПредложения", ТекущаяДатаСеанса()); КонецПроцедуры |
|||
3
Мыш
01.09.17
✎
15:43
|
Копипаста отсюда: https://its.1c.ru/db/metod8dev#content:5293:hdoc
|
|||
4
Вафель
01.09.17
✎
15:44
|
Теперь принято сохранять настройки не при закрытии, а при изменении настроек
|
|||
5
DTX 4th
01.09.17
✎
15:50
|
http://i0.kym-cdn.com/entries/icons/mobile/000/005/848/Aliens.jpg
Т.е. если у меня есть большая ТЧ с настройками, то мне её при каждом чихе (по окончанию редактирования строки) сохранять надо?? Ужс. За инфу спасибо. |
|||
6
Вафель
01.09.17
✎
15:56
|
не сохраняй всю тз, разбей ее на блоки.
настройки лучше поштучно хранить |
|||
7
DTX 4th
01.09.17
✎
16:00
|
(6) В тз у меня, например, суммы тарифов в зависимости от количества документов. Т.е. будут строки вида:
до 1 дока - 100 р до 2 доков - 150 р до 5 доков - 300 р и т.д. Тут нечего разбивать на блоки. Ну или например у меня на форме поле Контрагент, которое нужно сохранить для всех пользователей. Это получается, что при каждом изменении нужно на сервер бегать. Не понимаю. |
|||
8
Вафель
01.09.17
✎
16:02
|
(7) Пишите письма (в спортлото)
|
|||
9
ildary
01.09.17
✎
16:02
|
(7) Добро пожаловать в мир управляемых форм. Пилотам Апача еще тяжелей - у них глаза привыкают смотреть в разные стороны - один смотрит куда летит, второй - куда стреляет.
|
|||
10
DTX 4th
01.09.17
✎
16:13
|
Я сделаль!
|
|||
11
Вафель
01.09.17
✎
16:18
|
но ничего не сохранится ведь
|
|||
12
Мыш
01.09.17
✎
16:23
|
(11) Прекратите. Это совершенно не важно. Пользователь не заметит, свинья не съест )
|
|||
13
Фрэнки
01.09.17
✎
16:26
|
Типовая КА 2.2 время от времени отображает такое сообщение, хотя ни строчки кода не изменено
|
|||
14
DTX 4th
01.09.17
✎
16:30
|
(11) При завершении работы вылезет окно "Работа в данном окне не завершена". Далее пользователь жмёт "Продолжить работу", закрывает форму обработку, закрывает 1С.
Если нажмёт "Завершить работу", то да, ничего не сохранится, но его предупреждали) Писать в каждый элемент процедуру "ПриИзменении", по-моему, та ещё дичь. |
|||
15
DTX 4th
01.09.17
✎
16:37
|
Добавил немного UX)
|
|||
16
Torquader
02.09.17
✎
01:37
|
А если сделать отказ от закрытия, сохранить настройки - поднять флаг возможности сохранения и снова выполнить "завершить работу" ?
|
|||
17
craxx
02.09.17
✎
06:47
|
(16) Вот именно так я и делал! По другому не выходит
|
|||
18
craxx
02.09.17
✎
06:48
|
(17) + обработку ожидания секундную разовую, в которой все закрывалось с флагом без сохранения
|
|||
19
jsmith82
02.09.17
✎
09:33
|
(15) Силён.
|
|||
20
mistеr
02.09.17
✎
11:38
|
(7) >В тз у меня, например, суммы тарифов в зависимости от количества документов
К слову, это уже не настройки пользователя, эти данные должны жить в базе. А вообще, это конечно проблема. Точнее недоработка платформы. Со времени появления веб клиента прогресс не стоял на месте. В браузерах появились веб воркеры и прочие ништяки. Можно уже реализовать и сохранение настроек в фоне после закрытия формы, и асинхронную загрузку гигабайтных файлов из соседней темы. |
|||
21
DTX 4th
05.09.17
✎
10:32
|
(16) Так программно отказ от закрытия не сделать. Но вроде неплохой вариант.
(20) >К слову, это уже не настройки пользователя, эти данные должны жить в базе. В типовой? В хранилище общих настроек? Прост один и тот же файл может быть использован в разных базах. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |