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

Содержание:

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

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

 

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


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


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


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


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


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


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


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


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


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



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


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


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


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


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


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


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

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

Наши проекты

ООО "АСК ИНЖИНИРИНГ"
ООО "АСК ИНЖИНИРИНГ"

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

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

Делопроизводство
Учет и хранение документов
Ведение номенклатуры дел
...

АО «Аэроклуб»
АО «Аэроклуб»

Отрасль:
Услуги в области делового туризма

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

Проведение серии интервью с руководством и ключевыми специалистами Разраб...

Автоматизация торгового учета на базе "1С:Управление торговлей"
ООО «ТЕЛЕВЕС РУСС»

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

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

- Управление складскими запасами;
- Оформление заказов покупателей;
- Пла...

Внедрение ПП «1С:Предприятие 8. Аренда и управление недвижимостью на базе "1С:Бухгалтерия 8"» в компании «Бутово Молл»
ООО «Бутово Молл»

Отрасль:
Недвижимость

Внедренное типовое решение:
1С:Аренда и управление недвижимостью на базе «1С:Бухгалтерия 8»

Управление продажами, логистикой и транспортом (SFM, WMS, TMS):
- Оформление зак...

Доработка конфигурации Заказчика «1С:Управление строительной организацией»
ЗАО «Стройтрансгаз»

Отрасль:
Проектирование

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

Взаиморасчеты с поставщиками;
- Оформление заказов поставщикам;
- Склад ...

ООО «Лаборатория успеха»
ООО «Лаборатория успеха»

Отрасль:
Общественное и плановое питание, гостиничный бизнес, туризм

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

Бухгалтерский учет;
Расчет зарплаты и кадровый учет;...

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

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

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

- Финансово-бухгалтерский блок
- Казначейство ...

Внедрение «1С:Зарплата и управление персоналом 8 КОРП» в компании «ПБК»
ООО «Партнер Бухгалтер Консультант»

Отрасль:
Бухгалтерские услуги

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Интеграция продукта с базой данных оперативного учета Axapta;
- Доработка фу...

ХИТЕК-ГРУП
ХИТЕК-ГРУП

Отрасль:
Продажа парикмахерского инструмента и аксессуаров

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

Документооборот (ECM)
• Делопроизводство
Управление бизнес-процессами и И...

Автоматизация кадрового учета на базе «1С:ERP Управление предприятием 2.0»
Автопредприятие ПАО «Газпром»

Отрасль:
Транспорт

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

- Настройка подсистемы кадрового учета;
- Перенос персональных данных;
- З...

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

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

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

Закупки (снабжение) и управление отношениями с поставщиками:
- Оформление ...

ООО «Стейдж Энтертейнмент Россия»
ООО «Стейдж Энтертейнмент Россия»

Отрасль:
Театральная деятельность

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

Реализован процесс трансформации данных бухгалтерского учета по РСБУ в дан...

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

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

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

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