v8.3: Как убрать Терминирующее сообщение при проверке документа.
Есть документы, которые нельзя провести из-за не правильного заполнения, и это логично, так и должно быть.
Правильно или не правильно, определяется в обработке проверки заполнения.
Но вот в чём проблема, если пытаться провести из формы документа(когда Отказ = Истина), то будут появляться сообщения только те, которые прописаны в коде конфигурации(это хорошо), а вот если попытаться провести из формы списка документов, то будет появляться сообщение типа:»При проверке заполненности данных произошли ошибки», и на каждый такой документ, придется нажимать «ОК».
Как можно обойти этот механизм, что бы пользователям не нужно было нажимать «ОК»?
А документ должен проверятся или нет?
Да, что бы работало так же, как и всегда, но без этого сообщения Вы думали на счет стандартного инструмента «ПроведениеДокументов»? Если да, но это не подходит, к сожалению.
если выдается сообщение — значит в документе не все правильно! — надо же исправить проблему
или вам все-равно как проводится!?
Да я же не против того, что не проводится. Проблема в самом сообщении, вот нужно пользователю провести 20 документов, он в списке их выделил, нажал «Провести», а там 10 ошибок (которые и так видно в окне сообщений), и он должен еще 10 раз нажать на «ОК». Зачем? Вот именно это и нужно убрать. Просто что бы не выдавалось терминирующее сообщение, с кнопкой «Ок», всё, что нужно, пользователь видит в обычных сообщениях.
Тогда код нужно исправлять, другого варианта не вижу
Конфига изменена, так что, проблемы изменения кода нет. Но где его менять.
Для примера: создаю новую конфигу, добавляю документ, в модуле объекта делаю только одну проц. «ОбработкаПроверкиЗаполнения» и пишу одну строку Отказ = Истина; И этого достаточно, что бы выходило сообщение при проведении из списка.
Нужно понять каким образом выводится это предупреждение:
1. Это механизм платформы — проверка заполнения реквизита:
2. это написано в коде
Проверить можно отладчиком и отключить это механизм проверки
В ответе №6, можно понять, что это механизм платформы, сообщение выдаётся, когда Отказ в стандартных проц. равен истине.
Но что делать дальше?
Отказ = истине, когда что-то не правильно, и так должно быть (Иначе бы воспользовался стандартной «Проведение документов»).
отключите проверку на реквизиты по которым ругается
Кроме проверки реквизитов происходит еще куча дополнительных проверок, которые обязательны. Отключение части проверок — не вариант. Нужно только отключить сообщение при отказе, но сам отказ должен остаться. Я так понимаю, что на данный момент, это не возможно. Напишу письмо в 1С, вдруг.
Попробуйте, действительно, вдруг. 😉
Можно попробовать использовать команду ВОЗВРАТ при невыполнении условия проверки, без использования команды ОТКАЗ.
Чтоб документ не проводился — вам всего лишь нужно не выполнить процедуру ОбработкаПроведения до конца, прервать ее в нужном вам месте. Значение флажка ОТКАЗ на это никак не влияет
Снять проверку заполнения программно
Как убрать проверку заполнения через модуль?
Как убрать проверку заполнения через модуль? Добавлено через 6 минут Ну типо Проверка.
Как написать проверку заполнения Табличной части документа
Здравствуйте многоуважаемые форумчане. Обращаюсь к Вам за помощью так я уже совсем запутался.
Условие на проверку заполнения поля
Здравствуйте. Подскажите с составлением условия на проверку заполненности свойства Text.
проверку правильности заполнения таблицы истинности
Помогите добавить проверку правильности заполнения таблицы истинности и проверку, избавляющую от.
Сообщение от GreenkA
Сообщение было отмечено AleXadr999 как решение
Решение
Программно снять галочку с MenuItem
Доброго времени суток! В проекте есть меню. 2 меню итема со свойством "IsCheckable". Подскажите.
Как программно снять объединение ячеек?
надо на выделенном диапазоне ячеек,если стоит галка на фОРМАТ ЯЧЕЕК -> ОБЪЕДИНЕНИЕ ЯЧЕЕК . убрать.
Как программно снять фокус с кнопки
В общем создал фейк-объект и передаю ему фокус, но может есть какие-то нормальные способы.
Как снять защиту листа программно?
Нужно срочно изменить формулу на защищенном листе, но пароль где то потерялся, выручте пожалуйста.
Программно снять флажки с 20 боксов сразу
Подскажите пожалуйста как программно снять флажки с 20 боксов сразу, (Value = False) нажатием на.
Как убрать проверку обязательности заполнения поля email в форме?
есть файл для отправки заявок на почту. Как убрать проверку обязательности заполнения поля email в.
При проверке заполненности данных произошли ошибки 1с как убрать
markus —>
markus
Просмотр профиля
Найти сообщения пользователя
andr_andrey —>
andr_andrey
Просмотр профиля
Найти сообщения пользователя
markus —>
markus
Просмотр профиля
Найти сообщения пользователя
А ларчик просто открывался, вроде и Esс нажимала. Спасибо огромное!
Vofka —>
Vofka
Просмотр профиля
Найти сообщения пользователя
Проверка заполнения реквизитов формы
Механизм проверки заполнения позволяет автоматически проверить, заполнены ли указанные реквизиты объекта. Для этого нужно воспользоваться свойством ПроверкаЗаполнения , которое есть у реквизитов объектов конфигурации.
Если установить это свойство в значение «Выдавать ошибку», поле Поставщик в форме будет помечено как обязательное для заполнения. А при записи накладной платформа будет контролировать заполненность этого реквизита. Если реквизит окажется не заполнен, платформа выдаст автоматическое сообщение и запись накладной будет отменена.
Разработчик может повлиять на стандартную проверку заполнения, выполняемую платформой. Для этого у него есть два события:
- Одно событие — ОбработкаПроверкиЗаполненияНаСервере — можно обработать в модуле формы.
- Другое событие — ОбработкаПроверкиЗаполнения — можно обработать в модуле прикладного объекта.
У формы, как правило, есть основной реквизит (редактируемый объект) и могут быть реквизиты, не относящиеся к редактируемому объекту, а являющиеся лишь частью формы:
Поэтому серверное событие формы ОбработкаПроверкиЗаполненияНаСервере предназначено для проверки заполнения тех реквизитов формы, которые не относятся к редактируемому объекту. Это данные только формы, у формы могут быть свои причины и алгоритмы для проверки этих данных.
Напротив, событие объекта ОбработкаПроверкиЗаполнения предназначено для для того, чтобы проверить реквизиты основного реквизита формы.
Обработчики обеих событий имеют параметр ПроверяемыеРеквизиты , в который платформа передает массив имен тех реквизитов, которые подлежат проверке. Если после выхода из обработчика в этом массиве все еще останутся какие-то имена реквизитов — платформа выполнит автоматическую проверку оставшися реквизитов.
Поэтому существует несколько сценариев того, как разработчик может встроить свой алгоритм в механизм проверки заполнения:
- самостоятельно проверить заполненность всех реквизитов и очистить массив ПроверяемыеРеквизиты , чтобы платформа не выполняла их проверку
- проверить часть реквизитов самостоятельно, удалить их из массива ПроверяемыеРеквизиты , а оставшиеся оставить на проверку платформе
- добавить в массив ПроверяемыеРеквизиты какие-то реквизиты, чтобы платформа проверила и их тоже
- вообще отказаться от проверки заполненности реквизитов, очистив массив
Все эти сценарии реализуются довольно просто. Например, чтобы самостоятельно проверить заполненность реквизитов, можно выполнить следующий код:
Чтобы проверить лишь часть реквизитов, можно выполнить такой код:
Добавить в массив проверяемых реквизитов еще один реквизит можно следующим образом:
А очистить массив проверяемых реквизитов, чтобы ничего не проверять ни самому, ни платформе, можно так:
Вторым параметром в обработчиках этих событий является параметр Отказ . Если ему присвоить значение Истина , то после выхода из обработчика дальнейшая запись объекта будет отменена. Таким образом этот параметр нужно устанавливать в значение Истина тогда, когда ваш алгоритм приходит к выводу, что реквизит не заполнен. В этом случае запись объекта выполнена не будет.
Справка
ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
- Отказ . Тип: Булево . Признак отказа от записи. Если в теле процедуры-обработчика установить данному параметру значение Истина , то запись выполнена не будет. Значение по умолчанию Ложь .
- ПроверяемыеРеквизиты . Тип: Массив . Массив путей к реквизитам, для которых будет выполнена проверка заполнения. Массив может быть модифицирован удалением или добавлением путей к необходимым реквизитам.
Вызывается расширением формы при необходимости проверки заполнения реквизитов при записи в форме, а также при выполнении метода ПроверитьЗаполнение() . Для вызова проверки заполнения системой необходимо, чтобы у формы (с которой происходит работа) было установлено свойство ПроверятьЗаполнениеАвтоматически . В этом случае вначале будет вызван данный обработчик, а затем обработчик ОбработкаПроверкиЗаполнения() модуля объекта.
Позволяет разработчику самостоятельно реализовать проверку заполнения в обработчике события. При этом в обработчике можно полностью отказаться от системной обработки (очистив список проверяемых реквизитов), отказаться от проверки системой части реквизитов (выполнив проверку отдельных реквизитов особенным образом и исключив эти реквизиты из списка), а также добавить для проверки другие реквизиты, проверка которых не была указана.
Для формы документа, если при конфигурировании для документа свойство Проведение установлено в Разрешить , событие вызывается только при проведении. Если документ не проводится (свойство Проведение установлено в Запретить ), то вызывается при записи.
ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
- Отказ . Тип: Булево . Если в теле процедуры-обработчика установить данному параметру значение Истина , то будет выполнен отказ от продолжения работы после выполнения проверки заполнения. Значение по умолчанию Ложь .
- ПроверяемыеРеквизиты . Тип: Массив . Массив путей к реквизитам, для которых будет выполнена проверка заполнения. Массив может быть модифицирован удалением или добавлением путей к необходимым реквизитам.
Вызывается расширением формы при необходимости проверки заполнения реквизитов при записи или при проведении документа в форме, а также при выполнении метода ПроверитьЗаполнение() . Если для документа при конфигурировании свойство Проведение установлено в Разрешить , то вызывается только при проведении. Если документ не проводится (установлено Запретить ), то вызывается при записи.
Позволяет разработчику конфигурации самостоятельно реализовать проверку заполнения в обработчике события. При этом в обработчике можно полностью отказаться от системной обработки (очистив список проверяемых реквизитов), отказаться от проверки системой части реквизитов (выполнив проверку отдельных реквизитов особенным образом и исключив эти реквизиты из списка), а также добавить для проверки другие реквизиты, проверка которых не была указана.