Не записывается один реквизит справочника в 1С 7.7

1. militisa 03.10.22 12:03 Сейчас в теме
Добрый день. Возникла необходимость сделать в справочнике один реквизит, недоступный для редактирования пользователей, созданный в системе 1С 7.7. Проблема в том, что при программной записи видно, как реквизиту присваивается значение, а на следующем шаге этот реквизит обнуляется и никак его не записать. Другие реквизиты изменяются, а этот нет. И тоже самое, если я делаю этот реквизит доступным для редактирования, ввожу значение с клавиатуры, при записи он все равно обнуляется.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ZergKRSK 129 03.10.22 12:06 Сейчас в теме
(1) показывайте код программной записи.
8. militisa 03.10.22 13:37 Сейчас в теме
(2)
Прикрепленные файлы:
22. ishelper 03.10.22 14:07 Сейчас в теме
(8) Обратите внимание, дети - перед вами классический пример г...внокода!

Вот почему: НовКодСМ имеет тип "Число", а инициализируется он почему-то пустым значением типа "Строка"? Нафейхоа, спрашивается?

Далее его изменение находится внутри "Если" - а если это "Если" не выполняется?

Ну, и как вишенка на торте: считывается он ХЗ откуда - где гарантия, что там - число?

В-общем, автор: "Садись, два!"

P.S. Написать НовКодСМ=0 и использовать функцию Число() религия не позволяет?
7. lefthander 03.10.22 13:34 Сейчас в теме
(1)Может он периодический?
31. VictorRGB2 13 03.10.22 14:27 Сейчас в теме
(1) попробуйте так

КодСоответствиВСМ = ?(НовКодСМ = "", 0, Число(НовКодСМ))

7-ка трепетно относится к типам и не будет писать строковое значение в числовой реквизит без преобразования
3. user1203706 13 03.10.22 12:24 Сейчас в теме
(1) тип записываемого реквизита не совпадает с типом реквизита справочника.
5. militisa 03.10.22 13:32 Сейчас в теме
(3)Это первое , что я проверила, но тип значения вернул 1, а я числовой указала. То есть, типы программы вроде как сопоставила
4. демиденкоНаталияФедоровна 23 03.10.22 12:38 Сейчас в теме
Какое имя этого реквизита?
6. user1203706 13 03.10.22 13:33 Сейчас в теме
10. militisa 03.10.22 13:43 Сейчас в теме
Вот эти 2 реквизита, их свойства
Прикрепленные файлы:
9. starjevschik 03.10.22 13:41 Сейчас в теме
Отладчиком умеешь пользоваться? До Записать() и после - какие значения этого реквизита? В ПриОткрытии в самом начала какое значение после записи?
И еще я бы для начала, нет ли случайно переменных с таким же именем.
11. militisa 03.10.22 13:44 Сейчас в теме
(9) Именно отладчик мне и показывает, как реквизит на этапе присваивания значения меняется, а уже на следующем шаге - сбрасывает значение в 0.
13. starjevschik 03.10.22 13:48 Сейчас в теме
(11) "при следующем шаге" - каком?
Что с ответом на вопрос
нет ли случайно переменных с таким же именем
17. militisa 03.10.22 13:51 Сейчас в теме
(13)сейчас попробую показать наглядно
21. militisa 03.10.22 14:05 Сейчас в теме
(17)вот этапы
Прикрепленные файлы:
12. militisa 03.10.22 13:45 Сейчас в теме
Даже если я руками забиваю значение, то оно при нажатии на клавишу Записать, обнуляется. При этом второй реквизит без всяких меняется и перезаписывается
14. user1203706 13 03.10.22 13:48 Сейчас в теме
(10)
и весь этот код в модуле формы справочника ?
И всё это поди еще и в транзакцию обёрнуто, которая не зафиксирована ?
Да ?
18. militisa 03.10.22 13:52 Сейчас в теме
(14) Из процедуры ПриЗаписи вызывается процедура получения значения для этого упертого реквизита и в ней же производится запись
15. militisa 03.10.22 13:50 Сейчас в теме
Дело в том, что реквизит КодАвт был раньше, а мне по аналогии понадобился такой же еще один реквизит для работы. И вот с ним беда
Прикрепленные файлы:
16. user1203706 13 03.10.22 13:50 Сейчас в теме
Ну и зачет конечно, в коде записи напрямую апдейтить поля.
Ясен пень, что если еще есть в коде нечто подобное, что ваш код игнорится.
Видать там отkат транзакции в конце, а чтоб нужные данные сохранились - прямой апдейт таблички в коде.
19. user1203706 13 03.10.22 13:54 Сейчас в теме
(18)
перем КодСоответствияВСМ;


есть в коде ?

Покажи весь код модуля ПриЗаписи
33. militisa 03.10.22 14:30 Сейчас в теме
(19) нет. Такой переменной в коде нет. Специально просмотрела . Здесь все чисто
20. user1203706 13 03.10.22 13:56 Сейчас в теме
Тем более, что весь этот код в Попытке... и поди обёрнут в транзакцию, которая не фиксируется
26. militisa 03.10.22 14:13 Сейчас в теме
(20) вот код
Прикрепленные файлы:
23. user1203706 13 03.10.22 14:08 Сейчас в теме
(21) еще раз. Покажи весь код процедуры ПриЗаписи(). Просто скопируй целиком сюда.

И да, закрой жуколов и ТАБЛО в нём.
24. user1203706 13 03.10.22 14:09 Сейчас в теме
На счет принимает значение = 0 - так и должно быть, ибо весь этот код - в одной транзакции, которую ты нам не показываешь.
25. user1203706 13 03.10.22 14:10 Сейчас в теме
И записать() в коде ПриЗаписи.. ну такое..не надо оно.
27. militisa 03.10.22 14:18 Сейчас в теме
Вот код
Прикрепленные файлы:
28. ishelper 03.10.22 14:23 Сейчас в теме
(27)
Вот код
"Компьютер выполняет ту программу, которую вы написали, а не ту, которую хотели написать" (с) классика
29. user1203706 13 03.10.22 14:25 Сейчас в теме
(27) ну давай, так, для начала:

КодСоответствияВСМ = 0+НовКодСМ;
35. militisa 03.10.22 14:35 Сейчас в теме
(29) Все равно, сначала присвоилось, а на этапе записи сбросилось в ноль, блин
30. user1203706 13 03.10.22 14:27 Сейчас в теме
32. starjevschik 03.10.22 14:29 Сейчас в теме
Сделай поиск по конфигурации КодСоответствияВСМ
я думаю, это еще где-то определяется как-то иначе.
34. militisa 03.10.22 14:32 Сейчас в теме
(32) Мы только что такую логику стали вводить. Такого в конфигурации нет. Вот все, что нашлось и это в модуле этого справочника
Прикрепленные файлы:
36. user1203706 13 03.10.22 14:51 Сейчас в теме
(35) закрой отладчик, очисти весь код в ТАБЛО
37. user1203706 13 03.10.22 14:51 Сейчас в теме
И дай удаленный доступ на поглядеть
39. militisa 03.10.22 15:30 Сейчас в теме
(37)У нас нет такой возможности - предоставить удаленный доступ - корпоративная сеть. защищенная сисадминами так, что не мой уровень
38. user1203706 13 03.10.22 15:04 Сейчас в теме
+ раз в коде есть прямое чтение..триггеров на апдейт таблички не навешано случаем в самом скуле ?
40. militisa 03.10.22 15:32 Сейчас в теме
(38)вот честно, ни слова не поняла из вашей реплики ... :) что Вы имели в виду... можно на понятном русском :)
41. user930087 03.10.22 15:52 Сейчас в теме
а это точно не просто элемент диалога?
42. militisa 03.10.22 15:56 Сейчас в теме
(41)вот
Прикрепленные файлы:
46. user682053_kuplu_dom 03.10.22 17:03 Сейчас в теме
(42) выведите свойства реквизита (элемента) формы
43. militisa 03.10.22 15:57 Сейчас в теме
сначала создала реквизит, потом вынесла его на форму
44. user1203706 13 03.10.22 16:08 Сейчас в теме
(39) прям таки защищена ? :)
ну выложите мд на файлопомойку и ссылку сюда.

ЗЫ: для начала закрыть табло везде (в предприятии и отладчике) и очистить всё в нём.

а так, у вас возможно повешан триггер на апдейт таблички, или..есть еще событие, возможно, вынесенное в класс-перехватчик какой-нибудь.
В котором значение вашего нового реквизита не учитывается.

Тест на вшивость - просто сделайте обработку с 1 реквизитом диалога с типом справочник.Клиентосы (ВыбКонтрагент) и в коде

Вася = СоздатьОбъект("Справочник.Контрагенты");
Вася.НайтиЭлемент(ВыбКонтрагент);
Вася.КодСоответствияВСМ =1000;
Вася.Записать();
Сообщить(Вася.КодСоответствияВСМ );
45. militisa 03.10.22 16:19 Сейчас в теме
(44)О, спасибо... это хорошая идея. МД тоже не могу выложить... это отслеживается и штрафы заоблачные... это секрет фирмы считается... Я знаю, тут на форуме часто мои ожидания на этом и заканчиваются... но увы... это реальность
47. klom 03.10.22 17:03 Сейчас в теме
Попробуйте удалить из формы этот реквизит и через Вставить - Реквизиты разместить его по новой.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот