Разработка в 1С 8.0

  35790931     

Автонумерация


Этот параметр заставляет систему автоматически присваивать номера для новых документов.



Цикл


Цикл

Сообщить("К " + ДокВыборка.Номер + " от " + ДокВыборка.Дата);  

 

//перебор строк табличной части  

Для Каждого стр Из ДокВыборка.Состав Цикл  

Сообщить(" " + стр.Номенклатура);  

КонецЦикла;  

 

КонецЦикла ;

Синтаксическая диаграмма метода Выбрать такова :  

   

Выбрать(<ДатаНачала>, <ДатаОкончания>, <Отбор>, <Порядок>);  

Метод Выбрать позволяет ограничить выборку только нужными документами с помощью параметра вызова.  

Ниже поясняется назначение каждого параметра:  





Длина


Устанавливает максимальную длину номера документа. Самая большая длина номера, которую можно установить, ? 50 символов.



ДокументМенеджер


Обеспечивает доступ к действиям над документами определенного вида как множеством объектов. Через методы этого объекта можно осуществлять поиск, получать выборку, создавать новый документ, обращаться к формам и макетам документа.



ДокументОбъект


Предоставляет доступ к документу с возможностью записи и проведения. Данный объект содержит методы, изменяющие документ в базе данных, например, метод Записать.



ДокументСписок


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

Из одних объектов с помощью определенных свойств или методов можно получить другие объекты, как показано на следующей схеме:  

На схеме показаны не все возможные взаимосвязи Например, метод Скопировать существует не только у объекта ДокументСсылка, но и у самого объекта ДокументОбъект.  

 

Рассмотрим на примерах выполнение типичных операций с документами.  



ДокументСсылка


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



ДокументВыборка


Предоставляет возможность обхода (перебора) документов определенного вида. Объект этого типа возвращается методом Выбрать объекта ДокументМенеджер.



ДокументыМенеджер


Обеспечивает доступ к менеджерам всех документов конфигурации. Свойства этого объекта совпадают по имени с именами документов и содержат объекты типа ДокументМенеджер.



Форма документа


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



Форма группы


Отображает и позволяет редактировать сведения о группе справочника. Группы могут иметь другой состав реквизитов по сравнению с элементами.



Форма элемента


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



Форма списка


Отображает список элементов справочника, содержит средства сортировки, поиска и отбора элементов. Из списка элементов можно открыть форму элемента (группы) или редактировать данные прямо в табличном поле. Это регулируется свойством табличного поля СпособРедактирования.


Данная экранная форма отображает список документов определенного вида и является аналогом журнала, содержащего документы одного вида.



Форма выбора


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

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

 

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

 



Форма выбора группы


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



Форма выбора элемента


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



Формы


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



Графы журнала


В журнале документов могут быть созданы графы журнала, которые отображают информацию из документов Например, в журнале Торговля создана графа Контрагент.

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



Элементы и группы


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



Клавиатуры


Клавиатура Apple

Клавиатура

Клавиатура PS/2

Клавиатура PS/2



Код:


//чтение значения из константы

Название = Константы.НазваниеОрганизации.Получить();

// запись нового значения в константу

Константы.НазваниеОрганизации.Установить(НовоеНазвание);

Обратите внимание на слово Константы (а не Константа, как было в версии 7.7). Через такую конструкцию мы обращаемся к объекту КонстантыМенеджер (заметьте, что применяется множественное число), который позволяет затем обратиться к менеджеру конкретной константы по ее имени.  

Если расшифровать приведенный выше пример, то станет более понятна взаимосвязь объектов:  


//получаем объект для управления списком констант 




Назв= Константы.НазваниеОрганизации.Получить();

СпрСотр = Справочники.Сотрудники;

ВсеДолжности = Справочники.Должности.Выбрать();

ДокНакл = Документы.РасходнаяНакладная;

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

Ниже дано описание объектов для работы с константами:  




//создаем набор из двух констант

//обратите внимание, что значений констант в наборе еще нет 

Набор = Константы.СоздатьНабор("Руководитель,ИНН");  

Набор.Прочитать(); //прочитать из базы сразу две константы   

//изменить значение констант в наборе (не в базе) 

Набор.Руководитель = "Иванов И.И.";  

Набор.ИНН = "1234567890";  

Набор.Записать(); //записать в базу сразу две константы  

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

 

Константы ? слишком простой объект для полного понимания объектной модели 1С:Предприятия 8.0. Далее на примере справочников мы рассмотрим новую объектную модель во всей ее полноте.  

 

 



КонстантаМенедже


р = КонстантыМенеджер.НазваниеОрганизации;

//считываем значение константы из базы данных 

Значение = КонстантаМенеджер.Получить();

//записываем новое значение константы в базу данных 

КонстантаМенеджер.Установить(НовоеЗначение);

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

 

Существуют свойства глобального контекста, ссылающиеся на объекты типа КонстантыМенеджер, СправочникиМенеджер, ДокументМенеджер и т.д., они называются односложно: Константы, Справочники, Документы. Это позволяет упростить написание программы и следующие примеры это демонстрируют.  



КонстантаМенеджер


Менеджер константы обеспечивает доступ к конкретной константе. Через него можно прочитать и установить ее значение с помощью методов Получить и Установить.



КонстантыМенеджер


= Константы;

//получаем объект для управления одной константой


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



КонстантыНабор


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

Работу с набором констант продемонстрируем на следующем примере.



Контроль уникальности


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



Макеты


Макеты являются шаблонами печатных форм, на основе которых формируются выходные формы. Макеты могут быть как у отчетов, так и обработок. Например, макеты РеестрДокументов, ОсновнойМакет.

Правилом хорошего тона при разработке в системе 1С: Предприятие 8.0 является реализация основного алгоритма формирования отчета (выполнения обработки) в модуле объекта. Экранная форма и ее модуль предназначены лишь для взаимодействия с пользователем, задания параметров отчета (обработки) и отображения результатов, а основная обработка данных должна производиться в модуле объекта.  

 

Например, в модуле отчета объявляется процедура Печать с ключевым словом Экспорт, которая в качестве параметра принимает табличный документ.  

 

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

 

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

 

Чтобы научиться формировать печатные формы, необходимо прочитать главу «Отчеты». Отчеты часто извлекают информацию из базы данных с помощью запросов. Механизм запросов является очень гибким и описан в отдельной главе Запросы. Во многих случаях отчеты и обработки обращаются к регистрам, работа с которыми описана в главах Регистры сведений, Регистры накопления и др.  

 



Мониторы


Монитор 15' LG

Монитор 15' LG

Монитор 17' Philips

Монитор 17' Philips



Например:


Процедура ПередЗаписью (Отказ, РежимЗаписи, РежимПроведения)

Дата = ПолучитьОперативнуюОтметкуВремени();  

....  

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



ОбработкаПроведения


Событие возникает в момент проведения документа. Обычно в нем содержится алгоритм формирования движений документа по регистрам. Событие имеет два параметра:



ОбработкаУдаленияПроведения


Событие возникает в момент отмены проведения документа. При этом движения документа, как правило, очищаются автоматически.



ОбработкаЗаполнения


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

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

 

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


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



Общие отличия:


 

·Справочники могут иметь несколько табличных частей.  

·Справочник может быть подчинен нескольким владельцам. В качестве владельца может выступать другой справочник, план видов характеристик или план счетов.  

·У групп справочника-владельца тоже могут быть подчиненные элементы в других справочниках. Эта возможность включается в свойствах справочника.  

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

·У справочников могут быть предопределенные элементы и группы, задаваемые еще на этапе разработки конфигурации.  

·Модуль справочника не то же самое, что модуль любой из его форм.  

·Список элементов справочника может быть показан в любом табличном поле (в любой форме), если у него соответствующим образом указано свойство ТипЗначения.  

·Элемент справочника может быть введен на основании документа, счета и других объектов, или наоборот.  

·Реквизиты справочника, как и других объектов, могут быть составного типа данных, перечень возможных типов указывается в свойствах реквизита.  

·Максимальная длина наименования увеличена до 150 символов, максимальная длина кода ? 50 символов.  

·Нумерация элементов в подчиненном иерархическом справочнике может быть установлена в пределах подчинения владельцу.  



Оперативная отметка времени


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



Отбор


Структура, которая позволяет отобрать элементы справочника с заданным значением в определенном реквизите. Ключ структуры содержит имя реквизита, а значение структуры задает значение отбора. В структуре могут использоваться только реквизиты Код, Наименование и реквизиты с установленным признаком индексирования. Обратите внимание, что структура может содержать только один элемент. Для отбора элементов по нескольким признакам можно использовать запросы.


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



Отличия в свойствах и методах:


 

·Вместо метода ПометкаУдаления() для объекта типа СправочникОбъект введено свойство ПометкаУдаления, которое имеет тип «булево» и доступно для чтения и записи. Если ему присвоить значение Истина и записать объект, то элемент будет помечен на удаление. Метод Удалить с параметром 0 уже не применяется для установки пометки удаления. Для установки пометки удаления также можно использовать метод УстановитьПометкуУдаления.  

·Вместо метода ЭтоГруппа() введено свойство ЭтоГруппа типа «булево», доступное только для чтения.  

·Методы Выбрать и ВыбратьИерархически возвращают объект типа СправочникВыборка (см. выше взаимосвязь объектов).  

·Методы НайтиПоКоду, НайтиПоНаименованию и НайтиПоРеквизиту возвращают ссылку на найденный элемент или пустую ссылку, если элемент не найден. В любом случае возвращается объект типа СправочникСсылка.  

·Для получения пустой ссылки вместо несуществующей теперь функции ПолучитьПустоеЗначение необходимо использовать метод ПустаяСсылка.  

·Вместо метода ПринадлежитГруппе введен метод ПринадлежитЭлементу, поскольку иерархические справочники могут состоять только из элементов (без групп).  

·Вместо метода Блокировка с разными параметрами нужно применять методы Заблокировать, Разблокировать и Заблокирован. Последний метод проверяет, удалось ли установить блокировку элемента данным объектом СправочникОбъект.  

·Для обращения к метаданным у объектов СправочникСсылка и СправочникОбъект существует метод Метаданные, который возвращает объект специального типа для описания метаданного.  

 



Параметр «РежимПроведенияДокумента»:


 

·Неоперативный (по умолчанию),  

·Оперативный.  

 



Параметр «РежимЗаписиДокумента»:


·Запись (по умолчанию),  

·ОтменаПроведения,  

Проведение (в этом случае имеет смысл указывать второй параметр).  



Печать


(ТабДок); //вызывается приведенная выше процедура   

ТабДок.Показать();  

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

Аналогично, можно организовать печать текущей расходной накладной из журнала документов, и снова будет вызвана наша процедура Печать из модуля документа, например:  



ПередУдалением


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


Событие возникает перед удалением документа из базы, независимо от того, программно или интерактивно он удаляется.



ПередЗаписью


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


Это событие возникает перед выполнением записи объекта после начала транзакции, но до начала записи документа в базу данных.



Периодичность


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



ПолучитьФормуВыбора


(, ЭтаФорма);  

Если НЕ Форма.Открыта() Тогда //если она еще не открыта   

Форма.ИмяСохраненияПоложенияОкна = "НоменклатураПодбор";  

КонецЕсли;  

   

//установить свойства формы до ее открытия  

Форма. РежимВыбора = Истина ;  

Форма.ЗакрыватьПриВыборе = Ложь;  

Форма. РазрешитьСостояниеПрикрепленное = Истина;  

   

//открыть форму или активизировать уже открытую форму   

Форма.Открыть();  



Порядок


Строка, задающая условие упорядочивания по реквизиту, например, «Оклад Убыв». Упорядочивание может быть использовано только для индексированных реквизитов (в том числе для кода и наименования).

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


Строка, реквизит и направление сортировки выборки документов, например, «Контрагент Возр» или «Оклад Убыв». Может быть указано поле Дата или имя проиндексированного реквизита документа. Если порядок не задан, то выборка упорядочивается по хронологии документов.

Следующий пример выбирает документы по определенному контрагенту за заданный период и сортирует их по убыванию суммы документа ( Для реквизитов Контрагент и СуммаДокумента в конфигураторе установлен флажок «Индексировать»:



ПриКопировании


Событие возникает при создании элемента справочника копированием. В обработчике события ПриКопировании можно вмешаться в этот процесс и более интеллектуально заполнить некоторые реквизиты элемента справочника.


Это событие возникает при создании документа копированием. В процедуреобработчике можно произвести дополнительные действия, например, присвоить новую дату и новый номер, заполнить реквизит Автор и т.д.



ПриУстановкеНовогоКода


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



ПриУстановкеНовогоНомера


Данное событие возникает в момент, когда выполняется установка нового номера документа.



ПриЗаписи


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



Программное обеспечение


Windows XP

1С:Бухгалтерия 7.7

Доставка

Windows XP

Инсталляция ПО


Сист. блок ВА410

Сист. блок ВА410

Сист. блок NetVista

Сист. блок NetVista



Произвольная форма


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

Обратите внимание, что в любой экранной форме можно вывести список элементов справочника, поскольку в новой версии 1С:Предприятия экранные формы отделены от объектов конфигурации. Для этого нужно всего лишь расположить в форме элемент управления ТабличноеПоле и в его свойстве ТипЗначения выбрать тип «СправочникСписок.<ИмяСправочника>».  



Реквизиты


Реквизиты отчета (обработки) содержат параметры формирования отчета (выполнения обработки). Эти реквизиты отличаются от реквизитов справочников тем, что они не сохраняются в базе данных. Например, реквизиты НачДата и КонДата у отчета АнализПродаж.



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


Справочник Контрагенты и подчиненный ему справочник РасчетныеСчета с полями Банк, Номер, КоррСчет.





Справочник Номенклатура и табличная часть ЕдиницыИзмерения с полями ЕдиницаИзмерения и КоэффициентПересчета.





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





Выбор между подчиненным справочником и табличной частью зависит от назначения конфигурации. Если в будущем может возникнуть потребность создавать ссылки на такие сведения, то лучше завести подчиненные справочники СоставСемьи, Образование и ТрудоваяДеятельность.

 

Режим


. Если в обработчике события первому параметру присвоить значение Истина, тогда документ не будет проведен. Второй параметр позволяет узнать режим проведения документа: оперативный или неоперативный.

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



Родитель


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



В базе данных необходимо хранить


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



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



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



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


СоздатьГруппу


();  

НоваяГруппа.Код = 1;  

НоваяГруппа.Наименование = "Прочие";  

НоваяГруппа.Записать();  

НовыйСотрудник = Справочники.Сотрудники.



СоздатьЭлемент


();  

НовыйСотрудник.Код = 100;  

НовыйСотрудник.Наименование = "Иванов Иван Иванович";  

НовыйСотрудник.Родитель = НоваяГруппа.Ссылка;  

НовыйСотрудник.Записать();  



СправочникиМенеджер


Обеспечивает доступ ко всем справочникам конфигурации. Свойства этого объекта совпадают с именами справочников и содержат объекты типа СправочникМенеджер.



СправочникМенеджер


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



СправочникОбъект


Предоставляет доступ к элементу с возможностью записи. Данный объект содержит методы, влияющие на элемент в базе данных, например, методы Записать и Удалить.



СправочникСписок


Объект для управления списком элементов в табличном поле. Позволяет управлять колонками, отбором и сортировкой в списке.

Из одних объектов с помощью определенных методов или свойств можно получить другие объекты, как показано на следующей схеме:  

На схеме показаны не все возможные взаимосвязи.

Например, метод Скопировать существует не только у объекта СправочникСсылка, но и у самого объекта СправочникОбъект. Кроме того, у объекта СправочникМенеджер есть методы НайтиПоНаименованию и НайтиПоРеквизиту, которые действуют аналогично методу НайтиПоКоду и возвращают ссылку на найденный элемент или пустую ссылку, если элемент не найден.

 

 

Продемонстрируем на примерах выполнение типичных операций со справочниками.  



СправочникСсылка


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



СправочникВыборка


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



Тип


Здесь выбирается тип значения для номера документа ? числовой или строковый. Выбор строкового типа номера бывает необходим, когда используется сложная система нумерации документов. При этом номер документа может включать, помимо цифр, также буквы и символы-разделители, например «К10-56».



Только элементы


Во втором случае иерархический справочник состоит только из элементов. Любой элемент может выполнять функцию группы, т.е. он может быть родительским элементом для других элементов этого же справочника. Например, по такому принципу можно организовать справочник Подразделения. В любой момент времени какойнибудь отдел может быть разделен внутри себя на несколько подотделов, и отразить это в справочнике не составит никакого труда. Другой пример ? справочник Районы, который отражает территориальное деление города. Элементы верхнего уровня представляют административные округа, на втором уровне содержатся районы, на третьем уровне ? микрорайоны.

Главное отличие этих двух видов иерархического справочника заключается в следующем:  

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

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

 

Максимально возможное количество уровней иерархии справочника задается в Конфигураторе. Кроме того, в 1С: Предприятии 8.0 появилась возможность неограниченной вложенности групп и элементов друг в друга. Этот вариант устанавливается по умолчанию, и рекомендуется применять именно его, если не требуется в обязательном порядке ограничить глубину вложенности уровней справочника.  

 

Элементы и группы в иерархическом справочнике можно переносить из одного уровня иерархии в другой. Это можно делать программно или интерактивно. При интерактивном переносе элементов можно воспользоваться специальной кнопкой на панели инструментов справочника. Для программного переноса элемента достаточно сменить у него родителя и записать элемент. Если меняется родитель у группы (или родительского элемента), то группа (элемент) переносится в другую ветвь справочника со всеми своими подчиненными элементами.  

<
table width="100%" cellpadding="0" cellspacing="0">  

<

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




table width="100%" cellpadding="0" cellspacing="0"><


table width="100%" cellpadding="0" cellspacing="0">  

<


table width="100%" cellpadding="0" cellspacing="0">

Услуги


Инсталляция ПО

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

Синтаксическая диаграмма метода Выбрать и ВыбратьИерархически такова (на примере метода Выбрать):  

   

Выбрать(<Родитель>, <Владелец>, <Отбор>, <Порядок>);  

 

Ниже поясняется назначение каждого параметра:  



Владелец


Ссылка на элемент справочника-владельца. В выборку попадут только элементы, принадлежащие заданному элементу-владельцу. Параметр имеет смысл только для подчиненных справочников.



к константам из программы на


 

Обращение к константам из программы на встроенном языке производится очень просто, хотя этот способ и отличается от версии 7.7.

 

Кроме вышеперечисленных процедур, в модуле документа могут располагаться процедуры и функции, созданные разработчиком. Если их объявить с ключевым словом Экспорт, то они станут доступными вне документа, как обычные методы.  

 

Часто таким образом производится печать документов, например, ниже приведена процедура печати расходной накладной: