Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование на платформе 1С Предприятие 8.3. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
4.3. Реквизиты справочников
61
Подчиненный справочник задается свойством Владелец в окне его
свойств. Справочник, которому подчинен данный справочник, называется владельцем. Одному элементу владельца может соответствовать несколько элементов подчиненного справочника.
Один элемент подчиненного справочника имеет только одного вла-
дельца из справочника-владельца или не имеет его, если он не назначен.
У справочника может быть несколько справочников-владельцев. Использование подчиненных справочников позволяет реализовать
иерархию при помощи нескольких одноуровневых справочников.
Рассмотрим иерархию сотрудников таганрогского кампуса ЮФУ,
изображенную на рис. 4.2. На ее первом уровне находятся институты, на втором – кафедры, на третьем – сотрудники.
Такую же иерархию можно реализовать тремя справочниками: Ин-
ституты, Кафедры, Сотрудники. При этом справочник Кафедры будет подчинен справочнику Институты, а справочник Сотрудники – подчинен справочнику Кафедры. Структура подчинения справочников изображена на рис. 4.7.
Рис. 4.7. Структура подчинения справочников
4.3. Реквизиты справочников
Справочники имеют два обязательных реквизита.
1. Код – используется системой для доступа к элементу справочника
(может быть числовым или текстовым, длина кода ограничивает количе­ство элементов справочника).
2. Наименование – используется для отображения элементов спра-
вочника системой, имеет текстовый тип.
Институты
ИКТИБ
ИРТСУ
ИУЭС
ИНЭП
Кафедры
МОП ЭВМ
САиТ
САПР
ВТ
Преподаватели
Преподаватель 1
Преподаватель 2
Преподаватель 3
Преподаватель 4
4. Справочники
62
Параметры Кода и Наименования могут быть настроены в окне свойств справочника.
Помимо обязательных реквизитов, существует ряд предопределен­ных реквизитов, которые используются средствами встроенного языка:
ЭтоГруппа – Истина или Ложь, в зависимости от того, является ли текущий элемент группой или нет.
Родитель – ссылка на группу справочника, к которой принадлежит текущий элемент.
Владелец – ссылка на элемент справочника-владельца, которому подчинен текущий элемент.
ПометкаУдаления – Истина, если текущий элемент помечен на удаление и Ложь в противном случае.
Предопределенный – Истина, если текущий элемент предопреде- лен в конфигураторе, Ложь в противном случае.
Разработчик может создавать произвольное количество реквизитов, предназначенных для хранения данных. После создания в конфигураторе, реквизит справочника становится доступен средствами встроенного языка. При этом для доступа к реквизиту используется его идентификатор, задан­ный в конфигураторе.
4.4. Примеры работы со справочниками
Ссылка на справочник
Для работы со справочником в каком-либо программном модуле требуется сначала создать ссылку на этот справочник. Это делается при по­мощи типового присваивания:
СпрСотрудники= Справочники.Сотрудники;
Теперь переменная СпрСотрудники имеет тип СотрудникиСсылка, т.е. ссылка на элемент справочника Сотрудники. Однако пока эта ссылка является пустой и не указывает ни на какой элемент справочника.
Создание и запись нового элемента справочника
НовЭл= Справочники.Сотрудники.СоздатьЭлемент();
// Заполняем реквизиты нового элемена справочника
НовЭл.Наименование= "Петров Петр Петрович";
4.4. Примеры работы со справочниками
63
НовЭл.Оклад= 25000; НовЭл.Записать(); // именно в этот момент происходит запись в базу
данных
Создание и запись новой группы справочника (для иерархиче-
ского справочника)
Нов = Справочники.Сотрудники.СоздатьГруппу(); Нов.Наименование= "Работающие"; Нов.Записать();
Поиск элемента справочника
СпрСотр = Справочники.Сотрудники; НайденныйСотр= СпрСотр.НайтиПоКоду(123); //ищем по коду НайденныйСотр= СпрСотр.НайтиПоНаименованию("Иванов Иван
Иванович");//по наименованию
НайденныйСотр= СпрСотр.НайтиПоРеквизиту("Оклад",
5000); //по реквизиту //далее нужно проверить найденное значение ЕслиНайденныйСотр= Неопределено Тогда
//элемент не найден
КонецЕсли;
Удаление элемента справочника
СпрСотр = Справочники.Сотрудники; СпрСотр.Удалить(); //непосредственное удаление текущего эле-
мента
СпрСотр.УстановитьПометкуУдаления(Истина); //пометка на уда-
ление
СпрСотр.УстановитьПометкуУдаления(Ложь);//снять пометку на
удаление
//можно проверить, помечен ли элемент на удаление Пометка = СпрСотр.ПометкаУдаления; Если Пометка = Истина Тогда
//элемент помечен на удаление
КонецЕсли;
Перебор элементов справочника
Выборка = Справочники.Сотрудники.Выбрать();
4. Справочники
64
Пока Выборка.Следующий() = 1 Цикл // начало перебора элементов
справочника в цикле
//действия с очередным элементом ... Сообщить("Сотрудник " + Выборка.Наименование);
КонецЦикла;
Перебор элементов внутри группы
// Группа в терминах 1С – это "родитель". СпрСотр = Справочники.Сотрудники; ГруппаРаботающие= СпрСотр.НайтиПоНаименованию("Работаю-
щие");
Выборка = СпрСотр.Выбрать(ГруппаРаботающие); Пока Выборка.Следующий() = 1 Цикл
//действия с очередным элементом Сообщить("Сотрудник " + Выборка.Наименование);
КонецЦикла;
Перебор элементов справочника, подчиненных владельцу из
другого справочника
// Пусть справочник НалоговыеЛьготы подчинен справочнику Со-
трудники.
Выборка = Справочники.НалоговыеЛьготы.Выбрать(,Сотруд-
ник);//тут //Сотрудник - ссылка на элемент справочника сотрудники
Пока Выборка.Следующий() = 1 Цикл
//действия с очередным элементом Сообщить("льгота " +Выборка.Наименование);
КонецЦикла;
Общий вид метода Выбрать
Спр.Выбрать(Родитель, Владелец, Отбор, Порядок). Родитель – отбор по родителю, т.е. в выборку будут включены эле-
менты только заданной группы.
Владелец – отбор по владельцу, т.е. в выборку будут включены только
элементы, подчиненные заданному элементу справочника-владельца.
Отбор – структура, задающая правила отбора по значениям реквизи-
тов справочника. В качестве реквизитов отбора можно использовать Код, Наименование и любой реквизит, для которого задано индексирование.
Контрольные вопросы
65
Порядок – текстовая строка, задающая порядок выборки элементов.
Транзакция
При создании множества элементов справочника для ускорения ра-
боты можно заключить цикл в транзакцию. При этом реальное создание всех элементов произойдет только по команде ЗафиксироватьТранзакцию().
При использовании транзакций действие будет либо выполнено це-
ликом (созданы все элементы справочника), либо не выполнено совсем (в случае какого-либо сбоя не будет создано ни одного нового элемента, все останется так же, как и до запуска транзакции).
Транзакции широко применяются в банковской сфере. Ведь никто
не хочет, чтобы при отправке денег, они благополучно списались с вашего счета, но из-за какого-либо сбоя не дошли до адресата.
СпрСотр = Справочники.Сотрудники;
НачатьТранзакцию();
Для Ном = 1 По 100 Цикл
Нов = СпрСотр.СоздатьЭлемент(); Нов.Наименование= "Новый " + Строка(Ном);
Нов.Записать(); КонецЦикла; ЗафиксироватьТранзакцию();
Контрольные вопросы
1. Что такое справочник и для чего он предназначен?
2. Приведите примеры справочников.
3. Какую роль выполняют справочники при организации оконного
интерфейса?
4. Для каких целей предназначены и используются справочники на
платформе 1С:Предприятие?
5. Как при помощи справочников можно избежать неоднозначного
ввода данных пользователем?
6. Как при помощи справочников можно реализовать базу данных об
объектах операционной деятельности предприятия?
7. Какие виды справочников реализованы на платформе 1С:Предпри-
ятие?
4. Справочники
66
8. Что такое одноуровневый справочник?
9. Что такое реквизиты справочника и для чего они предназначены?
10. Что такое элементы справочника и для чего они предназначены?
11. Какие обязательные реквизиты присутствуют в любом справоч-
нике на платформе 1С:Предприятие?
12. Какие виды многоуровневых справочников реализованы на плат-
форме 1С:Предприятие?
13. Что такое иерархия групп и элементов?
14. Для чего предназначены группы и элементы в иерархическом спра-
вочнике?
15. Какие виды реквизитов существуют в иерархическом справоч-
нике?
16. Приведите пример иерархии групп и элементов на примере спра-
вочника сотрудников таганрогского кампуса ЮФУ?
17. В чем достоинства и недостатки иерархии групп и элементов?
18. Каковы способы отображения иерархического справочника в ин-
терфейсе?
19. В чем особенность иерархического справочника в виде иерархии
элементов?
20. Приведите пример иерархии элементов на примере справочника
сотрудников таганрогского кампуса ЮФУ?
21. Что такое подчиненные справочники?
22. Как создать подчиненные справочники?
23. Приведите пример подчиненных справочников на примере спра-
вочника сотрудников таганрогского кампуса ЮФУ?
24. Для чего предназначен реквизит справочника ЭтоГруппа?
25. Для чего предназначен реквизит справочника Родитель?
26. Для чего предназначен реквизит справочника Владелец?
27. Для чего предназначен реквизит справочника ПометкаУдаления?
28. Для чего предназначен реквизит справочника Предопределенный?
29. Как создать ссылку на справочник средствами встроенного языка?
30. Как создать и записать новый элемент справочника средствами
встроенного языка?
31. Как создать и записать новую группу справочника средствами
встроенного языка?
Контрольные вопросы
67
32. Как выполнить поиск элемента справочника средствами встроен-
ного языка?
33. Как выполнить удаление элемента справочника средствами встро-
енного языка?
34. Как выполнить перебор элементов справочника средствами встро-
енного языка?
35. Как выполнить перебор элементов справочника внутри группы
средствами встроенного языка?
36. Как выполнить перебор элементов справочника, подчиненных за-
данному владельцу, средствами встроенного языка?
37. Общий вид метода Выбрать для перебора элементов справочника.
38. Как использовать транзакцию для обеспечения совместной записи
элементов справочника?
5. Документы
68
5. ДОКУМЕНТЫ
5.1. Назначение и реквизиты документа
Документ – объект конфигурации, предназначенный для ввода в ин­формационную базу данных о выполнении предприятием хозяйственных, организационных и других операций, результатом которых является изме­нение объема учитываемых ресурсов и средств предприятия. В большин­стве случаев документы конфигурации имеют некоторый бумажный ана­лог, но могут существовать и документы без бумажной копии.
В качестве средств и ресурсов выступают оборудование, товарома­териальные ценности, денежные средства, состояние взаиморасчетов с по­ставщиками, потребителями, контрагентами, сотрудниками и т.п.
Рассмотрим пример. Предположим, что предприятие покупает у по­ставщиков по предоплате комплектующие для производства персональных компьютеров. Первым действием является перечисление предоплаты по­ставщику за комплектующие. При этом изменяется объем средств на рас­четном счете предприятия и появляется задолженность поставщика по ком­плектующим, что должно быть отражено в информационной базе после проведения соответствующего документа. Вторым действием является по­ступление комплектующих на склад предприятия. При этом задолженность поставщика уменьшается на стоимость полученных комплектующих и уве­личивается остаток комплектующих на складах предприятия.
Оба описанных действия должны быть зафиксированы документами разных видов. Первый документ можно назвать Оплата за комплектующие. Второй документ – Поступление комплектующих. Поскольку между опла­той и поступлением комплектующих может пройти достаточно большой промежуток времени, на временной шкале эти документы будут распреде­лены и размещены именно в тот момент, когда произошло соответствую­щее действие.
Если при этом учесть, что покупка комплектующих может произво­диться у различных поставщиков, то в конечном итоге на шкале времени документы этих видов могут быть разбросаны хаотично, но каждому доку­менту оплаты, в конечном счете, должен соответствовать свой документ поступления.
5.1. Назначение и реквизиты документа
69
Все действия предприятия должны фиксироваться в виде докумен-
тов и накапливаться в базе данных документов. В качестве такой базы данных выступают журналы документов. Документ может регистриро­ваться в одном или нескольких журналов. При этом один и тот же журнал может использоваться для регистрации одного или нескольких видов до­кументов.
По умолчанию для каждого вида документов создается отдельный
журнал. Это неудобно для конечного пользователя. Практика показывает, что пользователю удобно собрать несколько различных видов документов в одном журнале, если эти виды логически связаны между собой. Напри­мер, работнику, ведущему товароматериальный учет, хотелось бы видеть в одном журнале как документы прихода, так и документы расхода. Такая возможность предоставляется платформой 1С:Предприятие, но требует настройки соответствующего журнала.
Для использования документа требуется следующее:
1. Разработчику создать соответствующий вид документа в конфигу-
раторе и наполнить его функциональностью.
2. Пользователю создать экземпляр документа в процессе работы при-
кладной системы, заполнить поля документа и выполнить его проведение.
Один единственный вид документа, созданный в конфигураторе, по-
рождает множество документов в информационной базе, каждый из кото­рых отражает факт свершения соответствующего события. При этом дата документа определяет момент времени, когда это событие произошло.
Все данные, которые вводятся в документ, образуют его реквизиты.
Документ может содержать реквизиты двух видов.
1. Реквизит – присутствует в форме документа в единичном экзем-
пляре и создает одиночное поле для ввода или отображения данных.
2. Реквизит табличной части – задает столбец таблицы документа.
Документ может содержать несколько табличных частей со своим набором реквизитов.
На рис. 5.1 изображена форма документа, содержащего табличную
часть.
У этого документа имеется 3 реквизита: Номер, Дата, Склад. Таб-
личная часть содержит 6 реквизитов табличной части: N, Материал, Набор свойств, Количество, Цена, Сумма.
5. Документы
70
Рис. 5.1. Пример формы документа с табличной частью
У каждого документа есть набор предопределенных реквизитов. Их можно разделить на интерфейсные и не интерфейсные.
Интерфейсные реквизиты отображаются в форме документа. К ним относятся Номер и Дата. Номер содержит номер документа, а Дата –дату документа. Номер и Дата являются обязательными реквизитами и должны присутствовать даже в документе, не содержащем никаких дру­гих реквизитов.
Порядок формирования номеров документов устанавливается в окне свойств на вкладке Нумерация, которая изображена на рис. 5.2.
Автонумерация позволяет автоматически присваивать номера но­вым документам. Для того чтобы несколько документов разных видов имели сквозную нумерацию, используются нумераторы, которые созда­ются в конфигураторе на ветви «Документы-Нумераторы». Длина номера устанавливает количество символов или цифр в номере документа. Кон­троль уникальности не допускает повторения номеров документов данного вида. Тип номера позволяет использовать числовые или строковые номера. Периодичность устанавливает период автоматической нумерации. По ис­течении заданного периода нумерация сбрасывается к начальному значе­нию. Периодами нумерации могут быть день, месяц, квартал, год. Период может отсутствовать и нумерация никогда не сбрасывается до начального значения.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]