Зачем нужна проверка заполнения у реквизитов справочника
Перейти к содержимому

Зачем нужна проверка заполнения у реквизитов справочника

  • автор:

Проверка заполнения стандартных реквизитов

  1. Закроем 1С:Предприятие и вернемся в режим конфигуратора.

Чтобы посмотреть состав и свойства стандартных реквизитов справочника, в окне редактирования объекта конфигурации Справочник Клиенты на закладке Данные нажмем кнопку Стандартные реквизиты. Выделим в списке реквизит Наименование, вызовем его контекстное меню и выберем пункт Свойства (рис. 3.29). Рисунок 1.14 – Состав стандартных реквизитов справочника В палитре свойств стандартного реквизита Наименование свойство Проверка заполнения по умолчанию установлено в значение Выдавать ошибку, т.е. если реквизит Наименование не заполнен, то будет выведено сообщение об ошибке. Рисунок 1.15 – Палитра свойств стандартного реквизита «Наименование» Задания на исследование:

  1. Исследовать процесс создания справочников.
  2. Выполнить задание №1.
  3. Ответить на вопросы и оформить отчет.

Вопросы для проверки подготовки студентов к занятию

  1. Для чего предназначен объект конфигурации Справочник.
  2. Для чего используются реквизиты справочника.
  3. Зачем нужны иерархические справочники и что такое родитель.
  4. Зачем нужны подчиненные справочники и что такое владелец.
  5. Что такое предопределенные элементы.
  6. Как пользователь может отличить обычные элементы справочника от предопределенных элементов.
  7. Как создать объект конфигурации Справочник и описать его структуру.
  8. Как добавить новые элементы в справочник.

ЛИТЕРАТУРА

  1. Введение в конфигурирование в системе «1С: Предприятие 8». Основные объекты. Версия 8.2. Фирма «1С», Москва, ООО «1С-Учебный центр№3», 2010.
  2. Использование запросов в системе «1С: Предприятие 8». Фирма «1С», Москва, ООО «1С-Учебный центр№3», 2009.
  3. 1С: Предприятие 8.2. Руководство разработчика. Часть 1. Фирма «1С», Москва, ООО «1С-Учебный центр№3», 2009.
  4. 1С: Предприятие 8.2. Руководство разработчика. Часть 2. Фирма «1С», Москва, ООО «1С-Учебный центр№3», 2009.
  5. 1С: Предприятие 8.2. Руководство администратора. Фирма «1С», Москва, ООО «1С-Учебный центр№3», 2009.

“ ”. 20_ _г Методическая разработка составлена ст. преподавателем кафедры АСУ Т.Авакян 16

19.05.2015 5.08 Mб 12 LISP.pdf

19.05.2015 1.01 Mб 80 list2small.doc

16.12.2018 361.47 Кб 4 LR1-Sodanie_IB.doc

22.07.2019 296.45 Кб 4 LR2-Podsistemy.doc

12.11.2019 911.36 Кб 3 LR2_Vlianie_flegmatizatorov.doc

16.12.2018 572.93 Кб 9 LR3-Spravochniki.doc

12.11.2019 208.9 Кб 5 LR3_Opredel_temper_samovosplam2005.doc

12.11.2019 74.75 Кб 2 LR4_Tem_vspyshki_ispr.doc

12.11.2019 90.62 Кб 3 LR5_tverdye_v-va.doc

13.07.2019 581.63 Кб 0 Luize_dlya_PGS.doc

20.04.2019 85.1 Кб 3 makroekonomika_otvety.docx

Ограничение

Для продолжения скачивания необходимо пройти капчу:

Подсказка и проверка заполнения

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

Область применения (уточнение): управляемое приложение, обычное приложение.

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

В тексте подсказки не рекомендуется приводить инструкции и объяснять работу реквизита, вместо этого следует оптимизировать сценарии работы, с ним связанные.

При этом бессмысленные подсказки, автоматические генерируемые конфигуратором при создании элементов управления (групп) на формах, нужно не забывать очищать. Например, «Группа шапка» и пр.

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

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

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

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

2.3. Если проверка заполнения реквизита зависит от тех или иных условий, рекомендуется управлять автопометкой незаполненного значения с помощью условного оформления форм объектов. Убирать ее в случае, если при данном состоянии объекта заполнение реквизита проверять не требуется.

См. также

Обработчик события ОбработкаПроверкиЗаполнения

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

1.1. В данном обработчике модуля объекта выполняются действия, связанные с проверкой правильности заполнения значений реквизитов объектов (измерений, ресурсов, реквизитов табличных частей и т.п., далее: просто «реквизиты»).

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

Если проверка заполнения какого-либо реквизита — условная (т.е. зависит от значений других реквизитов или значения параметризированной функциональной опции) в обработчике следует предусмотреть код, который удаляет имя такого реквизита из массива проверяемых реквизитов ПроверяемыеРеквизиты . В общем виде, схема проверки заполнения выглядит следующим образом:

  • создать массив НепроверяемыеРеквизиты ;
  • в процессе проверки условий, добавлять в этот массив имена непроверяемых реквизитов (табличных частей);
  • вызвать процедуру для удаления непроверяемых реквизитов (текст процедуры УдалитьНепроверяемыеРеквизитыИзМассива приведен ниже).

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

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)

// Проверка значения реквизита на соответствие некоторым требованиям
Если НЕ ИННСоответствуетТребованиям(ИНН) Тогда
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = НСтр(«ru = ‘ИНН задан неверно.'»);
Сообщение.Поле = «ИНН»;
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;

.

// Значение реквизита не должно быть пустым в зависимости от значения другого реквизита
Если ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо Тогда
// Для индивидуального предпринимателя должно быть сопоставлено физ. лицо
ПроверяемыеРеквизиты.Добавить(«ИндивидуальныйПредприниматель»);
КонецЕсли;

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)

НепроверяемыеРеквизиты = Новый Массив();
.

// Проверка значения реквизита на соответствие некоторым требованиям
Если НЕ ИННСоответствуетТребованиям(ИНН) Тогда
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = НСтр(«ru = ‘ИНН задан неверно.'»);
Сообщение.Поле = «ИНН»;
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
Отказ = Истина;
НепроверяемыеРеквизиты.Добавить(«ИНН»);
КонецЕсли;

.
// Значение реквизита не должно быть пустым в зависимости от другого реквизита
Если ЮрФизЛицо <> Перечисления.ЮрФизЛицо.ФизЛицо Тогда
НепроверяемыеРеквизиты.Добавить(«ИндивидуальныйПредприниматель»);
КонецЕсли;

Процедура УдалитьНепроверяемыеРеквизитыИзМассива(МассивРеквизитов, МассивНепроверяемыхРеквизитов) Экспорт

Для Каждого ЭлементМассива Из МассивНепроверяемыхРеквизитов Цикл

// перед удалением реквизита из массива необходимо проверить, что он там есть
// (не был удален ранее платформой или в коде).
ПорядковыйНомер = МассивРеквизитов.Найти(ЭлементМассива);
Если ПорядковыйНомер <> Неопределено Тогда
МассивРеквизитов.Удалить(ПорядковыйНомер);
КонецЕсли;

1.3. Следует учитывать, что обработчик ОбработкаПроверкиЗаполнения вызывается не при каждой записи объекта, в частности, он не вызывается в случаях если запись были инициирована программно.

Методическая рекомендация (полезный совет)

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

Проверки, выполняемые в и вне транзакции записи объекта

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

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

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

Для транзакционных проверок, в свою очередь, выделяются два случая:

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

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

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

Вирус скуки

Продолжение одинэсной темы, ответы на книгу Радченко, занятие 2 и 3.

Для чего используется объект конфигурации «Подсистема»?
Подсистема — основной элемент для построения интерфейса 1С:Предприятие. Подсистемы выделяют в конфигурации функциональные части, на которые логически разбивается прикладное решение.

Как описать логическую структуру при помощи Подсистем?
При помощи разделения на функциональные части, представляющие собой отдельные предметные области.

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

Управление порядком вывода подсистем.

Что такое окно редактирования объекта конфигурации и в чем его отличие от панели свойств?

Окно редактирования — в основном используется для создания новых объектов.
Палитра свойств — не привязано к конкретному объекту конфигурации.

Для чего предназначен объект конфигурации Справочник?
Справочник предназначен для работы со списками данных, описания их свойств и структуры.

Какие характерные особенности объекта конфигурации Справочник?
Справочник состоит из элементов; Каждый элемент представляет собой отдельную запись в таблице, хранящей информацию из этого справочника;
Элемент также может содержать дополнительную информацию, которая подробнее описывает этот элемент — одинаковый для всех элементов справочника — реквизит; Реквизит также является объектом конфигурации;

Для чего используются реквизиты и табличные части справочника?
Реквизиты используются для описания дополнительной информации, описывающей элемент справочника;
Табличная часть используется для описания информации элемента справочника, одинаковой по структуре, но различной по количеству.

Зачем нужны иерархические справочники и что такое Родитель?
Иерархические справочники нужны для группировки элементов справочника по какому-либо признаку или принципы. Различаются несколько типов иерархий: иерархия групп и элементов — элемент справочника, представляющий группу — родитель для всех элементов и групп, входящих в эту группу;
Иерархия элементов — родителем является не группой элементов справочника, а непосредственно сам элемент.

Зачем нужны подчиненные справочники и что такое Владелец?
Элементы одного справочника могут быть подчинены элементам другого справочника, и в таком случае устанавливается связь один-ко-многим. Так же может быть использована связь один-к-одному, когда каждый элемент подчиненного справочника связан с одним из элементов справочника-владельца.

Какие основные формы существуют у справочника?
Форма элемента — для редактирования или создания элемента справочника;
Форма группы — для редактирования или создания группы справочника;
Форма списка — для отображения списка элементов в справочнике;
Форма выбора группы — для выбора одной из группы справочника;

Что такое предопределенные элементы справочника?
Элементы справочника, создающиеся в конфигураторе, данные элементы пользователь удалить не может; Служат для хранения информации всегда, независимо от действий пользователя;

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

Как пользователь может отличить обычный элемент от предопределенного?
С помощью пиктограммы

Как создать объект конфигурации справочник и описать его структуру?
Создать новый справочник — структура — на вкладках иерархия, данные, рисунки сюда

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *