Поле объекта недоступно для записи #792676


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

В этой группе 1С