Механизм контроля заполнения реквизитов

25.10.15

Разработка - Механизмы платформы 1С

Механизм позволяет в пользовательском режиме настраивать контролируемые реквизиты, тем самым помогает справиться с невнимательностью пользователей. Не требует снятия с поддержки типовых объектов, внося минимум изменений в конфигурацию. Не привязан ни к конкретным конфигурациям, ни к БСП.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
МеханизмПроверкиРеквизитов.zip
.zip 53,58Kb ver:1.0.1
39 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Предисловие

Наверное, на каждом предприятии есть работник, который постоянно забывает/забивает при создании элемента справочника либо документа про один или несколько неважных (по его мнению) реквизитов, но, в это же время они могут быть важными для его руководителя.

В таких случаях есть 2 решения проблемы: 

  1. Руководитель несколько раз наказывает данного человека морально/материально/физически и после этого работник делает выводы, что все же лучше заполнить необходимые поля.
  2. Руководитель обращается к программисту, чтобы тот сделал реквизиты обязательными для заполнения.

Мы рассмотрим второй случай, так как в первом они сами справляются с проблемой, и без нашего участия.
Так вот, приходит к нам заказчик/клиент и говорит: "Мой сотрудник Вася Пупкин вообще обнаглел, никак его не могу научить заполнять Реквизит1 в карточке номенклатуры. Сделайте это поле обязательным для заполнения."

Какие наши действия? Естественно, по зову сердца сразу же лезем в конфигуратор и, если это типовая конфа, снимаем реквизиты с поддержки, выставляем им свойство, или же правим свойства элементов формы, ну или, в крайнем случае, в коде вставляем проверку на заполненность реквизита (есть еще множество способов выполнить проверку, но это уже совсем другая история©).

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

Так и какой же выход?!

Сабж

Предлагаю вам своё решение данной проблемы.
Не нужно никакие объекты снимать с поддержки, необходимо добавить несколько новых объектов в конфигурацию.

А именно:

  • 2 роли
  • Общий модуль
  • Подписку на событие
  • Регистр сведений 

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

  • 2 роли: для пользователя - Чтение настроек из регистра, для администратора - Администрирование регитра 
  • Общий модуль: содержит процедуру (сам механизм) проверки реквизитов
  • Подписка на событие: срабатывает на событии ОбработкаПроверкиЗаполнения
  • Регистр сведений: хранит настройки проверки реквизитов

Настройка

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

Сразу обусловимся, что список записей регистра - это набор правил, а каждая отдельная запись - это правило проверки того или иного ревизита.

В файлах лежит архив, внутри которого находится конфигурация (исключительно с необходимыми объектами) и демо-база (включает несколько справочников и документ). На примере демо-базы рассмотрим настройку правил.

Открыв демо-базу и нажав на команду Настройка обязательных полей, мы попадаем в список правил. Представлен он в виде иерархического списка: на верхнем уровне расположен Тип (Справочник/Документ), на следующем уровне сам Объект, и самый нижний уровень - Реквизит (в нашем случае - правило). 

 

Нажмем кнопку Создать и посмотрим, как выглядит "карточка" правила:

Создание правила

 

Давайте разберем каждое из полей правила:

  • Проверка активна - признак, указывающий на то, будет ли учитываться конкретное правило при проверке реквизита.
  • Тип - указывает на тип объекта метаданных, для которого создается правило (Справочник/Документ)
  • Объект - в зависимостри от выбранного типа, список справочников или документов
  • Реквизит - список реквизитов выбранного объекта
  • Сообщение - текст, который будет отображаться, если реквизит не пройдет проверку на заполнение
  • Условия - (заполнять не обязательно) дополнительные условия на языке платформы. Выражение должно обращаться в ИСТИНУ или ЛОЖЬ (более подробно рассмотрим далее). 
  • Параметры - при необходимостри передачи параметра в условие, его нужно добавить в таблицу. Таблица состоит из двух колонок: Имя и Значение. Имя всегда предопределено и нет возможности его редактировать. Значение необходимо выбрать из базы.

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

 

Все правила можно поделить на три вида:

  1. Безусловные
  2. Условные
  3. Параметрические
Безусловное

Для данного вида правила характерно то, что поле Условие не заполнено. Тем самым это указывает на то, что условие выполняется всегда.

Условное

Данное правило должно содержать условие на встроенном языке. Есть возможность обращаться к функциям глобального контекста и общим модулям, у которых возвращаемое значение типа Булево. Так же есть возможность обращаться непосредственно к Объекту, имя у него в данном контексте - Источник.

Параметрическое

В этом виде правил в условиях используются параметры. Значение параметров указываются в таблице, имена присваиваются автоматически программой. Для использования параметра в условии, необходимо указать его имя. 

 

Для условий также можно использовать предопределённые данные, причем их можно передавать двумя способами: и через параметр, и напрямую (например, Справочники.Валюты.ОсновнаяВалюта).

Собственно, на этом всё. Ваши предложения и пожелания пишите в комментарии.

 

ВНИМАНИЕ. Если будете внедрять данный функционал, не забудьте назначить роли пользователям и администраторам.

Вступайте в нашу телеграмм-группу Инфостарт

Реквизиты обязательные реквизиты проверка заполнения реквизитов

См. также

Механизмы платформы 1С Разработчик Бесплатно (free)

Разберем 15 мифов о работе платформы «1С:Предприятие 8» – как распространенных, так и малоизвестных. Начнем с классики: «Код, написанный в одну строку, работает быстрее, чем многострочный». Так ли это на самом деле?

16.07.2025    44479    TitanLuchs    109    

153

Работа с интерфейсом WEB-интеграция Механизмы платформы 1С Бесплатно (free)

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

19.06.2025    17756    zeegin    15    

62

Механизмы платформы 1С Работа с интерфейсом Разработчик Стажер 1С:Предприятие 8 Бесплатно (free)

Про ООП в 1С и о том, как сделать свой код более кратким и выразительным при помощи использования текучего интерфейса (fluent interface).

03.02.2025    25355    bayselonarrend    127    

68

Механизмы платформы 1С Разработчик 1С:Предприятие 8 Бесплатно (free)

В этой статье подробно рассматривается работа с JSON в XDTO в 1С:Предприятие. Вы узнаете, как сериализовать и десериализовать объекты XDTO в JSON, интегрировать 1С с веб-сервисами и API, а также корректно обрабатывать данные при обмене. Разбираются особенности работы с коллекциями, использование функций восстановления и частые ошибки при работе с JSON и XDTO.

30.01.2025    32040    user2122906    10    

68

Механизмы платформы 1С Файловый обмен (TXT, XML, DBF), FTP Разработчик 1С:Предприятие 8 Бесплатно (free)

Этот материал познакомит вас с механизмом XDTO (XML Data Transfer Objects) в 1С и научит эффективно использовать его возможности. Мы разберёмся, как работать с XML-схемами, создавать модели данных, манипулировать объектами XDTO, а также сериализовать и десериализовать их в XML. Вы узнаете, как использовать XDTO для интеграции с внешними системами, избегать типичных ошибок и оптимизировать код. К концу вы будете уверенно применять XDTO для решения сложных задач обмена данными и автоматизации процессов.

17.01.2025    53197    user2122906    13    

62

Механизмы платформы 1С WEB-интеграция Разработчик 1С:Предприятие 8 Бесплатно (free)

В платформе 8.3.27 появилась возможность использовать WebSocket-клиент. Давайте посмотрим, как это все устроено и чем оно нам полезно.

14.01.2025    45325    dsdred    110    

156

Механизмы платформы 1С Разработчик Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

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

23.06.2024    39492    bayselonarrend    22    

180
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. 1c-intelligence 13214 26.10.15 10:44 Сейчас в теме
Прикольно, но проверка заполненности - лишь малая часть проверок, которые надо делать. Правда, такое ограничение решаемых задач позволяет использовать обработку проверки заполнения, а не перед записью.
Как вариант с большим функционалом - http://infostart.ru/public/290094/.
2. roofless 24 26.10.15 12:58 Сейчас в теме
Не нужно никакие объекты снимать с поддержки, необходимо добавить несколько новых объектов в конфигурацию.

немного лукавите)
3. yur4ik9408 34 26.10.15 13:01 Сейчас в теме
(2) roofless, ну почему же?
4. roofless 24 26.10.15 16:44 Сейчас в теме
(3) полностью снимать с поддержки не нужно, но придется поставить "редактируется с сохранением поддержки"
5. yur4ik9408 34 26.10.15 16:49 Сейчас в теме
(4) roofless, только корень конфигурации. другие объекты это не затронет.
6. Bassgood 1507 26.10.15 23:31 Сейчас в теме
(0) Не вникал в публикацию, поэтому могу ошибиться, но на ИС есть публикация (или несколько), в которой более широкий аналогичный функционал реализован при помощи механизма расширений конфигурации, поэтому для конфигураций, работающих на платформе 8.3.6 будет более актуально использовать именно функционал проверок на расширениях.
Anubis23; +1 – Ответить
7. Perk0n 13 28.10.15 13:05 Сейчас в теме
Прошу прощения заранее, но можно предложить такой способ.. для облегчения обновления.
Создаем подсистему в виде иерархии конфигурации и в веточках создаем реквизиты на которые "Проверка заполнения" установлена в "Выдавать ошибку". И мы всегда знаем чтО мы изменили.
Ну и что, что геморроя столько же.. зато способ.
8. savostin.alex 43 28.10.15 13:50 Сейчас в теме
А не нужно ли это в БСП добавить?
9. Bassgood 1507 03.11.15 16:15 Сейчас в теме
(8) savostin.alex, этот вопрос лучше адресовать разработчикам БСП :)
10. user926863 26.06.20 11:44 Сейчас в теме
Отличная обработка! как вариант чтобы не добавлять роль для пользователя, можно в общем модуле при выполнении запроса установить привилегированный режим
	УстановитьПривилегированныйРежим(Истина);
	РезультатЗапроса = Запрос.Выполнить();
	УстановитьПривилегированныйРежим(Ложь);
Для отправки сообщения требуется регистрация/авторизация