«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»
(НИУ «БелГУ»)
Институт инженерных технологий и естественных наук
Кафедра прикладной информатики и информационных технологий
Отчет по лабораторной работе №4
Тема работы: Справочники.
студента очного отделения
4 курса 12001504 группы
Марко С. Тангуила
Проверил:
Старший преподаватель
Коваленко Анастасия Николаевна
БЕЛГОРОД, 2018
Создадим новый справочник Единицы измерения, Номенклатура Подсистемы: БухгалтерскийУчет, ОперативныйУчетМатериалов

Рис. 1. справочник Единицы измерения, Номенклатура

Рис. 2. Состав реквизитов справочника Номенклатура

Рис. 3. Процедура обработки заполнения справочника
В режиме 1С:Предприятие откроем справочник Номенклатура, создадим две группы – Товары – флаг Услуги в этой группе не устанавливаем, и Услуги – флаг установлен, рис. 4.

Рис. 4. Две группы в справочнике Номенклатура

Рис. 5. Параметр ДанныеЗаполнения при создании элемента или группы на верхнем уровне справочника

Рис. 6. Ошибка при попытке создать элемент, у которого нет родителя
Нажав на кнопку Подробно, видим, что ошибка произошла при попытке добавить в структуру новую запись.
Вышеприведенные рассуждения приводят нас к следующему коду:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ДанныеЗаполненияНеопределено Тогда
Если ДанныеЗаполнения.Свойство("Родитель") Тогда
ДанныеЗаполнения.Вставить("Услуга", ДанныеЗаполнения.Родитель.Услуга);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
В данной редакции обработчика события ОбработкаЗаполнения все работает верно.
Создадим новый справочник, назовем его Контрагенты, ПредставителиКонтрагентов
Добавим его в подсистемы БухгалтерскийУчет и ОперативныйУчетМатериалов.


Рис. 7. Справочник Контрагенты и ПредставителиКонтрагентов

Рис. 8. Настройка подчинения
При создании новой записи о представителе он автоматически будет "привязываться" к тому контрагенту (поле владелец будет заполнено должным образом), из формы элемента которого мы перешли в справочник ПредставителиКонтрагентов. В форме списка справочника будет отображаться ссылка для перехода к форме элемента справочника-владельца, рис. 9.

Рис. 9. Формы списка и элемента справочника ПредставителиКонтрагентов

Рис. 10. Просмотр формы списка справочника ПредставителиКонтрагентов

Рис. 11. Попытка заполнения реквизита Основное контактное лицо

Рис. 12. Окно Связи параметров выбора с настроенным параметром
Добавим в справочник Контрагенты еще один реквизит – ТелефонКонтактногоЛица. Зададим тип – Строка, длина – 100. Этот реквизитсоответствует
Добавим элемент управления для реквизита ТелефонКонтактногоЛица на форму. Откроем форму элемента справочника Контрагенты для редактирования и перетащим реквизит ТелефонКонтактногоЛица с вкладки Реквизиты на вкладку Элементы, рис. 13.

Рис. 13. Реквизит ТелефонКонтактногоЛица нужно переместить со вкладки Реквизиты на вкладку Элементы
После того, как мы получим с сервера сведения о том, работает ли представитель, мы примем решение – выводить ли пользователю сообщение или нет.
Все это реализовано с помощью нижеприведенного кода:
&НаКлиенте
Процедура ОсновноеКонтактноеЛицоПриИзменении(Элемент)
Если НЕ ПроверитьЗаполнениеРеквизита() Тогда
Сообщить("Выбранное контактное лицо, "+Объект.ОсновноеКонтактноеЛицо+", не работает у контрагента.");
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПроверитьЗаполнениеРеквизита()
Возврат (Объект.ОсновноеКонтактноеЛицо.ПредставительРаботает);
КонецФункции
&НаСервере
Процедура УстановитьНомерПредставителя()
Объект.ТелефонКонтактногоЛица=Объект.ОсновноеКонтактноеЛицо.КонтактныеСведения;
КонецПроцедуры

Рис. 14. Код модуля формы элемента справочника Контрагенты
При выборе "неподходящего" представителя окно элемента справочника Контрагенты примет следующий вид, рис. 25.

Рис. 15. Сообщение о выборе неподходящего контактного лица