Опубликован: 06.12.2011 | Уровень: для всех | Доступ: платный
Лекция 4:

Справочники, разработка форм

< Лекция 3 || Лекция 4: 123456 || Лекция 5 >

Справочник ФизическиеЛица

Следующим нашим справочником будет справочник ФизическиеЛица. Он предназначен для хранения списка физических лиц и сведений о них. В частности, мы хотели бы хранить данные о самом физическом лице (Фамилия, Имя, Отчество, дата рождения, пол, район проживания), а так же об истории его трудовой деятельности. Для хранения данных о физическом лице хорошо подойдут обычные реквизиты справочника, которыми мы уже занимались выше. А вот для того, чтобы хранить историю трудовой деятельности, нам понадобится другая структура данных, а именно – табличная часть.

Табличная часть – это таблица, состав и свойства полей (столбцов) которой мы задаем на этапе разработки. В пользовательском режиме создается необходимое количество строк. В нашем примере количество мест, в которых работало физическое лицо, заранее неизвестно.

Здесь надо отметить, что понятия "Сотрудник" и "Физическое лицо" - это разные вещи. Сотрудник – это тот, кто в настоящий момент работает в организации, и сотрудник обязательно является физическим лицом. А вот физическое лицо, сведения о котором могут храниться в базе данных организации, вполне может не являться сотрудником – например – это может быть кандидат на какую-либо должность, или, наоборот, уволенный сотрудник.

Создадим новый справочник, дадим ему имя ФизическиеЛица, включим его в состав подсистем БухгалтерскийУчет, УчетРаботыМастеров и РасчетЗаработнойПлаты.

На вкладке Данные создадим следующие реквизиты:

Имя: Фамилия

Тип: Строка, длина 30

Имя: Имя

Тип: Строка, длина 30

Имя: Отчество

Тип: Строка, длина 30

Имя: ДатаРождения

Тип: Дата, состав даты – Дата

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

Создадим новое перечисление, дадим ему имя Пол, включим в подсистему РасчетЗаработнойПлаты. На вкладке Данные окна редактирования объекта для перечисления задаются значения перечисления. Зададим два значения – Мужской и Женский, рис. 3.6.

Создание перечисления Пол

Рис. 3.6. Создание перечисления Пол

Теперь создадим новый справочник – дадим ему имя Районы, включим в состав подсистемы РасчетЗаработнойПлаты, на вкладке Данные изменим длину наименования до 100 символов, этот справочник не будет иметь дополнительных реквизитов, так же мы можем исключить его из состава общего реквизита Организация, рис. 3.7.

Создание справочника Районы

Рис. 3.7. Создание справочника Районы

Вернемся к настройке справочника ФизическиеЛица. Добавим еще два реквизита:

Имя: Пол

Тип: ПеречислениеСсылка.Пол

Имя: РайонПроживания

Тип: СправочникСсылка.Районы

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

Имя: Организация

Тип: Строка, длина 30

Имя: ДатаНачалаРаботы

Тип: Дата, состав даты – Дата

Имя: ДатаОкончанияРаботы

Тип: Дата, состав даты – Дата.

В итоге окно редактирования нашего справочника будет выглядеть так, как показано на рис. 3.8.

Состав справочника ФизическиеЛица

Рис. 3.8. Состав справочника ФизическиеЛица

В предыдущей лекции мы создавали общий реквизит Организация, который планировалось добавлять ко многим объектам конфигурации. Справочник ФизическиеЛица имеет смысл вести по всем организациям. Как вы уже видели, настроить состав общего реквизита можно в ветви Общие реквизиты. Сделать это можно и в окне редактирования объекта, нажав кнопку Общие реквизиты на вкладке Данные. Нажмем эту вкладку и установим для общего реквизита Организация значение Не использовать, рис. 3.9.

Настройка общих реквизитов из окна редактирования объекта

Рис. 3.9. Настройка общих реквизитов из окна редактирования объекта

Если мы попытаемся открыть справочник в режиме 1С:Предприятие – с ним можно будет работать, так как система автоматически сгенерирует его форму, рис. 3.10. – с автоматически созданными формами мы уже встречались ранее. Такие формы подходят в том случае, если мы не планируем каким-либо образом вмешиваться в функционирование формы из Конфигуратора.

Форма справочника, сгенерированная автоматически

Рис. 3.10. Форма справочника, сгенерированная автоматически

Если же решаемая нами задача требует каких-то особенных приемов работы с формой объекта, нам понадобится собственная форма. Например, это нам понадобится, если мы хотим автоматически заполнять поле Наименование на основе полей Фамилия, Имя и Отчество. А именно, мы хотели бы, чтобы наименование содержало фамилию и инициалы физического лица.

< Лекция 3 || Лекция 4: 123456 || Лекция 5 >
Лариса Дятчина
Лариса Дятчина

Код 

&НаКлиенте

Процедура ОсновноеКонтактноеЛицоПриИзменении(Элемент)

Если НЕ ПроверитьЗаполнениеРеквизита() Тогда

 Сообщить("Выбранное контактное лицо, "+Объект.ОсновноеКонтактноеЛицо+",не работает у контрагента.");

КонецЕсли;

КонецПроцедуры

 

&НаСервере

Функция ПроверитьЗаполнениеРеквизита()

 Возврат (Объект.ОсновноеКонтактноеЛицо.ПредставительРаботает);  

КонецФункции

&НаСервере

Процедура УстановитьНомерПредставителя()

 

 Объект.ТелефонКонтактногоЛица=Объект.ОсновноеКонтактноеЛицо.КонтактныеСведения;

КонецПроцедуры

При проверке выдает ошибку:

{Справочник.Контрагенты.Форма.ФормаСписка.Форма(12,11)}: Переменная не определена (Объект)
 Возврат (<<?>>Объект.ОсновноеКонтактноеЛицо.ПредставительРаботает);   (Проверка: Сервер)
{Справочник.Контрагенты.Форма.ФормаСписка.Форма(17,2)}: Переменная не определена (Объект)
 <<?>>Объект.ТелефонКонтактногоЛица=Объект.ОсновноеКонтактноеЛицо.КонтактныеСведения; (Проверка: Сервер)
{Справочник.Контрагенты.Форма.ФормаСписка.Форма(17,32)}: Переменная не определена (Объект)
 Объект.ТелефонКонтактногоЛица=<<?>>Объект.ОсновноеКонтактноеЛицо.КонтактныеСведения; (Проверка: Сервер)
{Справочник.Контрагенты.Форма.ФормаСписка.Форма(6,41)}: Переменная не определена (Объект)
 Сообщить("Выбранное контактное лицо, "+<<?>>Объект.ОсновноеКонтактноеЛицо+",не работает у контрагента."); (Проверка: Тонкий клиент)

 

работаю на версии 1С:Предприятие 8.3 (8.3.10.2650)

максим матасов
максим матасов
Леонид Альбрехт
Леонид Альбрехт
Россия, Екатеринбург, 10, 2004
Оксана Максимова
Оксана Максимова
Россия, Екатеринбург, Уральский государственный университет им. А. М. Горького, 1995