1с проверкаправописанияпривводетекста как работает

Обновлено: 06.07.2024

▪ В этой статье пойдет речь о подсветке орфографии в 1С. Все привыкли, что при использовании практически любых программ, где можно писать текст, будь то почтовик или любой мессенджер, неправильно написанные слова подсвечиваются автоматически. И это стало обыденностью.

▪ Нам поступила задача: для удобства работы с программой на форме в 1С сделать такую же подсветку орфографии. Задача есть – нужно выполнять. Так как ранее мы не сталкивались с подобным, пришло время обратится к Синтакс-помощнику. В нем мы нашли свойство поля ввода формы – ПроверкаПравописанияПриВводеТекста.

▪ Все так просто: включаем использование – и вуаля, все работает? Но, раз эта статья существует, значит все не так просто. Как оказалось, это свойство (а также несколько других, которые были бы очень полезны, например, СпециальныйРежимВводаТекста), доступно только в мобильном приложении.

▪ Но мы не отчаивались и решили спросить у Гугла, что наши коллеги, столкнувшиеся с данным вопросом, уже придумали. Мы нашли множество решений: и COM соединение с Word, и - самый популярный вариант – использование Яндекс Спеллера. Все они действительно рабочие, но все-таки мы были уверены, что можно сделать проще и красивее. И, действительно, после пары экспериментов мы нашли решение. Так как этот способ при быстром поиске в интернете мне найти не удалось, полагаю, эта статья полезна тем, кто столкнулся с такой же проблемой. Далее расскажу о реализации функции на нашем примере.

☑ Задача – проверять текст, введенный пользователем в поле Вопрос.

Скорее всего, это абстрактная ситуация именно то, с чем вы столкнетесь при решении проблемы, примерно такие же исходные данные будут и у вас.

Что нужно сделать – создаем реквизит формы, назовем его ВопросФорматированныйДокумент с типом ФорматированныйДокумент, а также у Поля Ввода Вопрос изменим ПутьКДанным до только что созданного реквизита формы ВопросФорматированныйДокумент.

Статью подготовил Никита С., программист 1С:Предприятие партнерской сети "ИнфоСофт".

Отраслевые и специализирован ные программные продукты "1С:Предприятие 8" Современная торговая платформа, маркетплейс, экосистема сервисов

ИнфоСофт

📢 Приглашаем бухгалтеров централизованных бухгалтерий государственных и муниципальных учреждений на семинар «1С:Консалтинг».

✅ «Подготовка к составлению отчетности за 2021 год учреждениями госсектора. Практикум в 1С:Бухгалтерии государственного учреждения 8».
✅ «Бухгалтерская (бюджетная) отчетность за 2021 год: порядок составления и представления отчетных форм. Практикум в 1С:Бухгалтерии государственного учреждения 8».

❓ Кого мы ждем на семинаре?

Главных бухгалтеров и бухгалтеров централизованных бухгалтерий государственных и муниципальных учреждений, специалистов финансово-экономических отделов и других работников бухгалтерии государственных и муниципальных учреждений.

❓ Какие темы обсудим?

1. Обзор изменений законодательства в 2021-2022 г.:
- Изменения в бухгалтерском законодательстве в течение 2021 года.
- Федеральные стандарты бухгалтерского учета государственных финансов 2021 – 2022.
2. Подготовительные мероприятия и особенности составления годовой отчетности государственными и муниципальными учреждениями:
- Сверка расчетов.
- Исправление ошибок в учете.
- Инвентаризация имущества и обязательств.
- Заключение счетов текущего отчетного года.
3. Порядок подготовки к составлению отчетности за 2021 год рассматривается на практических примерах в программе "1С:Бухгалтерия государственного учреждения" (редакция 1 и 2).
4. Общие принципы и вопросы формирования отчетности учреждениями бюджетной сферы.
5. Новое в отчетности государственных и муниципальных учреждений в 2021 году.
6. Применение Стандартов при составлении отчетности учреждениями бюджетной сферы.
7. Рекомендации по заполнению отдельных форм и контрольные соотношения.
8. Особенности и порядок формирования отчетности за 2021 год казенными, бюджетными и автономными учреждениями с использованием программы "1С:Бухгалтерия государственного учреждения 8" (редакций 1 и 2);
9. Ответы на вопросы слушателей.

Экспертами семинара будут практикующие специалисты по внедрению 1С:Предприятие.

❓ Когда мы вас ждем на семинаре?
16 декабря (время Новосибирское)
09.30 – начало регистрации, welcome coffee
10.00 – начало мероприятия

❓ Где пройдет семинар?
Ленина, 21. AZIMUT отель Сибирь.
Для вашего удобства мы организуем online-трансляцию, вы можете остаться дома и подключиться к нам через ZOOM.

‼ Правила посещения семинара в offline формате:
Дорогие участники, мы заботимся о каждом из Вас. Мы соблюдаем рекомендованные нормы безопасности и просим вас пройти ПЦР тестирование или предоставить сертификат о вакцинации.

❓ Какова продолжительность мероприятия?
Продолжительность семинара 6 часов. С 10.00 до 16.00.

❓ Какова стоимость семинара?
Стоимость участия в семинаре - 2 000 рублей.

❓ Что еще вас ждет на мероприятии?

✅ Демонстрация программ «1С:Предприятие 8»,
✅ Приятный бонус для участников offline формата – вкусный кофе-брейк;
✅ Розыгрыш ценных призов;
✅ Раздаточный материал, в том числе методические пособия по самым актуальным темам, которых нет в свободной продаже.

В этой статье пойдет речь о подсветке орфографии в 1С. Все привыкли, что при использовании практически любых программ, где можно писать текст, будь то почтовик или любой мессенджер, неправильно написанные слова подсвечиваются автоматически. И это стало обыденностью.

Нам поступила задача: для удобства работы с программой на форме в 1С сделать такую же подсветку орфографии. Задача есть – нужно выполнять. Так как ранее мы не сталкивались с подобным, пришло время обратится к Синтакс-помощнику. В нем мы нашли свойство поля ввода формы – ПроверкаПравописанияПриВводеТекста.

1.jpg

Все так просто: включаем использование – и вуаля, все работает? Но, раз эта статья существует, значит все не так просто. Как оказалось, это свойство (а также несколько других, которые были бы очень полезны, например, СпециальныйРежимВводаТекста), доступно только в мобильном приложении.

Но мы не отчаивались и решили спросить у Гугла, что наши коллеги, столкнувшиеся с данным вопросом, уже придумали. Мы нашли множество решений: и COM соединение с Word, и - самый популярный вариант – использование Яндекс Спеллера. Все они действительно рабочие, но все-таки мы были уверены, что можно сделать проще и красивее. И, действительно, после пары экспериментов мы нашли решение. Так как этот способ при быстром поиске в интернете мне найти не удалось, полагаю, эта статья полезна тем, кто столкнулся с такой же проблемой. Далее расскажу о реализации функции на нашем примере.

Задача – проверять текст, введенный пользователем в поле Вопрос.

Скорее всего, это абстрактная ситуация именно то, с чем вы столкнетесь при решении проблемы, примерно такие же исходные данные будут и у вас.

Что нужно сделать – создаем реквизит формы, назовем его ВопросФорматированныйДокумент с типом ФорматированныйДокумент, а также у Поля Ввода Вопрос изменим ПутьКДанным до только что созданного реквизита формы ВопросФорматированныйДокумент

3.jpg

4.jpg

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

5.jpg

Теперь данные будут корректно сохранятся и повторно выводится на форму при открытии.

На этом все действия закончены. Как по мне, это очень лаконичное решение. Надеюсь, эта статья будет вам полезна. Результат работы проверки орфографии ниже:

Статью подготовил Селютин Никита, программист 1С:Предприятие партнерской сети "ИнфоСофт"

Как вызвать стандартную проверку заполнения реквизитов?
Код 1C v 8.2 УП
Возвращаемое значение:
Тип: Булево. Истина - ошибок не обнаружено, Ложь - в противном случае.

Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент.
Код 1C v 8.2 УП

У прикладных объектов на платформе 1С Предприятие 8.2 появился новый обработчик события ОбработкаПроверкиЗаполнения, где теперь рекомендуется делать все проверки на заполненность реквизитов объекта. Рассмотрим работу с этим обработчиком. Обработчик должен быть расположен в модуле объекта (для констант в модуле менеджера значений) и имеет следующий синтаксис:
Код 1C v 8.2 УП
Здесь параметр Отказ (тип Булево) отвечает за возможность дальнейшей работы программы после проверки заполнения, а в параметре ПроверяемыеРеквизиты(тип Массив) содержатся реквизиты объекта, которые система будет проверять на заполненность. Напомним, что в версии 1С Предприятие 8.2 появилось возможность на уровне свойств реквизитов объекта устанавливать свойство Проверка заполнения. Так вот в массив ПроверяемыеРеквизиты по умолчанию система помещает реквизиты с установленным свойством «Выдавать ошибку». Однако разработчик может сам некоторые реквизиты добавить в массив или удалить из него в зависимости от каких-либо условий:
Код 1C v 8.2 УП
Как видно из примера в качестве элементов массива выступают строковые наименование реквизитов, как они заданы в конфигураторе. Для того чтобы полностью отказаться от системной проверки, необходимо очистить массив. При этом разработчик может проводить проверку реквизитов по произвольным алгоритмам, система же проверяет только на заполненность/незаполненность:
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Код 1C v 8.2 УП
Далее рассмотрим, когда вызывается данный обработчик. Это зависит от типа объекта и его свойств. Так для, например, для справочника обработчик вызывается перед записью объекта; для документа: если разрешено проведение - при проведении, иначе при записи; для обработки : при вызове стандартных команд "OK", Да". Подробно это описано во встроенной справке. Но также есть возможность вызвать данный обработчик в произвольный момент, используя метод объекта ПроверитьЗаполнение(). Например, определить команду Проверить в форме документа:
Код 1C v 8.2 УП
Автор: Борис Захаров

Код 1C v 8.х

Код 1C v 8.х

Разместил: E_Migachev  Версии: | 8.x | 8.2 УП |  Дата: 25.01.2010   Прочитано: 75024

Распечатать

Похожие FAQ

Еще в этой же категории

Программное создание таблицы значений с условным оформлением  12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора

Заполнение списка значений в элементе поле выбора на форме  10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип - Произвольный, Использование - Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Поле выбора

Как ограничить список выбора?  8
Ограничим список элементов, установив отбор в открываемой форме //Пример 1 Процедура СтатьяПДРНачалоВыбора(Элемент, СтандартнаяОбработка) ФормаВыбора = Справочники.ПрочиеДоходыИРасходы.ПолучитьФормуВыбора(, Элемент); ЭлементОтбораВидПДР = Форма Реквизит

Как активизировать, перевести фокус на необходимый элемент на форме?  6
//Текущему Элементу формы присваиваем элемент котровый необходимо активизировать ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ТабличноеПоле; Посмотреть все в категории Работа с Формой (Диалог) и её элементами

Где разместить собственный алгоритм, проверяющий заполнены реквизиты формы или нет?

Механизм проверки заполнения позволяет автоматически проверить, заполнены ли указанные реквизиты объекта (см. Как перед записью накладной проверить, что реквизит Поставщик заполнен?). Такая проверка выполняется при интерактивном вводе объекта, перед его записью.

При этом вызывается следующая последовательность событий:


Таким образом разработчик может влиять на стандартную проверку заполнения, выполняемую платформой.

Для этого у него есть два события. Одно событие – Обработка проверки заполнения на сервере – можно обработать в модуле формы. Другое событие – Обработка проверки заполнения – можно обработать в модуле прикладного объекта.

У формы, как правило, есть основной реквизит (редактируемый объект) и могут быть реквизиты, не относящиеся к редактируемому объекту, а являющиеся лишь частью формы:


Поэтому серверное событие формы Обработка проверки заполнения на сервере предназначено для проверки заполнения тех реквизитов формы, которые не относятся к редактируемому объекту. Это данные только формы, у формы могут быть свои причины и алгоритмы для проверки этих данных.

Напротив, событие объекта Обработка проверки заполнения предназначено для для того, чтобы проверить реквизиты основного реквизита формы.

Обработчики обоих событий имеют параметр ПроверяемыеРеквизиты , в который платформа передает массив имен тех реквизитов, которые подлежат проверке. Если после выхода из обработчика в этом массиве все еще останутся какие-то имена реквизитов - платформа выполнит автоматическую проверку оставшися реквизитов.

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

  1. Самостоятельно проверить заполненность всех реквизитов и очистить массив ПроверяемыеРеквизиты , чтобы платформа не выполняла их проверку.
  2. Проверить часть реквизитов самостоятельно, удалить их из массива ПроверяемыеРеквизиты , а оставшиеся оставить на проверку платформе.
  3. Добавить в массив ПроверяемыеРеквизиты какие-то реквизиты, чтобы платформа проверила и их тоже.
  4. Вообще отказаться от проверки заполненности реквизитов, очистив массив.

Все эти сценарии реализуются довольно просто.

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

Чтобы проверить лишь часть реквизитов, можно выполнить такой код:

Если Поставщик = Справочники . Поставщики . ПустаяСсылка ( ) Тогда

// Удалить поставщика из массива проверяемых реквизитов.
ИндексПоляПоставщик = ПроверяемыеРеквизиты . Найти ( "Поставщик" ) ;

Если ИндексПоляПоставщик < > Неопределено Тогда

ПроверяемыеРеквизиты . Удалить ( ИндексПоляПоставщик ) ;

Добавить в массив проверяемых реквизитов еще один реквизит можно следующим образом:

А очистить массив проверяемых реквизитов, чтобы ничего не проверять ни самому, ни платформе, можно так:

Вторым параметром в обработчиках этих событий является параметр Отказ . Если ему присвоить значение Истина , то после выхода из обработчика дальнейшая запись объекта будет отменена. Таким образом этот параметр нужно устанавливать в значение Истина тогда, когда ваш алгоритм приходит к выводу, что реквизит не заполнен. В этом случае запись объекта выполнена не будет.

Читайте также: