![]() |
|
Поле объекта недоступно для записи | ☑ | ||
---|---|---|---|---|
0
vlasabo
09.03.17
✎
12:44
|
Добрый день.
8.3, управляемые формы, самописка. Одна из обработок периодически при попытке запуска пишет "Поле объекта недоступно для записи". Захожу в конфигуратор, делаю динамическое обновление - снова всё работает на ближайшие час-два. Сервер перезагружал. Не понимаю механику обновления конфигурации (что при этом происходит и из-за чего обработка снова начинает работать). Подскажите пожалуйста кто с таким сталкивался, либо где почитать про процессы при обновлении доступным языком. ЗЫ: баг не воспроизводим, падает при разных случаях. На код отсылки нет, просто текст. |
|||
1
Одинесю
09.03.17
✎
12:47
|
Кэш почисти.
|
|||
2
Любопытная
09.03.17
✎
12:47
|
Ерунда какая-то.
В описании ошибки обычно написано, какое конкретно поле недоступно для записи. Про "падает при разных случаях" - падает хотя бы в одном и том же месте в коде или тоже в разных? |
|||
3
vlasabo
09.03.17
✎
12:51
|
(1) падает у всех, кэш тут не при чем.
Ошибку выдало у одного - я пытаюсь открыть - у меня тоже ошибка. (2) Я без понятия в каком месте кода падает, нет отсылки к коду. |
|||
4
НЕА123
09.03.17
✎
12:55
|
(0) >динамическое обновление
(3) >кэш тут не при чем как это? |
|||
5
vlasabo
09.03.17
✎
12:57
|
(4) Поясни тогда пожалуйста свою мысль? У меня знаний мало, видимо я как-то не так тебя понял
|
|||
6
vlasabo
09.03.17
✎
12:58
|
Поясню пока я свою: кэш - он для конкретного пользователя, так? А падает у всех почему-то.
После обновления начинает работать, потом опять падает. И так по кругу |
|||
7
Мимохожий Однако
09.03.17
✎
13:00
|
(6) Ошибку дословно можешь сообщить? Гадание устраиваешь.
|
|||
8
Рэйв
09.03.17
✎
13:03
|
(0)Запусти в отладке с остановкой по ошибке.И гоняй пока не поймаешь. Перед тем как тебе сообщить что "Поле объекта недоступно для записи" оно остановится на строке которая вызывает эту ошибку
|
|||
9
vlasabo
09.03.17
✎
13:05
|
(7) Ошибка дословно в названии и тексте (0).
Ничего кроме этого нет. Скрин кинуть? |
|||
10
vlasabo
09.03.17
✎
13:06
|
(8) спасибО!
|
|||
11
vlasabo
09.03.17
✎
13:19
|
(8) мда, всё веселее.
Дописал -debug в нужную ветку реестра, а 1с после этого базу не видит и предлагает создать новую. Убрал - всё снова заработало |
|||
12
Рэйв
09.03.17
✎
13:22
|
(11)Значит ветка была не "нужной":-)
|
|||
13
vlasabo
09.03.17
✎
13:26
|
(12) http://programmist1s.ru/vklyuchenie-otladki-na-servere-1s/
Инструкцию взял отсюда |
|||
14
vlasabo
09.03.17
✎
13:28
|
Беглый гуглинг говорит что я дурак:
"Сначала пропустил пробел перед -debug. Что я могу сказать: результат был прекрасным – ни одна база не найдена, предприятие никак не запускалось" |
|||
15
1dvd
09.03.17
✎
13:32
|
Динамическим обновлением пользуетесь?
|
|||
16
Одинесю
09.03.17
✎
13:35
|
(15) "Захожу в конфигуратор, делаю динамическое обновление " в (0)
|
|||
17
vlasabo
09.03.17
✎
13:40
|
(15) да. Довольно часто приходится
|
|||
18
Рэйв
09.03.17
✎
13:44
|
(14)Сервер 1с перезапустил после добавления -debug?
|
|||
19
1dvd
09.03.17
✎
13:44
|
(17) значит сами себе злобные буратины. Чисти кеш и пользаков и на сервере.
И больше никогда не обновляй динамически. Я когда пришел на текущее место, бымший деятель тоже любил быстро обновлять. Я это сразу присёк |
|||
20
Dmitrii
гуру
09.03.17
✎
13:48
|
(17) >> Довольно часто приходится
Ерунда всё это. Случаи, когда действительно необходимо срочно и динамически, крайне редки. В 99,99% случаев пользователи вполне могут потерпеть до завтра, когда после ночных регламентов с изгнанием всех сеансов конфа нормально обновится. |
|||
21
vlasabo
09.03.17
✎
13:50
|
(18) я службу останавливал. Дописал ключ, потом запустил
|
|||
22
vlasabo
09.03.17
✎
13:52
|
(19) (20) ребят, конфа-самописка.
Врачи нашли ошибку в своей части - надо устранять. В это время юзеры на кассе продолжают работать. Я понимаю что всё зло от динамических обновлений, стараюсь минимизировать в последнее время, как-то приучать что апдейты ночью. Спасибо ОГРОМНОЕ всем за ответы, включил отладку, жду ошибку, параллельно вечерком еще кеш почищу и посмотрим поможет ли. |
|||
23
Mankubus
09.03.17
✎
13:59
|
(3) В ЖР обычно пишется ошибка и в какой строке модуля она появилась
|
|||
24
vlasabo
09.03.17
✎
14:26
|
(23) не писалась, смотрел.
Выловил я ошибку, происходит при создании таблицы значений на сервере. Быстренько наваял костыль в виде булева, которое при создании таблицы встаёт в истину, а при её закрытии встаёт в ложь, и перед созданием идёт проверка значения. хз чем мне это аукнется в дальнейшем, буду думать |
|||
25
vlasabo
09.03.17
✎
19:08
|
ЗЫ:
Проблема не решена. кеш почистил, дописал клеаркеш в строке запуска базы - ошибка при создании таблицы значений на сервере. |
|||
26
vlasabo
10.03.17
✎
10:11
|
Ошибка возникает если некоторое время держать обработку открытой, но не использовать.
При попытке использования всё та же ошибка - ругается на создание таблицы значений на сервере (это самое начало процедуры). Вчера базу снёс и накатил заново - не помогло. |
|||
27
Живой Ископаемый
10.03.17
✎
10:15
|
2(26) Ну так поставь там точку останова, или если это в других сеансах - пиши в ЖР тип твоей таблицы
|
|||
28
h-sp
10.03.17
✎
10:29
|
(26) ну значит там какие-то процедуры выполняются, которые по времени. Обновление отображения или еще какие-нибудь.
|
|||
29
vlasabo
10.03.17
✎
10:29
|
ппц какой-то происходит.
Вчера юзерам вычистил кеш. Всё более-менее работало. Сегодня у одного из юзеров (с чищеным кешем! и ключем запуска \clearcache) ругается на "процедура не определена". Эта процедура там была неделю назад последний раз! Открываю с его компа под собой - у меня всё норм. Почистил кеш еще раз, заработало опять. |
|||
30
vlasabo
10.03.17
✎
10:29
|
(28) обработку я писал, нет там обновления вообще...
|
|||
31
h-sp
10.03.17
✎
10:34
|
(30) ну, какие-то процедуры ведь есть. То есть жесть у тебя, когда процедуру вызываешь повторно.
|
|||
32
vlasabo
10.03.17
✎
11:14
|
(31) да
|
|||
33
catena
10.03.17
✎
11:26
|
Имя таблицы не может нигде использоваться?
|
|||
34
vlasabo
10.03.17
✎
11:56
|
(33) нет, таблица "Табличка", используется во всем конфиге вообще только в этой обработке
|
|||
35
Любопытная
10.03.17
✎
11:57
|
Дай обработку посмотреть
|
|||
36
1dvd
10.03.17
✎
12:00
|
Скорее всего переменная Объект затирается
|
|||
37
vlasabo
10.03.17
✎
12:01
|
(36) чуть подробнее можно? Как она со временем может затереться?
(35) текстом сюда или как-то можно загрузить? |
|||
38
Любопытная
10.03.17
✎
12:02
|
(37) я-диск, дропбокс, можно на электронку скинуть, почта в личке вроде есть
|
|||
39
1dvd
10.03.17
✎
12:07
|
(37) не со временем, а при первом выполнении кода
Объект = ... |
|||
40
vlasabo
10.03.17
✎
12:10
|
(39) при первом выполнении кода всё работает.
Ошибка ловится если постоит без дела обработка минут 10-15 и попробовать снова запустить. Запуски подряд к ошибке не приводят. (38) сейчас на мыло отправлю |
|||
41
catena
10.03.17
✎
12:16
|
(40)Вот это поведение наводит на мысль о пересечении имен переменных. В течении этих 10-15 минут какая-то нужная переменная переопределяется какой-то другой процедурой.
|
|||
42
Любопытная
10.03.17
✎
12:22
|
У тебя там форма каждый раз переоткрывается какой-то левой обработкой. Это зачем?
|
|||
43
vlasabo
10.03.17
✎
12:24
|
(42) программное создание объектов формы же.
Чтоб их каждый раз не удалять и не создавать заново сделал вот так, с переоткрытием |
|||
44
vlasabo
10.03.17
✎
12:24
|
(43) элементов формы* я хотел сказать.
В обработку передаются параметры, её задача - вернуть назад эти параметры и закрыться. |
|||
45
Любопытная
10.03.17
✎
12:29
|
Где там программное создание элементов?
|
|||
46
vlasabo
10.03.17
✎
12:37
|
(45) может не так выразился: у меня нет объекта "Табличища", который я могу перетащить на форму.
Он создаётся программно, программно создаётся табличка на форме, в которую загружаются данные из Табличища |
|||
47
h-sp
10.03.17
✎
12:40
|
(46) разные колонки что ли всё время? зачем программно создавать?
|
|||
48
vlasabo
10.03.17
✎
12:42
|
(47) да, разные.
Предыдущей теме писал. Обработка строит расписание врачей на день. Сегодня один работает, завтра другой... Колонки разные в итоге. Сама обработка данные не меняет, передаёт их другой обработке для изменений. Эта форма только собирает данные и выводит их пользователю |
|||
49
Любопытная
10.03.17
✎
12:45
|
А, нашла. Ну там вроде ничего криминального.
Но мне лично не нравится эта история с бесконечным переоткрыванием формы, да еще и передавать туда-обратно какие-то параметры, которые, по-моему, не используются при этом. |
|||
50
vlasabo
10.03.17
✎
12:59
|
(49) я б схему нарисовал, но сюда не приложишь :)
Передаются два параметра из сетки, которую я прислал, в другую обработку для изменения регистра расписания. Эти параметры - дата и специализация врача. При изменении даты или специализации нам надо отрисовать актуальную сетку. Я вижу два пути: удалить все элементы формы, которые мы создали программно, удалить все значения переменных, полученные за другую дату\специализацию и создать их заново; или просто взять два параметра, которые нам нужны, отдать их пустой обработке, которая в свою очередь вызовет нужную обработку и передаст их обратно. Т.о. всё, что нам не нужно при закрытии уничтожится и нет нужды программно это удалять |
|||
51
Любопытная
10.03.17
✎
13:05
|
А просто обновить данные формы не получится? Или сетка может измениться так сильно, что колонки не совпадут?
|
|||
52
vlasabo
10.03.17
✎
13:07
|
(51) увы, может: добавили кому-то процедуру, кого в расписании не было - вот и не совпадут в итоге.
|
|||
53
vlasabo
10.03.17
✎
13:46
|
(41) кстати:
открыл тестовую базу, запустил обработку один раз. Оставил на 15 минут. К тестовой базе был подключен только один клиент. Через 15 минут - та же ошибка. Не могло оно переопределиться. Никто ничего не делал |
|||
54
Живой Ископаемый
10.03.17
✎
13:58
|
Запись в ЖР уже делаешь? какой тип объекта?
|
|||
55
vlasabo
10.03.17
✎
14:03
|
(54) {Обработка.Сетка.Форма.Форма.Форма(28)}: Поле объекта недоступно для записи
|
|||
56
1dvd
10.03.17
✎
14:29
|
(55) ну? и что там в 28-ой строке?
|
|||
57
vlasabo
10.03.17
✎
15:22
|
(56) то же самое что я говорил выше:
Табличища = НОВЫЙ ТаблицаЗначений; |
|||
58
Любопытная
10.03.17
✎
15:45
|
МассивРеквизитов.Добавить(Новый РеквизитФормы("Табличеще", ОписаниеТипаВыбора, "", "ТЗН"));
|
|||
59
Любопытная
10.03.17
✎
15:45
|
Ты создаешь на форме реквизит с таким же именем, а потом пытаешься в него создать новую таблицу значений. В этом проблема видимо.
|
|||
60
h-sp
10.03.17
✎
16:00
|
(57) всё просто, как оказалось
|
|||
61
h-sp
10.03.17
✎
16:01
|
(58) а Табличища там нет?
|
|||
62
vlasabo
10.03.17
✎
16:24
|
(59) Сменить имя реквизита формы?
МассивРеквизитов.Добавить(Новый РеквизитФормы("Табличечка", ОписаниеТипаВыбора, "", "ТЗН")); Так?) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |