Как очистить дополнительное свойство?

1. user1559729 11.02.22 12:30 Сейчас в теме
Бух 3.0.106.60. Делаю отладку. Понадобилось очистить ранее заполненное доп. сведение у документа. Тип доп. сведения - ссылка на другой документ. Очищаю, нажимаю Записать и закрыть - открываю - в поле старое значение... Если просто нажать Записать - то признак модифицированности уходит, как будто записано, но по факту ничего не записано. Я не понял логику. Пояснит кто-нибудь? Если ошиблись и не в том документе установили доп. сведение, то как теперь сбросить это доп. сведение?

В процедуре ЗаписатьНаборСвойствВРегистр (общий модуль РедактированиеДополнительныхСведений) стоит конкретная проверка:

Если Не ЗначениеЗаполнено(Запись.Значение)
		Или Запись.Значение = Ложь Тогда
		ТекущиеЗначения.Удалить(Запись);
КонецЕсли;


&НаСервереБезКонтекста
Процедура ЗаписатьНаборСвойствВРегистр(Знач Ссылка, Знач ЗначенияСвойств)
	
	УстановитьПривилегированныйРежим(Истина);
	
	НачатьТранзакцию();
	Попытка
		Блокировка = Новый БлокировкаДанных;
		ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ДополнительныеСведения");
		ЭлементБлокировки.УстановитьЗначение("Объект", Ссылка);
		Блокировка.Заблокировать();
		
		Набор = РегистрыСведений.ДополнительныеСведения.СоздатьНаборЗаписей();
		Набор.Отбор.Объект.Установить(Ссылка);
		Набор.Прочитать();
		ТекущиеЗначения = Набор.Выгрузить();
		Для Каждого Строка Из ЗначенияСвойств Цикл
			Запись = ТекущиеЗначения.Найти(Строка.Свойство, "Свойство");
			Если Запись = Неопределено Тогда
				Запись = ТекущиеЗначения.Добавить();
				Запись.Свойство = Строка.Свойство;
				Запись.Значение = Строка.Значение;
				Запись.Объект   = Ссылка;
			КонецЕсли;
			Запись.Значение = Строка.Значение;
			
			Если Не ЗначениеЗаполнено(Запись.Значение)
				Или Запись.Значение = Ложь Тогда
				ТекущиеЗначения.Удалить(Запись);
			КонецЕсли;
		КонецЦикла;
		Набор.Загрузить(ТекущиеЗначения);
		Набор.Записать();
		
		ЗафиксироватьТранзакцию();
	Исключение
		ОтменитьТранзакцию();
	КонецПопытки;
	
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1559729 11.02.22 13:26 Сейчас в теме
Из РС Дополнительные сведения тоже не получается удалить:

Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Неверный второй параметр Реквизиты в функции ОбщегоНазначения.ЗначенияРеквизитовОбъектов:
- Поле объекта "Наименование" не существует
{ОбщийМодуль.ОбщегоНазначения.Модуль(595)}: ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
{ОбщийМодуль.ОбщегоНазначения.Модуль(288)}: ЗначенияРеквизитовОбъекта = ЗначенияРеквизитовОбъектов(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Ссылка), Реквизиты, ВыбратьРазрешенные, КодЯзыка)[Ссылка];
{ОбщийМодуль.ОбщегоНазначения.Модуль(401)}: Результат = ЗначенияРеквизитовОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные, КодЯзыка);
{ОбщийМодуль.УправлениеСвойствами.Модуль(2022)}: Представление = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Значение, "Наименование", , КодЯзыка);
{ОбщийМодуль.УправлениеСвойствами.Модуль(1054)}: ФорматСвойства(ЗначениеСвойства.Свойство));
{ОбщийМодуль.УправлениеСвойствамиСлужебный.Модуль(239)}: Для Каждого ЗначениеСвойства Из УправлениеСвойствами.ЗначенияСвойств(Объект.Ссылка, ПолучатьДопРеквизиты, ПолучатьДопСведения) Цикл
{ОбщийМодуль.ВерсионированиеОбъектов.Модуль(2983)}: МодульУправлениеСвойствамиСлужебный.ПриПодготовкеДанныхОбъекта(Объект, ДополнительныеРеквизиты);
{ОбщийМодуль.ВерсионированиеОбъектов.Модуль(1833)}: Возврат Выборка.КонтрольнаяСумма <> КонтрольнаяСумма(ДанныеДляХранения(Объект));
{ОбщийМодуль.ВерсионированиеОбъектов.Модуль(1289)}: Если Не Объект.ЭтоНовый() И (ИзмененаПроведенность И СведенияОВерсииОбъекта.НомерВерсии > 1 Или ВерсияОтличаетсяОтРанееЗаписанной(Объект)) Тогда
{ОбщийМодуль.ВерсионированиеОбъектов.Модуль(1401)}: СоздатьВерсиюОбъекта(Объект, СведенияОВерсииОбъекта);
{ОбщийМодуль.ВерсионированиеОбъектов.Модуль(237)}: ПриСозданииВерсииОбъекта(Источник, РежимЗаписи);
{РегистрСведений.ДополнительныеСведения.МодульНабораЗаписей(24)}: МодульВерсионированиеОбъектов.ЗаписатьВерсиюОбъекта(ЭлементОтбора.Значение);
Показать
3. soft_wind 11.02.22 13:35 Сейчас в теме
зачем саму запись удалять? просто удалите неправильное Значение
из Предприятия из интерфейса документа.

(ну или к программисту)
4. user1559729 11.02.22 13:37 Сейчас в теме
(3) Я и есть программист... Прочитайте внимательнее (0).
7. FatPanzer 11.02.22 13:50 Сейчас в теме
(4) Экий вы, батенька, затейник...
5. soft_wind 11.02.22 13:47 Сейчас в теме
эээ, да вроде как программисты не задают вопросы: - как удалить запись в регистре сведений?
FatPanzer; +1 Ответить
6. user1559729 11.02.22 13:49 Сейчас в теме
(5) По делу есть что сказать?
8. user1559729 11.02.22 13:51 Сейчас в теме
9. FatPanzer 11.02.22 13:53 Сейчас в теме
(8) Программистом себя величать изволите...
10. user1559729 11.02.22 13:54 Сейчас в теме
(9) Я так понял, что вы себя тоже изволите программистом величать? Как пользователю очистить доп. сведение, подскажете?
11. soft_wind 11.02.22 13:57 Сейчас в теме
ну ладо не делу
а что с этой процедурой не так?

&НаСервереБезКонтекста
Процедура ЗаписатьНаборСвойствВРегистр(Знач Ссылка, Знач ЗначенияСвойств)

у меня в базе точно такая-же, и ни каких проблем
12. user1559729 11.02.22 13:58 Сейчас в теме
(11) Начните с прочтения (0).
13. soft_wind 11.02.22 14:01 Сейчас в теме
там только текст процедуры приведен, описаний ошибок нет
14. user1559729 11.02.22 14:02 Сейчас в теме
(13) А никаких описаний ошибок и нет. Просто не записывается. И я не пойму логику - как пользователю очистить ошибочно установленное в документе доп. сведение?
15. soft_wind 11.02.22 14:03 Сейчас в теме
а как Пользователю чистить неправильные значения. я написал в (3)

и даже проверил, все отлично работает, как раз по этой процедуре!!!
16. user1559729 11.02.22 14:08 Сейчас в теме
(15) Я так и делаю. И об этом написано в (0) (если когда-нибудь прочитаете (0)).
На всякий случай ещё попытался удалить непосредственно в РС, т.к. у меня пока отладка.
Но основной вопрос в том - как очистить пользователю. У меня - не сохраняет.
После сохранения переоткрывали?
17. soft_wind 11.02.22 14:09 Сейчас в теме
а вы как программист, случайно умеете пользоваться отладчиком? вообще знаете что это такое?

если знаете и умеете пользоваться отладчиком, поставьте точку останова в этой процедуре, и по шагам пройдите, сразу все станет ясно.
(а если нет, тогда, все же, к НАСТОЯЩЕМУ программисту)
18. user1559729 11.02.22 14:09 Сейчас в теме
(17) Прости, но с такими выпадами - просто не пиши больше ничего здесь. У меня нет времени на пустые обвинения. Если по делу есть что - буду рад услышать.
19. soft_wind 11.02.22 14:11 Сейчас в теме
(16) "После сохранения переоткрывали?"

- да, переоткрыл, само название доп.свойства осталось, а значение сбросилось/очистилось в ноль
20. user1559729 11.02.22 14:12 Сейчас в теме
(19) Доп. свойство - ссылка на документ?
21. user1559729 11.02.22 14:14 Сейчас в теме
(20) А вобщем-то не важно. Проверил текстовый реквизит - тоже самое - не сохраняет пустое значение.
Оставьте свое сообщение

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