Вы находитесь на странице: 1из 265

Практическая работа № 1 Работа с конфигурацией

(Введение в конструирование командного интерфейса: подсистемы, пользователи, роли)


Цель работы:
- научиться созданию новой конфигурации с нуля;
- научиться созданию пользовательского интерфейса
Содержание
Практика ........................................................................................................................................................................... 1
1_ЗАДАНИЕ. Создание информационной базы, содержащей пустую конфигурацию .............................................. 1
2_ЗАДАНИЕ. Работа с подсистемами ............................................................................................................................. 1
Выводы ........................................................................................................................................................................ 8
Контрольные вопросы ............................................................................................................................................... 8

Практика
1_ЗАДАНИЕ. Создание информационной базы, содержащей пустую конфигурацию
1. ЗАГРУЗИТЬ 1С: Предприятие 8.х
2. Добавить - - Далее

3. - Далее
4. УКАЖИТЕ наименование информационной базы 8.3_Ваша Фамилия - Далее
5. Укажите папку, в которой буде располагаться Ваша информационная база
УКАЗАНИЯ: база должна располагаться на Вашем диске в отдельной папке
6. Открыть – Далее .. .Появится окно:

7. Готово
КОНТРОЛЬНАЯ ТОЧКА 1: Представьте преподавателю Ваш результат
назад

2_ЗАДАНИЕ. Работа с подсистемами


Подсистема представляет собой основной элемент построения интерфейса информационной системы 1С:
Предприятие.
Подсистемы позволяют выделить в конфигурации функциональные части, на которые логически разбивается
создаваемое прикладное решение.
Эти объекты располагаются в ветке объектов Общие и позволяют строить древовидную структуру, состоящую из
подсистем и подчиненных подсистем.
Всю производственную деятельность нашей фирмы можно разделить на учет материалов и оказание услуг.
А кроме этого, для выполнения специальных административных функций с базой данных нам нужно иметь
отдельную подсистему для администратора.
2

Постановка задачи:
Создайте пять новых объектов конфигурации Подсистема с именами: Бухгалтерия, РасчетЗарплаты,
УчетМатериалов, ОказаниеУслуг, Предприятие.
ТЕХНОЛОГИЯ РАБОТЫ:
1. ЗАПУСТИТЕ 1С: Предприятие 8.х в режиме Конфигуратора, для этого
- выделите созданную информационную базу Ваша Фамилия
- нажмите кнопку Конфигуратор
Ваш результат:

2. Откройте дерево конфигурации: Конфигурация - Открыть конфигурацию.


3. Конфигурация - Открыть конфигурацию. На экране откроется Дерево конфигурации
Дерево конфигурации – основной инструмент, с которым работает разработчик.
Дерево конфигурации содержит в себе практически всю информацию о том, из чего состоит конфигурация

4. Задайте Имя конфигурации Салон, для этого:


- В дереве конфигурации выделите объект
- 2ЩЛ на объекте
3

- Появится окно Свойства


- Задайте Имя Салон, поле Синоним будет автоматически заполнено текстом Салон.

5. СОЗДАЙТЕ подсистемы:
- Бухгалтерия
- УчетМатериалов
- ОказаниеУслуг
- РасчетЗарплаты
- Предприятие

Для создания новой подсистемы:


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

Задайте параметры для новой подсистемы:


Имя: Бухгалтерия
Синоним: Бухгалтерия

Синоним генерируется автоматически на основе имени, при необходимости его можно отредактировать
вручную.
ЗАДАЙТЕ картинку (иконку) для отображения подсистемы в окне режима 1С: Предприятие, для этого
НАЖМИТЕ кнопку выбора в поле Картинка.
4

- ДОБАВЬТЕ картинку в список: на закладке Из конфигурации –кнопка Добавить


- Система создаст объект Общая картинка и откроет окно его свойств.
- ДАЙТЕ картинке имя Бухгалтерия.
- НАЖМИТЕ Выбрать из файла, чтобы задать саму картинку.
(файлы картинок находятся в приложении к занятию в папке Icons)
Ваш результат:

6. ЗАКРОЙТЕ окно редактирования объекта конфигурации


7. ПЕРЕЙДИТЕ в режим 1С: Предприятие (Ctrl+F5 или м. Сервис -> 1С:Предприятие
Ваш результат:

Рис. 1.13. Разрабатываемая конфигурация в режиме 1С: Предприятие

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

создали наполняющих их объектов конфигурации.


ПРИМЕЧАНИЕ
Обратите внимание, что раздел Главное формируется платформой по умолчанию.
Этот раздел всегда располагается первым в панели разделов.
Он предназначен для размещения наиболее часто используемых пользователем документов, отчетов и т. п.

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

Здесь хочется обратить ваше внимание на кнопку Главное меню. Она открывает меню, содержащее стандартные
для Windows-программ команды, рис. 1.14.

Рис. 1.14. Главное меню в режиме 1С:Предприятие


В сравнении с 1С:Предприятие 8.1 в составе разделов этого меню многое поменялось (в особенности это
касается разделов Вид, Сервис).
В частности, обратите внимание на команду Главное меню > Все функции.

Эта команда, рис. 1.15., открывает доступ к дереву объектов конфигурации, позволяет использовать некоторые
стандартные команды.
6

Рис. 1.15. Окно Все функции


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

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

8. ВЕРНЕМСЯ в Конфигуратор, закрыв окно конфигурации в режиме 1С:Предприятие.

9. СОЗДАЙТЕ еще четыре подсистемы c именами:


- УчетМатериалов
- ОказаниеУслуг
- РасчетЗарплаты
- Предприятие
10. Установите для них соответствующие картинки с именами Материалы, Услуги, Зарплата, Предприятие.

Ваш результат:
7

Рис. 1.16. Набор подсистем конфигурации


11. ОТКРОЙТЕ конфигурацию в режиме 1С:Предприятие, рис. 1.17.
Ваш результат:

12. ЗАКРОЙТЕ конфигурацию в режиме 1С: Предприятие


13. ИЗМЕНИТЕ порядок следования подсистем
14. Работа ведется в Конфигураторе
1ЩП на Салон - Открыть командный интерфейс конфигурации

Рис. 1.18. Открыть командный интерфейс конфигурации

Командный интерфейс – это основное средство навигации пользователя по функциональности конфигурации.

В появившемся окне мы можем управлять порядком следования подсистем на панели разделов и их видимостью.
Еще одной полезной возможностью настройки видимости подсистем является видимость по ролям.
С помощью этого механизма можно конструировать интерфейсы для отдельных ролей, которые можно назначать
пользователям, формируя, таким образом, рабочую среду, которая не содержит ничего лишнего.
15. НАСТРОЙТЕ порядок следования подсистем с помощью кнопок Переместить вверх и Переместить

вниз так, чтобы они приняли вид, представленный на рисунке 1.19.


8

Рис. 1.19. Настройка командного интерфейса


- НАЖМИТЕ ОК
- ЗАПУСТИТЕ конфигурацию в пользовательском режиме (Отладка – Начать отладку или нажмите )
- ВНЕСЕННЫЕ изменения можно будет наблюдать на панели разделов.

Ваш результат:

Как видите, порядок отображения подсистем изменился согласно указанному в командном интерфейсе.
16. После успешного завершения каждой работы СОХРАНЯЙТЕ конфигурацию:
Администрирование – Выгрузить информационную базу.

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

КОНТРОЛЬНАЯ ТОЧКА 2: Представьте преподавателю Ваш результат


назад

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

Контрольные вопросы
9

1. Что такое конфигурируемость системы 1С: Предприятие.


2. Из каких основных частей состоит система.
3. Что такое платформа и конфигурация.
4. Для чего используются разные режимы запуска системы.
5. Для чего нужно дерево объектов конфигурации.
6. Что такое объекты конфигурации.
7. Как можно добавить новый объект конфигурации.
8. Как запустить 1С: Предприятие в режиме отладки
9. Для чего используется объект конфигурации Подсистема.
10. Как управлять порядком вывода и отображения подсистем в конфигурации.
11. Как сохранить информационную базу
10

2_Практическая работа. Справочники, разработка форм

Цель работы:
- научиться конструировать справочники, управляемые формы;
- научиться выполнять различные действия в клиентских методах;
- научиться методике вывода сообщений об ошибках в привязке к элементам управления

Содержание
Справочник Клиенты
Справочник Сотрудники
Справочник Номенклатура
Справочник Склады

Содержание
Практика ....................................................................................................................................................................... 100
НАЧАЛЬНЫЕ УСТАНОВКИ: ........................................................................................................................................... 100
1_ЗАДАНИЕ. Создание справочника «Клиенты ......................................................................................................... 100
2_ЗАДАНИЕ. Создание справочника с табличной частью Сотрудники .................................................................. 115
3_ЗАДАНИЕ. Создание иерархического справочника Номенклатура ...................................................................... 19
4_ЗАДАНИЕ. Справочник Склады с предопределенными элементами .................................................................. 26
Контрольные вопросы.............................................................................................................................................. 30

Практика

НАЧАЛЬНЫЕ УСТАНОВКИ:

1. Работа продолжается с информационной базой 1_Ваша фамилия, созданной на предыдущей практике.

1_ЗАДАНИЕ. Создание справочника «Клиенты

ПОСТАНОВКА ЗАДАЧИ:
Создайте справочник Клиенты для хранения списка клиентов, с которыми работает фирма, рассматриваемая в
примере.
ТЕХНОЛОГИЯ РАБОТЫ
8. ЗАГРУЗИТЬ 1С: Предприятие 8.х
9. Откройте информационную базу 8.3_Ваша фамилия в режиме Конфигуратор
10. Дерево конфигурации – Справочники – Добавить
11. Задайте имя и синоним справочника – Клиенты.
12. Задайте представление объекта - Клиент
11

ПРИМЕЧАНИЕ:
Представление объекта определяет название объекта в единственном числе и используется в названии
стандартной команды (Например, команды создания клиента Клиент: создать.)
Используется также в интерфейсе команды добавления нового клиента, товара и т.п. и в заголовке формы,
(если не указано расширенное представление объекта) в ссылке на клиента, товар...
13. НАЖМИТЕ кнопку Далее и
14. ПЕРЕЙДИТЕ к закладке Подсистемы. На этой закладке ОПРЕДЕЛИТЕ, в каких подсистемах будет
отображаться справочник (Бухгалтерия, Оказание услуг).

15. Нажмите на закладку Данные.


16. Установите длину кода равной 9 и длину наименования равной 50
Пояснения:
17. Код справочника используется для идентификации элементов справочника и содержит уникальные
для каждого элемента справочника значения.

Ваш результат:
12

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

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

18. Сделаем доступной в панели действий раздела ОказаниеУслуг стандартную команду для создания
новых клиентов, для этого:
- ВЫДЕЛИМ в дереве объектов конфигурации ветку Подсистемы, вызовем еѐ контекстное
меню и выберем пункт Все подсистемы.

- В открывшемся окне Все подсистемы слева в списке Подсистемы выделим ОказаниеУслуг,


справа в списке Командный интерфейс отразятся все команды выбранной подсистемы.

- В группу Панель действий.Создать добавилась команда Клиент:создать для создания нового


элемента справочника, но она не-видима по умолчанию. Включите видимость этой команды,
поставив соответствующую галочку
13

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

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

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


1. м. Отладка – Начать отладку
2. На появившийся вопрос ответьте Да

3. и в следующем окне нажмите Принять

4. Ваш результат:

5. ПЕРЕЙДИТЕ в разделы Бухгалтерия и затем Оказание услуг


Ваш результат:
Раздел Бухгалтерия
14

Раздел Оказание услуг

6. ДОБАВЬТЕ в справочник Клиенты следующие данные:


Иванов Михаил Юрьевич
Роман
Спиридонова Галина

КОНТРОЛЬНАЯ ТОЧКА 1: Представьте преподавателю Ваш результат.


15

назад

2_ЗАДАНИЕ. Создание справочника с табличной частью Сотрудники

ПОСТАНОВКА ЗАДАЧИ:
Создать справочник, в котором будет храниться информация о сотрудниках, работающих в фирме, и имеющий
табличную часть.
1. Перейти в Конфигуратор
2. Создать новый объект конфигурации Справочник.
Назвать его Сотрудники
Представление объекта – Сотрудник.
Представление списка не заполняем, а
Расширенное представление списка – Список сотрудников.

3. Далее
4. на закладке Подсистемы, отметьте ОказаниеУслуг и РасчетЗарплаты

При оказании услуг должен быть указан сотрудник, оказавший эти услуги,
и по результатам этой работы мы будем начислять зарплату каждому сотруднику.
5. Перейдем на закладку Данные.
- задать длину кода – 9, тип кода – Строка,
- длину наименования справочника равной 50 символам
6. Добавить в справочник новую табличную часть с именем ТрудоваяДеятельность
16

7. Создадим реквизиты ( ) табличной части ТрудоваяДеятельность (рис. ниже):


Организация – тип Строка, длина 100,
НачалоРаботы – тип Дата, состав даты – Дата,
ОкончаниеРаботы – тип Дата состав даты – Дата,
Должность – тип Строка, длина 100:

8. Отредактируем командный интерфейс, чтобы было удобнее вводить новые элементы


справочника, для этого:
- СДЕЛАЕМ видимой в панели действий подсистемы РасчетЗарплаты стандартную команду для
создания новых сотрудников
(ВЫДЕЛИМ подсистему РасчетЗарплаты, контекстное меню – Открыть командный интерфейс).
17

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

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


9. ЗАКРОЙТЕ окно редактирования справочника и ПЕРЕЙДИТЕ в режим 1С: Предприятие.
10. В панели навигации разделов Оказание услуг и Расчет зарплаты появилась команда Сотрудники для
открытия списка сотрудников (Название этой команды определяется синонимом объекта, т.к.
Представление списка мы не задавали).
А в разделе Оказание услуг появилась команда для создания новых сотрудников.

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

11. Выполните команду Сотрудник.


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

Создайте следующих сотрудников.


Гусаков Николай Дмитриевич
Организация – ЗАО «НТЦ»
Начало работы – 01.02.2000
Окончание работы – 16.04.2003
Должность – Ведущий специалист

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


Организация – ООО «Автоматизация»
Начало работы – 22.01.1996
Окончание работы – 31.12.2002
Должность – Инженер

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


Начало работы – 20.06.1986
Окончание работы – 21.01.1995
Должность – Начальник производства

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


Организация – ООО «СтройМастер»
Начало работы – 06.02.2001
Окончание работы – 03.04.2004
Должность – Прораб
Ваш результат:
Чтобы посмотреть список созданных сотрудников, воспользуйтесь командой Сотрудники в левой части
окна.
19

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

КОНТРОЛЬНАЯ ТОЧКА 2: Представьте преподавателю Ваш результат.


назад

3_ЗАДАНИЕ. Создание иерархического справочника Номенклатура

ПОСТАНОВКА ЗАДАЧИ:
Создать справочник, где будет храниться информация об услугах, которые оказывает фирма, и о тех материалах,
которые при этом могут быть использованы

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

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


20

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


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

6. Затем ВЫДЕЛИТЕ подсистему ОказаниеУслуг и проделайте действия аналогично п.5.


21

7. ПЕРЕЙДИТЕ в режим 1С: Предприятие


8. ЗАПОЛНИТЕ справочник Номенклатура
В открывшемся окне видно, что в панели навигации разделов Учет материалов, Оказание услуг и
Бухгалтерия появилась команда Номенклатура (Название этой команды определяется синонимом
объек-та, т.к. других представлений Вы не задавали).

9. ВЫПОЛНИТЕ команду Номенклатура в панели навигации раздела Учет материалов. Справа от панели
навигации откроется основная форма списка.

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


10. СОЗДАЙТЕ две группы в корне справочника: Материалы и Услуги с помощью кнопки Создать группу в
командной панели формы списка.
22

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

11. Затем РАСКРОЕМ группу Материалы, нажав на слева от нее.

12. СОЗДАДИМ в ней 5 элементов кнопкой :


Строчный трансформатор Samsung
Строчный трансформатор GoldStar
Транзистор Philips 2N2369
Шланг резиновый
Кабель электрический
Например:

Ваш результат:
23

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

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


Услуги по ремонту телевизоров:
Диагностика
Ремонт отечественного телевизора
Ремонт импортного телевизора
И услуги по установке стиральных машин:
Подключение воды
Подключение электричества
Ваш результат:
24

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

Теперь распределим услуги по двум смысловым группам:


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

14. Для этого в группе Услуги СОЗДАЙТЕ еще две группы: Телевизоры и Стиральные машины.
25

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

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

15. ПЕРЕМЕСТИТЕ услуги


Диагностика,
Ремонт отечественного телевизора,
ремонт импортного телевизора в группу Телевизоры,
остальное – в группу Стиральные машины.

16. СОЗДАЙТЕ в группе Материалы две группы: Радиодетали и Прочее.


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

17. ПЕРЕКЛЮЧИТЕ представление списка в виде дерева – Еще – Режим просмотра – Дерево.
Ваш результат:
26

18. ЗАКРОЙТЕ приложение и ВЕРНИТЕСЬ в конфигуратор.

КОНТРОЛЬНАЯ ТОЧКА 3: Представьте преподавателю Ваш результат.


назад

4_ЗАДАНИЕ. Справочник Склады с предопределенными элементами


27

ПОСТАНОВКА ЗАДАЧИ:
Создать справочник Склады, который будет содержать информацию о складах, используемых на фирме.
Этот справочник будет содержать один предопределенный элемент – склад Основной, на который будут
поступать все материалы.
ТЕХНОЛОГИЯ РАБОТЫ:
1. Создайте новый объект конфигурации Справочник с именем Склады.
Представление объекта – Склад.
На вкладке Подсистемы отметьте ОказаниеУслуг и УчетМатериалов.

2. Заполним еще одно свойство справочника Склады – Быстрый выбор.


Для этого перейдем на закладку Поле ввода и установим соответствующий флажок

Свойство Быстрый выбор позволяет выбирать элементы не из отдельной формы, а из небольшого


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

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

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

3. Перейдем на закладку Прочее и нажмем кнопку Предопределенные.


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

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

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

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

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

- Для этого откроем окно редактирования объекта конфигурации Подсистема УчетМатериалов и


нажмем кнопку Командный интерфейс.
29

- В открывшемся окне Командный интерфейс отразятся все команды этой подсистемы.


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

5. ЗАКРОЙТЕ окно редактирования справочника Склады и запустим «1С:Предприятие» в режиме отладки.


6. ПЕРЕЙДИТЕ в раздел Учет материалов
7. ОТКРОЙТЕ справочник Склады
8. ДОБАВЬТЕ в справочник еще один склад, с наименованием Розничный
30

КОНТРОЛЬНАЯ ТОЧКА 4: Представьте преподавателю Ваш результат.


назад

На этом мы завершим подготовительную работу по созданию справочников

Контрольные вопросы
1. Для чего предназначен объект конфигурации Справочник
2. Каковы характерные особенности Справочника
3. Для чего используются реквизиты и табличные части справочника
4. Зачем нужны иерархические справочники и что такое родитель
5. Что такое предопределенные элементы
6. Чем с точки зрения конфигурации отличаются обычные элементы справочника от
предопределенных элементов
7. Как создать объект Справочник и описать его структуру
8. Как добавить новые элементы в Справочник
9. Как создать группу Справочника
10. Как переместить элементы из одной группы Справочника в другую
11. Зачем нужна проверка заполнения у реквизитов справочника
12. Что такое быстрый выбор и как его использовать
13. Как отобразить команды создания нового элемента справочника в интерфейсе подсистем
31

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

Цель работы:
- научиться конструировать документы, управляемые формы;

ТЕОРИЯ
Глава З. Документ
Объект конфигурации Документ
Оперативное и неоперативное проведение
Типообразующие объекты
Создание документа ПриходнаяНакладная
Создание документа ОказаниеУслуги
Вопросы по 3-ей главе

ПРАКТИКА
ТЕОРИЯ
I. Объект конфигурации Документ .......................................................................................................................................... 331
2. Оперативное и неоперативное проведение документа ................................................................................................... 332
3. Типообразующие объекты ........................................................................................................................................................ 333
ПРАКТИКА .......................................................................................................................................................................................... 333
3. Создание документа ПриходнаяНакладная ............................................................................................................................... 334
3.1_ЗАДАНИЕ. Создание документа ПриходнаяНакладная ....................................................................................................... 334
Автоматический пересчет суммы в строках документа ................................................................................................................. 40
3.2. Создание формы документа ....................................................................................................................................................... 40
3.2_ЗАДАНИЕ. Создание формы документа .................................................................................................................................. 40
3.3 Создание процедуры обработки события в модуле формы .................................................................................................... 44
3.4. Создание процедуры обработки события в общем модуле.................................................................................................... 47
3.5. САМОСТОЯТЕЛЬНАЯ РАБОТА: Создание документа «Оказание услуги» .............................................................. 53
Контрольные вопросы ....................................................................................................................................................................... 58

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


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

I. Объект конфигурации Документ

ТЕОРИЯ

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

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

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

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

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

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

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

Большинство реквизитов объекта конфигурации Документ разработчик создает самостоятельно, однако у каждого
объекта конфигурации Документ существуют два поля «по умолчанию»: Дата и Номер документа.

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

Конфигуратор База данных

Объект конфигурации Документ Документ

Основная форма объекта Форма документа

Основная форма списка Форма списка документов одного вида

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

назад

2. Оперативное и неоперативное проведение документа

Факт проведения документа и необходимость поддержания актуальной последовательности документов на оси


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

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

3. Типообразующие объекты

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

ПРАКТИКА

ОПИСАНИЕ ЗАДАНИЯ:
После того, как мы познакомились с объектом конфигурации Документ, создадим несколько таких объектов, чтобы
иметь возможность фиксировать события, происходящие в ООО «На все руки мастер».
Одними из самых популярных услуг нашего предприятия является
1) ремонт телевизоров и
2) установка стиральных машин.
34

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

3. Создание документа ПриходнаяНакладная

3.1_ЗАДАНИЕ. Создание документа ПриходнаяНакладная

19. ЗАГРУЗИТЕ 1С: Предприятие 8.3


20. ОТКОЙТЕ Конфигурацию 8.3_Ваша Фамилия в режиме Конфигуратор
21. СОЗДАЙТЕ ОБЪЕКТ КОНФИГУРАЦИИ Документ с именем ПриходнаяНакладная
Представление списка, задайте во множественном числе как Приходные накладные

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


35

23. СОЗДАЙТЕ реквизит документа


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

24. После этого ДОБАВИМ табличную часть с именем Материалы и установим свойство
Проверка заполнения в значение Выдавать ошибку.

25. СОЗДАДИМ четыре реквизита табличной части Материалы. Для этого нажмем кнопку
Добавить реквизит в разделе описания табличных частей документа
(рис.)
Для каждого реквизита табличной части также установим свойство Проверка заполнения в
значение Выдавать ошибку.
36

26. ПЕРЕЙДЕМ на закладку Нумерация и убедимся, что свойство Автонумерация включено.


27. ОТРЕДАКТИРУЕМ командный интерфейс, чтобы в разделе Учет материалов была доступна
команда создания новых документов, для этого:
- ОТКРОЕМ окно редактирования объекта конфигурации Подсистема УчетМатериалов и
НАЖМЕМ кнопку Командный интерфейс.

- В открывшемся окне Командный интерфейс отразятся все команды этой подсистемы.


- В группе Панель действий.Создать ВКЛЮЧИМ видимость у команды Приходная накладная:
создать - Ок
37

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


28. ЗАПУСТИМ 1С: Предприятие в режиме отладки и протестируем получившийся результат.
29. В открывшемся окне «1С:Предприятия» мы видим, что в разделах Бухгалтерия и Учет
материалов появилась команда Приходные накладные для открытия списка приходных накладных
(рис. 4.12).

30. ВЫПОЛНИМ команду Приходная накладная из подменю Создать в разделе Учет материалов и
СОЗДАДИМ новую приходную накладную.
31. ОТКРОЕТСЯ форма документа. Заголовок этой формы Приходная накладная совпадает с
синонимом документа.
32. ЗАПОЛНИТЕ табличную часть приходной накладной материалами для ремонта телевизоров так,
как показано на рисунке
38

33. Нажмем Провести и закрыть.


Ваш результат:
39

34. Самостоятельно СОЗДАЙТЕ второй документ, который будет приходовать


следующие материалы для установки стиральных машин (рис. 3.5):
Вид приходной накладной, созданной Вами:

Рис. 3.5. Заполнение документа «ПриходнаяНакладная №2»


40

КОНТРОЛЬНАЯ ТОЧКА 3.1: Представьте преподавателю Ваш результат.


назад

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


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

3.2. Создание формы документа

3.2_ЗАДАНИЕ. Создание формы документа

Прежде всего, следует заметить, что до сих пор мы использовали предопределенные формы объектов, которые
система 1С: Предприятие создавала для нас сама «по умолчанию».
Теперь же у нас возникла необходимость слегка изменить логику работы формы документа, а значит, нам придется
создать свою собственную форму документа ПриходнаяНакладная для того, чтобы в ней мы могли описать тот
алгоритм, который нам нужен.
1. ВЕРНЕМСЯ в конфигуратор
2. ОТКРОЕМ окно редактирования объекта конфигурации Документ ПриходнаяНакладная.
3. Закладка Формы. Как мы видим, ни одна из основных форм документа пока не задана.
4. Для создания формы нажмите кнопку Добавить или значок лупы около поля Документы.
41

5. Система вызовет еще один полезный инструмент разработчика – конструктор форм. Этот инструмент также
построен по принципу «мастеров»: ввод данных в определенной последовательности и передвижение
кнопками Далее и Назад (рис. 3.7).

Рис. 3.7. Конструктор форм

6. Выберем тип формы ФормаДокумента и нажмем кнопку Готово, согласившись тем самым со всем, что
нам предложила система.
7. Обратите внимание, что в дереве объектов конфигурации у объекта конфигурации
Документ ПриходнаяНакладная появилась форма ФормаДокумента,
42

8. А на экране открылось окно редактора форм, содержащее эту форму (рис. 3.8):
43

Рис. 3.8. Окно редактора форм


9. Редактор форм объединяет несколько окон взаимосвязанных между собой редакторов: левое, правое,
нижнее:
- Нижнее окно: окно формы документа в режиме просмотра,
- Левое окно: дерево элементов,
- Правое окно: список реквизитов формы.
На закладке «Модуль» можно прописывать код на встроенном языке системы.
10. Нас интересуют три элемента табличной части: МатериалыКоличество, МатериалыЦена и
МатериалыСумма (см. рис. 4.20).
44

11. Мы хотим, чтобы каждый раз, когда меняется значение в поле Количество или в поле Цена, в поле
Сумма автоматически устанавливалось значение, равное произведению значений полей Количество и
Цена.
12. Очевидно, что для этого нужно написать на встроенном языке команду, похожую на
Сумма = Количество*Цена,
которая будет выполняться при изменении значения поля Количество или Цена
КОНТРОЛЬНАЯ ТОЧКА 3.2: Представьте преподавателю Ваш результат.
назад

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

3.3 Создание процедуры обработки события в модуле формы


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

1. ЩЕЛКНИТЕ правой кнопкой мыши на поле ввода в колонке МатериалыКоличество и ОТКРОЙТЕ для него
палитру свойств (пункт контекстного меню Свойства).
2. ПРОКРУТИТЕ список до конца, и вы обнаружите перечень событий, которые могут быть связаны с этим
полем ввода.

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


может влиять на ход работы программы.
4. Среди событий, связанных с полем ввода, НАЙДИТЕ событие При изменении. Это событие возникает после
изменения значения поля ввода.
5. ЩЕЛКНИТЕ по кнопке с лупой в конце поля ввода,
45

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

- ОК
7. После этого система создаст шаблон процедуры обработчика этого события в модуле нашей формы и
откроет закладку Модуль редактора формы
Ваш результат:

Модуль – это «хранилище» для текста программы на встроенном языке.


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

Ваш результат:

ОБЪЯСНИМ НАЗНАЧЕНИЕ ЭТИХ СТРОК.


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

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

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

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

Табличная часть документа представляет собой объект встроенного языка ТаблицаФормы. Получить ту строку, в
которой в настоящее время осуществляется редактирование, можно при помощи свойства программного объекта
ТаблицаФормы – ТекущиеДанные (Элементы.Материалы.ТекущиеДанные).

Таким образом, в результате выполнения первой строки процедуры обработчика переменная


СтрокаТабличнойЧасти будет содержать объект ДанныеФормыСтруктура.
Этот объект содержит данные, находящиеся в текущей строке табличной части документа
(Элементы.Материалы.ТекущиеДанные).
Получив этот объект, мы можем обратиться к данным конкретной колонки табличной части, указав имя колонки
в качестве свойства объекта.
Например, используя обращение СтрокаТабличнойЧасти.Количество, мы получаем число, которое находится
в редактируемой строке в колонке Количество.
Таким образом, во второй строке процедуры обработчика вычисляется значение колонки Сумма как
произведение значений колонок Количество и Цена.
2. ПОСМОТРИМ, как это работает.
3. Запустим «1С:Предприятие» в режиме отладки
4. В окне программы 1C откроем список документов ПриходнаяНакладная и откроем любой из двух
созданных нами документов. Если теперь вы поменяете Количество в любой строке документа, то сумма в
строке будет пересчитана автоматически.
Например:

1. ВЕРНИТЕ измененное количество деталей в начальное состояние (рис.)


47

КОНТРОЛЬНАЯ ТОЧКА 3.3: Представьте преподавателю Ваш результат.


назад

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


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

Для описания таких «общедоступных» мест служат объекты конфигурации Общий модуль, расположенные в ветке
Общие - Общие модули. Процедуры и функции, содержащиеся в этих модулях, могут быть доступны для любых
объектов конфигурации.
Для того чтобы алгоритм, выполняемый при обработке события, был доступен для разных документов, мы
создадим общий модуль и перенесем в него нашу процедуру расчета суммы.
А в документе просто оставим вызовы этой процедуры из общего модуля.
1. СОЗДАЙТЕ объект конфигурации Общий модуль в ветке Общие - Общие модули и НАЗОВИТЕ его
РаботаСДокументами
2. УСТАНОВИТЕ в его свойствах флажок Клиент (управляемое приложение), а флажок Сервер
снимем.
Это означает, что экземпляры этого модуля будут скомпилированы в контексте тонкого клиента
и в контексте веб-клиента (рис. 4.25).
48

3. ВНЕСИТЕ в модуль следующий текст (листинг 3.2):

Ключевое слово Экспорт в конце оператора Процедура как раз указывает на то, что эта процедура может быть
доступна из других программных модулей.
4. Далее ПЕРЕЙДИТЕ в модуль ФормаДокумента (документ ПриходнаяНакладная)
Действия:

- 2ЩЛ на в Документе


Ваш результат:
49

- РАЗВЕРНИТЕ Процедуру, для этого ¯


Ваш результат:

5. Затем в модуле нашей формы ИЗМЕНИТЕ текст нашего обработчика (листинг 3.3):

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

7. ПРОВЕРЬТЕ, как это работает, для этого:


- ЗАПУСТИТЕ 1С: Предприятие в режиме отладки,
- ВЫЗОВИТЕ Документ Приходная Накладная №2

- УБЕДИТЕСЬ, в работоспособности записанных процедур, для этого:


50

- ИЗМЕНИТЕ кол-во для Шланга резинового – на 3, сумма должна автоматически измениться на 300

8. ВОССТАНОВИТЕ значение кол-ва шлангов на 5

9. Теперь осталось и для поля Цена установить такой же обработчик.


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

Однако стандарты разработки конфигураций фирмы «1С» не допускают такого решения.


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

10. ПЕРЕЙДИТЕ в режим Конфигуратор


11. СОЗДАЙТЕ обработчик события ПриИзменении для поля табличной части Цена, для этого:
- ПЕРЕЙДИТЕ в режим в окне
- ВЫДЕЛИТЕ Поле ввода МатериалыЦена
Ваш результат:
51

- 1ЩП в поле ввода Цена – Свойства –


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

- ОК
Ваш результат:
52

12. ПОВТОРИТЕ в обработчике события вызов процедуры РассчитатьСумму из общего модуля (листинг 3.4):

13. ЗАПУСТИТЕ 1С: Предприятие в режиме отладки и убедитесь, что теперь сумма в строках табличной
части документов Приходная накладная пересчитывается
- как при изменении количества,
- так и при изменении цены.

ВОССТАНОВИТЕ результат:
53

КОНТРОЛЬНАЯ ТОЧКА 3.4: Представьте преподавателю Ваш результат.


назад

3.5. САМОСТОЯТЕЛЬНАЯ РАБОТА: Создание документа «Оказание услуги»


Аналогичным образом СОЗДАЙТЕ второй документ – Оказание услуги.
Для этого потребуется выполнить следующие действия:
1) СОЗДАТЬ новый объект конфигурации Документ ОказаниеУслуги
2) На закладке Основные определим, как будет представлен документ в интерфейсе «1С:Предприятия».
3) Представление объекта задавать не будем, вместо него будет использоваться Синоним объекта.
4) Представление списка зададим как Оказание услуг.

5) На закладке Подсистемы ОТМЕТИМ, что документ будет доступен в подсистемах ОказаниеУслуг и


Бухгалтерия.
54

6) На закладке Данные СОЗДАЙТЕ реквизиты документа:


§ Склад, тип СправочникСсылка.Склады,
Выберем для свойства Значение заполнения предопределенный элемент Основной
справочника Склады;
§ Клиент, тип СправочникСсылка.Клиенты,
Установим свойство Проверка заполнения в значение Выдавать ошибку;
§ Мастер, тип СправочникСсылка.Сотрудники,
Установим свойство Проверка заполнения в значение Выдавать ошибку;

7) СОЗДАЙТЕ табличную часть этого документа ПереченьНоменклатуры с реквизитами:


§ Номенклатура, тип СправочникСсылка.Номенклатура,
§ Количество, тип Число, длина 15, точность 3, неотрицательное,
§ Цена, тип Число, длина 15, точность 2, неотрицательное,
§ Сумма, тип Число, длина 15, точность 2, неотрицательное,
УСТАНОВИТЕ для табличной части в целом и для каждого ее реквизита
свойство Проверка заполнения в значение Выдавать ошибку.
8) СОЗДАЙТЕ основную форму документа на закладке Формы,
55

9) Для поля ПереченьНоменклатурыКоличество СОЗДАЙТЕ обработчик события ПриИзменении


(выполняющийся на клиенте), в котором будем вызывать процедуру РассчитатьСумму из общего
модуля РаботаСДокументами.
10) Для поля ПереченьНоменклатурыЦена СОЗДАЙТЕ обработчик события ПриИзменении
(выполняющийся на клиенте), в котором будем вызывать процедуру РассчитатьСумму из общего
модуля РаботаСДокументами.
56

11) В заключение ОТРЕДАКТИРУЕМ командный интерфейс, чтобы в разделе Оказание услуг была
доступна команда создания новых документов.
12) Для этого ОТКРОЕМ окно редактирования объекта конфигурации Подсистема ОказаниеУслуг и
НАЖМЕМ кнопку Командный интерфейс.
В открывшемся окне отразятся все команды данной подсистемы.
В группе Панель действий.Создать ВКЛЮЧИМ видимость у команды Оказание услуги: создать

13) В результате документ ОказаниеУслуги в дереве объектов конфигурации будет выглядеть следующим
образом (рис. 3.11):
57

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


14. После того, как эти действия будут выполнены, ЗАПУСТИТЕ 1С:Предприятие в режиме отладки
15. В разделе Оказание услуг ВЫПОЛНИТЕ команду создания документа Оказание услуги из
подменю Создать
16. ЗАПОЛНИТЕ документ его следующим образом
Контрольный пример:

17. УБЕДИТЕСЬ, что при вводе цены и количества в табличную часть документа ОказаниеУслуги сумма
пересчитывается по заданному алгоритму.

КОНТРОЛЬНАЯ ТОЧКА 3.5: Представьте преподавателю Ваш результат.


назад
58

Контрольные вопросы

1. Для чего предназначен объект конфигурации Документ


2. Какими характерными особенностями обладает документ
3. Для чего предназначены реквизиты и табличные части документа
4. Какие существуют основные формы документа
5. Что такое проведение документа
6. Чем отличается оперативное проведение документа от неоперативного
7. Что такое оперативная отметка времени
8. Как создать объект конфигурации Документ и описать его основную структуру
9. Как создать новый документ и заполнить его данными
10. Как создать собственную форму документа
11. Что такое конструктор форм
12. Что такое редактор форм
13. Что такое элементы формы
14. Что такое события и с чем они связаны
15. Что такое обработчик события и как его создать
16. Что такое модуль и для чего он нужен
17. Зачем нужны общие модули
18. Что такое типообразующие объекты
назад
59

4_ Практическое

ТЕОРИЯ

Глава 4. Регистр накопления


1. Зачем нужен регистр накопления?
2. Объект конфигурации Регистр накопления
3. Создание регистра накопления «ОстаткиМатериалов»
4. Создание движений документа «ПриходнаяНакладная»
5. Создание движений документа «ОказаниеУслуги»
6. Контрольные вопросы

ТЕОРИЯ 59
1. Зачем нужен регистр накопления? 59
2. Объект конфигурации Регистр накопления 61
ПРАКТИКА 62
3. Создание регистра накопления «ОстаткиМатериалов» 62
1_ЗАДАНИЕ. Создание регистра накопления «ОстаткиМатериалов» 62
Создание движений документа «ПриходнаяНакладная» 64
2_ЗАДАНИЕ. Создание движений документа «ПриходнаяНакладная» 64
Команда перехода к движениям в форме документа 71
3_ЗАДАНИЕ. Создание движений документа «ПриходнаяНакладная» 71
Создание движений документа «ОказаниеУслуги» 73
4_ЗАДАНИЕ. Создание движений документа «ОказаниеУслуги» 73
Контрольные вопросы 78

ТЕОРИЯ
В этой главе мы познакомимся с объектом конфигурации Регистр накопления. Вы узнаете, для чего используется
этот объект, какой структурой он обладает и каковы его отличительные особенности.
В заключение главы мы создадим с вами один из регистров накопления, который будет использоваться в нашей
конфигурации.
1. Зачем нужен регистр накопления?
Итак, мы с вами подошли к одному из главных моментов разработки любой конфигурации – созданию механизма
учета накопления данных.
Казалось бы, все необходимое мы с вами уже создали: у нас есть что расходовать и приходовать (справочники), и
у нас есть чем расходовать и приходовать (документы). Осталось только построить несколько отчетов, и
автоматизация ООО «На все руки мастер» будет закончена.
Однако это не так.
Во-первых, путем анализа документов можно, конечно, получить требуемые нам выходные данные, но представьте,
что завтра ООО «На все руки мастер» решит немного изменить свои бизнес-процессы, и нам потребуется ввести в
конфигурацию еще один документ (или несколько документов!).
Например, сейчас мы полагаем, что товары поступают в ООО и затем расходуются. Руководство захотело усилить
материальный контроль и решило приходовать товары на основной склад организации и затем выдавать их
материально ответственным лицам. В этом случае нам придется добавить в конфигурацию еще один документ,
который будет фиксировать перемещение материалов между основным складом и материально ответственными
лицами. И очевидно, нам придется переработать все отчеты, которые были нами созданы к этому моменту с тем,
чтобы они учитывали изменения, вносимые новым документом. А представьте, если в нашей конфигурации не два,
а двадцать документов?!
60

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

Рис. 4.1. Алгоритм работы конфигурации

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

2. Объект конфигурации Регистр накопления

Объект конфигурации Регистр накопления является прикладным и предназначен для описания структуры
накопления данных.
На основе объекта конфигурации Регистр накопления платформа создает в базе данных информационную
структуру, в которой будут накапливаться данные, «поставляемые» различными объектами базы данных.
Эти данные будут храниться в регистре в виде отдельных записей, каждая из которых имеет одинаковую, заданную
в конфигураторе структуру.
Отличительной особенностью регистра накопления является то, что он не предназначен для интерактивного
редактирования пользователем.
Разработчик может при необходимости предоставить пользователю возможность редактировать регистр
накопления, но предназначение регистра накопления заключается в том, чтобы его модификация производилась
на основе алгоритмов работы других объектов базы данных (не обязательно документов, как в версии 7.7), а не в
результате непосредственных действий пользователя.
Основным назначением РЕГИСТРА НАКОПЛЕНИЯ является накопление числовой информации в разрезе
нескольких измерений, которые описываются разработчиком в соответствующем объекте конфигурации
Регистры накопления являются подчиненными объектами конфигурации.
Виды числовой информации, накапливаемой регистром накопления, называются ресурсами и также являются
подчиненными объектами и описываются в конфигураторе.
Например, регистр накопления может накапливать информацию о количестве и сумме товаров на складах.
В этом случае он будет иметь измерения Товар и Склад,
и
ресурсы Количество и Сумма.
61

Изменение состояния регистра накопления происходит, как правило, при проведении документа, и заключается в
том, что в регистр добавляется некоторое количество записей.
Каждая запись содержит:
- значения измерений,
- значения приращений ресурсов,
- ссылку на документ, который вызвал эти изменения (регистратор)
- «направление» приращения (приход или расход).
Такой набор записей называется движениями регистра накопления.
Движения документа – это записи в регистрах, которые создаются в процессе проведения документа и отражают
изменения, производимые документом.

Каждому движению регистра накопления всегда должен соответствовать регистратор.


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

ПРАКТИКА

3. Создание регистра накопления «ОстаткиМатериалов»

ОПИСАНИЕ ЗАДАНИЯ:
Теперь, когда мы знаем, для чего предназначены регистры накопления, посмотрим, как можно их использовать в
нашем примере.
Прежде всего, нас интересует информация о том, сколько и каких материалов есть у нас на складах. Для накопления
такой информации мы создадим регистр накпления ОстаткиМатериалов.

1_ЗАДАНИЕ. Создание регистра накопления «ОстаткиМатериалов»


35. ЗАГРУЗИТЬ 1С: Предприятие 8.3
36. ОТКРЫТЬ Конфигурацию Ваша Фамилия в режиме Конфигуратор
37. СОЗДАТЬ ОБЪЕКТ КОНФИГУРАЦИИ Регистр накопления.
38. ЗАДАДИМ имя регистра – ОстаткиМатериалов
39. ЗАДАДИМ Расширенное представление списка как Движения по регистру Остатки материалов.
Этот заголовок будет отображаться в окне списка записей регистра.
62

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


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

42. Выделим закладку Данные и ПЕРЕЙДЕМ к созданию структуры регистра.


43. Создадим измерения регистра:
§ Материал, с типом СправочникСсылка.Номенклатура,
§ Склад, с типом СправочникСсылка.Склады.
63

44. Затем создадим ресурс Количество, Тип – Число с длиной 15 и точностью 3.

45. В результате этих действий регистр ОстаткиМатериалов в дереве конфигурации должен иметь
следующий вид (рис. 4.2):
64

46. ЗАПУСТИТЕ 1С:Предприятие в режиме отладки,


47. Система выдаст сообщение об ошибке: РегистрНакопления.ОстаткиМатериалов: Ни один из документов
не является регистратором для регистра. Это сообщение еще раз подтверждает тот факт, что назначение
регистра накопления в том, чтобы аккумулировать данные, поставляемые различными документами.

48. НАЖМЕМ ОК
49. ПЕРЕЙДЕМ в Конфигуратор
КОНТРОЛЬНАЯ ТОЧКА 1: Представьте преподавателю Ваш результат.
назад

Создание движений документа «ПриходнаяНакладная»

2_ЗАДАНИЕ. Создание движений документа «ПриходнаяНакладная»

Движения документа – это записи в регистрах, которые создаются в процессе проведения документа и отражают
изменения, производимые документом.
1. ОТКРОЕМ окно редактирования объекта конфигурации
Документ ПриходнаяНакладная (выбрать объект в дереве конфигурации и 2ЩЛ)

2. Перейдем на закладку Движения и в списке регистров конфигурации отметим


регистр накопления ОстаткиМатериалов (рис. 4.3):
65

Рис. 4.3. Отметим регистр накопления и воспользуемся конструктором движений…

3. Обратите внимание, что сразу после отметки выбранного регистра становится доступной кнопка Конструктор
движений.
4. НАЖМИТЕ Конструктор движений.

Конструктор движений устроен следующим образом (см.рис. 4.4).


В списке Регистры перечислены регистры, в которых документ может создавать движения. В нашем случае там
пока один регистр ОстаткиМатериалов.
В списке Реквизиты документа должны находиться исходные данные для создания движений –
реквизиты документа ПриходнаяНакладная.
А в таблице Поле – Выражение должны быть заданы формулы, по которым будут вычисляться значения
измерений и ресурсов регистра при записи движений
66

Рис. 4.4. Конструктор движений


5. Обратите внимание, что по умолчанию конструктор предлагает нам создавать движения прихода (Тип
движения регистра – Приход, символ + рядом с названием регистра) по регистру ОстаткиМатериалов.

6. Это нас вполне устраивает, т.к. документ ПриходнаяНакладная должен приходовать материалы.
7. В поле выбора Табличная часть выберем табличную часть нашего документа – Материалы.

8. Список реквизитов документа автоматически заполнится реквизитами нашей табличной части.

9. Теперь НАЖМЕМ кнопку Заполнить выражения.


10. В нижнем окне сформируется соответствие полей и выражений (рис. 4.5).
67

11. Как видите, конструктор движений установил соответствия подходящим образом:


- в качестве материала в регистр будет записан материал из табличной части документа,
- в качестве склада – склад, указанный в шапке документа,
- а в качестве количества – количество из табличной части документа.
12. Нажмем кнопку OK и посмотрим, какой текст сформировал конструктор в модуле объекта (листинг 4.1):

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

К набору записей документа, принадлежащему конкретному регистру, можно обратиться, указав через точку имя
этого регистра.
Таким образом, в первой строке тела цикла мы добавляем к набору записей, который создает наш документ в
регистре, новую запись и сохраняем ее в переменной Движение.
Затем мы присваиваем нужные значения всем полям этой записи и после перебора всех строк документа (после
завершения цикла) «одним махом» записываем в регистр ОстаткиМатериалов весь набор записей движений
документа.
13. ОТКРОЕМ окно редактирования объекта конфигурации Регистр накопления
ОстаткиМатериалов и ПЕРЕЙДЕМ на закладку Регистраторы, то в списке документов, созданных
в конфигурации, мы увидим отмеченный документ ПриходнаяНакладная, так как мы задали в
модуле этого документа формирование движений в регистре ОстаткиМатериалов (рис. 6.10).

14. В заключение ОТРЕДАКТИРУЕМ командный интерфейс, чтобы в разделах Бухгалтерия,


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

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

15. В дереве объектов конфигурации ВЫДЕЛИМ ветвь Подсистемы,


16. ВЫЗОВЕМ ее контекстное меню и выберем пункт Все подсистемы.
17. В открывшемся окне слева в списке Подсистемы ВЫДЕЛИМ подсистему УчетМатериалов.
18. Справа в списке Командный интерфейс ОТРАЗЯТСЯ все команды выбранной подсистемы.
19. В группе Панель навигации.Обычное включим видимость у команды Остатки материалов и
мышью ПЕРЕТАЩИМ ее в группу Панель навигации. См.также (рис. 6.11).
69

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

20. Аналогично, ВЫДЕЛИВ подсистемы ОказаниеУслуг и Бухгалтерия,


в группе Панель навигации. Обычное включим видимость у команды Остатки материалов и
ПЕРЕНЕСЕМ ее в группу Панель навигации См.также.
70

Посмотрим, как это работает.


21. ЗАПУСТИМ 1С:Предприятие в режиме отладки и протестируем внесенные нами изменения

22. ОТКРОЕМ Приходную накладную № 1 и нажмем Провести и закрыть, то есть ПЕРЕПРОВЕДЕМ ее.
23. То же самое СДЕЛАЕМ для Приходной накладной № 2.

24. Теперь выполним команду Остатки материалов и ОТКРОЕМ список нашего регистра накопления
71

КОНТРОЛЬНАЯ ТОЧКА 2: Представьте преподавателю Ваш результат.


назад

Команда перехода к движениям в форме документа

3_ЗАДАНИЕ. Создание движений документа «ПриходнаяНакладная»

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

Для этого
1. ВЕРНИТЕСЬ в Конфигуратор
2. В дереве объектов конфигурации найдите документ ПриходнаяНакладная
3. ОТКРОЙТЕ форму документа ПриходнаяНакладная.
72

4. В левом верхнем окне ПЕРЕЙДИТЕ на закладку Командный интерфейс .


5. В разделе Панель навигации раскройте группу Перейти и установите видимость команды Остатки
материалов (Объект.Ссылка).

6. ЗАПУСТИТЕ 1С: Предприятие в режиме отладки,


7. ОТКРОЙТЕ Приходную накладную №2.
73

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

9. НАЖМИТЕ на панели навигации Остатки материалов и ПЕРЕЙДИТЕ к списку записей регистра Остатки
материалов, связанному с документом Приходная накладная №2.

КОНТРОЛЬНАЯ ТОЧКА 3: Представьте преподавателю Ваш результат.


назад

Создание движений документа «ОказаниеУслуги»

4_ЗАДАНИЕ. Создание движений документа «ОказаниеУслуги»


Теперь аналогичным образом необходимо создать движения документа ОказаниеУслуги.
1. ПЕРЕЙДИТЕ в Конфигуратор
2. ВЫПОЛНИТЕ действия согласно рис.
74

3. НАЖМИТЕ Конструктор движений


4. При использовании конструктора будем внимательны и обратим внимание на то, что документ
ОказаниеУслуги должен расходовать материалы, поэтому:
- Установите Расход, а в табличной части ПереченьНоменклатуры
- Затем нажмите Заполнить выражение
Ваш результат:
75

5. Кроме того, при автоматическом заполнении поле Материал не заполнится автоматически.


6. Если мы оставим это так, как есть, то в регистре накопления в строках с типом Движение регистра – расход
имя номенклатуры фиксироваться не будет.
7. Чтобы избежать этого, надо выбрать поле Материал и в поле Реквизиты документа дважды щелкнуть
по строке ТекСтрокаПереченьНомеклатуры.Номенклатура.
Таким образом, имя номенклатуры для строк регистра накопления будет выбираться из табличной части
документа.
Ваш результат:

8. НАЖМИТЕ ОК. Конструктор создал обработчик события ОбработкаПроведения объекта Документ


ОказаниеУслуги и поместил его в модуль объекта.
76

9. ОТРЕДАКТИРУЙТЕ командный интерфейс формы документа ОказаниеУслуги, чтобы в панели


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

Посмотрим, как это работает.


10. ЗАПУСТИТЕ 1С: Предприятие в режиме отладки
11. В разделе Оказание услуг ОТКРОЕМ документ Оказание услуги № 1
12. НАЖМЕМ Провести и закрыть , то есть перепроведем его.
13. ВЫПОЛНИМ команду Остатки материалов и ОТКРОЕМ список нашего регистра накопления
77

14. Пиктограмма со знаком минус слева от записи указывает на тип движения – Расход
15. Сейчас мы видим весь список движений регистра. Открыв этот список из формы документа, мы можем
отфильтровать движения по документу-регистратору, для этого:
- ОТКРОЙТЕ еще раз документ Оказание услуги №1
Ваш результат:

- В форме документа появилась панель навигации, в которой мы можем переходить к списку записей
регистра Остатки материалов, связанному с документом, и обратно к содержимому документа
- НАЖМИТЕ Остатки материалов
Ваш результат:
78

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

КОНТРОЛЬНАЯ ТОЧКА 4: Представьте преподавателю Ваш результат.


назад

Контрольные вопросы

1. Для чего предназначен объект конфигурации Регистр накопления ?


2. Почему следует использовать регистры, хотя необходимая информация содержится в других объектах ?
3. Для чего нужны измерения регистра, ресурсы и реквизиты ?
4. Что такое движения регистра и что такое регистратор ?
5. Как создать новый регистр накопления и описать его структуру ?
6. Как создать движения документа с помощью конструктора движений ?
7. Как средствами встроенного языка обойти табличную часть документа и обратиться к ее данным ?
8. Как показать команды открытия списка регистра в интерфейсе конфигурации и в интерфейсе формы ?
79

5_ Практическое Отчет


1. Объект конфигурации Отчет ..................................................................................................................................................... 79
ПРАКТИКА ....................................................................................................................................................................................... 79
1_ЗАДАНИЕ. Создание отчета Материалы..................................................................................................................................... 79
Контрольные вопросы ....................................................................................................................................................................... 92

назад

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

ПРАКТИКА

1_ЗАДАНИЕ. Создание отчета Материалы


Теперь у нас все готово для того, чтобы можно было получать выходные данные. Поэтому приступим к созданию
отчета, который будет показывать нам приход, расход и остатки материалов.
Данная глава преследует цель лишь проиллюстрировать механизм создания отчетов. Более глубоко работа с
конструктором выходной формы будет рассмотрена на последующих занятиях в главе Создание отчетов.
1. СОЗДАЙТЕ в Конфигураторе новый объект конфигурации Отчет и НАЗОВИТЕ его Материалы.
2. В окне редактирования объекта конфигурации Отчет Материалы и СОЗДАЙТЕ схему компоновки данных.
Для этого нажмем кнопку Открыть схему компоновки данных (рис. 5.1).
80

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

Рис. 5.2. Конструктор макета

5. НАЖМЕМ кнопку Готово.


6. Платформа создаст новый макет, содержащий схему компоновки данных, и сразу же откроет конструктор
схемы компоновки данных.
81

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


сейчас воспользуемся только самыми простыми его возможностями и определим те данные, которые хотим
видеть в результате работы нашего отчета.
8. Добавим новый набор данных - запрос (рис. 5.3):

Рис 5.3. Добавление набора данных в конструкторе схемы компоновки


9. Для того чтобы создать текст запроса, запустим конструктор запроса – кнопка Конструктор запроса (рис. 5.4):
82

Рис. 5.4. Вызов конструктора запроса из конструктора схемы компоновки данных

10. В списке База данных представлены таблицы запросов. На основе их данных мы имеем возможность
построить отчет.
83

11. РАСКРОЙТЕ ветку РегистрыНакопления,

12. Вы увидите, что кроме таблицы регистра ОстаткиМатериалов в этой ветке присутствуют еще несколько
виртуальных таблиц, которые формирует система (рис. 5.5).

Рис. 5.5. Кроме таблицы регистра «ОстаткиМатериалов» присутствуют еще несколько виртуальных таблиц
84

13. Поскольку мы хотим видеть как остатки материалов, так и информацию об их поступлении и расходовании,
нас будет интересовать виртуальная таблица ОстаткиМатериалов.ОстаткиИОбороты.
РАСКРОЙТЕ ее (рис. 5.6).

Рис. 5.6. Таблица «ОстаткиМатериалов.ОстаткиИОбороты»

14. ПЕРЕТАЩИТЕ мышью таблицу в список Таблицы и РАСКРОЙТЕ ее


структуру
85

15. Как вы видите, эта таблица содержит Материал, Склад и кроме этого Начальные и Конечные остатки, а
также значения Прихода, Расхода и Оборотов для всех ресурсов регистра ОстаткиМатериалов.
16. Начнем выбирать поля таблицы в нужном нам порядке двойным щелчком мыши.
Сначала выберем Склад и Материал.
Затем выберем
КоличествоНачальныйОстаток,
КоличествоПриход,
КоличествоРасход
и в заключение
КоличествоКонечныйОстаток.
17. В результате окно Поля должно быть заполнено следующим образом (рис. 5.7):

Рис. 5.7. Выбранные поля

18. НАЖМИТЕ ОК и ВЕРНИТЕСЬ в конструктор схемы компоновки данных


Ваш результат:
86

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

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

Настройки отчета

21. Перейдем на закладку Настройки


В верхнем правом окне будет находиться иерархическая структура нашего отчета.
87

22. Добавим в Отчет группировку (контекстное меню корневого элемента Отчет – Новая группировка).

23. При этом не станем указывать поле группировки, а просто нажмем OK.

24. В отчет будут выводиться детальные записи из информационной базы – записи, получаемые в результате
выполнения запроса без итогов (рис. 5.10).
88

Рис. 5.10. Добавим новую группировку

25. НАСТРОЙТЕ поля, которые будут выводиться в результат отчета.


Для этого ПЕРЕЙДИТЕ на закладку Выбранные поля

Перенесем мышью из списка доступных полей:


Склад
Материал
КоличествоНачальныйОстаток
КоличествоПриход
КоличествоРасход
КоличествоКонечныйОстаток
89

Ваш результат:

Рис. 5.11. Настройки отчета

26. Затем ПЕРЕЙДИТЕ на вкладку Параметры и укажите, что параметры отчета Начало периода и Конец
периода будут включены в состав пользовательских настроек и эти настройки будут находиться в форме
отчета, т.е. будут быстрыми настройками:
- Сначала УКАЖИТЕ, что оба эти параметра будут использоваться в отчете, для этого
УСТАНОВИТЕ флажки в первой колонке.
- Затем ВЫДЕЛИТЕ каждый из параметров, НАЖМИТЕ кнопку Свойства элемента
пользовательских настроек и УСТАНОВИТЕ флажок Включать в пользовательские
настройки
90

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

27. ОПРЕДЕЛИТЕ, в каких подсистемах будет отображаться наш отчет, для этого
- ЗАКРОЙТЕ конструктор схемы компоновки данных
- В окне редактирования объекта конфигурации Отчет Материалы перейдите на закладку
Подсистемы.
- Отметим в списке подсистем конфигурации ветви Учет материалов, Оказание услуг и
Бухгалтерия.

28. ЗАПУСТИТЕ 1С: Предприятие в режиме отладки


В открывшемся окне «1С:Предприятия » Вы УВИДИТЕ, что в разделах Бухгалтерия, Оказание услуг
и Учет материалов появилось новое подменю Отчеты, содержащее команды для выполнения отчетов,
и в нем команда для формирования отчета Материалы
91

29. ВЫПОЛНИТЕ команду для формирования отчета Материалы.


Откроется автоматически сформированная системой форма отчета.
30. ЗАДАЙТЕ даты начала и окончания отчетного периода
31. НАЖМИТЕ кнопку Сформировать
Результат:

Рис. 5.12. Отчет «Материалы»


КОНТРОЛЬНАЯ ТОЧКА 1: Представьте преподавателю Ваш результат.
назад

Контрольные вопросы

9. Для чего предназначен объект конфигурации Отчет?


10. Как создать отчет с помощью конструктора схемы компоновки данных
11. Как отобразить отчет в разделах прикладного решения?
92

6 _Практическое Объект конфигурации Макет


ТЕОРИЯ 92
1. Объект конфигурации Макет 92
ПРАКТИКА 92
1_ЗАДАНИЕ. Создание печатной формы документа ОказаниеУслуги 92
Контрольные вопросы 97

ТЕОРИЯ
В этой главе мы познакомимся с вами с объектом конфигурации Макет.
Вы узнаете, для чего он используется, и создадите макет документа, на основе которого будет формироваться
печатная форма документа
Объект конфигурации Макет

Объект конфигурации Макет предназначен для хранения различных форм представления данных, которые
могут потребоваться каким-либо объектам конфигурации или всему прикладному решению в целом.
Макет может содержать:
- табличный или текстовый документ,
- двоичные данные,
- HTML-документ или Active Document,
- графическую или географическую схему,
- схему компоновки данных или макет оформления схемы компоновки данных.
Макеты могут существовать как сами по себе (общие макеты), так и быть подчинены какому-либо объекту
конфигурации.
Одно из предназначений макета, подчиненного объекту конфигурации и содержащего табличный документ, –
создание печатной формы этого объекта.
Создание печатной формы заключается в конструировании ее составных частей – именованных областей, из
которых затем «собирается» готовая печатная форма.
Порядок заполнения областей данными и порядок вывода их в итоговую форму описывается при помощи
встроенного языка.
Печатная форма может включать в себя различные графические объекты: картинки, OLE-объекты, диаграммы
и т. д.
Помимо создания макета «вручную», конфигуратор предоставляет разработчику возможность воспользоваться
специальным инструментом – конструктором печати, который берет на себя большинство рутинной работы по
созданию макета.
назад

ПРАКТИКА

1_ЗАДАНИЕ. Создание печатной формы документа ОказаниеУслуги

32. ОТКРОЙТЕ в Конфигураторе окно редактирования объекта конфигурации Документ ОказаниеУслуги.


33. ПЕРЕЙДИТЕ на закладку Макеты и ЗАПУСТИТЕ конструктор печати (рис. 6.1):
93

Рис. 6.1. Запустим конструктор печати…

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

35. – Далее
36. На втором шаге нажатием двойной стрелки определим, что ВСЕ реквизиты нашего документа будут
отображены в шапке печатной формы –
94

37. Далее
38. На третьем шаге точно так же нажатием двойной стрелки определим, что все реквизиты табличной части
документа будут отображены в печатной форме –

39. Далее
40. На четвертом шаге конструктор предложит сформировать нам подвал (нижнюю часть) печатной формы. Мы
не станем ничего указывать (подвал в данном случае использовать не будем) и Далее
41. Перейдем к пятому шагу.
Здесь ничего изменять не будем. Тем самым согласимся с тем, что команда для вызова процедуры
формирования печатной формы будет помещена в командную панель формы, в раздел Важное.
95

42. Нажмем OK
В конфигураторе откроется

модуль команды Печать,


модуль менеджера документа ОказаниеУслуги и
макет этого документа

Рис. 6.2. Макет документа ОказаниеУслуги


96

Проверим макет в работе.


43. ЗАПУСТИТЕ 1С: Предприятие в режиме отладки
44. ОТКРОЙТЕ документ Оказание услуги № 1.
45. Обратите внимание, что в командной панели документа появилась новая кнопка Печать (рис. 6.3).

Рис. 6.3. Появилась новая кнопка Печать


Эту кнопку добавил конструктор.
46. НАЖМИТЕ на кнопку Печать и УВИДИТЕ печатную форму нашего документа (рис. 6.4).

Рис. 6.4. Печатная форма документа

Как видите, конструктор сформировал вполне подходящую печатную форму для нашего документа. Единственное,
чего не хватает в данной форме, – это итоговой суммы документа.
97

Далее мы познакомимся с тем, как можно редактировать макеты и формы объектов конфигурации, и добавим
итоговую сумму к форме и макету документа ОказаниеУслуги.
КОНТРОЛЬНАЯ ТОЧКА 1: Представьте преподавателю Ваш результат.
назад

Контрольные вопросы

1. Для чего предназначен объект конфигурации Макет?


2. Что такое конструктор печати ?
3. Как создать макет с помощью конструктора печати ?
98

7_Практическое Редактирование макетов и форм

ТЕОРИЯ ........................................................................................................................................................................... 98
1_ЗАДАНИЕ Редактирование макета документа ОказаниеУслуги ......................................................................... 98
2_ЗАДАНИЕ. Редактирование формы документа ОказаниеУслуги ........................................................................ 103
Контрольные вопросы .................................................................................................................................................. 110

назад

ТЕОРИЯ
В этой главе мы познакомимся с вами с объектом конфигурации Отчет. Вы узнаете, для чего он используется, и
создадите отчет, который будет показывать движения и остатки материалов на нашем предприятии.
1_ЗАДАНИЕ Редактирование макета документа ОказаниеУслуги

ПОСТАНОВКА ЗАДАНИЯ: Добавьте итоговую сумму в печатную форму документа


1.ОТКРОЕМ Конфигуратор,
2. РАСКРОЕМ дерево документа ОказаниеУслуги и дважды щелкнем на макете Печать.
Макет документа состоит из именованных областей, которые в определенном порядке выводятся на печать.
7. ДОБАВЬТЕ новую область для вывода итоговой суммы документа (рис. 7.1), для этого:
- ВЫДЕЛИТЕ мышью две пустые строки и выполним команду Таблица - Имена - Назначить Имя…

Рис. 7.1. Выделим мышью две строки и зададим имя области

- НАЗОВИТЕ область Всего - ОК.


- В созданной области, в колонке Цена, напишем Всего, а в колонке Сумма напишем ВсегоПоДокументу.
99

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

Рис. 7.2. Укажем, что в ячейке должен находиться не текст, а параметр…

Ваш результат:

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

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

9. Теперь ОТКРОЙТЕ модуль менеджера документа ОказаниеУслуги, для этого:


- ПЕРЕЙДИТЕ на закладку Прочее окна редактирования объекта конфигурации Документ
ОказаниеУслуги
- НАЖМИТЕ кнопку Модуль менеджера

- НАЙДИТЕ в нем процедуру Печать


- ОТРЕДАКТИРУЙТЕ ее следующим образом (новые строки выделены черным фоном и жирным шрифтом),
листинг 8.1.
101

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


имени – Макет.

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

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

Затем мы обращаемся к параметру ВсегоПоДокументу


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

В заключение мы выводим итоговую область в табличный документ, который будет показан на экране и
распечатан пользователем – ТабДок.Вывести(ОбластьИтог).

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


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

10. ЗАПУСТИТЕ 1С: Предприятие в режиме отладки


11. ОТКРОЙТЕ документ Оказание услуги № 1.
12. НАЖМИТЕ кнопку Печать
Ваш результат:
102

КОНТРОЛЬНАЯ ТОЧКА 1: Представьте преподавателю Ваш результат.


назад

2_ЗАДАНИЕ. Редактирование формы документа ОказаниеУслуги


Подобным образом, используя свойства ячеек макета и управляя порядком их вывода, разработчик имеет
возможность создать печатную форму любого дизайна.
А теперь, для того чтобы документ ОказаниеУслуги, выглядел вполне законченным, ДОБАВЬТЕ итоговую сумму
по документу и на экранную форму, чтобы пользователь мог видеть ее в процессе заполнения табличной части
документа.
47. ОТКРОЙТЕ в Конфигураторе в дереве объектов форму документа ОказаниеУслуги - ФормаДокумента.
103

48. В левом верхнем окне ВЫЗОВИТЕ свойства пункта ПереченьНоменклатуры.


104

49. УСТАНОВИТЕ свойство Подвал, которое определяет наличие подвала (нижней части) у таблицы формы.
105

50. Затем ОТКРОЙТЕ свойства элемента формы ПереченьНоменклатурыЦена и


УСТАНОВИТЕ:
- Текст подвала – Всего:

- Горизонтальное положение – Право,


- Шрифт подвала – Жирный.
106

51. После этого ОТКРОЙТЕ свойства элемента ПереченьНоменклатурыСумма,


УСТАНОВИТЕ:
- Горизонтальное положение – Право,
- Шрифт – жирный.
52. Для того, чтобы в подвале колонки Сумма отображался итог по ней, НАЖМИТЕ кнопку выбора свойств в поле
ПутьКДаннымПодвала.

- РАСКРОЙТЕ дерево реквизитов объекта


- ВЫБЕРИТЕ элемент ИтогСумма - ОК.
107

Результат:

Ваш результат:
108

53. ЗАПУСТИТЕ 1С: Предприятие в режиме отладки и ПОСМОТРИТЕ, как теперь выглядит форма документа
Оказание услуги №1 (рис. 7.4):
109

Рис. 7.4. Форма документа Оказание услуги №1

54. Подобным образом, используя свойства элементов управления и задавая их значения, разработчик имеет
возможность создать экранную форму любого дизайна и поведения.
КОНТРОЛЬНАЯ ТОЧКА 2: Представьте преподавателю Ваш результат.
назад

Контрольные вопросы

1. Для чего предназначен объект Макет?


2. Что такое конструктор печати?
3. Как создать макет с помощью конструктора печати?
4. Как изменить макет документа?
5. Какая разница в заполнении ячейки табличного документа между текстом, параметром и шаблоном?
6. Как изменить внешний вид и поведение элемента формы?
7. Как отобразить сумму по колонке таблицы?
110

8_Практическое Периодический регистр сведений

Цель занятия: закрепить умения работы с объектом конфигурации Регистр сведений

Вопросы занятия:
Необходимость периодического регистра сведений ................................................................................ 11010
Объект конфигурации Регистр сведений.............................................................................................................. 111
Создание периодического регистра сведений .................................................................................................. 112
1_Задание: Создание периодического регистра сведений. Создание записей........................................... 112
Автоматическая подстановка цены в документ при выборе номенклатуры ............................... 119
Создание функции РозничнаяЦена() ...................................................................................................................... 119
2_Задание: Создание функции РозничнаяЦена() ...................................................................................................... 119
Автоматическое заполнение цены в документе ОказаниеУслуги ....................................................... 120
3_Задание: Реализация автоматического заполнения поля Цена ..................................................................... 120
Контрольные вопросы ............................................................................................................................................................. 122

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


необходимые для организации учета ООО «На все руки мастер».

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

Вторая часть будет посвящена тому, как созданную систему учета «приблизить» к реальным
потребностям ООО «На все руки мастер».

ТЕОРИЯ

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

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

Необходимость периодического регистра сведений


Начнем мы с того, что обратим ваше внимание на документ ОказаниеУслуги. Как вы помните, в этом
документе мы выбираем услугу, которая оказывается, и затем указываем цену.
Очевидно, что в ООО «На все руки мастер» существует перечень услуг, который определяет стоимость
каждой услуги. Казалось бы, стоимость услуги является неотъемлемым свойством самой услуги, и
поэтому ее следует добавить в качестве реквизита справочника Номенклатура.
Однако стоимость услуг имеет особенность меняться со временем. И может сложиться такая ситуация,
когда нам потребуется внести изменения или уточнения в один из ранее проведенных документов
ОказаниеУслуги. В этом случае мы не сможем получить правильную стоимость услуги, поскольку в
реквизите справочника будет храниться последнее введенное значение.
Кроме того, не исключено, что руководство ООО «На все руки мастер» пожелает видеть, как зависит
прибыль предприятия от изменения стоимости оказываемых услуг. В этом случае просто необходимо
будет иметь возможность анализировать изменение стоимости услуг во времени.
Поэтому для хранения стоимости услуг мы используем новый пока еще для нас объект – регистр
сведений.
назад
111

Объект конфигурации Регистр сведений


Объект конфигурации Регистр сведений является прикладным и предназначен для описания структуры
хранения данных в разрезе нескольких измерений. На основе объекта конфигурации Регистр сведений
платформа создает в базе данных информационную структуру, в которой может храниться
произвольная информация, «привязанная» к набору измерений.
Принципиальное отличие регистра сведений от регистра накопления заключается в том, что каждое
движение регистра сведений устанавливает новое значение ресурса, в то время как движение
регистра накопления изменяет существующее значение ресурса. По этой причине регистр сведений
может хранить любые данные (а не только числовые, как регистр накопления).
Следующей важной особенностью регистра сведений является его способность (при необходимости)
хранить данные с привязкой ко времени. Благодаря этому регистр сведений может хранить не только
актуальные значения данных, но и историю их изменения во времени. Регистр сведений,
использующий привязку ко времени, называют обычно периодическим регистром сведений.
Периодичность регистра сведений можно определить одним из следующих значений:
§ в пределах секунды;
§ в пределах дня;
§ в пределах месяца;
§ в пределах квартала;
§ в пределах года;
§ в пределах регистратора (если установлен режим записи –Подчинение регистратору).
Периодический регистр сведений всегда содержит служебное поле Период, добавляемое системой
автоматически. Оно имеет тип Дата и служит для указания факта принадлежности записи к какому-
либо периоду. При записи данных в регистр платформа всегда приводит значение этого поля к началу
периода, в который он попадает. Например, если в регистр сведений с периодичностью в пределах
месяца записать данные, в которых период указан как 08.14.2004, то регистр сохранит эти данные со
значением периода, равным 01.04.2004.
Как и для других регистров, система контролирует уникальность записей для регистра сведений.
Однако если для прочих регистров уникальным идентификатором записи является регистратор и
номер строки, то для регистра сведений применяется другой принцип формирования ключевого
значения.
Ключом записи, однозначно идентифицирующим запись, является в данном случае совокупность
значений измерений регистра и периода (в случае, если регистр сведений периодический).
Регистр сведений не может содержать несколько записей с одинаковыми ключами.
Если продолжать сравнение с регистром накопления, то можно сказать, что регистр сведений
предоставляет больше свободы в редактировании хранимых данных. Наряду свозможностью
использования в режиме подчинения регистратору (когда записи регистра сведений «привязаны» к
документу-регистратору) регистр сведений может применяться и в независимом режиме, в котором
пользователю предоставляется полная свобода интерактивной работы с данными регистра. Регистр
сведений, не использующий подчинение регистратору, называют независимым регистром сведений.
112

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


сведений
Регистры сведений

назад

Создание периодического регистра сведений


ПРАКТИКА
1_Задание: Создание периодического регистра сведений. Создание записей
ПОСТАНОВКА ЗАДАЧИ: создайте периодический регистр сведений, который будет хранить
развернутые во времени розничные цены материалов и стоимости услуг, оказываемых ООО «На все
руки мастер».
ТЕХНОЛОГИЯ РАБОТЫ
1. Работа ведется в Вашей информационной базе, созданной на предыдущих занятиях.
2. ОТКРОЙТЕ в конфигураторе Вашу информационую базу
3. Создайте новый объект конфигурации Регистр сведений – имя Цены.
4. Установите периодичность этого регистра В пределах секунды.
5. Представление записи – Цена,
6. Представление списка – Цены на номенклатуру.
7. Обратите внимание на свойство Режим записи. По умолчанию оно имеет значение
Независимый, т.е. мы создаем независимый регистр сведений и можем в дальнейшем
вводить в него данные без использования регистратора, вручную.
113

8. Перейдите на вкладку Подсистемы:


отметьте УчетМатериалов, ОказаниеУслуг и Бухгалтерия

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


СправочникСсылка.Номенклатура.
10. Укажите, что это измерение будет ведущим (рис 1.1.).

Рис. 1.1. Создадим измерение Номенклатура и укажем, что оно будет ведущим

ПРИМЕЧАНИЕ:
Свойство Ведущее имеет смысл использовать лишь тогда, когда измерение имеет тип ссылки на
объект базы данных.
114

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

7. После этого создайте новый ресурс Цена, тип Число, длина 15, точность 2, неотрицательное.

8. ПЕРЕЙДИТЕ в 1С: Предприятие в режиме отладки


9. В открывшемся окне «1С:Предприятия» мы видим, что в разделах Бухгалтерия, Оказание услуг
и Учет материалов появилась команда для открытия списка регистра Цены на номенклатуру

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

Создание записей в регистре сведений


10. ОТКРОЙТЕ периодический регистр сведений Цены, нажав для открытия списка регистра Цены
на номенклатуру.
115

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


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

Пример выполнения одной записи:


116

Рис. 1.2. Цены на услуги в регистре сведений «Цены»

13. После этого в том же окне зададим розничные цены на материалы (рис. 1.3).

Рис. 1.3 Цены на материалы в регистре сведений «Цены»

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

КОНТРОЛЬНАЯ ТОЧКА 1: Представьте преподавателю Ваш результат.


назад

Автоматическая подстановка цены в документ при выборе номенклатуры

Наша задача заключается в следующем. Цена номенклатуры у нас теперь хранится в отдельном
регистре сведений. Когда мы создаем или изменяем документ ОказаниеУслуги и добавляем в
табличную часть какую-либо номенклатуру, нам хочется, чтобы одновременно с этим в документ
подставлялась бы сразу и актуальная цена этой номенклатуры, полученная из регистра сведений и
соответствующая дате документа.
Для этого нам нужно сделать две вещи.
Сначала написать некую функцию, которая будет возвращать нам актуальную цену номенклатуры, а
затем вызвать эту функцию в тот момент, когда в документ добавляется номенклатура, и подставить
в документ цену номенклатуры, которую вернет эта функция.
Поскольку такой сервис понадобится нам, скорее всего, не только в этом, но и в других документах,
которые содержат в табличной части номенклатуру, мы поместим функцию в некоторое
общедоступное место – в общий модуль.
Сначала мы создадим функцию РозничнаяЦена(), которая будет возвращать нам актуальную
розничную цену номенклатуры, и поместим ее в общий модуль конфигурации.

Создание функции РозничнаяЦена()

2_Задание: Создание функции РозничнаяЦена()

ПОСТАНОВКА ЗАДАЧИ: создайте функцию РозничнаяЦена(), которая будет возвращать нам


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

ПЕРЕЙДИТЕ в режим Конфигуратор


Посмотрим, как можно использовать заданные нами цены в документе ОказаниеУслуги.

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

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

2. Поместите в нем следующий текст (листинг 1.1):


Листинг 1.1. Функция РозничнаяЦена()

Теперь эту функцию нужно вызвать в некоторый момент работы документа.

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

Значения ресурсов возвращаются в объекте Структура, поэтому в следующей строке мы получаем искомую нами
розничную цену, просто указав имя нужного нам ресурса регистра через точку (ЗначенияРесурсов.Цена).

КОНТРОЛЬНАЯ ТОЧКА 2: Представьте преподавателю Ваш результат.


назад

Автоматическое заполнение цены в документе ОказаниеУслуги

3_Задание: Реализация автоматического заполнения поля Цена

ПОСТАНОВКА ЗАДАЧИ:
1. При создании документа ОказаниеУслуги необходимо обеспечить автоматическое заполнение
поля Цена после того, как пользователь выберет услугу.
2. Причем цена услуги должна определяться исходя из даты создаваемого документа.
ТЕХНОЛОГИЯ РАБОТЫ:
1. Найдите в конфигураторе документ ОказаниеУслуги и откройте его форму ФормаДокумента.
119

2. Дважды щелкнем на элементе формы ПереченьНоменклатурыНоменклатура


(или контекстное меню – Свойства)

3. Прокрутив список до конца, найдем событие ПриИзменении, которое возникает после изменения
значения поля.
4. Нажмем кнопку открытия со значком лупы в поле ввода
Появится окно:
120

Нажмем ОК
Ваш результат:

5. В открывшейся заготовке обработчика события НАПИШИТЕ следующий текст (листинг 1.2):


Листинг 1.2. Процедура ПереченьНоменклатурыНоменклатураПриИзменении()

Поясним содержимое разработчика


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

Проверьте работу документа Оказание услуги, для этого:


6. Запустите 1С: Предприятие в режиме отладки и
7. Откройте регистр сведений Цены.
8. Для транзистора Philips добавьте следующим числом новую цену (рис. 1.4):

Рис. 1.4. Регистр сведений Цены

9. Теперь откройте документ Оказание услуги №1. Этим документом зафиксирован расход
транзистора.
10. Установите дату документа равной той дате, когда было задано первое значение цены
транзистора, и повторите выбор транзистора в колонке Номенклатура табличной части
документа. Автоматически установится первое значение цены (рис. 1.5).
122

Рис. 1.5. Заполнение документа Оказание услуги

11. Теперь измените дату документа на 1.12.14. и снова повторите выбор транзистора. Будет
установлено новое значение цены (рис. 1.6).

Рис. 1.6. Заполнение документа Оказание услуги

Таким образом, в документе появляется актуальная на момент создания документа цена услуги.
КОНТРОЛЬНАЯ ТОЧКА 3: Представьте преподавателю Ваш результат.
назад

Контрольные вопросы

1. Для чего предназначен объект конфигурации Регистр сведений


2. Какими особенностями обладает объект конфигурации Регистр сведений
123

3. В чем главные отличия регистра сведений от регистра накопления


4. Какие поля определяют ключ уникальности регистра накопления
5. Что такое периодический регистр сведений и что такое независимый регистр сведений
6. Как создать периодический регистр сведений
7. Что такое ведущее измерение регистра
8. Как получить значения ресурсов наиболее поздних записей регистра средствами встроенного
языка
124

9_Практическое Перечисления

Цель работы: закрепить умения работы с объектами системы 1С: Предприятие: перечислениями.

Объект конфигурации Перечисление ..................................................................................................................... 124


Реорганизация справочника «Номенклатура» ................................................................................................ 125
1_Задание. Реорганизация справочника «Номенклатура» ................................................................................... 125
Произвольное представление Номенклатуры................................................................................................... 128
2_Задание. Реорганизация справочника «Номенклатура» ................................................................................... 130
Изменение процедуры проведения документа «Оказание услуги» ................................................. 132
3_Задание: Регистрация расхода только той номенклатуры, которая является материалом .............. 132
Контрольные вопросы ............................................................................................................................................................. 135

назад

ТЕОРИЯ
До сих пор мы с вами не обращали внимания на то, что у нас нет никакого признака, по которому мы
могли бы сказать, чем является конкретный элемент справочника Номенклатура: материалом или
услугой.
То, что все элементы справочника разложены у нас по некоторым группам, не может являться
надежным критерием оценки: группы можно удалить, переименовать, сгруппировать элементы по
другим принципам…
Поэтому нам требуется некоторый признак, позволяющий однозначно определять принадлежность
элемента справочника к материалам или услугам, независимо от изменения иерархической структуры
справочника.

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


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

Объект конфигурации Перечисление

Объект конфигурации Перечисление является прикладным и предназначен для описания структуры


хранения постоянных наборов значений, не изменяемых в процессе работы конфигурации.

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


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

Из этого следует важная особенность перечисления: значения перечисления не «обезличены» для


конфигурации, на них могут опираться алгоритмы работы программы.

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


представлена на рис. 1.14)
125

Перечисления

Рис. 1.14. Объекты встроенного языка для работы с перечислениями


назад

Реорганизация справочника «Номенклатура»

1_Задание. Реорганизация справочника «Номенклатура»


ТЕХНОЛОГИЯ РАБОТЫ:
1. Работа продолжается в предыдущей информационной базе 8.3_Ваша фамилия.1CD
2. Откройте конфигуратор
Добавление перечисления
3. Создайте новый объект конфигурации Перечисление с именем ВидыНоменклатуры.
4. На закладке Данные добавим два значения перечисления: Материал и Услуга (рис. 2.1).

Рис. 2.1. Данные перечисления «ВидыНоменклатуры»

Привязка номенклатуры к значениям перечисления «ВидНоменклатуры»


5. Добавьте в справочник Номенклатура
новый реквизит ВидНоменклатуры с типом ПеречислениеСсылка.ВидыНоменклатуры (рис. 2.2).
126

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

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


7. Задайте для каждого элемента справочника Номенклатура соответствующее значение реквизита
ВидНоменклатуры (рис. 2.3).
Для отображения элементов в окне, показанном на рисунке:

Нажать Еще – -
127

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


128

КОНТРОЛЬНАЯ ТОЧКА 1: Представьте преподавателю Ваш результат.


назад

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

ОПИСАНИЕ ЗАДАНИЯ №2
Теперь, используя реквизит Вид номенклатуры, зададим произвольное представление
номенклатуры в интерфейсе «1С:Предприятия».
Представление номенклатуры используется везде, где отображаются поля, ссылающиеся на элементы
справочника Номенклатура. Такие
поля мы видим в табличной части наших документов, в регистре сведений, регистре накопления и т.
д.
Стандартное представление номенклатуры (как и любого другого элемента справочника)
определяется свойством справочника
Основное представление.
По умолчанию это свойство установлено в значение В виде наименования (рис.).
129

Рис. Свойство справочника «Основное представление»


Поэтому, например, в табличной части документов в колонке Номенклатура мы видим не ссылку на
номенклатуру, а ее наименование

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

ТРЕБУЕТСЯ:
чтобы при отображении ссылок на номенклатуру в интерфейсе «1С:Предприятия» рядом с
наименованием номенклатуры показывался бы и ее вид (материал или услуга).
130

В режиме «Конфигуратор»

Механизм формирования представления объекта конфигурации состоит из двух этапов:


– определение реквизитов, участвующих в формировании представления,
– собственно формирование представления.

Для этого используются обработчики событий


1) ОбработкаПолученияПолейПредставления и
2) ОбработкаПолученияПредставления менеджера соответствующего объекта.

2_Задание. Реорганизация справочника «Номенклатура»


ТЕХНОЛОГИЯ РАБОТЫ:
1. Вернемся в Конфигуратор,
2. Выделим в дереве объектов конфигурации справочник Номенклатура,
3. Вызовем контекстное меню и выберем пункт Открыть модуль менеджера

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


(листинги 10.1, 10.2).

Пояснения

В обработчике события ОбработкаПолученияПолейПредставления мы описываем, какие


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

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


131

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

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


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

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


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

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


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

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


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

5. ПЕРЕЙДИТЕ в 1С:Предприятие
При открытии документа Оказание услуги в табличной части мы видим заданное нами
представление номенклатуры

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


132

КОНТРОЛЬНАЯ ТОЧКА 2: Представьте преподавателю Ваш результат.


назад

Изменение процедуры проведения документа «Оказание услуги»

3_Задание: Регистрация расхода только той номенклатуры, которая является материалом


В первой части (практика 6_8.3), когда создавались движения документа ОказаниеУслуги по
регистру накопления ОстаткиМатериалов, было отмечено, что они не совсем правильные, поскольку
в регистр будут попадать не только записи об израсходованных материалах, но и записи об оказанных
услугах.

ПОСТАНОВКА задачи:
Доработайте документ таким образом, чтобы в регистре появлялись только записи, относящиеся к
расходу материалов. Эта доработка
будет не совсем эффективна с точки зрения производительности, зато позволит нам получить нужные
данные в регистре
ОстаткиМатериалов.
Более эффективный вариант обработки проведения этого документа будет рассмотрен после изучения
занятия, рассказывающего о механизме запросов 1С: Предприятия 8.3.

1. Скорректируйте движения документа, исключив из обработки те строки табличной части, в


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

добавьте следующий текст (текст следует добавить в начало цикла обхода табличной части документа
после строки Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл
(листинг 2.1):
133

Результат:

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

В переменной ТекСтрокаПереченьНоменклатуры содержатся на каждом шаге цикла данные


текущей строки табличной части
ПереченьНоменклатуры.
134

Указывая через точку имя колонки Номенклатура


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

Затем, указывая через точку ВидНоменклатуры


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

Полученное значение с помощью оператора сравнения (=) мы сравниваем со значением


Материал перечисления
ВидыНоменклатуры(Перечисления.ВидыНоменклатуры.Материал).

Если значения совпадают, операторы цикла выполняются.


Если нет, мы переходим к следующей итерации цикла, к следующей строке табличной части.

Проверка
1. Запустите 1С: Предприятие в режиме отладки и
2. Проверьте работу процедуры проведения документа ОказаниеУслуги, для этого:
- Откройте документ ОказаниеУслуги и внесите в него следующие изменения
(обратите внимание, что изменен не только состав номенклатуры в табличной части, но и время
документа) – рис. 2.4.
3. УДАЛИТЕ из табличной части строку, содержащую Транзистор Philips;
4. ДОБАВЬТЕ услугу – Подключение воды;
5. ДОБАВЬТЕ материал – Шланг резиновый

Рис. 2.4. Измененный документ «ОказаниеУслуги №1»

- Обратите внимание, что цены подставляются автоматически из регистра сведений Цены.

6. Нажмите кнопку Провести


7. Затем выполним команду Остатки материалов в панели навигации формы, чтобы перейти к
записям регистра Остатки материалов, связанным с данным документом
135

Рис. 2.5. Записи регистра «ОстаткиМатериалов»

КОНТРОЛЬНАЯ ТОЧКА 3: Представьте преподавателю Ваш результат.


назад

Контрольные вопросы
1. Для чего предназначен объект конфигурации Перечисление?
2. Как создать новое перечисление?
3. Как с помощью перечисления задать принадлежность элементов справочника к той или иной
смысловой группе?
4. Как обратиться к значению перечисления средствами встроенного языка?
5. Как задать произвольное представление объекта конфигурации?
назад
136

10_Практическое Проведение документа по нескольким регистрам


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

Зачем нужно проведение документа по нескольким регистрам? ....................................................... 136


Создание регистра «Стоимость материалов» ................................................................................................... 136
1_Задание: создание регистра СтоимостьМатериалов ............................................................................................ 136
Изменение процедуры проведения документа «Приходная накладная» .................................... 139
2_Задание: внесению изменений в процедуры проведения документа Приходная Накладная ......... 139
Изменение процедуры проведения документа «Оказание услуги» ................................................. 146
3_Задание: изменение процедуры проведения документа «Оказание услуги» ......................................... 146
Контрольные вопросы ............................................................................................................................................................. 157

назад

ТЕОРИЯ
Эта занятие будет посвящена тому, как один и тот же документ может «поставлять» информацию в
различные регистры конфигурации и для чего может понадобиться такая возможность.
На этом занятии создадим еще один регистр накопления нашей конфигурации и изменим процедуру
проведения документов так, чтобы они записывали необходимые данные как в один, так и в другой
регистр и подготовим базу для изучения следующей главы.
Зачем нужно проведение документа по нескольким регистрам?
До сих пор мы с вами учитывали только количественное движение материалов в ООО «На все руки
мастер». Для этих целей мы создали регистр накопления ОстаткиМатериалов.
НО одного только количественного учета совершенно недостаточно для нужд нашего ООО.
Очевидно, что необходимо также знать, какие денежные средства были затрачены на приобретение
тех или иных материалов, и каковы материальные запасы ООО «На все руки мастер» в денежном
выражении.
После того, как мы начали автоматизировать наше предприятие, руководство ООО «На все руки
мастер» высказало пожелание, чтобы весь суммовой учет материалов велся бы теперь по средней
стоимости. То есть при закупке материалов они должны учитываться в ценах приобретения, а при
расходе – по средней стоимости, которая рассчитывается исходя из общей суммы закупок данного
материала и общего количества этого материала, находящегося в ООО.
Поскольку подобная информация имеет совершенно другую структуру, нежели количественный учет,
для хранения данных об общей стоимости тех или иных материалов мы будем использовать еще один
регистр накопления СтоимостьМатериалов.
Таким образом, документы ПриходнаяНакладная и ОказаниеУслуги должны будут создавать движения
не только в регистре ОстаткиМатериалов, но одновременно и в регистре СтоимостьМатериалов,
отражая изменения суммового учета.
назад

Создание регистра «Стоимость материалов»

1_Задание: создание регистра СтоимостьМатериалов


1. Самостоятельно создайте регистр накопления
с именем СтоимостьМатериалов,
2. Вид регистра - Остатки
3. Расширенное представление списка зададим как
Движения по регистру Стоимость материалов.
Этот заголовок будет отображаться в окне списка записей регистра.
137

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


Бухгалтерия, Учет материалов и Оказание услуг.

5. На закладке Данные создадим для регистра


одно измерение – Материал с типом СправочникСсылка.Номенклатура
один ресурс – Стоимость с типом Число, с длиной 15 и точностью 2.
6. После создания регистр СтоимостьМатериалов должен выглядеть в дереве конфигурации
следующим образом (рис. 3.1):

Рис. 3.1. Регистр «СтоимостьМатериалов»


138

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


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

7. В дереве объектов конфигурации ВЫДЕЛИТЕ ветвь Подсистемы, ВЫЗОВИТЕ контекстное меню и


выберите пункт Все подсистемы.
8. В открывшемся окне слева в списке Подсистемы выделим подсистему Бухгалтерия.
9. В группе Панель навигации.Обычное включим видимость у команды Стоимость материалов и
мышью перетащим ее в группу Панельнавигации.См.также

10. Аналогично, выделив подсистемы ОказаниеУслуг и УчетМатериалов,


в группе Панель навигации.Обычное включим видимость у команды
Стоимость материалов и перенесем ее в группу Панель навигации.См.также.
139

КОНТРОЛЬНАЯ ТОЧКА 1: Представьте преподавателю Ваш результат.


назад

Изменение процедуры проведения документа «Приходная накладная»

2_Задание: внесению изменений в процедуры проведения документа Приходная Накладная


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

3. Запустим конструктор движений и согласимся с тем, что существующая процедура


140

ОбработкаПроведения будет замещена.


4. Перед нами откроется окно конструктора движений, которое будет содержать созданные нами
ранее движения документа по регистру ОстаткиМатериалов.
5. Добавим в список регистров, по которым формируются движения, еще один –
СтоимостьМатериалов (см. рис.).
6. Выберем для него ту же табличную часть Материалы и заполним выражения.
- для ресурса Стоимость выберем значения реквизита табличной части Сумма (рис. 3.2).

Рис. 3.2. Добавим в список регистров новый регистр


141

- нажмем OK и посмотрим на текст, который сформировал конструктор (листинг 3.1).


Листинг 3.1. Процедура ОбработкаПроведения( )

Как вы видите, конструктор создал два цикла обхода табличной части документа – отдельно для
каждого регистра.
Так происходит потому, что в общем случае документ может иметь несколько табличных частей, и
информация, содержащаяся в каждой из них, может предназначаться для своего отдельного регистра.
7. В нашем случае табличная часть всего одна, поэтому ОБЪЕДИНИТЕ эти два цикла в один, согласно
листингу 3.2):
Листинг 3.2:
142

Команда перехода к записям регистра


8. В заключение ОТРЕДАКТИРУЙТЕ командный интерфейс формы документа, чтобы в панели
143

навигации формы иметь возможность переходить к списку записей регистра


СтоимостьМатериалов, связанному с документом, для этого:
- ОТКРОЙТЕ форму документа ПриходнаяНакладная.
- В левом верхнем окне ПЕРЕЙДИТЕ на закладку Командный интерфейс.
- В разделе Панель навигации РАСКРОЙТЕ группу Перейти
- УВИДИТЕ команду для открытия регистра накопления Стоимость материалов.
- Установите свойство Видимость для этой команды

Рис. Настройка командного интерфейса формы документа «ПриходнаяНакладная»

Проверка
1. ЗАПУСТИТЕ 1С: Предприятие в режиме отладки и
ПЕРЕПРОВЕДИТЕ документы ПриходнаяНакладная №1 и №2. (Раздел Учет материалов), для
этого:
- ОТКРОЙТЕ список документов, выполнив команду Приходные накладные в разделе Учет
материалов.
- ВЫДЕЛИТЕ одновременно, используя клавишу Ctrl, все приходные накладные
- ПЕРЕПРОВЕДИТЕ их, выполнив команду Провести из подменю Еще.

2. Затем ОТКРОЙТЕ Приходную накладную №1 и, выполнив команды перехода к регистрам


144

Остатки материалов и Стоимость материалов, убедитесь, что документ создает желаемые записи в
регистрах накопления (рис. 3.3, 3.4, 3.5).

Рис. 3.3. «ПриходнаяНакладная №1»

Рис. 3.4. Записи регистра «ОстаткиМатериалов»

Рис. 3.5. Записи регистра «СтоимостьМатериалов»

КОНТРОЛЬНАЯ ТОЧКА 2: Представьте преподавателю Ваш результат.


назад

Изменение процедуры проведения документа «Оказание услуги»

3_Задание: изменение процедуры проведения документа «Оказание услуги»


145

Внесите изменения в процедуру обработки проведения документа ОказаниеУслуги.


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

Поскольку в документе ОказаниеУслуги у нас отражена только цена номенклатуры, Вам понадобится
добавить в табличную часть документа еще одно поле, в котором будет указываться стоимость
номенклатуры.
1. ОТКРОЙТЕ в конфигураторе окно редактирования объекта конфигурации Документ
ОказаниеУслуги,
2. ПЕРЕЙДИТЕ на закладку Данные
3. СОЗДАЙТЕ новый реквизит табличной части документа с именем Стоимость, типом Число,
длиной 15 и точностью 2 (рис. 3.6).

Рис. 3.6. Изменение документа «ОказаниеУслуги»

4. После этого ОТКРОЙТЕ форму ФормаДокумента документа ОказаниеУслуги и добавьте в


табличную часть
ПереченьНоменклатуры поле, отображающее новый реквизит Стоимость, для этого:
- в правом верхнем окне редактора форм на закладке Реквизиты РАСКРОЙТЕ реквизит формы
Объект
146

Рис. 3.7. Изменение формы документа «ОказаниеУслуги»

- НАЙДИТЕ в табличной части реквизит Стоимость и с помощью мыши перетащите его в окно
элементов формы, расположенное слева в верхней части редактора форм.
- новый реквизит ОТОБРАЗИТСЯ в форме документа, расположенной в левом нижнем окне
редактора форм

Изменение процедуры проведения


5. СОЗДАЙТЕ движение документа ОказаниеУслуги таким же образом, как Вы делали это для
документа
ПриходнаяНакладная, для этого:
- ОТКРОЙТЕ в конфигураторе окно редактирования объекта конфигурации Документ
ОказаниеУслуги и УКАЖИТЕ, что он будет создавать движения по регистру накопления
СтоимостьМатериалов.
147

- Запустите конструктор движений документа.

- Добавьте в список регистров регистр СтоимостьМатериалов, для этого:

¯ -
- Опишите движения документа следующим образом (обратите внимание, что стоимость
вычисляется как произведение стоимости и количества, указанных в табличной части) –
148

рис. 3.8:

Рис. 3.8. Конструктор движений документа

- Нажмем OK
Ваш результат:

6. В тексте процедуры внесите изменения согласно рис. (листинг 3.4),


149

7. ОТРЕДАКТИРУЙТЕ командный интерфейс формы документа, чтобы в панели навигации формы


иметь возможность переходить к списку записей регистра Стоимость Материалов, связанному с
документом, для этого
- ОТКРОЙТЕ форму документа ОказаниеУслуги.

- В левом верхнем окне ПЕРЕЙДИТЕ на закладку Командный интерфейс .


- В разделе Панель навигации раскройте группу Перейти и увидите команду для открытия
150

регистра накопления Стоимость материалов.


- Установите свойство Видимость для этой команды.

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


8. Запустите 1С:Предприятие в режиме отладки
9. ОТКРОЙТЕ список документов, выполнив команду Оказание услуг в разделе Оказание услуг
10. ОТКРОЙТЕ документ Оказание услуги № 1
- укажите стоимость резинового шланга – 100 в документе ОказаниеУслуги №1 (рис. 3.9).

Рис. 3.9. Документ «ОказаниеУслуги №1»

11. Проведите документ ОказаниеУслуги №1 и посмотрите на движения этого документа по регистру


151

СтоимостьМатериалов (рис. 3.10), для этого:


Провести – и перейти к регистру Стоимость материалов.

Рис.3.10. Записи регистра «СтоимостьМатериалов»

12. Теперь СОЗДАЙТЕ и проведите еще два документа ОказаниеУслуги.


13. Эти документы понадобятся нам в дальнейшем, поэтому будьте внимательны и обратите
внимание на то, что эти документы созданы другими датами (рис. 3.11, 3.12).

Рис. 3.11. Документ «ОказаниеУслуги №2»


152

Рис. 3.12. Документ «ОказаниеУслуги №3»

14. Движения документов ОказаниеУслуги №2 и №3 должны выглядеть соответственно


следующим образом (рис. 3.13, 3.14):

Рис. 3.13. Движения документа «ОказаниеУслуги №2»


153

Рис. 3.14. Движения документа «ОказаниеУслуги №3»

КОНТРОЛЬНАЯ ТОЧКА 3: Представьте преподавателю Ваш результат.


назад

Контрольные вопросы
1. Для чего может понадобиться проведение документа по нескольким регистрам
2. Как с помощью конструктора создать движения документа по нескольким регистрам
3. Как средствами встроенного языка сформировать и записать движения документа в регистр
накопления?
4. Как добавить в форму документа новый реквизит?
154

11_Практическое Оборотный регистр накопления

Цель работы: научиться работе с объектом конфигурации: Оборотный регистр накопления

Зачем нужно создавать еще один регистр? ........................................................................................................ 154


Создание оборотного регистра накопления «Продажи» .......................................................................... 154
1_Задание: Создание Регистра накопления Продажи ............................................................................................. 155
Проведение документа «Оказание услуги» по трем регистрам .......................................................... 158
2_Задание: изменение процедуры проведения документа «Оказание услуги» ......................................... 158
Контрольные вопросы ............................................................................................................................................................. 165

назад

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

назад

Создание оборотного регистра накопления «Продажи»


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

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

1_Задание: Создание Регистра накопления Продажи


Теперь, когда мы знаем «практически все» о регистрах накопления,
1. ОТКРОЕМ конфигуратор и СОЗДАДИМ новый объект конфигурации Регистр накопления.
2. НАЗОВЕМ его Продажи и ОПРЕДЕЛИМ вид регистра – Обороты.
3. ЗАДАДИМ Расширенное представление списка как Движения по регистру Продажи. Этот
заголовок будет отображаться в окне списка записей регистра
156

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


Бухгалтерия, Учет материалов и Оказание услуг.

5. На закладке Данные создадим измерения регистра:


Номенклатура, тип СправочникСсылка.Номенклатура,
Клиент, тип СправочникСсылка.Клиенты,
Мастер, тип СправочникСсылка.Сотрудники.
6. У регистра будет три ресурса:
Количество, тип Число, длина 15, точность 3,
Выручка, тип Число, длина 15, точность 2,
Стоимость, тип Число, длина 15, точность 2.
157

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


материалов была доступна команда для просмотра оборотного регистра накопления Продажи.
7. В дереве объектов конфигурации ВЫДЕЛИТЕ ветвь Подсистемы, ВЫЗОВИТЕ контекстное меню и
выберите пункт Все подсистемы.
8. В открывшемся окне слева в списке Подсистемы выделим подсистему Бухгалтерия.
9. В группе Панель навигации.Обычное ВКЛЮЧИМ видимость у команды Продажи и мышью
перетащим ее
в группу Панель навигации.См.также

10. Аналогично, выделив подсистемы ОказаниеУслуг и УчетМатериалов,


в группе Панель навигации.Обычное включим видимость у команды
Продажи и перенесем ее в группу Панель навигации.См.также.
158

КОНТРОЛЬНАЯ ТОЧКА 1: Представьте преподавателю Ваш результат.


назад

Проведение документа «Оказание услуги» по трем регистрам

В следующем задании задании мы сначала изменим процедуру проведения документа


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

2_Задание: изменение процедуры проведения документа «Оказание услуги»


1. ОТКРОЙТЕ окно редактирования объекта конфигурации Документ ОказаниеУслуги
2. УКАЖИТЕ на закладке Движения, что документ будет создавать движения
по регистру Продажи.
159

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


дополнения прямо в обработчик события ОбработкаПроведения документа ОказаниеУслуги.
3. ПЕРЕЙДИТЕ на закладку Прочее и ОТКРОЙТЕ модуль документа, нажав

кнопку
Ваш результат:

4. ОТКРОЙТЕ процедуру обработчика события ОбработкаПроведения


5. ИЗМЕНИТЕ процедуру согласно листингу (рис.)
160

Ваш результат:
161

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

6. ОТРЕДАКТИРУЕМ командный интерфейс формы документа ОказаниеУслуги, чтобы в панели


навигации формы иметь возможность переходить к списку записей регистра Продажи,
связанному с документом.
Для этого:
- ОТКРОЙТЕ форму документа ОказаниеУслуги.
- В левом верхнем окне ПЕРЕЙДИТЕ на закладку Командный интерфейс.
- В разделе Панель навигации РАСКРОЙТЕ группу Перейти
162

- УВИДИТЕ команду для открытия регистра накопления Продажи.


- УСТАНОВИТЕ свойство Видимость для этой команды.

В режиме «1С:Предприятие»
В режиме 1С:Предприятие необходимо перепровести все документы оказания услуг и проверить,
что они создают правильные движения в регистре Продажи.
1. Запустите 1С: Предприятие в режиме отладки и ОТКРОЙТЕ по очереди каждый
документ Оказание услуги

2. НАЖМИТЕ

3. ПЕРЕЙДИТЕ к списку движений этих документов по регистру Продажи ( ).

4. Движения этих документов по регистру Продажи должны иметь следующий вид (рис. 4.1 - 4.6):

Рис. 4.1. Движения документа «ОказаниеУслуги №1» в регистре «Продажи»


163

Рис. 4.2. Движения документа «ОказаниеУслуги №1» в регистре «Продажи» (продолжение рис 14.1)

Рис. 4.3. Движения документа «ОказаниеУслуги №2»

Рис. 4.4. Движения документа «ОказаниеУслуги №2» (продолжение рис. 14.3)


164

Рис. 4.5. Движения документа «ОказаниеУслуги №3»

Рис. 4.6. Движения документа «ОказаниеУслуги №3» (продолжение рис. 14.5)

На рисунках видно, что в регистр Продажи попадают записи о любой номенклатуре, которая
является как материалом, так и услугой.
Теперь у нас есть практически вся необходимая информация для анализа деятельности ООО «На все
руки мастер».
На следующем занятии займемся созданием несколько отчетов, представляющих нам итоговую
информацию о работе предприятия.
КОНТРОЛЬНАЯ ТОЧКА 2: Представьте преподавателю Ваш результат.
назад

Контрольные вопросы

1. Что такое оборотный регистр накопления?


2. В чем отличие между регистром накопления остатков и оборотным регистром накопления?
3. Как выбирать реквизиты и измерения при создании регистров накопления?
165

12_Лекция-Практика Создание отчетов

Цель работы:
- научиться созданию отчетов с помощью системы компоновки данных;
- научиться работе с запросами

Вопросы занятия
Способы доступа данных
1. Работа с запросами
1.1. Источники данных запросов
1.2. Язык запросов
2. Система компоновки данных
3. Отчет «Реестр документов Оказание услуги»
4. Отчет Рейтинг услуг
5. Отчет Выручка мастеров
6. Отчет Выручка мастеров в виде диаграммы
7. Отчет Перечень услуг
8. Отчет Рейтинг клиентов
9. Универсальный отчет
Контрольные вопросы
Оглавление
Способы доступа к данным............................................................................................................................................. 166
1. Работа с запросами ....................................................................................................................................................... 166
1. 1. Источники данных запросов ............................................................................................................................. 167
1.2. Язык запросов ............................................................................................................................................................... 167
2. Система компоновки данных ................................................................................................................................. 168
ПРАКТИКА ................................................................................................................................................................................... 173
РАЗРАБОТКА ОТЧЕТОВ ....................................................................................................................................................... 173
Выбор данных из одной таблицы............................................................................................................................... 173
1_ЗАДАНИЕ. Создание отчета №1 «Реестр документов Оказание услуги» ........................................ 173
Выбор данных из двух таблиц...................................................................................................................................... 181
2_ЗАДАНИЕ. Создание отчета № 2 Рейтинг услуг................................................................................................. 181
3_ЗАДАНИЕ. Быстрые пользовательские настройки в отчете № 2 Рейтинг услуг ..................................... 200
4_ЗАДАНИЕ. Настройки отчета № 2 Рейтинг услуг в режимах Конфигуратор и 1С:Предприятие:
УСЛОВНОЕ ОФОРМЛЕНИЕ ...................................................................................................................................................... 205
5_ЗАДАНИЕ Создание отчета № 3 Выручка_мастеров_4.................................................................................. 210
Диаграмма .................................................................................................................................................................................. 226
6_ЗАДАНИЕ. Создание отчета № 4 Выручка мастеров в виде диаграммы ........................................... 227
7_ЗАДАНИЕ. Создание отчета № 5 Перечень услуг .............................................................................................. 234
Отчет Рейтинг клиентов .................................................................................................................................................... 246
8_ЗАДАНИЕ. Создание отчета № 6 Рейтинг клиентов_6 ................................................................................... 246
9_ЗАДАНИЕ. Создание отчета Универсальный_7 ....................................................................................................... 253
Теория: виртуальные таблицы запросов .............................................................................................................. 261
Контрольные вопросы ....................................................................................................................................................... 263

назад

ТЕОРИЯ
Познакомимся с одним важным инструментом платформы 1С:Предприятие – системой компоновки
данных (СКД).
166

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

Способы доступа к данным

Система «1С:Предприятие» поддерживает два способа доступа к данным, хранящимся в базе


данных:
- объектный (для чтения и записи);
- табличный (для чтения).

Объектный способ доступа к данным реализован посредством использования объектов


встроенного языка.

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

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

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


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

Табличный доступ к данным в «1С:Предприятии» реализован с помощью запросов к базе данных,


которые составляются на языке запросов.

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

Табличная техника предназначена для получения информации из базы данных по некоторым


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

Табличная техника оптимизирована для обработки больших объемов информации, расположенной


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

1. Работа с запросами
167

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

1. 1. Источники данных запросов


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

Рис. 5.1. Таблицы запроса

Отличительной особенностью реальных таблиц является то, что они содержат данные какой-либо
одной реальной таблицы, хранящейся в базе данных. Например, реальной является таблица
Справочник.Клиенты, соответствующая справочнику Клиенты, или таблица
РегистрНакопления.ОстаткиМатериалов, соответствующая регистру накопления ОстаткиМатериалов.
Виртуальные таблицы формируются в основном из данных нескольких таблиц базы данных.
Например, виртуальной является таблица РегистрНакопления.ОстаткиМатериалов.ОстаткиИОбороты,
формируемая из нескольких таблиц регистра накопления ОстаткиМатериалов.
Иногда виртуальные таблицы могут формироваться и из одной реальной таблицы (например,
виртуальная таблица Цены.СрезПоследних формируется на основе таблицы регистра сведений Цены).
Однако общим для всех виртуальных таблиц является то, что им можно задать ряд параметров,
определяющих какие данные будут включены в эти виртуальные таблицы. Набор таких параметров
может быть различным для разных виртуальных таблиц, и определяется данными, хранящимися в
исходных таблицах базы данных.
Реальные таблицы подразделяются на объектные (ссылочные) и не объектные (не ссылочные).
В объектных (ссылочных) таблицах представлена информация ссылочных типов данных
(справочники, документы, планы видов характеристик и т. д.). А в не объектных (не ссылочных) –
всех остальных типов данных (константы, регистры и т. д.).
Отличительной особенностью объектных (ссылочных) таблиц является то, что они включают в себя
поле Ссылка, содержащее ссылку на текущую запись. Кроме этого для таких таблиц возможно
получение пользовательского представления объекта. Эти таблицы могут быть иерархическими, и
поля таких таблиц могут содержать вложенные таблицы (табличные части).
назад

1.2. Язык запросов


Алгоритм, по которому данные будут выбраны из исходных таблиц запроса, описывается в тексте
запроса на специальном языке – языке запросов. Текст запроса состоит из нескольких частей:
§ описание запроса;
§ объединение запросов;
§ упорядочивание результатов;
§ АВТОУПОРЯДОЧИВАНИЕ;
168

§ описание итогов.
Обязательной частью запроса является только первая – описание запроса. Все остальные
присутствуют по необходимости.
Описание запроса определяет источники данных, поля выборки, группировки и т. д.
Объединение запросов определяет, как будут объединены результаты выполнения нескольких
запросов.
Упорядочивание результатов определяет условия упорядочивания строк результата запроса.
АВТОУПОРЯДОЧИВАНИЕ позволяет включить режим автоматического упорядочивания строк
результата запроса.
Описание итогов определяет, какие итоги необходимо рассчитывать в запросе и каким образом
группировать результат.
Следует заметить, что в случае, когда язык запросов используется для описания источников данных
в системе компоновки данных, секция описания итогов языка запросов не используется. Это связано
с тем, что система компоновки данных самостоятельно рассчитывает итоги на основании тех настроек,
которые сделаны разработчиком или пользователем.
Применение различных синтаксических конструкций языка запросов подробно описано во встроенной
справке в режиме Конфигуратор:
Справка - Содержание справки - 1С:Предприятие - Встроенный язык - Работа с запросами,
а также в документации «1С:Предприятие 8.3.
Руководство разработчика», глава 8 «Работа с запросами».
Детальнее с языком запросов мы познакомимся далее, в процессе создания конкретных отчетов.
назад

2. Система компоновки данных


Система компоновки данных предназначена для создания произвольных отчетов в системе
1С:Предприятие
и состоит из нескольких основных частей.
Исходные данные для компоновки отчета содержит в себе схема компоновки данных – это наборы
данных и методы работы с ними (рис. 5.2).

Рис. 5.2. Общая схема работы с системой компоновки данных

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

Например, схема компоновки может содержать следующий набор данных (рис. 5.3):

Рис. 5.3. Пример схемы компоновки (набор данных и запрос, его использующий)

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

Рис. 5.4. Возможная структура отчета.

Сформированный отчет может иметь следующий вид (рис. 5.5):


171

Рис. 5.5. Пример отчета

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


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

- На основе схемы компоновки и имеющихся настроек компоновщик макета создает макет


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

Рис. 5.6. Схема работы системы компоновки

назад

ПРАКТИКА

РАЗРАБОТКА ОТЧЕТОВ

Выбор данных из одной таблицы

1_ЗАДАНИЕ. Создание отчета №1 «Реестр документов Оказание услуги»


173

ПОСТАНОВКА задачи:
Создайте отчет Реестр документов Оказание услуги, используя систему
компоновки данных.
Этот отчет будет выводить список существующих в базе данных
документов ОказаниеУслуги в порядке их дат и номеров.
ТЕХНОЛОГИЯ РАБОТЫ:
1. Создайте в конфигураторе новый объект конфигурации Отчет. Присвойте ему имя
РеестрДокументовОказаниеУслуги.
2. ЗАДАЙТЕ Расширенное представление списка как Список оказанных услуг для
представления отчета в интерфейсе программы.

3. На закладке Основные нажмите кнопку Открыть схему компоновки данных.


4. В открывшемся диалоговом окне конструктора макета нажмите Готово.
174

5. В конструкторе схемы компоновки данных Создайте Набор данных – запрос и Запустите


конструктор запроса.
(1ЩП на - - )
6. В качестве источника данных для запроса выберите объектную (ссылочную) таблицу документов
ОказаниеУслуги. Из этой таблицы выберите следующие поля (рис. 5.7):
Склад;
Мастер;
Клиент;
Ссылка
175

Рис. 5.7. Выбранные поля

ПРИМЕЧАНИЕ
Выделенные элементы можно перенести из одного списка в другой
– перетаскиванием мышью
или
– двойным щелчком на них.
или

– использовать кнопки

7. Псевдонимы полей
– ПЕРЕЙДИТЕ на закладку Объединения/Псевдонимы и укажите что поле Ссылка будет иметь
псевдоним Документ
176

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

8. Порядок записей
– После этого перейдите на закладку Порядок в окне Конструктор запроса
9. Укажите, что результат запроса должен быть сначала упорядочен
по значению поля Документ (рис. 5.8).

Рис. 5.8. Порядок записей в запросе

10. Нажмите ОK и посмотрите, какой запрос сформировал конструктор запроса (листинг 5.1).
Листинг 5.1. Текст запроса

10.1. Текст запроса начинается, как мы говорили выше, с части описания запроса (листинг
5.2).
177

Листинг 5.2. Описание запроса

Описание запроса начинается с обязательного ключевого слова ВЫБРАТЬ.


Затем следует список полей выборки. В нем описываются поля, которые должны содержаться в
результате запроса.
Этот список может содержать как собственно поля, так и некоторые выражения, вычисляемые на
основе значений полей.
После ключевого слова ИЗ указываются источники данных – исходные таблицы запроса,
содержимое которых обрабатывается в запросе.
В данном случае это объектная (ссылочная) таблица Документ.ОказаниеУслуги.
После ключевого слова КАК указывается псевдоним источника данных. В нашем случае это
ОказаниеУслуги. В дальнейшем к этому источнику данных можно будет обращаться в тексте запроса,
используя псевдоним.
Такое обращение мы видим в описании полей выборки (листинг 5.3).

Листинг 5.3. Описание полей выборки

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

10.2. После части описания запроса в нашем примере следует часть упорядочивания
результатов (листинг 5.4).
Листинг 5.4. Упорядочивание результатов запроса

Предложение УПОРЯДОЧИТЬ ПО позволяет сортировать строки в результате запроса.


После этого ключевого предложения располагается выражение упорядочивания, которое в общем
случае представляет собой перечисление полей (выражений) и порядка вывода.
В нашем случае упорядочивание будет выполняться по полю Документ, оно же
поле ОказаниеУслуги.Ссылка. Порядок сортировки будет по возрастанию (настроен по умолчанию).
На этом закончим изучение текста запроса и
ПЕРЕЙДИТЕ К НАСТРОЙКЕ СХЕМЫ КОМПОНОВКИ ДАННЫХ.
11. ПЕРЕЙДИТЕ на закладку Настройки
178

СОЗДАЙТЕ стандартные настройки,


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

Иерархическая структура отчета может содержать в различных сочетаниях три основных элемента:
Группировка – для вывода информации в виде обычного линейного отчета;
Таблица – для вывода информации в виде таблицы;
Диаграмма – для вывода информации в виде диаграммы.

12. Для добавления нового элемента в нашем случае группировки ВЫДЕЛИТЕ в дереве структуры
отчета корневой элемент Отчет и вызовите его контекстное меню, затем
.
(Можно также нажать кнопку Добавить, расположенную в командной панели окна, или нажать
клавишу Ins).
13. В окне выбора поля группировки просто нажмите ОK (тем самым мы указываем, что в
группировке будут выводиться детальные записи из информационной базы)

Ваш результат:

14. На закладке Выбранные поля задайте поля, которые будут выводиться в отчет:
179

Документ;
Склад;
Мастер;
Клиент.

ПРИМЕЧАНИЕ
Добавление доступных полей в список выбранных полей можно осуществить перетаскиванием
мышью, двойным щелчком на доступных полях либо нажатием кнопки Добавить справа от списка
выбранных полей. Порядок выбранных полей можно изменить позже кнопками Вверх, Вниз или
перетаскиванием мышью.
Ваш результат:

Рис. 5.10. Настройка структуры отчета

15. ОПРЕДЕЛИТЕ, в каких подсистемах будет отображаться созданный отчет, для этого:
- ЗАКРОЙТЕ конструктор схемы компоновки данных
- ПЕРЕЙДИТЕ в окне редактирования объекта конфигурации
Отчет РеестрДокументовОказаниеУслуги на закладку Подсистемы.
- ОТМЕТЬТЕ в списке подсистему Оказание услуг.

Рис. 5.11. Определение списка подсистем, в которых будет отражаться отчет

В режиме «1С:Предприятие»
1. Теперь запустите 1С:Предприятие в режиме отладки и откройте отчет Реестр документов
Оказание услуги.
180

2. Нажмите Сформировать

3. ПРЕДСТАВЬТЕ результат работы отчета Реестр документов оказание услуги (рис. 5.11).

Рис. 5.12. Отчет Реестр документов оказание услуги

Таким образом, на примере отчета Реестр документов Оказание услуги мы продемонстрировали, как
использовать конструктор схемы компоновки данных, и познакомились с некоторыми основными
конструкциями языка запросов.
КОНТРОЛЬНАЯ ТОЧКА 1: Представьте преподавателю Ваш результат.
назад

Выбор данных из двух таблиц


181

2_ЗАДАНИЕ. Создание отчета № 2 Рейтинг услуг

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

На примере отчета Рейтинг услуг мы проиллюстрируем,


- как отбирать данные в некотором периоде,
- как задавать параметры запроса
- как использовать в запросе данные из нескольких таблиц
- как включать в результат запроса все данные одного из источников;
- как работать с параметрами системы компоновки данных;
- как использовать стандартные даты
ТЕХНОЛОГИЯ РАБОТЫ:
1.Перейдите в Конфигуратор
2.Создайте новый объект конфигурации Отчет. Назовите его РейтингУслуг.
3.На закладке Основные нажмите кнопку Открыть схему компоновки данных.
4.В открывшемся диалоговом окне конструктора макета нажмите Готово.
5.В конструкторе схемы компоновки данных создайте Набор данных – запрос и запустите
Конструктор запроса.
Запрос для набора данных

Левое соединение двух таблиц


6. В качестве источника данных для запроса ВЫБЕРИТЕ объектную (ссылочную) таблицу справочника
Номенклатура и виртуальную таблицу регистра накопления Продажи.Обороты.

7. Для того чтобы исключить неоднозначность имен в запросе, ПЕРЕИМЕНУЙТЕ таблицу


Номенклатура в спрНоменклатура (контекстное меню правой кнопки мыши – Переименовать
182

таблицу).

Рис. 13.19. Переименование таблицы в запросе

8. В список полей перенесем


поле СпрНоменклатура.Ссылка и
поле ПродажиОбороты.ВыручкаОборот из этих таблиц

Рис. 5.12а. Выбранные поля

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

Тем самым мы задаем тип связи как Левое соединение, то есть


в результат запроса будут включены все записи справочника Номенклатура
и
183

те записи регистра Продажи, которые удовлетворяют условию связи


по полю Номенклатура.

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

Рис. 13.21. Связь записей таблиц в запросе

9. ПЕРЕЙДИТЕ на закладку Связи в окне конструктора запроса и Вы увидите, что конструктор уже
создал связь между двумя выбранными таблицами – значение изменения регистра Номенклатура
должно быть равно ссылке на элемент справочника Номенклатура.
10. Единственное, что Вам останется сделать, это сбросить флаг Все у таблицы регистра и
установить его у таблицы справочника (рис. 5.13).
184

Рис. 5.13. Установка связей таблиц

Установка флага Все у таблицы справочника будет означать, что из справочника будут выбраны все
элементы и этим элементам будет поставлено в соответствие значение оборота выручки из регистра.
Таким образом, в результате запроса будут присутствовать все услуги, и для некоторых из них будут
указаны обороты выручки. Для тех услуг, которые не оказывались в выбранном периоде, не будет
указано ничего.
Условие отбора записей
11. ПЕРЕЙДИТЕ на закладку Условия
12. УСТАНОВИТЕ отбор, чтобы группы справочника Номенклатура не попадали в отчет, для этого:
- РАСКРОЙТЕ таблицу спрНоменклатура,
- ПЕРЕТАЩИТЕ мышью поле ЭтоГруппа в список условий
- УСТАНОВИТЕ флажок Произвольное и напишем в поле Условие следующий текст (листинг 13.5).

Листинг 5.5. Условие запроса


СпрНоменклатура.ЭтоГруппа = ЛОЖЬ
185

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

Рис. Отбор записей номенклатуры в запросе

13. Вторым условием должно быть то, что выбранный элемент является услугой (это – Простое
условие) (рис. 5.14).
Чтобы его создать, перетащим мышью
поле ВидНоменклатуры в список условий.
186

Рис. 5.14. Условия выбора элементов

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

Рис. Отбор записей номенклатуры в запросе

Псевдонимы полей
14. ПЕРЕЙДИТЕ на закладку Объединения/Псевдонимы
187

15. УКАЖИТЕ, что представление элемента справочника (поле Ссылка) будет иметь псевдоним
Услуга,
16. УКАЖИТЕ, что поле регистра (ВыручкаОборот) будет иметь псевдоним Выручка (рис. 5.15).

Рис. 5.15. Установка псевдонимов полей запроса (Объединения/Псевдонимы)

Порядок записей

17. ПЕРЕЙДИТЕ на закладку Порядок и УКАЖИТЕ, что результат запроса должен быть отсортирован
по убыванию значения поля Выручка.

18. Создание запроса закончено, нажмите кнопку ОK.


ВЫБРАТЬ
спрНоменклатура.Ссылка КАК Услуга,
ПродажиОбороты.ВыручкаОборот КАК Выручка
ИЗ
Справочник.Номенклатура КАК спрНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
ПО ПродажиОбороты.Номенклатура = спрНоменклатура.Ссылка
ГДЕ
188

спрНоменклатура.ЭтоГруппа = ЛОЖЬ
И спрНоменклатура.ВидНоменклатуры = &ВидНоменклатуры

УПОРЯДОЧИТЬ ПО
Выручка УБЫВ
19. РАССМОТРИМ запрос, сформированный конструктором (листинг 5.6).
Листинг 5.6. Текст запроса

Анализ текста запроса


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

Листинг 5.7. Определение нескольких источников запроса

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


причем ключевым предложением ЛЕВОЕ СОЕДИНЕНИЕ … ПО описан способ, которым будут
скомбинированы между собой записи этих двух источников.
ЛЕВОЕ СОЕДИНЕНИЕ означает, что в результат запроса надо включить комбинации записей из обоих
источников, которые соответствуют указанному после ключевого слова ПО условию. Кроме этого в
результат запроса надо включить еще и записи из первого (указанного слева от слова СОЕДИНЕНИЕ)
источника, для которых не найдено соответствующих условию записей из второго источника.
Продолжим рассматривать текст запроса. В части описания запроса есть еще одна новая для нас
конструкция – задание условий отбора данных из исходных таблиц (листинг 5.8).

Листинг 5.8. Задание условий отбора

Условию отбора всегда предшествует ключевое слово ГДЕ. После него описывается само условие.
Обратите внимание, что поля исходных таблиц, на которые накладывается условие, могут и не
входить в список выборки (как в нашем случае). Кроме того, в нашем условии использован параметр
запроса ВидНоменклатуры (перед именем параметра указывается символ & – амперсанд).
Теперь, когда мы закончили знакомиться с текстом запроса, продолжим формирование нашей схемы
компоновки данных.
189

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

Для этого нам нужно определить поля ресурсов отчета.


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

По сути ресурсы являются групповыми или общими итогами отчета.


Итоговые данные формируются на закладке Ресурсы.

20. ПЕРЕЙДИТЕ на закладку Ресурсы


21. НАЖМИТЕ кнопку >>, чтобы конструктор выбрал все доступные ресурсы, по которым можно
вычислять итоги. В нашем случае – это единственный ресурс Выручка.
Платформа автоматически предложить рассчитывать сумму значений этого поля, что нам и нужно (рис. 5.16).

Рис. 5.16. Ресурсы схемы компоновки данных

Параметры

Пользователя, как правило, интересуют данные о хозяйственной деятельности за определенный


период.

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

Параметры отчета задают условия отбора записей в отчет.

В схеме компоновки данных параметры отчета задаются на закладке Параметры


22. ПЕРЕЙДИТЕ на закладку Параметры (рис. 5.17).
190

Рис. 5.17. Параметры компоновки данных

23. На этой закладке мы увидим три параметра: НачалоПериода, КонецПериода и ВидНоменклатуры.


Вы можете спросить: почему параметра три, хотя в запросе мы задавали всего один –
ВидНоменклатуры?
Все дело в том, что система компоновки данных самостоятельно анализирует текст запроса и помимо
тех параметров, которые указаны в нем в явном виде (ВидНоменклатуры), предоставляет возможность
настроить и те параметры, которые в явном виде в запросе не указаны, но с большой долей
вероятности могут быть использованы в отчете.
Такими параметрами являются НачалоПериода и КонецПериода.
Это первые два параметра виртуальной таблицы РегистрНакопления.Продажи.Обороты, которую
мы использовали в запросе, в левом соединении.

24. ПЕРЕЙДИТЕ на закладку


Наборы данных - Конструктор запроса ( )

25. Если в конструкторе запроса выделить в списке таблиц эту таблицу и нажать кнопку Параметры
виртуальной таблицы, то появится диалог, где мы увидим параметры НачалоПериода и
КонецПериода (рис. 13.30).
191

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

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

26. ВЕРНИТЕСЬ на закладку Параметры схемы компоновки данных и дважды щелкните в ячейке
Тип, соответствующей параметру НачалоПериода.

27. ЗАТЕМ НАЖМИТЕ кнопку выбора


в нижней части окна редактирования типа данных установим Состав даты в значение Дата
192

Нажмите Ок
27.1. Вторая особенность заключается в том, что по умолчанию время в дате установлено
00:00:00. Поэтому, если пользователь задаст период отчета с 01.03.2015 по 31.03.2015,
итоги регистра будут рассчитаны с начала дня 01.03.2015 00:00:00 по начало дня
31.03.2015 00:00:00. Таким образом, данные за 31 число, отличные от начала дня, в
расчет не войдут, что сильно удивит пользователя.

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

27.3. Затем с помощью кнопки командной панели ДОБАВЬТЕ новый параметр


с именем ДатаОкончания (рис. 5.19).

Рис. 5.19. Добавление параметра ДатаОкончания

27.4. Для этого параметра платформа автоматически сформирует заголовок – Дата окончания.
Оставим его без изменений.
27.5. Задайте тип значения параметра – Дата. При этом, как и для параметра НачалоПериода,
УКАЖИТЕ состав даты – Дата.
193

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

28. Перейдите к параметру КонецПериода. Для него система установила флаг ограничения
доступности.
Это нас также устраивает, поскольку значение этого параметра мы собираемся вычислять на
основании значения, установленного пользователем для параметра ДатаОкончания.
194

28.1. Задайте Тип значения параметра – Дата. УКАЖИТЕ состав даты – Дата.

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

концу какого-либо периода, например, указанного дня.

30. В ячейке Выражение задайте для параметра КонецПериода следующее выражение (листинг 5.9):

Листинг 5.9. Выражение для расчета значения параметра КонецПериода


КонецПериода(&ДатаОкончания, "День")

В результате перечисленных действий параметры компоновки будут иметь следующий вид (рис. 5.20):

Рис. 5.20. Параметры системы компоновки


31. И в заключение настроим параметр ВидНоменклатуры.

Поскольку отчет должен отображать выручку, полученную только от реализации услуг,


значение параметра ВидНоменклатуры пользователь изменять не должен.

Оно должно быть задано непосредственно в схеме компоновки


как Перечисление.ВидыНоменклатуры.Услуга.

Флаг ограничения использования у параметра ВидНоменклатуры платформа установила по


умолчанию, поэтому нам остается только указать нужное
значение перечисления ВидыНоменклатуры в ячейке Значение,
соответствующей параметру ВидНоменклатуры (рис. 5.21).

Воспользуемся кнопкой выбора и выберем это значение из списка


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

Рис. 5.21. Установка значения параметра «ВидНоменклатуры»

Настройки
196

32. ПЕРЕЙДИТЕ к формированию структуры отчета. На закладке Настройки добавьте группировку и


снова НЕ УКАЗЫВАЙТЕ поле группировки.
33. На закладке Выбранные поля УКАЖИТЕ поля Услуга и Выручка (рис. 5.22).

Рис. 5.22. Структура отчета «РейтингУслуг»

34. ПЕРЕЙДИТЕ на закладку Другие настройки и ЗАДАЙТЕ заголовок отчета – Рейтинг Услуг (рис.
5.23).

Рис. 5.23. Установка заголовка отчета


35. В окне редактирования объекта конфигурации Отчет РейтингУслуг перейдите на закладку
Подсистемы.
36. Отметьте в списке подсистем конфигурации подсистемы Оказание услуг и Бухгалтерия.
197

37. ЗАПУСТИТЕ 1С:Предприятие в режиме отладки.


38. ЗАПУСТИТЕ отчет Рейтинг услуг,

Ваш результат:

39. ОТКРОЙТЕ Еще – Изменить вариант:


198

40. ЗАДАЙТЕ период отчета с 01.11.2014 по 15.12.2014 (рис. 5.24).

41. НАЖМИТЕ
42. НАЖМИТЕ
Ваш результат:
199

КОНТРОЛЬНАЯ ТОЧКА 2: Представьте преподавателю Ваш результат.


назад

3_ЗАДАНИЕ. Быстрые пользовательские настройки в отчете № 2 Рейтинг услуг

ПОСТАНОВКА задачи:
ВКЛЮЧИТЕ параметры Дата начала и Дата окончания в состав пользовательских настроек
Эти настройки должны находиться непосредственно в форме отчета.
ТЕХНОЛОГИЯ РАБОТЫ:
1. ПЕРЕЙДИТЕ в Конфигуратор
2. Дерево конфигурации – Отчеты - - 2Щл

3.
200

4. НАЖМИТЕ Настройки - Параметры

5. ВЫДЕЛИТЕ по очереди каждый из параметров (Начало периода, Дата окончания)


6. НАЖМИТЕ кнопку Свойства элемента пользовательских настроек , расположенную
в правом нижнем углу окна настроек
201

ЗАДАЙТЕ:

- ОК.
Флажок Включать в пользовательские настройки означает,
что эта настройка будет доступна пользователю в отдельном окне
(2) при вызове из подменю Еще команды Настройки… (то есть такая
настройка, которой он может пользоваться, но не очень часто, рис. 13.38).
202

7. ВЫДЕЛИТЕ
8. НАЖМИТЕ кнопку Свойства элемента пользовательских настроек , расположенную
в правом нижнем углу окна настроек
9. ЗАДАЙТЕ:

10. - ОК.

11. Чтобы улучшить интерфейс пользователя, ЗАДАЙТЕ для параметров Дата начала и Дата
окончания в качестве начальных значений соответственно Начало этого месяца и Начало этого
дня
203

12. ЗАПУСТИТЕ 1С:Предприятие в режиме отладки.


13. ЗАПУСТИТЕ отчет Рейтинг услуг,
204

14. НАЖМИТЕ
Ваш результат:
205

КОНТРОЛЬНАЯ ТОЧКА 3: Представьте преподавателю Ваш результат.


назад

4_ЗАДАНИЕ. Настройки отчета № 2 Рейтинг услуг в режимах Конфигуратор и 1С:Предприятие:


УСЛОВНОЕ ОФОРМЛЕНИЕ

ПОСТАНОВКА задачи:
В отчете Рейтинг услуг выделите цветом записи отчета, содержащие:
- услуги с наименьшей или с наибольшей выручкой

ТЕХНОЛОГИЯ РАБОТЫ:
1. ПЕРЕЙДИТЕ в Конфигуратор

2. Дерево конфигурации – Отчеты - - 2Щл

3.
4. НАЖМИТЕ Настройки - Условное оформление
206

5 НАЖМИТЕ кнопку Добавить, расположенную в правом верхнем углу окна настроек

Ваш результат:

УКАЖИТЕ оформление отчета:

1) НАЖМИТЕ кнопку выбора в поле Оформление и УСТАНОВИТЕ красный цвет текста - ОК.
207

2) НАЖМИТЕ кнопку выбора в поле Условие и в появившемся окне ДОБАВЬТЕ


Новый элемент отбора.

3) ЗАДАЙТЕ условие согласно рис.


208

То есть когда в поле Выручка окажется значение меньше 700, «что-то» будет выделено красным
цветом текста.
- НАЖМИТЕ ОК
Ваш результат:

4) Теперь УКАЖИТЕ это «что-то», то есть ЗАДАЙТЕ список оформляемых полей, для этого:
НАЖМИТЕ кнопку выбора в поле Оформляемые поля и в появившемся окне, нажимая
Добавить, ВЫБЕРИТЕ поля
Услуга и Выручка

- НАЖМИТЕ ОК

5) ЗАДАЙТЕ Представление условного оформления как Непопулярная услуга


209

ДОБАВЬТЕ это условие в пользовательские настройки.


- НАЖМИТЕ кнопку Свойства элемента пользовательских настроек, расположенную в правом нижнем углу окна
настроек ( рис.).

- УСТАНОВИТЕ флажок Включать в пользовательские настройки


- УСТАНОВИТЕ свойство Режим редактирования в значение Обычный.
- НАЖМИТЕ ОК
В режиме 1С:Предприятие
ЗАПУСТИТЕ 1С:Предприятие в режиме отладки.
ЗАПУСТИТЕ отчет Рейтинг услуг
Ваш результат:
210

КОНТРОЛЬНАЯ ТОЧКА 4: Представьте преподавателю Ваш результат.


назад

5_ЗАДАНИЕ Создание отчета № 3 Выручка_мастеров_4

ПОСТАНОВКА задачи:
Создайте отчет Выручка мастеров, который будет содержать информацию о том, какая выручка
была получена ООО «На все руки мастер» благодаря работе каждого из мастеров, с детализацией по
всем дням в выбранном периоде и разворотом по клиентам, обслуженным в каждый из дней.
На примере этого отчета мы проиллюстрируем, как строить многоуровневые группировки в запросе и
как обходить все даты в выбранном периоде.
ТЕХНОЛОГИЯ РАБОТЫ:
1. ПЕРЕЙДИТЕ в Конфигуратор.
2. СОЗДАЙТЕ новый объект конфигурации Отчет и НАЗОВИТЕ его ВыручкаМастеров_4
3. Запустите конструктор схемы компоновки данных.
4. СОЗДАЙТЕ Набор данных-запрос
211

5. ЗАПУСТИТЕ конструктор запроса.


(1ЩП на - - )

6. ВЫБЕРИТЕ виртуальную таблицу регистра накопления Продажи.Обороты.

7. ЗАДАЙТЕ один из параметров этой виртуальной таблицы – Периодичность. Для этого Перейдите в
поле Таблицы и нажмите кнопку Параметры виртуальной таблицы (рис. 5.27).
212

Рис. 5.27. Изменение параметров виртуальной таблицы

В открывшемся окне параметров задайте значение параметра Периодичность – День (рис. 5.28).
Нажмите OK.

Рис. 5.28. Параметры виртуальной таблицы

8. После этого выберите из таблицы следующие поля:


ПродажиОбороты.Мастер;
ПродажиОбороты.Период;
ПродажиОбороты.Клиент;
ПродажиОбороты.ВыручкаОборот (рис. 5.29).
213

Рис. 5.29. Выбранные поля

9. Теперь ПЕРЕЙДИТЕ на закладку Объединения/Псевдонимы

10. ЗАДАЙТЕ псевдоним Выручка для поля ПродажиОбороты.ВыручкаОборот (рис. 5.30).


214

Рис. 5.30. Объединения/Псевдонимы

11. Нажмите ОK.


12. Рассмотрим текст запроса, сформированный конструктором (листинг 5.10).

В части описания запроса обратите внимание, что у источника данных задана периодичность
выбираемых данных – День (листинг 5.11):

Листинг 5.11. Задание периодичности виртуальной таблицы

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

13. Теперь ПЕРЕЙДИТЕ к редактированию схемы компоновки данных.


На закладке Ресурсы нажмите >> и убедитесь, что конструктор выбрал единственный имеющийся у
нас ресурс – Выручка.

14. На закладке Параметры выполните те же действия, что и при создании предыдущего отчета.
215

- Для параметров НачалоПериода и КонецПериода в поле Тип ЗАДАЙТЕ состав даты – Дата.
- Для параметра КонецПериода ЗАДАЙТЕ выражение (листинг 5.12)

Листинг 5.12. Выражение для расчета параметра КонецПериода

КонецПериода(&КонецПериода, "День")

В результате перечисленных действий параметры компоновки данных будут иметь следующий вид
(рис. 5.32):

Рис. 5.32. Параметры компоновки данных

ТЕПЕРЬ СОЗДАЙТЕ СТРУКТУРУ ОТЧЕТА


1. На закладке Настройки последовательно Создайте две вложенные группировки:
- верхнего уровня – по полю Мастер,
- вложенная в нее – по полю Период.
Для этого:
сначала ВЫДЕЛИТЕ корневой элемент Отчет в структуре отчета,
Нажмите кнопку Добавить в командной панели окна настроек,
ДОБАВЬТЕ новую группировку
УКАЖИТЕ поле группировки Мастер (рис.)
216

Затем добавьте в группировку Мастер вложенную группировку по полю Период.


Для этого:
ВЫДЕЛИТЕ группировку Мастер, нажмите кнопку Добавить,
ДОБАВЬТЕ новую группировку
УКАЖИТЕ поле группировки Период.
Ваш результат:

2. Затем ДОБАВЬТЕ еще одну группировку, вложенную в группировку по полю Период, – Детальные
записи (без указания группировочного поля) (рис. 5.33).
Для этого:
ВЫДЕЛИТЕ группировку Период,
НАЖМИТЕ кнопку Добавить
ДОБАВЬТЕ новую группировку без указания группировочного поля.

Ваш результат:

3. После этого ПЕРЕЙДИТЕ на закладку Выбранные поля


ДОБАВЬТЕ в список выбранных полей поля Клиент и Выручка.
217

Ваш результат:

4. Далее с уровня глобального отчета ПЕРЕЙДИТЕ на закладку Другие настройки и измените


следующие параметры.
- для параметра Расположение полей группировок установим значение Отдельно и только в
итогах;
- для параметра Расположение общих итогов по вертикали задайте значение Начало
- для параметра Заголовок задайте значение Выручка мастеров (рис. 5.34).
218

Рис. 5.34. Установка вывода общих итогов в начало

5. Затем УКАЖИТЕ, что параметры Начало периода и Конец периода будут включены в состав
пользовательских настроек,
и эти настройки будут находиться непосредственно в отчетной форме, то есть будут «быстрыми»
настройками.
219

6. В заключении ОПРЕДЕЛИТЕ в каких подсистемах будет отображаться отчет «Выручка мастеров»,


для этого:
- ЗАКРОЙТЕ конструктор схемы компоновки данных,
- в окне редактирования объекта конфигурации Отчет ВыручкаМастеров_4 ПЕРЕЙДИТЕ на
закладку Подсистемы.
- ОТМЕТЬТЕ в списке подсистем конфигурации подсистемы Оказание услуг и Расчет зарплаты.

В режиме 1С:Предприятие
7. ЗАПУСТИТЕ 1С:Предприятие в режиме отладки.
8. ЗАПУСТИТЕ отчет Выручка мастеров

9. ЗАДАЙТЕ отчетный период с 1.1.1014 по 15.12.2014 и СФОРМИРУЙТЕ отчет


Ваш результат:
220

Рис. 5.35. Результат выполнения отчета

ИЗМЕНЕНИЕ НАСТРОЕК ОТЧЕТА ВЫРУЧКА МАСТЕРОВ


Если вы помните, в начале раздела мы говорили, что этот отчет должен показывать данные с
детализацией по всем дням в выбранном периоде.
У нас же отображаются только те дни, для которых существуют ненулевые записи в таблице регистра
накопления.
Поэтому ИЗМЕНИТЕ настройки отчета таким образом, чтобы в отчет попадала каждая дата из периода,
за который сформирован отчет.
1. Для этого ВЕРНИТЕСЬ в режим конфигуратора и ВЫПОЛНИТЕ более тонкую настройку
структуры отчета.
2. До сих пор все настройки структуры, которые мы выполняли, относились ко всему отчету в целом.
Но система компоновки данных позволяет настраивать также и каждый элемент структуры в
отдельности.

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

настройкам именно этой группировки, в поле структуры УСТАНОВИТЕ курсор на эту группировку,
а затем нажмите кнопку Период в командной панели (рис. 5.36).

Рис. 5.36. Настройки группировки Период

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

5. Перейдите на закладку Поля группировки. Для поля Период установите Тип дополнения – День
(рис. 5.37).
222

Рис. 5.37. Установка типа дополнения периода

6. Тем самым Вы УКАЖИТЕ, что для этой группировки существующие записи с ненулевым значением
ресурса будут дополняться записями для каждого из дней.

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

8. Для того чтобы обеспечить именно такую работу отчета, войдите в режим редактирования первого
поля (например, дважды кликнув на нем) и нажмите на кнопку очистки (Х). После этого, нажав на
кнопку Т, мы сможем выбрать тип данных, отображаемых в этом поле.
9. ВЫБЕРИТЕ Поле компоновки данных (рис. 5.38).
223

Рис. 5.38. Выбор типа данных

10. Нажмите OK.


11. Теперь нажмите в поле ввода кнопку выбора (…) и в открывшемся окне выбора поля отметим
параметр НачалоПериода (рис. 5.39).
12. Нажмите OK.
224

Рис. 5.39. Выбор поля

13. Для второго поля ввода аналогичным образом УКАЖИТЕ, что дата окончания периода будет
получена
из параметра КонецПериода (рис. 5.40).
225

Рис. 5.40. Настройки группировки Период

14. ЗАПУСТИТЕ 1С: Предприятие в режиме отладки и выполните отчет Выручка мастеров за
период с 05.12.2014 по 0812.2014 (рис. 5.41).
На рисунке представлен фрагмент отчета
226

Рис. 5.41. Результат выполнения отчета

На примере этого отчета (Выручка мастеров) мы продемонстрировали:


- как строить многоуровневые группировки,
- как установить в системе компоновки обход по всем датам в выбранном периоде.

КОНТРОЛЬНАЯ ТОЧКА 5: Представьте преподавателю Ваш результат.


назад

Диаграмма
227

ТЕОРИЯ
Диаграмма является элементом управления, предназначенным для размещения в таблицах и формах
диаграмм и графиков различного вида системы 1С:Предприятие.
Логически диаграмма является совокупностью точек, серий и значений серий в точке (рис. 5.53).

Рис. 5.53. Пример диаграммы

Как правило, в качестве точек используются моменты или объекты, для которых мы получаем
значения характеристик, а в качестве серий – характеристики, значения которых нас интересуют.
Например, диаграмма продаж видов номенклатуры по месяцам будет состоять из точек – месяцев,
серий – видов номенклатуры и значений – оборотов продаж.
Диаграмма как объект встроенного языка имеет три области, которые позволяют управлять
оформлением диаграммы:
область построения,
область заголовка и
область легенды
(рис.5.54).
228

Рис. 5.54. Области диаграммы

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


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

6_ЗАДАНИЕ. Создание отчета № 4 Выручка мастеров в виде диаграммы

ПОСТАНОВКА задачи:
Создайте отчет Выручка мастеров в виде диаграммы

ТЕХНОЛОГИЯ РАБОТЫ:
1. ПЕРЕЙДИТЕ в Конфигуратор
2. ОТКРОЙТЕ схему компоновки данных отчета ВыручкаМастеров_4
229

3. ПЕРЕЙДИТЕ на закладку Настройки


4. ДОБАВЬТЕ новый вариант отчета с именем ОбъемВыручки и представлением ОбъемВыручки

Мы видим, что структура отчета и все его настройки очистились.


Но они не пропали, а стали невидимы, так как относятся к Основному варианту настроек.

5. ДОБАВЬТЕ в структуру отчета диаграмму, для этого::


- ВЫДЕЛИТЕ корневой элемент Отчет,
- ВЫЗОВИТЕ его контекстное меню и нажмите для добавления диаграммы
230

6. ВЫДЕЛИТЕ ветку Точки и ДОБАВЬТЕ в нее группировку по полю Мастер.

Ваш результат:

Нажмите ОК

7. Серии диаграммы оставьте без изменений


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

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


У нас всего один ресурс – Выручка (поле ресурса помечено соответствующей пиктограммой и
отличается от обычных полей).
231

8. Поэтому ПЕРЕЙДИТЕ на закладку Выбранные поля


9. ВЫБЕРИТЕ поле Выручка для вывода в отчет.

Структура отчета должна принять следующий вид:

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

10. На закладке Другие настройки выберите тип диаграммы – Измерительная (рис.)

Рис. Настройка типа диаграммы


232

11. Прокрутив вниз список свойств измерительной диаграммы, ЗАДАЙТЕ ее полосы – Плохо,
Хорошо и Отлично (рис.).

12. В заключение ВКЛЮЧИТЕ параметры Начало периода и Конец периода в состав


пользовательских настроек
13. УСТАНОВИТЕ для них Режим редактирования – Быстрый доступ.

14. ЗАПУСТИТЕ 1С: Предприятие в режиме отладки


15. ВЫПОЛНИТЕ команду Выручка мастеров в разделе Расчет зарплаты.
233

16. ВЫБЕРИТЕ вариант ОбъемВыручки

17. НАЖМИТЕ Выбрать


18. НАЖМИТЕ Сформировать
Ваш результат:
234

Рис. Результат выполнения отчета

КОНТРОЛЬНАЯ ТОЧКА 6: Представьте преподавателю Ваш результат.


назад

7_ЗАДАНИЕ. Создание отчета № 5 Перечень услуг

ПОСТАНОВКА задачи:
Создайте отчет Перечень услуг, который будет содержать информацию о том, какие услуги и по
какой цене оказывает ООО «На все руки мастер».
На примере отчета Перечень услуг мы познакомимся с возможностью получения последних значений
из периодического регистра сведений и вывода иерархических справочников.
ТЕХНОЛОГИЯ РАБОТЫ:
1. ПЕРЕЙДИТЕ в Конфигуратор
2. СОЗДАЙТЕ новый объект конфигурации отчет.
3. НАЗОВИТЕ отчет ПереченьУслуг и Запустите конструктор схемы компоновки данных.
4. СОЗДАЙТЕ новый Набор данных - запрос и ВЫЗОВИТЕ конструктор запроса.
5. ВЫБЕРИТЕ объектную (ссылочную)
- таблицу справочника Номенклатура и
- виртуальную таблицу регистра сведений Цены.СрезПоследних.
235

6. Для того чтобы исключить неоднозначность имен в запросе, ПЕРЕИМЕНУЙТЕ таблицу


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

7. Вызовите диалог ввода параметров виртуальной таблицы ЦеныСрезПоследних ( ) и УКАЖИТЕ,


что период будет передан в параметре &ДатаОтчета (рис. 5.42) - ОК.
(выделите эту таблицу в списке Таблицы и нажмите кнопку Параметры виртуальной таблицы)
236

Рис. 5.42. Параметры виртуальной таблицы

8. Затем выберите из таблиц следующие поля:


§ СпрНоменклатура.Родитель;
§ СпрНоменклатура.Ссылка;
§ ЦеныСрезПоследних.Цена (рис. 5.43).

Рис. 5.43. Выбранные поля

Левое соединение таблиц

9. ПЕРЕЙДИТЕ на закладку Связи,

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

11. СБРОСЬТЕ флаг Все у таблицы регистра и установите его у таблицы справочника.
237

Рис. Связь таблиц в запросе

ПРИМЕЧАНИЕ:

12. На закладке Условия ЗАДАЙТЕ условие выбора элементов справочника Номенклатура -


выбираемые элементы должны соответствовать виду номенклатуры, переданному в параметре
запроса ВидНоменклатуры (рис. 5.44).

Рис. 5.44. Условия выбора элементов

Псевдонимы полей

13. На закладке Объединения/Псевдонимы УКАЖИТЕ, что поле Родитель будет иметь псевдоним
ГруппаУслуг, а поле Ссылка – Услуга (рис. 5.45).
238

Рис. 5.45. Объединения/Псевдонимы

14. На этом создание запроса завершено, нажмите OK.


15. Теперь рассмотрим текст запроса, сформированный конструктором (листинг 5.13).
Листинг 5.13. Текст запроса

ВЫБРАТЬ
СпрНоменклатура.Родитель КАК ГруппаУслуг,
СпрНоменклатура.Ссылка КАК Услуга,
ЦеныСрезПоследних.Цена
ИЗ
Справочник.Номенклатура КАК СпрНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(&ДатаОтчета, )
КАК ЦеныСрезПоследних
ПО ЦеныСрезПоследних.Номенклатура = СпрНоменклатура.Ссылка
ГДЕ
СпрНоменклатура.ВидНоменклатуры = &ВидНоменклатуры

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


Ресурсы

ПЕРЕЙДИТЕ к редактированию схемы компоновки данных:


16. На закладке Ресурсы нажатием кнопки >> выберите единственный доступный ресурс Цена.
239

17. В колонке Рассчитывать по нажмем кнопку выбора и укажем поле Услуга

Ваш результат:

18. На закладке Параметры задайте значение параметра ВидНоменклатуры как


Перечисление.ВидыНоменклатуры.Услуга.
240

19. Кроме этого снимем ограничение доступности для параметра ДатаОтчета и задайте ему
заголовок – Дата отчета.

20. В поле Тип задайте состав даты – Дата.

21. Для параметра Период, наоборот, установим ограничение доступности (рис. 5.47).

Рис. 5.47. Параметры схемы компоновки

Настройки
ПРИСТУПИМ К СОЗДАНИЮ СТРУКТУРЫ ОТЧЕТА:
241

22. Перейдите на закладку Настройки и Создайте группировку по полю ГруппаУслуг, указав тип
группировки Иерархия.

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

Ваш результат:

Рис. 5.48. Структура и выделенные поля отчета

24. Перейдите на закладку Выбранные поля и УКАЖИТЕ, что в отчет будут выводиться поля Услуга
и Цена (рис. 5.49).
242

Рис. 5.49. Структура отчета

И в заключение настроим внешний вид отчета на закладке Другие настройки.


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

25.1. Чтобы запретить вывод общих итогов в отчете, установите параметр Расположение
общих итогов по вертикали в значение Нет.
243

Примечание к 25.1.:

25.2. Для параметра Расположение полей группировок УКАЖИТЕ значение Отдельно и только в
итогах (так наш отчет будет лучше «читаться»).
244

25.3. ЗАДАЙТЕ заголовок отчета – Перечень услуг.

26. В заключение ВКЛЮЧИТЕ параметр Дата отчета в состав пользовательских настроек и


27. УСТАНОВИТЕ для него Режим редактирования – Быстрый доступ.

28. Также ОПРЕДЕЛИТЕ, в каких подсистемах будет отображаться наш отчет:


- ЗАКРОЙТЕ конструктор схемы компоновки данных и в окне редактирования объекта
конфигурации Отчет ПереченьУслуг перейдите на закладку Подсистемы.
- ОТМЕТЬТЕ в списке подсистем конфигурации подсистемы Оказание услуг и Бухгалтерия.
245

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


1. ЗАПУСТИТЕ 1С: Предприятие в режиме отладки
2. ОТКРОЙТЕ периодический регистр сведений Цены (Бухгалтерия – Цена на номенклатуру)
3. ДОБАВЬТЕ в него еще одно значение для услуги Диагностика:
новая цена услуги на 01.12.2014 – 350 (рис. 5.50). Это позволит нам протестировать отчет.
246

Рис. Добавление новой записи регистра «Цены» для услуги «Диагностика»

4. Записать и закрыть
5. Теперь выполним отчет Перечень услуг по состоянию на 03.11.2014
247

Рис. 5.51 Результат выполнения отчета

Наш отчет правильно отражает цену услуги Диагностика на 03.11.2014 – 200 руб.
6. Еще раз выполним отчет, но теперь уже на другую дату - 02.12.2014 (рис. 5.52).
248

Рис. 5.52. Результат выполнения отчета

Как видите, показана новая цена услуги Диагностика — 350 руб.


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

КОНТРОЛЬНАЯ ТОЧКА 7: Представьте преподавателю Ваш результат.


назад

Отчет Рейтинг клиентов

ПОСТАНОВКА задачи:
Создайте отчет Рейтинг клиентов, который будет показывать, каков доход от оказания услуг
каждому из клиентов за все время работы ООО «На все руки мастер».

На примере отчета мы продемонстрируем возможность использования вычисляемого поля и диаграммы


для отображения результата запроса.

8_ЗАДАНИЕ. Создание отчета № 6 Рейтинг клиентов_6


1. СОЗДАЙТЕ в конфигураторе новый объект конфигурации отчет.
2. Назовите его РейтингКлиентов_6, откройте его основную схему компоновки данных.
3. Создайте набор данных – запрос, вызовите
4. Выберите виртуальную таблицу регистра накопления Продажи.Обороты и из нее поля –
ПродажиОбороты.Клиент.
ПродажиОбороты.ВыручкаОборот,
ПродажиОбороты.СтоимостьОборот
249

5. На закладке Объединения/Псевдонимы укажите, что


поле ВыручкаОборот будет иметь псевдоним Выручка,
а поле СтоимостьОборот – Стоимость. На этом создание запроса завершено, нажмите OK.

Вычисляемые поля

Создайте дополнительное поле для отображения дохода от оказания услуг в разрезе клиентов
(разница между выручкой и стоимостью оказания услуг), для этого:
6. ПЕРЕЙДИТЕ на закладку Вычисляемые поля схемы компоновки данных и, нажав кнопку Добавить,
ДОБАВЬТЕ вычисляемое поле.
- ЗАДАЙТЕ ему имя (Путь к данным) – Доход,
- в колонку Выражение введем выражение для расчета вычисляемого поля Выручка -
Стоимость
250

Ресурсы

7. На закладке Ресурсы нажатием кнопки >> выберите доступные ресурсы отчета.

Настройки
8. Перейдите на закладку Настройки и добавьте в структуру отчета Диаграмму

9. ВЫДЕЛИТЕ ветку Точки и ДОБАВЬТЕ в нее группировку по полю Клиент.


Серии диаграммы оставим без изменений.
251

10. ПЕРЕЙДИТЕ на закладку Выбранные поля и ВЫБЕРИТЕ поле Доход для вывода в отчет.
Структура отчета должна принять следующий вид

11. На закладке Другие настройки выберите тип диаграммы – Круговая объемная (рис.)
12. ВКЛЮЧИТЕ эту настройку в состав пользовательских настроек
13. УСТАНОВИТЕ для нее Режим редактирования – Быстрый доступ.
14. ЗАДАЙТЕ заголовок отчета - Рейтинг клиентов.
252

Рис. Круговая объемная диаграмма

15. ОПРЕДЕЛИТЕ, в каких подсистемах будет отображаться наш отчет:


253

- ЗАКРОЙТЕ конструктор схемы компоновки данных и в окне редактирования объекта


конфигурации
Отчет РейтингКлиентов_6 перейдите на закладку Подсистемы.
- ОТМЕТЬТЕ в списке подсистем конфигурации подсистемы Оказание услуг и Бухгалтерия.

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


1. ЗАПУСТИТЕ 1С: Предприятие в режиме отладки
2. ОТКРОЙТЕ отчет Рейтинг клиентов (Бухгалтерия – Рейтинг клиентов)
3. Нажмите Сформировать
254

Рис. Круговая объемная диаграмма


4. Воспользуйтесь настройкой типа диаграммы, представленной в форме отчета, и ИЗМЕНИТЕ тип
диаграммы на
Гистограмма объемная. Заново сформируйте отчет (рис.).

Ваш результат:
255

Рис. 5.61. Гистограмма объемная

На примере отчета Рейтинг клиента продемонстрировано, как можно использовать различные виды
диаграмм для визуализации данных отчета.
КОНТРОЛЬНАЯ ТОЧКА 8: Представьте преподавателю Ваш результат.
назад

Вывод данных в таблицу


На примере создания универсального отчета продемонстрируем вывод данных в таблицу, т.е.
9_ЗАДАНИЕ. Создание отчета Универсальный_7
На примере создания универсального отчета мы узнаем, как система компоновки данных может
взаимодействовать со сводной таблицей.
1. СОЗДАЙТЕ в конфигураторе новый объект конфигурации Отчет. ЗАДАЙТЕ ему имя
256

Универсальный_7.
2. ОТКРОЙТЕ его основную схему компоновки данных и Создайте новый набор данных –
запрос.
3. ВЫЗОВИТЕ конструктор запроса и выберите виртуальную таблицу регистра накопления
Продажи.Обороты. Из этой таблицы выберите все поля (рис. 5.62).

Рис. 5.62. Выбранные поля


4. Нажмите OK и ПОСМОТРИТЕ на текст, сформированный конструктором запроса (листинг 5.16).
Листинг 5.16. Текст запроса

Ресурсы
5. На закладке конструктора схемы компоновки Ресурсы выберите все доступные ресурсы (нажмите
>>).
257

Настройки
6. На закладке конструктора схемы компоновки Настройки ДОБАВЬТЕ в структуру отчета таблицу,
для этого:
1ЩП на Отчет – Новая таблица

7. Для свободы пользователя при выборе списка полей ВЫДЕЛИТЕ элемент Таблица
8. НАЖМИТЕ кнопку Свойства элемента пользовательских настроек , расположенную
вверху в командной панели окна настроек и
– УСТАНОВИТЕ признаки использования: Выбранные поля, Группировки строк и Группировки колонок
– и оставьте режим редактирования Быстрый доступ согл рис.
– нажмите ОК
Ваш результат:

Рис. Состав пользовательских настроек


Таким образом, мы предоставили пользователю возможность самостоятельно определять состав
выбранных полей, группировок строк и колонок таблицы непосредственно в отчетной форме перед
формированием отчета.
9. ОПРЕДЕЛИТЕ, в каких подсистемах будет отображаться наш отчет:
- ЗАКРОЙТЕ конструктор схемы компоновки данных и в окне редактирования объекта
конфигурации
Отчет Универсальный_7 перейдите на закладку Подсистемы.
- ОТМЕТЬТЕ в списке подсистем конфигурации подсистему Оказание услуг.
258

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


5. ЗАПУСТИТЕ 1С: Предприятие в режиме отладки
6. ОТКРОЙТЕ отчет Универсальный 7 (Оказание услуг – Универсальный 7)

7. ЗАПОЛНИТЕ пользовательские настройки:


- НАЖМИТЕ кнопку выбора в строке Выбранные поля и выберите из доступных полей поле
ВыручкаОборот.
259

- НАЖМИТЕ кнопку выбора в строке Строки и ДОБАВЬТЕ в строки таблицы группировку по полю
Номенклатура с типом Иерархия.

- Нажмите кнопку выбора в строке Колонки и добавьте в колонки таблицы группировку по полю
Мастер.

- НАЖМИТЕ Сформировать.
Ваш результат:
260

Рис. Результат отчета


1) ИЗМЕНИТЕ вид отчета Универсальный 7
8. ДОБАВЬТЕ в список выбранных полей поле СтоимостьОборот.
261

9. В строки таблицы вместо группировки по полю Номенклатура ПОМЕСТИТЕ группировку по


полю Клиент.

НАЖМИТЕ Сформировать
Ваш результат:
262

2) ИЗМЕНИТЕ вид отчета Универсальный 7


- ИСКЛЮЧИТЕ из списка выбранных полей поле СтоимостьОборот
263

- В строках таблицы ЗАМЕНИТЕ прежнюю группировку на группировку


по полю Номенклатура с типом ТолькоИерархия.

- В колонки таблицы ДОБАВЬТЕ группировку по полю Клиент и ПОМЕСТИТЕ ее первой в списке


группировок.

- НАЖМИТЕ Сформировать.
Ваш результат:
264

Рис. Результат отчета


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

КОНТРОЛЬНАЯ ТОЧКА 9: Представьте преподавателю Ваш результат.


назад

Теория: виртуальные таблицы запросов

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

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


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

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


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

Примечательным здесь является то, что задание параметров виртуальной таблицы далеко не всегда
приводит к простой подстановке указанных разработчиком значений в текст запроса. В зависимости
от того, какие параметры виртуальной таблицы указаны разработчиком, система может формировать
РАЗЛИЧНЫЕ запросы для получения одной и той же виртуальной таблицы, причем они будут
оптимизированы с точки зрения переданных параметров.

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

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


использует система при формировании запроса виртуальной таблицы.

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


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

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

Контрольные вопросы

1. Для чего предназначен объект встроенного языка Запрос?


2. Для чего предназначена система компоновки данных?
3. Для чего предназначена схема компоновки данных?
4. Для чего предназначены настройки компоновки данных?
5. Для чего предназначен объект встроенного языка КомпоновщикНастроек?
6. В чем отличие между реальными, виртуальными таблицами?
7. Из каких частей состоит текст запроса, какие из них являются обязательными?
8. Каковы основные синтаксические конструкции языка запросов?
9. Что является источником данных запроса?
10. Что такое псевдонимы в языке запросов?
11. Что такое параметры запроса?
12. Что такое параметры виртуальной таблицы?
13. Что такое левое соединение?
14. Как использовать конструктор запроса?
15. Как выбрать данные в некотором периоде для отчета
16. Как упорядочить данные в отчете?
17. Как использовать в отчете данные нескольких таблиц?
18. Как использовать группировки в структуре отчета?
19. Как получить последние значения регистра сведений?
20. Как вывести в отчет иерархические данные
21. Как управлять выводом итогов по группировкам и общих итогов?
22. Как создать отчет, содержащий диаграмму?
23. Как использовать параметры в системе компоновки данных?
24. Как дополнить данные отчета всеми датами в группировке по периоду
25. Как вывести данные в виде таблицы?
26. Как сделать отчет универсальным?
назад