Программирование 1С. Справочники

Практическая работа Справочники


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

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

Что такое справочник

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

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

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

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

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




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

Например, каждый элемент справочника Сотрудники (каждый сотрудник) может содержать информацию о составе семьи сотрудника. Для одного сотрудника это будет только жена, для другого – жена, сын, дочь.

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

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

Элементы одного справочника могут быть подчинены элементам или группам другого справочника. Например, Справочник ЕдиницыИзмерения может быть подчинен справочнику Товары, тогда для каждого товара можно будет указать единицы измерения.

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

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

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

Формы справочника

Удобно представлять справочник в разном виде – список, дерево, в определенной последовательности и т.п. Для этого используется объект конфигурации Форма.

Форма служит для удобного визуального представления и ввода данных.

Система может самостоятельно создать все формы, которые нужны для представления данных Справочника.
«Простой» справочник

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

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


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


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

На основании имени система создаст синоним – Клиенты. Он служит для представления объекта в интерфейсе программы.

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

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

Расширенное представление объекта – определяет заголовок формы объекта. Если не задано, используется Представление объекта.


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

Расширенное представление списка определяет заголовок формы

списка. Если не задано, используется Представление списка.





Задайте два свойства Представление объекта – Клиент и

Представление списка – Клиенты (последнее необязательно, т.к. будет использован синоним).



























Нажмите кнопку Далее и перейдите к закладке Подсистемы.

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

















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

Бухгалтерия и ОказаниеУслуг.

Нажмите на закладку Данные. Длина кода нас устраивает, а длину наименования установите в 50 символов.

Длина кода – важное свойство справочника. Код используется для идентификации элементов (ключевое поле) справочника и содержит

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


Команда добавления нового элемента

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

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


Сделаем доступной в панели действий раздела ОказаниеУслуг стандартную команду для создания новых клиентов.

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


В открывшемся окне Все подсистемы слева в списке Подсистемы выделим

ОказаниеУслуг, справа в списке Командный интерфейс отразятся все команды выбранной подсистемы.









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
























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

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

Закройте окно редактирования справочника Клиенты и запустите 1С: Предприятие в режиме отладки, всегда отвечая утвердительно на вопрос обновления конфигурации и принятии изменений.

Панель навигации и панель разделов

Если перейти в разделы Бухгалтерии и Оказания услуг, то слева увидите в вертикальной области появилась панель навигации.

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

Сейчас она содержит команду для открытия нашего первого списка – Клиенты. Е название определяется свойством Представление списка, которое мы задали для справочника. Если оно не задано, то используется синоним объекта.

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


Сейчас в панели действий раздела Оказание услуг в группе Создать доступна команда для создания элементов нашего

справочника Клиенты, которую мы сделали видимой в интерфейсе этого раздела.






















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

Создание элементов справочника

Пока наш справочник пуст, добавим в него несколько элементов.

Для этого выполним команду Клиент в панели действий раздела Оказание услуг. Перед Вами откроется форма для создания элемента справочника – основная форма объекта. Внесите имя нового клиента – Иванов Михаил Юрьевич, код создается автоматически.

Нажмите Записать и закрыть (не забывайте о сочетаниях клавиш, так быстрее)

Нажав на ссылку в нижней части окна приложения,

можно открыть созданный элемент.










Добавьте таким же образом еще одного клиента с наименованием

Роман.

Последнего клиента добавьте, пользуясь формой списка клиентов.

Выполните команду Клиенты в панели навигации раздела Оказание услуг. Справа от панели навигации откроется основная форма списка.






















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





























Создайте клиента с наименованием Спиридонова Галина.

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

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






























Элементы справочника редактируются двойным нажатием на него.

Справочник с табличной частью

Создадим второй справочник – Сотрудники.

В нем будет храниться не только ФИО сотрудника, но и информация о его прошлых работах. Эта информация однородна по структуре, но разная по количеству, поэтому для ее хранения будем использовать табличную часть справочника.

Добавьте новый объект конфигурации Справочник под именем

Сотрудники. Представление объекта – Сотрудник. Представление списка не заполняем, а Расширенное представление списка – Список сотрудников. Нажмите Далее на закладку Подсистемы, отметьте ОказаниеУслуг и РасчетЗарплаты.



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


















Перейдм на закладку Данные. Оставим по умолчанию длину и тип кода, а длину

наименования

справочника зададим равной 50 символов.



Табличная часть

Добавьте в справочник табличную часть с именем

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















































































Создадим реквизиты табличной части (колонки)

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


























Добавьте следующие реквизиты:

Организация – тип Строка, длина 100;

НачалоРаботы – тип Дата, состав даты – Дата;

ОкончаниеРаботы – тип Дата, состав даты – Дата;

Должность – тип Строка, длина 100.


























В заключении отредактируем командный интерфейс, чтобы было удобнее вводить новые элементы справочника. Сделаем видимой в панели действий подсистемы РасчетЗарплаты стандартную команду для создания новых сотрудников.

Для этого выделим подсистему РасчетЗарплаты, контекстное меню –

Открыть командный интерфейс.

В появившемся окне ставим галочку напротив команды

Сотрудник: создать,

чтобы эта команда была видимой в пользовательском

интерфейсе.





















На этом создание справочника Сотрудники завершено. Закроем окно редактирования справочника и запустим 1С: Предприятие в режиме отладки.

В панели навигации разделов Оказание услуг и Расчет зарплаты

появилась команда Сотрудники для открытия списка сотрудников (Название этой команды определяется синонимом объекта, т.к. Представление списка мы не задавали). А в разделе Оказание услуг появилась команда для создания новых сотрудников.






















Заполнение табличной части

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

Организация – ЗАО «НТЦ»

Начало работы – 01.02.2000

Окончание работы – 16.04.2003

Должность – Ведущий специалист

Деловой Иван Сергеевич

Организация – ООО «Автоматизация»

Начало работы – 22.01.1996

Окончание работы – 31.12.2002

Должность – Инженер

Организация – ЗАО «НПО СпецСвязь»

Начало работы – 20.06.1986

Окончание работы – 21.01.1995

Должность – Начальник производства

Симонов Валерий Михайлович

Организация – ООО «СтройМастер»

Начало работы – 06.02.2001

Окончание работы – 03.04.2004

Должность – Прораб

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






























Заголовок этой формы определяется свойством Расширенное представление списка.

Иерархический справочник

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

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

Перейдите на вкладку Подсистемы. Задайте доступность справочника в разделах Бухгалтерия, УчетМатериалов и ОказаниеУслуг.

Перейдите на закладку Иерархия и установите флажок

Иерархический справочник.















На закладке Данные установите длину наименования 100 символов.

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

Для этого выделите ветвь Подсистемы, через контекстное меню выберите Все подсистемы. В открывшемся окне слева выделите УчетМатериалов. Справа отразятся все команды выбранной подсистемы. В группе Панель действий. Создать включите видимость у команды Номенклатура: создать.
















Затем выделите подсистему ОказаниеУслуг и проделайте тоже самое.

Теперь заполним справочник Номенклатура. Попутно покажем, как создавать группы и переносить элементы из одной группы в другую.

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




режиме 1С: Предприятие

открывшемся окне видно, что в панели навигации разделов Учет материалов, Оказание услуг и Бухгалтерия появилась команда

Номенклатура (Название этой команды определяется синонимом объекта, т.к. других представлений Вы не задавали).

Выполните команду Номенклатура в панели навигации раздела Учет материалов. Справа от панели навигации откроется основная форма списка.

Создание элементов в иерархическом справочнике

Создайте две группы в корне справочника: Материалы и Услуги с помощью кнопки Создать группу в командной панели формы списка.




























Поля Родитель и Код заполнять не будем.

Затем раскроем группу Материалы, нажав на крестик слева от нее. И создадим в ней 5 элементов кнопкой :

Строчный трансформатор Samsung

Строчный трансформатор GoldStar

Транзистор Philips 2N2369

Шланг резиновый

Кабель электрический






























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

Если элемент добавляется командой Номенклатура: Создать, то родителя придется устанавливать вручную.

Раскройте группу Услуги и создайте в ней услуги по ремонту телевизоров:

Диагностика

Ремонт отечественного телевизора

Ремонт импортного телевизора

услуги по установке стиральных машин:

Подключение воды

Подключение электричества

































































Перенос элементов в другие группы

Теперь распределим услуги по двум смысловым группам: услуги по ремонту телевизоров и услуги по установке стиральных машин. Для этого в группе Услуги создайте еще две группы: Телевизоры и Стиральные машины. Есть несколько способов распределения элементов в группы. Первый – ставите курсор на услугу, которую хотите

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

Переместите услуги Диагностика, Ремонт отечественного телевизора, ремонт импортного телевизора в группу Телевизоры,

остальное – в группу Стиральные машины.

Создайте в группе Материалы две группы: Радиодетали и Прочее. Кабель электрический и Шланг резиновый поместите в группу Прочее. Остальное – в группу Радиодетали.

Переключите представление списка в виде дерева – Все действия – Режим просмотра – Дерево. Получится такая картина:







































Закройте приложение и вернитесь в конфигуратор.



Справочник с предопределенными элементами

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

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

Представление объекта – Склад. На вкладке Подсистемы отметьте ОказаниеУслуг и УчетМатериалов. На вкладке Формы установите флажок Быстрый выбор.
































Свойство Быстрый выбор позволяет выбирать элементы не из отдельной формы, а из небольшого выпадающего списка, заполненного элементами этого справочника. Актуально, если элементов немного.

(Для остальных справочников свойство Быстрый выбор мы не устанавливаем, потому что Номенклатура – иерархический справочник и быстрый выбор не имеет для него смысла, а список сотрудников и список клиентов может быть очень большим - будет неудобно прокручивать выпадающий список.)






Предопределенные элементы

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






































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

Наименование видит и изменяет пользователь, имя – пользователь не видит и изменить не может.

Настройте интерфейс для удобства ввода новых элементов справочника. Выделите Подсистемы, контекстное меню – Все подсистемы. Выделите в списке слева УчетМатериалов и включите видимость команды Склад:Создать.




























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

В открывшемся окне видно, что в панели действий раздела Учет материалов появилась команда Склад для создания новых складов, а в панели навигации разделов Учет материалов и Оказание услуг

команда Склады.



















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





























Контрольные вопросы
Для чего предназначен объект конфигурации Справочник

Каковы характерные особенности Справочника

Для чего используются реквизиты и табличные части справочника

Зачем нужны иерархические справочники и что такое родитель

Что такое предопределенные элементы

Чем с точки зрения конфигурации отличаются обычные элементы справочника от предопределенных элементов

Как создать объект Справочник и описать его структуру

Как добавить новые элементы в Справочник

Как создать группу Справочника

Как переместить элементы из одной группы Справочника в другую

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

Что такое быстрый выбор и как его использовать

Как отобразить команды создания нового элемента справочника в интерфейсе подсистем

Как редактировать командный интерфейс подсистем









HYPER13 PAGE \* MERGEFORMAT HYPER141HYPER15




Рисунок 1HYPER15Основной шрифт абзаца

Практическая работа Документы


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

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

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

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

Система 1С: Предприятие умеет отслеживать правильность учта. Пользователь может сам создавать необходимые документы – приходные и расходные накладные, счета, приказы и т.п.

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



Типообразующие объекты конфигурации

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

Например, после создания объекта Справочник Склады, сразу же появились новые типы данных, связанные с этим справочником. Среди них СправочникСсылкаСклады. Если мы укажем какому-либо реквизиту этот тип данных, то сможем хранить в нем ссылку на конкретный объект справочника Склады.

Документ «Приходная накладная»

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

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

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

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

Откройте конфигуратор и добавьте новый объект – Документ. Задайте имя – ПриходнаяНакладная. Представление объекта не задам, Представление списка задайте Приходные накладные. Перейдите на вкладку Подсистемы и отметьте УчетМатериалов и Бухгалтерия.

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

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

Значение заполнения и выберите в нем Основной. Таким образом,

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


После этого добавим в документ табличную часть с именем Материалы.

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






















































Создайте реквизиты табличной части Материалы:

Материал, тип СправочникСсылка.Номенклатура;

Количество, тип Число, длина 15, точность 2 знака после запятой, неотрицательное;

Цена, тип Число, длина 15, точность 2, неотрицательное;


· Сумма, тип Число, длина 15, точность 2, неотрицательное.

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


































Закройте окно свойств справочника.

Отредактируем командный интерфейс, чтобы в подсистеме УчетМатериалов была доступна команда создания новых документов. Выделите ветвь Подсистемы, вызовите контекстное меню – Все подсистемы. В группе Панель действий.Создать включите видимость у команды Приходная накладная: создать.















В режиме 1С: Предприятие

Запустите 1С: Предприятие в режиме отладки. В появившемся окне Вы увидите, что в панели навигации разделов Бухгалтерия и Учет материалов появилась команда Приходные накладные для открытия списка приходных накладных, а также в панели действий раздела Учет материалов появилась команда Приходная накладная для создания новых документов этого вида.


































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

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

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



























Документ будет сохранен и проведен, ему будет присвоен автоматически сгенерированный номер и текущее время проведения документа.

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



















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


































Зеленая галочка около документа означает, что он проведн.

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

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

Это можно сделать, создав свою форму документа и воспользовавшись возможностями встроенного языка для задания алгоритма.


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


























Откроется конструктор форм. Там ничего не меняете и сразу нажмите Готово. Откроется окно редактора форм.

Разработчик не может нарисовать форму, а только может указать из каких элементов будет состоять форма.

Элементы формы в верхнем левом окне редактора форм образует иерархическую структуру. Чем выше в списке элемент, тем выше и левее на форме он будет располагаться (красное). От изменения порядка в дереве объектов изменится порядок следования на форме (желтое).




























Обработчик события

У системы существуют события, которые связаны с различными моментами е функционирования. В том числе, связанные с функционированием форм и элементов в формах.

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

Дважды щелкните на элементе формы МатериалыКоличество (или контекстное меню – Свойства). Справа возникнет окно свойств, прокрутите его до конца вниз, найдите поле ПриИзменении и нажмите

на значок лупы рядом с ним.



























Система откроет закладку Модуль редактора формы. Модуль – это хранилище для текста программы на встроенном языке. В данном случае это модуль формы. В модуль формы в процедуру

МатериалыКоличествоПриИзменении() добавим следующий текст.

СтрокаТабличнойЧасти = Элементы.Материалы.ТекущиеДанные;

СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;

Запустите 1С: Предприятие в режиме отладки, зайдите в любой документ Приходная накладная и измените количество товара – сумма автоматически пересчитывается. Измените количество как было. Закройте приложение и вернитесь в конфигуратор.

Одна процедура для обработки нескольких событий

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

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

Общий модуль, расположенные в ветке Общие - Общие модули.

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

Создайте общий модуль РаботаСДокументами, установите в его свойствах флажок Клиент, а флажок Сервер снимите (это означает, что модуль будет скомпилирован в тонком клиенте и в веб-клиенте, а не на сервере).















Перенесите в него созданную процедуру расчета суммы. В документе оставим вызов этой процедуры из общего модуля.

Процедура РассчитатьСумму(СтрокаТабличнойЧасти) Экспорт

СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество

*СтрокаТабличнойЧасти.Цена;

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

Теперь зайдите в модуль формы документа Приходная накладная и изменим вторую строчку процедуры на следующую:

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

















Тем самым мы вызываем процедуру РассчитатьСумму() из общего модуля РаботаСДокументами и передаем ей в качестве параметра текущую строку табличной части.

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

Для этого нажмите внизу вкладку Форма (рядом с Модуль), дважды щелкните в левом верхнем окне на МатериалыЦена, прокрутите окно свойств, нажмите на значок лупы в поле ПриИзменении и в выделенную область впишите:

СтрокаТабличнойЧасти = Элементы.Материалы.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);


































Запустите 1С: Предприятие в режиме отладки и убедитесь, что теперь при изменении как количества, так и цены, сумма автоматически пересчитывается.

Документ «Оказание услуги»


Создайте новый документ с именем ОказаниеУслуги. Представление объекта не задаем – будет использоваться синоним, Представление списка задайте как Оказание услуг. На вкладке Подсистемы отметьте ОказаниеУслуг и Бухгалтерия. На вкладке Данные создайте реквизиты документа:

Склад, тип СправочникСсылка.Склады, Значение заполнения

– Основной;

Клиент, тип СправочникСсылка.Клиенты, Проверка заполнения – Выдавать ошибку;

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

Создайте табличную часть документа с именем

ПереченьНоменклатуры с реквизитами:

Номенклатура, тип СправочникСсылка.Номенклатура;

Количество, тип Число, длина 15, точность 3, неотрицательное;

Цена, тип Число, длина 15, точность 2, неотрицательное;

Сумма, тип Число, длина 15, точность 2, неотрицательное.

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



























Перейдите на вкладку Формы. Создайте основную форму документа.

Для поля ПереченьНоменклатурыКоличество создайте обработчик события ПриИзменении, в котором будем вызывать процедуру РассчитатьСумму() из общего модуля РаботаСДокументами.

















Откроется модуль формы с шаблоном обработчика события

ПереченьНоменклатурыКоличествоПриИзменении, который пока не заполняйте, а перейдите в окно элементов формы на закладку Форма и аналогично создайте обработчик события

ПереченьНоменклатурыЦенаПриИзменении для поля ПереченьНоменклатурыЦена.



















Далее модуль формы документа ОказаниеУслуги заполните следующим образом:

&НаКлиенте Процедура ПереченьНоменклатурыКоличествоПриИзменении(Элемент)

СтрокаТабличнойЧасти = Элементы. ПереченьНоменклатуры.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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


&НаКлиенте

Процедура ПереченьНоменклатурыЦенаПриИзменении(Элемент)

СтрокаТабличнойЧасти = Элементы. ПереченьНоменклатуры.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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



























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
























В панели действий раздела Оказание услуг создайте документ и заполните следующим образом:




























Обратите внимание, что склад Основной подставляется по умолчанию, а для полей Мастер и Клиент выполняется проверка заполнения, а также при вводе цены и количества сумма рассчитывается автоматически по нашему алгоритму.

Контрольные вопросы
Какими характерными особенностями обладает документ

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

Что такое проведение документа

Как создать объект Документ и описать его структуру

Как создать новый документ и заполнить его данными

Как создать собственную форму документа

Что такое обработчик события и как его создать

Что такое модуль и для чего он нужен

Зачем нужны общие модули

Рисунок 1

Приложенные файлы

  • doc Spravochniki
    1C Программирование. Документы
    Размер файла: 2 MB Загрузок: 6
  • doc Documenty
    Размер файла: 1 MB Загрузок: 3