СохранениеПериодическихРеквизитов Глюк #527094


#0 by AlexBut
Проблема: При записи сотрудника(ЗиК) возникает окно для записи периодических реквизитов. Отладчиком нашел, что это из-за некорректной работы фунции "СохранениеПериодическихРеквизитов". Она выдает, что был изменен реквизит "ШаблонПроводки", хотя он не менялся. Методом научного тыка определил, что это происходит из-за одной записи в файле 1SCONST. OBJID - 0, ID - 13V, DATE - 01.06.10, VALUE - 66A. Если ее удалить, то функция начинает работать нормально. Вопрос: как мне определить, что это за объект меняется и почему? По описанию в .dd написано, что OBJID - 0 это константа, но какая? Все константы обшарил, нет такой, чтобы менялась с этой даты. Может это какой-то системный объект, но почему он меняется и как с этим бороться? Глюк повторился второй раз за небольшой промежуток времени, поэтому хотелось бы узнать причину.
#1 by andrewks
ТиИ?
#2 by Franchiser
в 1SCONST хранятся значения периодических реквизитов, что происходит при открытии? признак модиффицированности (*) появляется? Чем было заполнено значение шаблона проводки изначально в сотруднике (стояла ли проводка по умолчанию или вообще пусто было)? Посмотри историю периодического реквизита проводки по сотруднику (что там меняется)...
#3 by AlexBut
Я забыл уточнить, что это происходит в момент ввода нового сотрудника. То есть нажимается INS - появляется форма ввода, набираешь ФИО нажимаешь ЗАПИСЬ или ОК - появляется форма с записью периодических реквизитов с реквизитом "ШаблонПроводки". Сам реквизит не меняется ни программно ни руками. Проверял это отладчиком. Самое интересное, что когда я отладчиком гоняю "СохранениеПериодическихРеквизитов", то в момент открытия и после момента изменения ФИО она работает нормально, то есть возвращает пустоту, а когда срабатывает "ПриЗаписи", то сразу же на первой строке этой процедуры эта функция возвращает "ШаблонПроводки". Я уже все мозги сломал, решения найти не могу. Может в 1SCONST хранятся какие-то системные значения? Может подскажите, что это за объект OBJID - 0, ID - 13V в типовой ЗиК?
#4 by filh
так, а что ты хотел? При вводе нового всегда необходимо записать пероодические реквизиты.
#5 by AlexBut
Берем типовую ЗиК - Открываем справочник "Сотрудники", нажимаем INS - заполняем ФИО - нажимаем ОК - ничего не запрашивает. Или я чего-то не понимаю? Раньше то все работало как надо.
#6 by OnCheck
попробуй исправление физической целостности на копии прогнать, не должен он так ругаться. ИМХО
#7 by AlexBut
Это я первым делом сделал. Если бы все было так просто!!! Сейчас глянул в демо базе - такого объекта в 1SCONST нет, видимо это все-таки пользовательский параметр со своей нумерацией в каждой базе. Но как узнать, что это за параметр?
#8 by OnCheck
я вот не могу понять OBJID - 0, ID - 13V, DATE - 01.06.10, VALUE - 66A это что запись в файле или что, объекта судя по OBJID это константа, похоже что периодическа.
#9 by filh
теперь понятно. на копии грохни запись и ТиИ потом.
#10 by AlexBut
Да, это запись в файле. Если ее удаляешь, то все работает как надо. Но что это за запись, как она появляется я не знаю. Может есть возможность по идентификатору понять, что это такое?
#11 by OnCheck
66A - это значение это константы в 32-ричной СС, попробуй перевести в 10-ричную СС и передать ее в ЗначениеИзСтрокиВнутр, только там форматную строку еще надо добавить, может так сможешь найти эту константу, по значению
#12 by filh
+9 А DOCID заполнен?
#13 by filh
+12 еще почитай тут .
#14 by AlexBut
Я грохнул запись, никакого восстановления после этого не требовалось, все заработало как надо. Дело в другом, если бы это было в первый раз, я бы все отнес на магнитную бурю - плюнул и забыл, но это уже второй раз. Первый был перед Новым годом. Поэтому есть идея, что это не последний раз.
#15 by OnCheck
все придумал положи любую константу в СтркаЛюбаяКонстанта = ЗначениеВСтрокуВнутр(ЛюбаяПериодическаяКонстанта); В это строке вручную подсунь там где ID этой константы свой 13V, и дату смени, в том же формате на свою, эту строку положи в ЗначениеИзСтрокиВнутр, думаю вернет тебе твою константу.
#16 by filh
на ответь.
#17 by OnCheck
думаешь константа документом меняется?
#18 by AlexBut
DOCID - 0
#19 by filh
Да фик знает. Судя по OBJID=0 это не периодическая константа. Можно открыть файл, поменять значение VALUE скажем на 7 и сравнить 2 базы. Узнаем, что за константа. Ну а дальше плясать дальше.
#20 by filh
эх, жаль. А то сузился бы круг.
#21 by OnCheck
#22 by OnCheck
DATE    Дата установки периодического реквизита. Для базы в формате SQL и для непериодического реквизита (или константы) поле заполняется значением '1753-01-01 00:00:00.000'. Тип - Дата (datetime для SQL).
#23 by OnCheck
+ константа периодическая последняя установка на дату 01.06.10
#24 by OnCheck
хотя с другой стороны OBJID    ID объекта периодического реквизита (справочника) или периодической константы, для непериодических констант это поле равно ‘     0   ’. Тип - Строка.
#25 by filh
Больше склоняюсь к , т.к. DOCID=0: DOCID    ID (идентификатор) документа (поле, связанное с полем IDDOC таблицы журналов (_1SJOURN)). Для значений установленных вручную или непериодических заполняется '     0   '.
#26 by AlexBut
Только что поменял значение 66A на 0 и сравнил список констант - они совпадают. Может это все-таки не константа а какая-то системная настройка, но опять же настораживает, что есть дата изменения.
#27 by OnCheck
ну в общем поможет если правильную константу сунуть
#28 by OnCheck
надо сравнивать не список а значения
#29 by Brazil
1) преобразуем 13V в 36-ричную СИ = 1435 2) открываем 1cv7.md чем нибудь и ищем {"Consts", {"1435","а вот тут название константы",....},
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям