Имя: Пароль:
1C
 
Неправильно отображается значение элемента справочника
0 Demanufactyre
 
10.08.23
06:44
Здравствуйте. Есть вот такой код. Хочу записать в элемент справочника значение. Записывает, но при открытии элемента изменений никаких нет. Там либо пусто, либо стоит другое значение как было до записи. Хотя в консоли разработчика показывает правильное записанное значение.

&НаКлиенте
Процедура ЗаписатьЗначение(Команда)
    ЗаписатьЗначениеНаСервере();                                        
КонецПроцедуры                      

&НаСервере
Процедура ЗаписатьЗначениеНаСервере()
    Док = Объект.ЭлементСправочника.ПолучитьОбъект();
    Док.СтатьяФинансирования = Справочники.СтатьиФинансированияЗарплата.НайтиПоКоду("СГ");
    Док.Записать();
КонецПроцедуры

Платформа: 8.3.22.1923. Конфигурация: ЗиКГУ 3.1.25.138
1 Гипервизор
 
10.08.23
07:23
Если в консоли уже новое значение, смотрите отладкой, что происходит при создании и заполнении формы.
2 crasler
 
10.08.23
07:29
(0) Возможно подписка какая-то есть у типа ЭлементСправочника

Попробуй
&НаСервере
Процедура ЗаписатьЗначениеНаСервере()
    Док = Объект.ЭлементСправочника.ПолучитьОбъект();
    Док.ОбменДанными.Загрузка = Истина;
    Док.СтатьяФинансирования = Справочники.СтатьиФинансированияЗарплата.НайтиПоКоду("СГ");
    Док.Записать();
КонецПроцедуры
3 Demanufactyre
 
10.08.23
07:33
(2) Не помогло. (1) Уже смотрю. Спасибо
4 1CBaseV8
 
10.08.23
07:36
1. Добавить: Сообщить("сг = \"+ Справочники.СтатьиФинансированияЗарплата.НайтиПоКоду("СГ") +"\" );
2. Почистить кэш.
5 Demanufactyre
 
10.08.23
07:41
(4) Сообщил - сг = \Субсидии на Госзадание\. Очистка кэша не помогло
6 1CBaseV8
 
10.08.23
07:47
3. Проверить что в "Объект.ЭлементСправочника" тот же элемент справочника который потом просматривается. Лучше открывать прямо из формы.
4. После записи, форма элемента открывается заново?

5. Добавить код

Док.СтатьяФинансирования = Справочники.СтатьиФинансированияЗарплата.НайтиПоКоду("СГ");
Сообщить("сф1 = \"+ Док.СтатьяФинансирования  +"\" );
    Док.Записать();
Сообщить("сф2 = \"+ Док.СтатьяФинансирования  +"\" );

Если сф1 не равно сф2 смотреть в модуле Справочники.СтатьиФинансированияЗарплата события ПриЗапись, ПередЗаписью или подписки на события
7 Мимохожий Однако
 
10.08.23
07:48
Открой справочник Статьи финансирования зарплата и убедись, что есть такой элемент
Включи отладчик. Убедись, что строка Справочники.СтатьиФинансированияЗарплата.НайтиПоКоду("СГ") возвращает не пустое значение.
8 Demanufactyre
 
10.08.23
08:03
(6) 3 - Справочник.ЭлементСправочника[ЗначениеСправочника]
4 - Перед записью проверяю отрытием элемента "Объект.ЭлементСправочника" из окна обработки от куда берется значение для работы кода. После открываю от туда же этот же элемент. Изменений нет. Пробовал добавлять ПолноеНаименование, Комментарий. Ощущение что не в тот элемент записываются значения. Но консоль запросов говорит что в этом элементе все заполнено.
5 - после записи говорит что все заполнил так как я и просил. После открытия элемента там другое значение. Но консоль запросов говорит что там то значение которое я ввел.
9 Demanufactyre
 
10.08.23
08:03
(7) Возвращает не пустое значение. В отладчике в табло то что надо стоит. В консоли запросов показывает что все нормально записано.
10 Demanufactyre
 
10.08.23
08:04
Кто нибудь попробуйте у себя в стандартной конфигурации ЗиКГУ заполнить программно статью финансирования. Может у меня платформа забаговалась
11 1CBaseV8
 
10.08.23
08:05
> В консоли запросов показывает что все нормально записано.

1. Возможно у справочника два поля типа СтатьяФинансирования  
2. Возможно поле на форме не связано реквизитом объекта.
12 Demanufactyre
 
10.08.23
08:10
(11) Связано. Открыл элемент справочника в пользовательском интерфейсе, нажал Открыть в конфигураторе. Нажал нужное поле правой кнопкой, нажал перейти. Зафиксировал в памяти реквизит Объект.СтатьяФинансирования. Адрес получился такой Справочники.ЭлементСправочника.Реквизит (Справочник.ШтатноеРасписание.СтатьяФинансирования). Как бы все просто же, но не понятно как так может быть.
13 Demanufactyre
 
10.08.23
08:11
Где элементы справочника хранят свои реквизиты? Смотрел ПриОткрытии, никто не заполняет этот реквизит.
14 Fish
 
10.08.23
08:16
"Где элементы справочника хранят свои реквизиты?" - "Стаж 6 лет". Сильно.
15 Demanufactyre
 
10.08.23
08:19
(14) Ага, со всех сил старался
16 Demanufactyre
 
10.08.23
09:50
Уникальный идентификатор значения которое я хочу записать b03a6836-0e72-11e8-8803-00a9400f442a. И он есть в таблице справочника куда я хочу записать именно у этого элемента. Таблица _REFERENCE314_1X1@, колонка _FLD8625RREF. Строка с наименованием позиции. Стоит нужное мне значение. Почему в программе выводится значение с уникальным идентификатором b03a6834-0e72-11e8-8803-00a9400f442a - Это позиция которая не должна быть там.
17 takefive
 
10.08.23
09:58
Прочитать (Read)
Синтаксис:

Прочитать()
Описание:

Считывает данные элемента справочника из базы данных.
18 Demanufactyre
 
10.08.23
10:03
(17) Бессмысленно же? Я и так получаю данные справочника когда получаю объект. Или нет?
19 unenu
 
10.08.23
10:06
(18) может найденная ссылка - это группа?
20 Demanufactyre
 
10.08.23
10:10
(19) [Группа = Ложь] в табло
21 Волшебник
 
10.08.23
10:39
(20) Поле называется ЭтоГруппа
22 Demanufactyre
 
10.08.23
10:46
(21) Хорошо, [ЭтоГруппа = Ложь] - в табло. Извините пожалуйста
23 Мимохожий Однако
 
10.08.23
10:58
(9) Посмотри состояние  Док.СтатьяФинансирования до и сразу после записи. можешь удивиться
24 Demanufactyre
 
10.08.23
11:03
(23) Что то не понял что удивительного? До записи там значение стоит другое или пустое значение. После записи по табло стоит нужное мне знаечение. Открываю в пользовательском интерефейсе, а там значение старое. И что такое "состояние", это где такое?
25 Bigbro
 
10.08.23
11:11
если в элементе справочника "Слон" видишь значение "Буйвол" - не верь глазам своим (с)
внимательно смотри форму при открытии при создании
отладчиком ткнись в первую строчку при создании на сервере посмотри что там в реквизите.
чудес же не бывает
26 Мимохожий Однако
 
10.08.23
11:11
(24) "Состояние" это значение реквизита справочника .СтатьяФинансирования до записи и после записи (строка КонецПроцедуры), когда пошагово идёшь в отладчике.  Если элемент справочника записался как и ожидал, а при открытии в пользовательском интерфейсе видишь другое значение, то сам Бог велел посмотреть процедуры формы ПриОткрытии() или СозданииНаСервере()
27 takefive
 
10.08.23
11:25
1. При считывании из базы данные помещаются в кэш представления ссылок
2. При интерактивном изменении объекта кеш очищается
3. При программном изменении нужно как то сообщить платформе
см. методы: ОповеститьОбИзменении, ОбновитьОтображениеДаных и т.п.
28 Demanufactyre
 
10.08.23
11:52
Починил. Данные берутся из регистра сведений ИсторияИспользованияШтатногоРасписания по последнему документу. Там все было заполнено. Поменял платформу на 8.3.23 и все взлетело. Всем спасибо.
29 Одинист
 
10.08.23
11:55
(28) в (11) было: 2. Возможно поле на форме не связано реквизитом объекта.
30 Demanufactyre
 
10.08.23
12:53
(29) Связано. При открытии данные должны были браться из регистра сведений. Перечитать не помогало. После замены платформы - команда перечитать и все вышло как надо.
AdBlock убивает бесплатный контент. 1Сергей