27.08.2021 Айдар Фархутдинов 47426
Проверка заполнения реквизита

Содержание:

1.       Свойство 1С «Проверка заполнения»

2.       Процесс проверки заполнения реквизита

 

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


1.    Свойство 1С «Проверка заполнения»


Чтобы проверить заполнение реквизита в 1С используется специальное свойство – Проверка заполнения. Для всех объектов метаданных, которые имеют типы, а также для реквизитов, которые выступают в стандартном формате, и таблиц, которые обязательно должны быть заполнены, для свойства «Проверка заполнения» должно быть определено значение «Выдавать ошибку».


В некоторых случаях проводить документацию, в которой не заполнены значения в реквизитах и таблицах – не является уместным, так как во время учётов документ не будет иметь отображения. Как пример, рассмотрим документ «Заказ клиента», по сути – это запрос клиента для поставки некоторой продукции в некотором количестве. Согласно определению, не сложно понять, что документ, в котором не заполнены обязательные реквизиты «Клиент» и таблица «Товары» не является корректным и в свойстве «Проверка заполнения» нужно выставить «Выдавать ошибку».


Во время установки свойства «Проверка заполнения» обязательно опираться на то, что все возможные ограничения и сверки нужно прописывать в метаданных внутри конфигурации. Так что когда хоть один из возможных вариантов требует заполнения всех реквизитов, свойство «Проверка заполнения» будет установлено в «Выдавать ошибку». В случае отсутствия обязательных к заполнению реквизитов подобные сценарии должны быть прописаны внутри обработчика «ОбработкаПроверкиЗаполнения».


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


2.    Процесс проверки заполнения реквизита


Бывают случаи, когда при работе в режиме конфигуратора приходится вручную произвести проверку заполнения реквизитов. Когда реквизит имеет специальное свойство «Проверка значения» и при этом имеет значение «Выдавать ошибку», необходимо удалить данный реквизит в массиве проверяемых реквизитов, после чего нужно сверить заполнение реквизита документа при помощи программы, так как это более точный способ. В случае, если проверки в реквизите по умолчанию не было, то стоит программно добавить заданный реквизит в общий массив тех реквизитов, которые подлежат проверке заполнения реквизита.


Проверка по заполнению реквизитов в 1С происходит в обработчике «ОпработкаПроверкиЗаполнения()». Данный обработчик необходимо разместить внутри модуля соответствующего объекта. Его можно вызвать автоматически, когда проводим документацию или сохраняем форму.


Для проверки необходимо запустить модуль документа «ОказаниеУслуги» и поместить в него следующую процедуру:



Рис. 1 Осуществление проверки заполнения реквизита в 1С


Теперь рассмотрим, что именно происходит в данной процедуре.


В начале нам нужно найти и получить реквизит из части таблицы «НаборСвойств», которая находится в массиве «ПроверяемыеРеквизиты». Данный массив будет передан к самому обработчику – в нём и содержатся те реквизиты, которые подлежат проверке. Для всех реквизитов внутри данного реквизита нужно выставить свойство «Проверка заполнения» для значения «Выдавать ошибку». В случае, если он будет распознан и найден, нужно будет удалить его, ведь проверка заполнения реквизитов будет выполняться полностью вручную.


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


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


Также вместо «ПереченьНоменклатуры» и «ВидНоменклатуры» можно использовать запросы.


Специалист компании «Кодерлайн»

Айдар Фархутдинов

Наши проекты

1с-РАРУС МСК
1с-РАРУС МСК

Отрасль:
Разработка компьютерного программного обеспечения

Внедренное типовое решение:

- Совместная работа по внедрению разных решений, в том числе «1С:ERP Управление...

ООО "АСТАРМЕДИКА КЛИНИКА МИКРОХИРУРГИИ ГЛАЗА"
ООО "АСТАРМЕДИКА КЛИНИКА МИКРОХИРУРГИИ ГЛАЗА"

Отрасль:
Деятельность больничных организаций

Внедренное типовое решение:
БИТ:Управление медицинским центром 8

- Управление отношениями с клиентами (CRM)
- Делопроизводство
- Ведение но...

Внедрение блоков в 1С:Комплексная автоматизация 8
ООО «Больцен Рус»

Отрасль:
Оптовая торговля

Внедренное типовое решение:
1С:Комплексная автоматизация

- Оперативный учет...

Внедрение ПП "1С:Корпоративный инструментальный пакет 8" в ООО «Торговый Дом Факел»
ООО «Торговый Дом Факел»

Отрасль:
Производство

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Различная отраслевая специфика:
- Переработка давальческого сырья
- Уче...

Автоматизация подсистемы учета взаиморасчетов с агентами и интернет-магазинами на базе «1С:Управление холдингом 8»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
1С:Управление холдингом

– Оформление заказов поставщикам;
– Управление отношениями с поставщика...

ООО «ДАФ Тракс Рус» (DAF Trucks Rus)
ООО «ДАФ Тракс Рус» (DAF Trucks Rus)

Отрасль:
Машиностроение

Внедренное типовое решение:
«1С:Управление корпоративными финансами»

- Осуществлена разработка матрицы прав и ролей для финансового подразделени...

АО «РЭП Холдинг»
АО «РЭП Холдинг»

Отрасль:
Энергомашиностроительный холдинг

Внедренное типовое решение:
«1С: Управление производственным предприятием» и «1С:Консолидация ПРОФ»

- Функциональный блок «Консолидированная отчетность РСБУ» - разработка час...

ООО «Еврорадиаторы»
ООО «Еврорадиаторы»

Отрасль:
1С:ERP 2.4

Внедренное типовое решение:

Специалисты «Кодерлайн» помогли перенести базу из текущей системы «1С:ERP 2.2» ...

Группа компаний АО «Киномакс»
Группа компаний АО «Киномакс»

Отрасль:
Культура, шоу-бизнес

Внедренное типовое решение:
БИТ.Финанс

- Разработка Положения о Казначействе группы компаний
- Разработка Положе...

Фирма 1С
Фирма 1С

Отрасль:

Внедренное типовое решение:
1С:Документооборот

- Подготовка функциональной модели прикладного решения «1С:Документооборот...

Внедрение 1С:Управление торговлей в оптово-розничной компании «Ална-Байк»
ИП Титов Виктор Сергеевич «Ална-Байк»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Управление торговлей

- Управление складами;
- Управление заказами поставщиков;
- Управление зак...

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО Фирма «Бисер»
ООО фирма «Бисер»

Отрасль:
Производство

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Финансы, управленческий учет, мониторинг показателей:
- Налоговый учет...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение