Как очистить поле на форме 1с
Загрузка. Пожалуйста, подождите.

Сообщение сайта
(Сообщение закроется через 2 секунды)
ZUBR —>
ZUBR
![]()

Просмотр профиля

Найти сообщения пользователя
14.05.20, 13:00
Здравствуйте!
У меня на форме расходной есть поле ввода реквизита с типом Перечисление.
Возникла необходимость его очистить, чтобы оно было пустым. Перечисление пустую строку не допускает. Как это сделать? Программно и вручную.
Спасибо.
Оператор Очистить используется только для очистки поля Окна Сообщений.
denis84 —>
denis84
![]()

Просмотр профиля

Найти сообщения пользователя
14.05.20, 14:00
ZUBR @ Сегодня, 14:00 ,
SHIFT+F4.Сработает, если Вы находитесь на данном реквизите в режиме выбора
Программно,если реквизит «перечисление» в шапке:
рядом поставить кнопку, в свойствах кнопки — дополнительно — формула : Перечисление(как у Вас называется реквизит) = 0.
Спасибо сказали: ZUBR,
volodya1122 —>
volodya1122
![]()

Просмотр профиля

Найти сообщения пользователя
Очистить поле формы
Здравствуйте! Подскажите, пожалуйста, как мне программно очистить поле формы при определённых условиях, используя Очистить ()? Сейчас пока просто написала что Объект = » «;
но хотелось бы через Очистить
По теме из базы знаний
- Всякие полезности
- Форма универсального отбора и сортировки для таблицы значений (обычные формы)
- Расшифровка отчета на СКД с детализацией по выбранному полю на основе БСП
- Программное приведение типа значения поля ввода и колонки табличного поля формы 1С8
- Дополнительные параметризуемые поля в динамических списках. Остатки и цены в списке номенклатуры
- Дата
- Дата
- Рейтинг всех уровней
- Рейтинг 1-го уровня
- Древо развёрнутое
- Древо свернутое
Свернуть все
2. newborn 09.11.14 15:45 Сейчас в теме
С одной стороны, непонятно в чём проблема. Невозможно что-то сделать на сервере или на клиенте? А во-вторых, непонятно, почему нельзя воспользоваться мотород Очистить? Что мешает?
4. Alissa_Maty 09.11.14 16:52 Сейчас в теме
(2) newborn, я не знаю, как ) Я могу очистить на клиенте?
На клиенте
Если пишу Объект.КонтактноеЛицо.Очистить(); то пишет, что метод не обнаружен
5. dj_serega 389 09.11.14 18:43 Сейчас в теме
(4) Alissa_Maty, а чем не нравится «Объект.КонтактоеЛицо = Неопределено»?
6. newborn 09.11.14 23:58 Сейчас в теме
(4) Alissa_Maty,
Если контактное лицо — это справочник, то можно сделать серверный вызов, а там сделать
3. SemenovaMarinaV 09.11.14 16:14 Сейчас в теме
Не понятно в чем проблема
7. Chameleon1980 10.11.14 00:30 Сейчас в теме
перем=»»
перем=0
перем=неопределено
One_Assembler; + 1 – Ответить
8. Alissa_Maty 10.11.14 00:34 Сейчас в теме
Проблема не в том, что мне не нравится, неопределенно, или какой-то другой вариант, просто хотелось понять, как работает именно Очистить 🙂
9. Chameleon1980 10.11.14 00:52 Сейчас в теме
—
и чего не спится.
и, кстати, сегодня что-то девушек наблюдается больше чем меньше
10. bytecoded 26 10.11.14 05:25 Сейчас в теме
Поле формы «очистить» нельзя, можно очистить (обнулить, опустошить, установить пустую ссылку) какой-либо реквизит формы или объекта. Метод Очистить() у ссылочных полей не существует, только у табличных частей; чтобы очистить реквизиты, нужно приравнять их к пустому значению соответствующего типа. Например, «» для строк, 0 для числа, ПустаяСсылка() или Неопределено для ссылочного реквизита и так далее.
Ermigen; mrPepper; SG7R; Eillecho; VAAngelov; klaus38; Светлый ум; Nikitos_NSK; Kaspirovsky; Merkalov; iLonmaks; Terabaytus; user811769; NN2P; dima.jung; IrinaKostroma; SoftPlus; Alex_E; dj_serega; Alissa_Maty; + 20 – Ответить
11. dj_serega 389 10.11.14 11:00 Сейчас в теме
(10) bytecoded, По красоте разложил 🙂
Sashabel970; Alissa_Maty; + 2 – Ответить
12. Salavat 13 10.11.14 12:09 Сейчас в теме
или Неопределено
— это универсальное (как уже сказали вскользь).
к реквизиту любого типа применимо.
14. dj_serega 389 10.11.14 16:45 Сейчас в теме
(12) Salavat, Кстати после того как я узнал что так можно, начал использовать всегда. Еще не вылезло боком 🙂
17. Salavat 13 11.11.14 10:02 Сейчас в теме
(14) dj_serega, (15) bytecoded, я сам это ни так давно (сравнительно) узнал, но, как было написано (не помню уж где) — в 1С это так именно сделано.
например, чтоб очистить весь объект документа — делается цикл по реквизитам с присваиванием им Неопределено.
три строки кода.
примерно из той же области — преобразуются числовые данные в булевые. и в таком духе.
15. bytecoded 26 11.11.14 06:28 Сейчас в теме
(12) Salavat, да, верно. Впрочем, я все же стараюсь использовать типизированные пустые значения ради дальнейшей экономии времени на размышлениях типа «так, а в этой переменной что должно быть?».
16. Никулин Леонид 4 11.11.14 08:03 Сейчас в теме
13. SemenovaMarinaV 10.11.14 12:46 Сейчас в теме
Спасибо 10 и я тоже поняла
18. PerlAmutor 129 23.10.18 09:39 Сейчас в теме
Так как тема выдается первой в поисковике, приведу еще один вариант, функция БСП: ОбщегоНазначенияБПКлиентСервер.ПустоеЗначениеТипа()
Код довольно простой:
// Предназначена для получения пустого значения заданного типа: // примитивного, или ссылочного. Используется // // Параметры: // ЗаданныйТип - тип, пустое значение которого нужно получить // Функция ПустоеЗначениеТипа(ЗаданныйТип) Экспорт Если ЗаданныйТип = Тип("Число") Тогда Возврат 0; ИначеЕсли ЗаданныйТип = Тип("Строка") Тогда Возврат ""; ИначеЕсли ЗаданныйТип = Тип("Дата") Тогда Возврат '00010101000000'; ИначеЕсли ЗаданныйТип = Тип("Булево") Тогда Возврат Ложь; Иначе Возврат Новый (ЗаданныйТип); КонецЕсли; КонецФункции // ПустоеЗначениеТипа();
19. AsPin123 13.12.18 09:36 Сейчас в теме
Еще один способ, работает на клиенте:
Объект.ФизическоеЛицо = ПредопределенноеЗначение(«Справочник.ФизическиеЛица.ПустаяСсылка»);
20. TrofimovOK 14.02.19 11:04 Сейчас в теме
(19) Да это работает, но будет вызов сервера. При присвоении ссылке неопределено вызов сервера не происходит. Прикрепляю сравнение замера производительности.
Прикрепленные файлы:
21. triviumfan 87 28.09.20 14:12 Сейчас в теме
(20) Не может быть такого. ПредопределенноеЗначение() не делает серверный вызов — только что проверил.
При этом.
При этом не следует реализовывать дополнительные механизмы кеширования на клиенте предопределенных значений. Указанные выше функции не ухудшают клиент-серверное взаимодействие: серверный вызов выполняется только при первом обращении к значению, а результат автоматически кешируется.
22. triviumfan 87 28.09.20 14:25 Сейчас в теме
(21) Странно, а тут указано обратное:
Вызов функции ПредопределенноеЗначение() приводит к обращению на сервер, поэтому нужно стремиться к тому, чтобы использовать эту функцию как можно реже. Прежде всего, ее, конечно, не следует использовать тогда, когда доступны менеджеры прикладных объектов, вне кода тонкого клиента или веб-клиента; в модулях объектов, наборов записей, общих модулях для которых не установлен флажок компиляции на тонком клиенте, в серверных процедурах, в серверных функциях модулей форм и т. д. Но кроме этого, и в клиентском коде форм нужно использовать ее внимательно. Например, если требуется сравнение с одним из предопределенных значений, можно получить это значение еще при создании формы на сервере и поместить его в данные формы.
1С 8.3 Удаление (очистка) истории списка ввода — Программист 1С Минск. Автоматизация бизнеса.

ПРИМЕРЫ КОДА 1С
Перейти в раздел примеры кода 1С 8.3:

В справочниках на формах списках есть поле ввода (для быстрого выбора). Данные примеры кода нужны для программной очистки выпадающего списка с ранее вводимыми вариантами. История хранится для каждого пользователя. Кроме программного удаления можно установить признак в поле ввода «История выбора при вводе» — «Не использовать».
Программная очистка истории выпадающего списка выбора в 1С 8.3:
&НаСервере
Процедура Удаление_истории_списка_ввода_Пример1 ()
Юзер = Справочники . Пользователи . Выбрать ();
Пока Юзер . Следующий () цикл
Пользователь_ИБ = ПользователиИнформационнойБазы . НайтиПоУникальномуИдентификатору ( Юзер . ИдентификаторПользователяИБ );
Если Пользователь_ИБ <> Неопределено Тогда
ХранилищеСистемныхНастроек . Удалить ( «ИсторияВыбора» , , Пользователь_ИБ . Имя );
//ХранилищеСистемныхНастроек.Удалить(«ИсторияВыбора», , ПользовательИБ.Наименование);
КонецЕсли;
КонецЦикла;
Поле ввода Input
Поле ввода дает возможность указать значение с помощью клавиатуры.
Когда использовать
Используйте поле ввода для коротких текстовых или цифровых значений без предсказуемого формата.
Если нужно ввести больше 5 слов — используйте многострочное поле ввода.
Если вводимое значение имеет определенный формат, используйте специальную версию поля:
В HTML5 поле ввода может быть разных типов — color, date, email, password, text, url и т.д. В сервисах Контура используйте только типы text и password. Остальные типы либо не поддерживаются основными браузерами, либо предлагают плохой пользовательский интерфейс и валидацию, которая будет отличаться по дизайну от нашей.
Название
Название поля пишется с заглавной буквы.
Называйте поле ввода существительным, указывающим что нужно ввести. Избегайте в названии слов «ваш», «введите» и подобных — они не несут смысла.
Не ставьте двоеточие после названия: без него все понятно, оно только создает лишний визуальный шум.

Описание работы
Плейсхолдер
Если из названия не очевидно, как заполнять поле, используйте плейсхолдер – подсказку, которая отображается внутри поля, пока оно не заполнено.
Плейсхолдер (от английского placeholder) — местозаполнитель. Часто используют синоним «ватермарк», но плейсхолдер — более правильное название, т. к. совпадает с соответствующим атрибутом тегов input и textarea.
При получении полем фокуса плейсхолдер становится светлее, при вводе первого символа исчезает.

Плейсхолдер не должен подсказывать конкретное значение, которое нужно ввести в поле.
Если поле вычисляемое и вы рассчитали значение — используйте автополе:

Если вы предполагаете значение — предзаполните поле, пользователь сможет его отредактировать:

Не используйте плейсхолдер для указания формата структурированных значений. Для этого есть поле с маской.

Помещать название поля в плейсхолдер можно в исключительных случаях: когда нужно сэкономить место, или предназначение поля очевидно:

Не используйте плейсхолдер для указания названий полей во всей форме. В заполненном состоянии такая форма становится «слепой»:

Очистка поля
Если пользователю нужно часто очищать поле и вводить новое значение — используйте для этого специальную кнопку-крестик.

Крестик показывается, когда в поле введен хотя бы 1 символ. Крестик показывается даже когда фокус находится вне поля.
При клике на крестик фокус переходит в поле, введенное значение стирается:

При наведении иконка становится темнее:

Область для нажатия по высоте равна полю ввода, по ширине 28 px:

Internet Explorer 10 рисует свой крестик для любого поля ввода в фокусе. Чтобы этот крестик не перекрывал нашу иконку, нужно дописать стиль:

Счетчик количества введенных символов
Счетчик введенных символов в обычном инпуте работает так же, как и в многострочном поле. Располагается справа, на той же строке, что и вводимый текст:

Смотрите подробное описание работы счетчика в гайде по многострочному полю.
Размер и расположение
Поле ввода, как и кнопка, может быть трех размеров. Используйте средние и большие поля ввода в том случае, если это главные контролы на странице. Например, поле поиска в справочнике. В средних полях размер шрифта — 16 px, а в самых больших — 18 px.

Название поля должно выравниваться по базовой линии текста в поле:

Название поля в несколько строк должно выравниваться по базовой линии первой строки:

В многострочном поле название должно выравниваться по базовой линии первой строки введенного в поле текста:

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

В рамках одной формы нужно выбрать 3-4 ширины для полей. Так форма выглядит проще и аккуратнее.
Фокус и работа с клавиатурой
При клике по полю и при переходе табом поле выглядит одинаково: появляется чёрная рамка, которая сохраняется до потери фокуса.
Чёрная рамка фокуса не появляется если поле находится в состоянии ошибки или предупреждения, до тех пор пока значение в поле не будет изменено.
Допустимо переносить фокус на следующее поле при нажатии клавиши Enter в поле — иногда такое поведение удобно и интуитивно понятно для пользователя. Если поле последнее в форме, переход фокуса по Enter не должен происходить на кнопку отправки формы.
Валидация
Поле с ошибкой подсвечивается красной рамкой.

О поведении полей ввода с ошибками читайте в гайде по валидации.
Дизайн
Углы поля имеют скругления в 2px. В рамке поля используется чисто черный цвет с непрозрачностью 16% — так поле достаточно контрастно выглядит на серых и цветных фонах.
