Как получить текущий элемент формы списка справочника и изменить его?
По теме из базы знаний
- Некоторые ошибки и «проблемные» особенности реализации встроенного языка платформы 1С:Предприятие 7.7
- Конфигурация "Весовая ред. 3.0" для Платформы 1С 8.3
- Тестер: частые вопросы
- Подсистема прав доступа (анализ ролей, отладка RLS, английский код, обычные и управляемые формы)
- Интеграция 1С и Sentry для мониторинга ошибок и расчета Apdex
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Есть справочник "Элементы", в нем реквезит "Метка".
В форме списка добавлено текстовое поле "ПиктМетка".
Нужно при щелчке по колонке "ПиктМетка" изменить реквезит "Метка" с 0 на 1, или наоборот.
//===========================================
Процедура ПриНачалеРедактированияСтроки()
Если Форма.ТекущаяКолонка() = "ПиктМетка" Тогда
ТекЭлемент = ТекущийЭлемент();
ТекЭлемент.Метка = ?(ТекЭлемент.Метка = 0, 1, 0);
ТекЭлемент.Записать();
КонецЕсли;
КонецПроцедуры
//===========================================
Ошибка:
ТекЭлемент.Записать();
{Справочник.Элемент.ФормаСписка.ФормаСтартовая.Модуль(35)}: Не выбран элемент!
Извините за неверно поставленый вопрос.
В форме списка добавлено текстовое поле "ПиктМетка".
Нужно при щелчке по колонке "ПиктМетка" изменить реквезит "Метка" с 0 на 1, или наоборот.
//===========================================
Процедура ПриНачалеРедактированияСтроки()
Если Форма.ТекущаяКолонка() = "ПиктМетка" Тогда
ТекЭлемент = ТекущийЭлемент();
ТекЭлемент.Метка = ?(ТекЭлемент.Метка = 0, 1, 0);
ТекЭлемент.Записать();
КонецЕсли;
КонецПроцедуры
//===========================================
Ошибка:
ТекЭлемент.Записать();
{Справочник.Элемент.ФормаСписка.ФормаСтартовая.Модуль(35)}: Не выбран элемент!
Извините за неверно поставленый вопрос.
//===========================================
Процедура ПриНачалеРедактированияСтроки()
Если Форма.ТекущаяКолонка() = "ПиктМетка" Тогда
Метка = ?(Метка=0,1,0);
СтатусВозврата(0);
КонецЕсли;
КонецПроцедуры
//===========================================
При таком подходе "Метка" сохранена не будет.
Процедура ПриНачалеРедактированияСтроки()
Если Форма.ТекущаяКолонка() = "ПиктМетка" Тогда
Метка = ?(Метка=0,1,0);
СтатусВозврата(0);
КонецЕсли;
КонецПроцедуры
//===========================================
При таком подходе "Метка" сохранена не будет.
Вот так работает
Только значения свои подставьте
Процедура ПриНачалеРедактированияСтроки()
Если Форма.ТекущаяКолонка() = "Метка" Тогда
ТекЭлемент=ТекущийЭлемент();
Спр=СоздатьОбъект("Справочник.Новый1");
Спр.НайтиЭлемент(ТекЭлемент);
Спр.Метка=?(ТекЭлемент.Метка=0,1,0);
Спр.Записать();
КонецЕсли;
СтатусВозврата(0);
КонецПроцедуры
ПоказатьТолько значения свои подставьте
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот