Введение в конфигурирование 1Cv8 - Основные объекты

Администрирование хранилища


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


Администрирование


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


Большая самостоятельная работа


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



На основании всей этой информации необходимо видеть: какая машина, где находятся;

 на какой машине, какие бригады за выбранный

период работали;

 какой водитель в скольких доставках, с каким общим километражом участвовал.

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

Приступайте……

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

1. Необходимо создать справочники «ТранспортныеСредства», «Водители» (хранит ссылку на справочник «ФизическиеЛица»), «Грузчики» (хранит ссылку на справочник «ФизическиеЛица»).

2. Необходимо модифицировать документ «Расходная» (при превышении суммы закупки 1000 рублей должно выводиться сообщение)

3. Создайте документ «Формирование бригады», «Заявка», настройте их. Документ «Заявка» должен заводиться на основании документа «Расходная».

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

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


Цели и задачи курса


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


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


В рамках нашей задачи создадим документ «Приходная». Он будет являться электронной копией расходной накладной поставщика. Для простоты будем полагать, что у него четыре реквизита:
•    «Контрагент» (тип «СправочникСсылка. Контрагенты»)
•    «Контакт» (тип «СправочникСсылка. КонтактныеЛица»)
•    «Сотрудник» (тип «СправочникСсылка. ФизическиеЛица»)
•    «СуммаДокумента» (тип «Число») Определим одну табличную часть «Товары», ее состав:
•    Номенклатура (тип СправочникСсылка. Номенклатура)
•    Количество (тип «Число» длина 10, точность 0)
•    Цена (тип «Число» длина 10, точность 2)
•    Сумма (тип «Число» длина 10, точность 2)
На закладке движения в свойство «Проведение» выберем значение «Запретить» (проведение документов будем рассматривать позже).
Определите форму документа, форму списка документа. При формировании формы документа реквизит «СуммаДокумента» «вставьте как надпись», в свойстве «Связь по владельцу» для элемента диалога «Контакт» установите значение «Контрагент».
В результате форма документа будет выглядеть следующим образом:
Получившийся документ будет заполняться, сохранять данные, но он мало кого устроит. Считается стандартом, чтобы при выборе из справочника номенклатурной позиции автоматически в документ переносилась цена, после проставления количества рассчитывалась общая сумма за позицию.
Для реализации вышеизложенных механизмов понадобится написание процедур на встроенном языке. Их текст представлен далее.
Процедура ТоварыНоменклатураПриИзменении (Элемент)
СтрокаТЧ = ЭлементыФормы. Товары. ТекущиеДанные;

СтрокаТЧ. ЕдИзмерения=СтрокаТЧ. Номенклатура. ОснЕдиницаИзмерения;

СтрокаТЧ. Цена=СтрокаТЧ. Номенклатура. ЦенаПокупки;

ТоварыКоличествоПриИзменении (Элемент);

 КонецПроцедуры Процедура ТоварыКоличествоПриИзменении (Элемент)   _____________________________
 Документ «Приходная»

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

СтрокаТЧ = ЭлементыФормы. Товары. ТекуншеДанные;

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

 КонецПроцедуры Процедура ПередЗаписью (Отказ)
СуммаДокумента= Товары. Итог ("Сумма");

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


Документ «Расходная»


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

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

СуммаПрописью=ЧислоПрописью (СуммаДокумента„"рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2");



Документы


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


Фильтрация результатов запроса


Для фильтрации (указания условия отбора) используется структура, определяемая ключевым словом «Где».
Как пример рассмотрим следующие запросы:

Выбрать
*
Из Справочник. Номенклатура Где Справочник. Номенклатура. ЭтоГруппа
Выбрать Различные
ОснЕдиницаИзмерения Из Справочник. Номенклатура
Выбрать Первые 4
ОснЕдиницаИзмерения Из Споавочник. Номенклаттоа
Выбрать
ОснЕдиницаИзмерения Из Справочник. Номенклатура
Выбрать
*
Из
Справочник. Номенклатура Где Не Справочник. Номенклатура. ЭтоГруппа
В данных примерах знак равно (в условии) не обязателен, так как поле «ЭтоГруппа» содержит значения типа «Булево».
Выбрать
Наименование Из Справочник. Номенклатура Где Справочник. Номенклатура. Код=1
В условиях (это не обязательно может быть конструкция «Где») помимо обычных операций сравнения могут использоваться «В», «Между И», «Подобно», «Есть».

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

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

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

Номен. ОснЕдиницайзмерения=ЕдИзм. Ссылка



то время выполнения данного запроса снизится почти в два раза.

Другим способом указания взаимосвязи таблиц является использование «Соединений». Соединения бывают нескольких видов:

*    Внутреннее соединение

*    Левое внешнее соединение

*    Правое внешнее соединение

*    Полное внешнее соединение

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

Рассмотрим эти варианты на следующем примере: Есть две таблицы:

Таблица № 1

Номен

Номер!

Ручка

1

Карандаш

2

Вилка

3

Таблица № 2

ЕдИзм

Номер2

Шт.

1

Гр

3

Кг

4

банка

1

Условием соединения будет: Таблица1. Номер1=Таблица2. Номер2

В качестве полей запроса определим две колонки: «Номер» из первой таблицы и «ЕдИзм» из второй таблицы.

В соответствии с условием можно выделить записи, для которых условие выполняется:

Записи, неудовлетворяющие условию соединения:

Теперь рассмотрим варианты соединения:

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

Ручка

Шт.

Ручка

банка

Вилка

Гр-

Левое внешнее соединение: в результат выполнения запроса войдут данные из записей, для которых выполняется условие соединения и «не вошедшие» из Таблицы № 1. Можно сказать, что в результат запроса войдут все данные из Таблицы № 1, и для тех записей результата запроса, для которых выполнялось условие соединения в полях, куда помещаются данные из таблицы № 2, будут стоять значения, для которых условие не выполняется, будет стоять Null.

 Фильтрация результатов запроса


 Фильтрация результатов запроса


Ручка

Шт.

Ручка

банка

Вилка

Гр.

Карандаш

Null

Правое внешнее соединение обратно левому.

Ручка

Шт.

Ручка

банка

Вилка

Гр.

Null

Кг.

<


Полное внешнее соединение. В результат запроса войдут как записи, для которых выполнялось условие соединения, так и записи, полученные из «не вошедших» данных из обеих таблиц.

Ручка

Шт.

Ручка

банка

Вилка

Гр,

Карандаш

Null

Null

Кг.

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

В качестве примера использования соединений рассмотрим нижеследующий текст запроса:

Выбрать

Контр. Наименование Как Контрагент, Контакт. Наименование ФИО, Контакт. Телефон Из

ВыборкаДетальная. Номенклатура, эфДиаграмма. УстановитьЗначение (0, эфДиаграмма. КоличествоСерий — 1, ВыборкаДетальная. Сумма,);

КонецЦикла;

 КонецЦикла;

эфДиаграмма. Обновление = Истина;

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


Формы констант


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

 Формы констант

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

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


Группировки результатов запроса


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









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


При указании группировки псевдоним поля указывать нельзя. В качестве агрегатных функций можно использовать: •   Сумма (Выражение) •   Среднее (Выражение) •   Минимум (Выражение) •   Максимум (Выражение) •   Количество ([Различные] Выражение)

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




























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


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


Выбрать
Номенклатура Как Товар, Сумма (Количество),


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

Сумма (Сумма) Из Документ. Приходная. Товары Сгруппировать По Номенклатура Имеющие Сумма (Сумма)> 1000


Практикум 15 _________________________________________
Напишите текст запроса, который выдавал бы список покупателей, купивших более чем один товар, и при этом сумма покупки была более 200, отсортируйте список по убыванию количества покупок.


Хранилище значений


Объект предназначен для хранения значения в специальном формате. Он может быть записан в поля информационной базы, имеющие соответствующий тип. Это позволяет сохранять в информационной базе значения, тип которых не может быть выбран в качестве типа поля, например «Картинка». Большинство объектов, которые имеют неизменяемое значение, а также универсальные коллекции, могут быть преобразованы в значение «Хранилище Значения». К значению, хранящемуся в объекте, нельзя обращаться, его можно только извлечь из хранилища.
Не рекомендуется хранить в реквизитах этого типа ссылки на другие объекты информационной базы.
Для знакомства с объектом «ХранилищеЗначения» определите у справочника «ФизическиеЛица» реквизит «Фотография» (тип «ХранилищеЗначения»).
Для отображения фотографии в диалоге формы элемента определите дополнительную страницу в элементе управления «Панель», поместите на нее элемент управления «поле картинки» (имя «Фото») и две кнопки.
 Хранилище значений

В модуле формы элемента необходимо прописать две процедуры:





Процедура Кнопка1Нажатие (Элемент) РежимРежимДиалогаВыбораФайла. Открытие;

 ДиалогОткрытияФайла=Новый ДиалогВыбораФайла (Режим);

 ДиалогОткрытияФайла. ПолноеИмяФайла="";

 Фильтр="Все (*,*)|*,*";

 ДиалогОткрытияФайла. Фильтр=Фильтр;

 ДиалогОткрытияФайла. МножественныйВыборЛожь;

 ДиалогОткрытияФаЙла. Заголовок="Выберите файлы";

 Если ДиалогОткрытияФаЙла. Выбрать () Тогда ВыбФайл=Новый Картинка (ДиалогОткрытияФайла. ПолноеИмяФайла);

 Хран=Новый ХранилишеЗначения (ВыбФаЙл);

 Фотография=Хран;

 КонецЕсли;

 КонецПроцедуры
Процедура Кнопка2Нажатие (Элемент) ЭлементыФормы. Фото. Картинка=Фотография. Получить ();

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

Проверьте работоспособность данного механизма.


Использование диаграмм


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





Процедура КнопкаСформироватьНажатие (Элемент) ЭлементыФормы. эфДиаграмма. КоличествоСериЙ = 0;

 Элементы Формы, эфДиаграмма. Количество Точек = 0;

 ВыполнитьОтчет (ЭлементыФормы. эфДиаграмма);

 ВыбТипДиафаммы = ЭлементыФормы. эфДиаграмма. ТипДиаграммы;

 КонецПроцедуры
Процедура ВыбПериодНажатие (Элемент) НастройкаПериода = Новый НастройкаПериода;

НастройкаПериода. УстановитьПериод (НачПериода,     ?(КонПериода='0001-01-01', КонПериода, КонецДня (КонПериода)));

НастройкаПериода. РедактироватьКакИнтервал = Истина;

 НастройкаПериода. РедактироватьКакПериод = Истина;

 НастройкаПериода. ВариантНастройки = ВариантНастройкиПериода. Период;

 НастройкаПериода. Редактироватъ ();

 НачПериода = НастройкаПериода. ПолучитьДатуНачала ();

 КонПериода = НастройкаПериода. ПолучитьДатуОкончания ();

 КонецПроцедуры
Процедура ПолеВыбораПриИзменении () ЭлементыФормы. эфДиаграмма. ТипДиаграммы = ВыбТипДиаграммы;

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

 Использование диаграмм



















ЭлементыФормы. ВыбТипДиаграммы. СписокВыбора. Добавить (ТипДиаграммы. Круговая, "Круговая");

 ЭлементыФормы. ВыбТипДиаграммы. СписокВыбора. Добавить (ТипДиаграммы. КруговаяОбъемная, "Круговая объемная");

 ЭлементыФормы. ВыбТипДиаграммы. СписокВыбора. Добавить (ТипДиаграммы. Гистограмма, "Гистограмма");

 ЭлементыФормы. ВыбТипДиаграммы. СписокВыбора. Добавить (ТипДиаграммы. ГистограммаОбъемная, "Гистограмма объемная");

 ЭлементыФормы. ВыбТипДиаграммы. СписокВыбора. Добавить (ТипДиаграммы. ГистограммаСНакоплением, "Гистограмма с накоплением");

 ЭлементыФормы. ВыбТипДиаграммы. СписокВыбора. Добавить (ТипДиаграммы. ГистограммаСНакошхениемОбъемная, "Гистограмма с накопл. объемная");



Модуль объекта содержит описание следующей процедуры:


Процедура ВыполнитьОтчет (эфДиаграмма) Экспорт Запрос = Новый Запрос;

 ТекстЗапроса = "ВЫБРАТЬ |Номенклатура, Номенклатура. Наименование НаименованиеНоменклатуры, |КоличествоОборот Количество, СуммаОборотСумма |ИЗ РегистрНакопления. Продажи. Обороты (&ПериодС, &ПериодПо„) |УПОРЯДОЧИТЬ ПО Номенклатура. Наименование |ИТОГИ Сумма (Количество), Сумма (Сумма) ПО Номенклатура ТОЛЬКО ИЕРАРХИЯ
I";

Запрос. Текст = ТекстЗапроса;

 Запрос. УстановитьПараметр ("ПериодС", НачПериода);

 Запрос. УстановитьПараметр ("ПериодПо", КонПериода);

РезультатЗапроса = Запрос. Выполнить ();

 эфДиаграмма. Обновление = Ложь;

 эфДиаграмма. КоличествоТочек = 1;

 эфДиаграмма. Точки [0]. Текст = "Сумма";

ВыборкаОсновная = РезультатЗапросаВыбратъ (ОбходРезультатаЗапроса. ПоГруппировкам);

 Пока ВыборкаОсновная, Следующий () Цикл ВыборкаДетальная = ВыборкаОсновная. Выбрать ();

 Пока ВыборкаДетальная. Следуюший () Цикл эфДиаграмма. КоличествоСерий = эфДиаграмма. КоличествоСерий + 1;

 эфДиаграмма. Серии [эфДиафамма. КоличествоСерий — 1]. Текст = СокрП (ВыборкаДетальная. НаименованиеНоменклатуры);

 эфДиафамма. Серии [эфДиафамма. КоличествоСерий-1]. Расшифровка= ВыборкаДетальная. Номенклатура, эфДиаграмма. УстановитьЗначение (0, эфДиаграмма. КоличествоСерий — 1, ВыборкаДетальная. Сумма,);

КонецЦикла;

 КонецЦикла;

эфДиаграмма. Обновление = Истина;

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



Источники данных


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


Итоги в запросе


Для получения итогов в результате запроса в тексте запроса необходимо определить конструкцию «Итоги». Итоги добавляются в результат запроса как итоговые строки.





Выбрать
Номенклатура, Цена, Количество, Сумма Из Документ. Приходная. Товары Итоги Сумма (Количество), Сумма (Сумма) По Номенклатура

Посмотрите   результат   выполнения   запроса   и   сравните   его   с результатом следующего запроса:





Выбрать
Номенклатура, Цена, Количество, Сумма Из Документ. Приходная. Товары Итоги Сумма (Количество), Сумма (Сумма) По Номенклатура Иерархия

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





Выбрать
Ссьшка. Контрагент, Номенклатура, Цена, Количество, Сумма Из Документ. Приходная. Товары Итоги Сумма (Количество), Сумма (Сумма) По Ссылка. Контрагент, Номенклатура

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





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

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





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

При описании конструкции «Периодами» с помощью функции преобразования ДатаВремя („,„) можно указывать начальные и конечные даты рассматриваемых периодов.
Практикум № 16      ____________________________________________
Напишите текст запроса, по результатам которого можно будет увидеть суммы закупок по группам справочника «Контрагенты» и по «отдельным»          поставщикам           (элементам          справочника
«Контрагенты»).


Языки


Объекты конфигурации «Языки» предназначены для создания интерфейса программы на различных языках. Для каждого объекта конфигурации в палитре свойств для свойства «Синоним» или «Заголовок» конфигуратор резервирует строку для каждого объекта типа «Языки».
При редактировании диалогов форм для просмотра их внешнего вида на других языках (если их было определено несколько) можно выбрать      пункт      «Конфигурация      —      Язык      редактирования
 Языки

 Языки

конфигурации», кроме того можно воспользоваться кнопкой выбора языка, расположенной в строке состояния справа от кнопки «САР».
Практикум № 26 ——————————————————————————————————Попробуйте поработать с этими объектами. Определите дополнительный язык, создайте свой стиль, укажите данный стиль для какой-либо формы.
 Языки



Картинки


Для включения картинки в конфигурацию необходимо щелкнуть правой клавишей мыши на ветви «Общие картинки» и выбрать «Добавить». Добавленные таким образом картинки можно использовать в некоторых элементах управления, в формах, макетах, а также обращаться к ним при помощи встроенного языка системы.
Если картинку планируется использовать в качестве пиктограммы в меню, панели инструментов, табличном документе и т. п., рекомендуемый размер таких картинок 16x16 точек. Если картинку планируется использовать в табличном поле или поле списка, ее размер не должен превышать 14x14 точек. Если же картинку планируется использовать в кнопке выбора поля редактирования, ее размер не должен превышать 9x9 точек.
 Картинки

 Картинки

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


Классификация объектов конфигурации


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


Константы


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


Конструктор запросов, конструктор выходных форм


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

Выбрать
*
Из РегистрБухгалтерии. Основной. ОборотыДтКт
Выбрать
*
ИзРегистрБухгалтерии. Основной. остаткиИОбороты („Неделя)

Создадим отчет, дадим ему имя «Закупки» и сразу же перейдем на закладку «макеты». Используя кнопку «Конструкторы» вызовем нужный нам конструктор. В открывшейся сразу после этого форме можно определить имя выходной формы отчета.
Далее на закладке «таблицы и поля» необходимо выбрать поля запроса.
Следует первоначально выбирать поля из вложенной таблицы, а потом уже из основной таблицы документа (иначе не получится воспользоваться группировкой).
На закладке связи требуется определить вид и условие соединения двух таблиц:
В случае, если отмечен левый флажок «Все», то используется «Левое соединение», и первой таблицей является «таблица № 1», если только правое «Все», то также используется «Левое соединение», но первой
 Конструктор запросов, конструктор выходных форм

 Конструктор запросов, конструктор выходных форм

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

На любом этапе работы в конструкторе, используя кнопку «Запрос», можно посмотреть текст получающегося запроса.
Далее на закладке «условия» можно определять отборы, накладываемые на запрос. На закладке «дополнительно» указывать ряд дополнительных признаков (первые, различные, для изменения). На закладке «Объединения/Псевдонимы» настраивать объединения и указывать псевдонимы и т. д. В нашем случае будем далее настраивать только раздел «Итоги».



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

 Конструктор запросов, конструктор выходных форм


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

Процедура СформироватьНажатие (Элемент) ТабДок = Новый ТабличныйДокумент;

 ОтчетОбъект. Закупки (ТабДок);

 ТабДок. ТолькоПросмотр = Истина;

 ТабДок. ОтображатьСетку = Ложь;

 ТабДок. ОтображатьЗаголовки = Ложь;

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

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

В модуле отчета:

Процедура Закупки (ТабДок) Экспорт Макет = ПолучитьМакет (" Закупки");

 Запрос = Новый Запрос;

 Запрос. Текст = "ВЫБРАТЬ |            Приходная Товары. Номенклатура КАК Номенклатура, |            ПриходнаяТовары. Номенклатура. Представление, |            СУММА (ПриходнаяТовары. Количество) КАК Количество, СУММА (ПриходнаяТовары. Сумма) КАК Сумма, Приходная. Контрагент КАК Контрагент, Приходная. Контрагент. Представление |ИЗ |            Документ-Приходная. Товары КАК ПриходнаяТовары |                         ЛЕВОЕ СОЕДИНЕНИЕ Документ. Приходная КАК Приходная |                         ПО Приходная Товары. Ссылка = Приходная. Ссылка

|СГРУППИРОВАТЬ ПО ПриходнаяТовары. Номенклатура, Приходная. Контрагент

!

|ИТОГИ ПО ОБЩИЕ";

 Результат = Запрос. Выполнить ();

 ОбластьЗаголовок = Макет. ПолучитьОбласть (" Заголовок");

 ОбластьПодвал = Макет. ПолучитьОбласть ("Подвал");

 ОбластьШапкаТаблицы = Макет. ПолучитьОбласть ("ШапкаТаблицы");

 ОбластьПодвалТаблицы=Макет. ПолучитьОбласть ("ПодвалТаблицы");

 ОбластьОбщийИтог = Макет. ПолучитьОбласть ("ОбщиеИтоги");

ОбластьДетали = Макет. ПолучитьОбласть ("Детали");

 ТабДок. Вывести (ОбластьЗаголовок);

 ТабДок. Вывести (ОбластьШапкаТаблииы);

 ВыборкаОбшийИтог = Результат. Выбрать (ОбходРезультатаЗапроса. ПоГруппировкам);

 ВыборкаОбшийИтог. Следуюший ();

                      // Обший итог ОбластьОбщийИтог. Параметры. Заполнить (ВыборкаОбшийИтог);

 ТабДок. Вывести (ОбластьОбщийИтог);

 ВыборкаДетали = ВыборкаОбщийИтог. Выбрать ();

 Пока ВыборкаДетали. Следуюший () Цикл ОбластьДетали. Параметры. Заполнить (ВыборкаДетали);

 ТабДок. Вывести (ОбластьДетали);

 КонецЦикла;

 ТабДок. Вывести (ОбластьПодвалТаблицы);

 ТабДок. Вывести (ОбластьПодвал);

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

Практикум 25__________________________________________

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

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

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


Контекст выполнения модуля


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


Критерии отбора


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

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


Объекты системы


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


Обороты Дт Кт


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


Обороты


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





Выбрать * Из РегистрБухгалтерии. Основной. Обороты



Определение хранилища конфигурации


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


Определение интерфейсов, ролей, пользователей


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

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

 Определение интерфейсов, ролей, пользователей

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


Определение, настройка свойств


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

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


Организация бухгалтерского учета


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

 Организация бухгалтерского учета

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


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


Практикум № 9   _________________________________________
Создайте критерий отбора «ПоСотруднику». Тип значения определите «СправочникСписок. ФизическиеЛща». В отбор должны входить документы «ПриемНаРаботу» по реквизиту «Сотрудник».
После того как вы определите критерий отбора, модифицируйте форму элемента справочника «ФизическиеЛица». Добавьте новую страничку (заголовок «Документы»), на нее поместите элемент управления «ТабличноеПоле» (свойство «тип значения» у элемента установите в «КритерийОтбораСписок. ПоСотруднику). В свойстве табличного поля «Связь по значению отбора» необходимо поставить значение «СправочникОбъект. Ссылка».





Проверьте работоспособность созданного механизма.

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



Основная таблица


Хранятся записи регистра бухгалтерии

















































































































РегистрБухгалтерии.<Имя>


Поле

Тип


МоментВремени

Момент времени


Период

Дата


Регистратор

Любая ссылка


НомерСтроки

Число


Выбрать
*
ИзРегистрНакопления. ОстаткиНоменклатуры. ОстаткиИОбороты („Неделя)


Активность


Булево



СчетДт


ПланСчетовСсылка. Имя. СчетДт



СчетКт


ПланСчетовСсылка. Имя. СчетКт



<Измерение>


Тип измерения



<Измерение>Дт


Тип измерения



<Измерение>Кт


Тип измерения



<Ресурс>


Число



<Ресурс>Дт


Число



<Ресурс>Кт


Число



<Реквизит>


Тип реквизита




Основная таблица


Предназначена для получения записей регистра накопления

















































































РегистрНакопления.<Имя>


Поле

Тип


Период

Дата


Регистратор

ДокументСсылка.<Имя>


НомерСтроки

Число


Активность

Булево


МоментВремени

Момент времени


Выбрать
* Из РегистрСведений. Валюты. СрезПервых (&НачПериода)

Приход

Булево


Расход

Булево


ВидДвижения

ВидДвиженияНакопления


<Измерение>

Тип измерения


<Ресурс>

Число


<Реквизит>

Тип реквизита


Выбрать * Из РегистрНакопления. ОстаткиНоменклатуры




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


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


Печатные формы


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

Реализуем   возможность   печати   прайс-листа   из   формы   списка справочника «Номенклатура». Определим макет у формы:

Шапка
1
Прайс лист на дату [РабочаяДата]
2
Код                    Наименование                           Цена
Строка
3

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

Процедура Печать () Макет = Справочники. Номенклатура. ПолучитьМакет ("ПрайсЛист");

 ОбластьШапки = Макет. ПолучитьОбласть ("Шапка");

 ТабДок = Новый ТабличныйДокумент ();

                  ' ТабДок. Вывести (ОбластьШапки);

 Выборка = Справочники. Номенклатура. Выбрать ();

 Пока Выборка. Следующий () Цикл
Если Выборка. ЭтоГруппа=Истина Тогда ОбластьТабЧасти= Макет. ПолучитьОбласть ("СтрокаГруппы");

 ОбластьТабЧасти. Параметры. Код=Выборка. Код;

 ОбластьТабЧасти. Параметры. Наименование=Выборка. Наименование;

 Иначе ОбластьТабЧасти=Макет. ПолучитьОбласть ("Строка");




26

ОбластьТабЧасти. Параметры. Код=Выборка. Код;

 ОбластьТабЧасти. Параметры. Наименование=Выборка. Наименование;

 ОбластьТабЧасти. Параметры. РозничнаяЦена=Выборка. ЦенаПродажи;

 ОбластьТабЧасти. Параметры. РасшифровкаЭлем=Выборка. Ссылка;

 КонецЕсли;

 ТабДок. Вывести (ОбластьТабЧасти);

 КонецЦикла;

 ТабДок. Защита = Истина;

 ТабДок. ТолькоПросмотр = Истина;

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

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

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

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


Передача параметров в запрос


Очень часто встает задача передачи каких-либо значений (параметров) в запрос. К примеру, это могут быть значения условий, накладываемых на запрос. В таком случае в тексте запроса имя параметра прописывается следующим образом:
Где Номенклатура=&Номен
Практикум № 20 ———————————————————————————————-Напишите текст запроса, который при выполнении содержал бы документы только за указанный период.


План счетов


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

 План счетов

свойство   «Виды   субконто»   выберем   одноименный   план   видов характеристик.





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

 План счетов



Планы видов характеристик


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

Создайте регистр сведений «НазначениеСвойств». Определите у него два измерения:
•    Позиция тип «СправочникСсылка. Номенклатура»
•    Свойство тип «ПланВидовХарактеристикСсылка. СвойствЮбъектов» Определите один ресурс
•    Значение тип «Характеристика. СвойстваОбъектов».
Настройте формы созданных вами объектов и проверьте их работу.


Планы видов расчета


Объекты данного вида предназначены для создания видов расчетов.
Определим план видов расчета «ВидыРасчета». У данного объекта не будет реквизитов и табличных частей. На закладке «расчет» определим свойства объекта так, как указано на рисунке.
Далее определим как предопределенные два вида расчета: «Оклад» и «Штраф». При определении флажки на закладках «Базовые», «Вытесняющие» и «Ведущие» не отмечаем. При определении вида расчета «Премия»: необходимо отметить «Оклад» на закладках «Базовые» и «Ведущие» и требуется отметить флаг «Период действия является базовым периодом».


Подчиненные объекты


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

Приведем перечень подчиненных объектов:
•    Реквизиты   —   дополнительная   информация   об   объекте, доступная только в пределах этого объекта.
•    Табличные части — наборы дополнительной информации об объекте, представленные в виде таблиц.
•    Реквизиты табличных частей — состав табличной части объекта, доступных только в пределах табличной части объекта.
•    Формы    —    используются    для    ввода,    просмотра    и редактирования информации.
•    Макеты  —  табличные  документы,   предназначенные   для формирования печатных форм объекта.
•    Графы — графы журнала документов.
•    Измерения — для регистров это объекты конфигурации, в разрезе которых учитываются данные в регистре.
•    Ресурсы — данные, учитываемые в регистре.


Подчиненные справочники, форма, содержащая списки двух справочников


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

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

 Подчиненные справочники, форма, содержащая списки двух справочников

 Подчиненные справочники, форма, содержащая списки двух справочников



Подсистемы


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


Последовательности документов


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


Прикладные объекты


К объектам данной группы относятся объекты следующих видов:
•    Константы.   Предназначены   для   хранения   постоянных, условно-постоянных величин.
•    Справочники.   Списки   однородных   элементов   данных. Используются     для     хранения     нормативно-справочной информации.
•    Планы видов характеристик. Предназначены для описания множеств однотипных объектов аналитического учета.
•    Документы. Служат для ввода информации о совершаемых операциях в системе.
•    Журналы документов.  Служат для отображения списков документов различного вида.
 Прикладные объекты

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


Работа с хранилищем конфигурации


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

 Работа с хранилищем конфигурации

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

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



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

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

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

Флажок «Файл поставки может использоваться для обновления» можно снимать, когда предполагается использовать полученный файл

 Работа с хранилищем конфигурации


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

После определения правил необходимо сформировать соответствующие файлы. Для этого необходимо выбрать пункт меню «Конфигурация — Поставка конфигурации — Создать файлы поставки и обновления конфигурации».

Перед этим требуется установка значений свойств конфигурации «Поставщик» и «Номер релиза».

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

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

Если по каким-то причинам пришлось снять с поддержки всю конфигурацию,  поставить  ее  на  поддержку  можно только после

 Работа с хранилищем конфигурации


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

 Работа с хранилищем конфигурации



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


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


Регистр расчета


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


Регистр сведений «Цены поставщиков»


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

«Номенклатура» и один ресурс «Цена». Настройте форму списка и форму набора записей.
Так как запись ведется регистратором (по смыслу документом «Приходная»), необходимо модифицировать данный документ. А именно: разрешить проведение и вставить в модуль документа (объекта) процедуру проведения, текст которой приводится ниже.





Процедура ОбработкаПроведения (Отказ, Режим) Для Каждого ТекСтрокаТовары Из Товары Цикл Движение=Движения. ЦеныПоставшиков. Добавить ();

 Движение. Период=Дата;

 Движение. Поставщик=Контрагент;

 Движение. Номенклатура==ТекСтрокаТовары. Номенклатура;

 Движение. Цена=ТекСтрокаТовары. Цена;

 КонецЦикла;

 Движения. ЦеныПоставщиков. Записать ();

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

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

 Регистр сведений «Цены поставщиков»

Практикум № 6————————————————————————————————-Определите регистр сведений, который будет содержать данные о количестве рабочих часов в указанный день. Данному объекту дайте имя: «График». Он не должен быть периодическим.


Регистр сведений «Валюты»


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


Регистры бухгалтерии


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

 Регистры бухгалтерии

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





Процедура КнопкаВыполнитьНажатие (Элемент)  Для Каждого ТекСтрокаТовары Из Товары Цикл // регистр Основной Движение = Движения. Основной. Добавить ();

 Движение. СчетДт = ПланыСчетов. Основной. товары;

 Движение. СчетКт = ПланыСчетов. Основной. поставщики;

 Движение. Период = Дата;

 Движение. Регистратор = Ссылка;

 Движение. Сумма = ТекСтрокаТовары. Сумма;

 Движение. КоличествоДт = ТекСтрокаТовары. Количество;

 Движение. СубконтоДт [ПланыВидовХарактеристик. ВидыСубконто. номенклатура] = ТекСтрокаТовары. Номенклатура;

 Движение. СубконтоКт [ПланыВидовХарактеристик. ВидыСубконто. контрагенты] — Контрагент;

 КонецЦикла;

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

 Регистры бухгалтерии



Регистры накопления


Регистры накопления используются в системе для накопления информации о наличии и движении средств — товарных, денежных и других величин.
Можно сказать, что регистр накопления представляет из себя n- мерную систему координат, в узлах которой располагаются наборы числовых характеристик.
Так же как и с регистром сведений, работа с регистром накопления заключается в работе с записями (движениями регистра)
Различают два вида регистров накопления:
•    Регистры остатков
•    Регистры оборотов
Начнем знакомство с регистрами накопления с регистров остатков.
Регистр «Остатки номенклатуры»
Создайте регистр «ОстаткиНоменклатуры» (регистр остатков), определите у него одно измерение «Номенклатура», два ресурса «Количество», «Сумма», настройте формы списка.
 Регистры накопления

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


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


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


Создание информационной базы данных


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

 Создание информационной базы данных

На первом этапе необходимо выбрать вариант добавления
В соответствии с поставленной задачей необходимо добавить две подсистемы: «Бухгалтерия», «Торговля», «Кадры».


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


В предыдущем примере в основном использовался линейный способ обхода результата (метод «Выбрать ()» вызывался без явного указания способа обхода). Кроме линейного существует еще иерархический обход и обход результата по группам. Для явного указания способа обхода первым параметром метода «Выбрать» необходимо указать значение системного перечисления «ОбходРезультатаЗапроса».
Определены возможные значения:
•    Прямой
•    ПоГруппировкам
•    ПоГруппировкамСИерархией
Разбираться с порядком обхода будем на примере отчета «ПорядокОбхода»
У отчета необходимо определить два реквизита: НачПериода — тип «Дата» КонПериода — тип «Дата»
В диалоге предлагается (с использованием элемента формы «Панель») определить две страницы. На первой находятся элементы формы, связанные с реквизитами отчета, табличное поле (имя «тПоле», тип «ТаблицаЗначений»), поле выбора (имя «ОбходРезультата», тип «Произвольный»). На второй странице находится поле табличного документа (имя «тблРезультат»).
Текст модуля формы:
 Способы обхода результатов запроса, группировки в табличном документе


Процедура ВыполнитьНажатие (Элемент) ТабДок = ЭлементыФормы. тбл Результат;

 ТабДок. Очистить ();

 ВыполнитьОтчет (ТабДок, ЭлементыФормы. ТПоле, ОбходРезультата);

 ТабДок. ТолькоПросмотр = Истина;

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

 КонецПроцедуры Процедура ВыбПериодНажатие (Элемент) НастройкаПериода = Новый НастройкаПериода;

 НастройкаПериода. УстановитьПериод (НачПериода, КонецДня (КонПериода));

 НастройкаПериода. РедактироватьКакИнтервал = Истина;

 НастройкаПериода. РедактироватьКакПериод = Истина;

 НастройкаПериода. ВариантНастройки = ВариантНастройкиПериода. Период;

 НастройкаПериода. Редактировать ();

 НачПериода = НастройкаПериода. ПолучитьДатуНачала ();

 КонПериода = НастройкаПериода. ПолучитьДатуОкончания ();

 КонецПроцедуры ЭлементыФормы. ОбходРезультата. СписокВыбора. Добавить (ОбходРезультатаЗапроса. ПрямоЙ, "Прямой");

 ЭлементыФормы. ОбходРезультата. СписокВыбора. Добавить (ОбходРезультатаЗапроса. ПоГруппировкам, "По группировкам");

 ЭлементыФормы. ОбходРезультата. СписокВыбора. Добавить (ОбходРезультатаЗапроса. ПоГруппировкамСИерархией, "По иерархии");

Текст модуля отчета:
ПроцедураВыдатьРекурсивно (ВыборкаДетальная, Знач Номер, ТабДок, Секция, ОбходРезультата) Номер=Номер+1;

 Пока ВыборкаДетальная. Следующий () Цикл Секция. Параметры. Наименование = ВыборкаДетальная. НаименованиеНоменклатуры;

 Секция. Параметры. Колво = ВыборкаДетальная. Количество;

 Секция. Параметры. Сумма = ВыборкаДетальная. Сумма;

 Секция. Параметры. ТипЗаписи = ВыборкаДетальная. ТипЗаписи ();

 Секция. Параметры, Уровень = ВыборкаДетальная. Уровень ();

 Секция. Параметры. Номер = Номер;

 ТабДок. Вывести (Секция, ВыборкаДетальная. Уровень ());

 ВыборкаДетальная2 = ВыборкаДетальная. Выбрать (ОбходРезультата);

 ВыдатьРекурсивно (ВыборкаДетальная2, Номер, ТабДок, Секция, ОбходРезультата);

 КонецЦикла;

 КонецПроцедуры Процедура ВыполнитьОтчет (ТабДок, ТП, ОбходРезультата) Экспорт Перем ОбщиеИтогиСумма;




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

Перем ОбшиеИтогиКоличество;

 Макет = ПолучитьМакет ("ПрололжениеМакет");

 Секция = Макет. ПолучитьОбласть ("Шалка");

 Секция. Параметры. ПериодС = Формат (КонПериода, "ДЛФ-D");

 Секция. Параметры. ПериодПо = Формат (КонПериода, "ДЛФ=D");

 ТабДок. Вывести (Секция);

 Секция = Макет. ПолучитьОбласть ("Позиция");

 Запрос = Новый Запрос;

 ТекстЗапроса = "ВЫБРАТЬ [Номенклатура, Номенклатура. Наименование НаименованиеНоменклатуры, Количество Количество, Сумма Сумма |ИЗ Документ. Приходная. Товары Где Ссылка. Дата Межлу &НачПериода И &КонПериода |УПОРЯДОЧИТЬ ПО Номенклатура. Наименование |ИТОГИ Сумма (Количество), Сумма (Сумма) ПО ОБЩИЕ, Номенклатура ИЕРАРХИЯ

Запрос. Текст = ТекстЗапроса;

 Запрос. УстановитьПараметрС'НачПериола", НачПериода);

 Запрос. УстановитьПараметрС'КонПериода", КонецДня (КонПериола));

 РезультатЗапроса = Запрос. Выполнить ();

 ТП. Значение=РезультатЗапроса. Выгрузить ();

 ТП. СоздатьКолонки ();

 ТабДок. НачатьАвтогруппировкуСтрок ();

 Номер=0;

 ВыборкаОсновная = РезультатЗапроса. Выбрать (ОбходРезультата);

 Пока ВыборкаОсновная. Следуюший () Цикл Секция. Параметры. Наименовакие = ВыборкаОсновная. НаименованиеНоменклатуры;

 Секция. Параметры. Колво = ВыборкаОсновная. Количество;

 Секция. Параметры. Сумма = ВыборкаОсновная. Сумма;

 Секция. Параметры. Номер = Номер;

 Секция. Параметры. ТипЗаписи = ВыборкаОсновная. ТипЗаписи ();

 Секция. Параметры. Уровень = ВыборкаОсновная. Уровень ();

 ТабДок. Вывести (Секция, ВыборкаОсновная. Уровень ());

 ВыборкаДетальная = ВыборкаОсновная. Выбрать (ОбходРезультата);

 ВыдатьРекурсивно (ВыборкаДетальная, Номер, ТабДок, Секция, ОбходРезультата);

 КонецЦикла;

 ТабДок. ЗакончитьАвтогруппировкуСтрокО;

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

Рассмотрим еще один пример

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

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

Модуль отчета приведен ниже:


Справочники


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

 Справочники

 Справочники

Обратиться к предопределенному элементу можно, используя конструкцию:
Справочники. Имя справочника. Имя предопределенного элемента;

Практикум № 2________________________________
Создайте справочник «Подразделения». У него неограниченная глубина иерархии, иерархия элементов, реквизитов нет, редактируется в списке, относится к подсистеме «Кадры».
При  построении  формы  списка  справочника  «Подразделения»  в конструкторе формы сделайте выбор, показанный на рисунке снизу.
 Справочники

 Справочники

В этом случае создание и корректировка элементов будет производиться непосредственно в дереве (для этого в свойствах элемента управления «Дерево» необходимо снять флажок «Только просмотр»).
Практикум № 3————————————Необходимо создать справочник «Номенклатура». Справочник имеет иерархию с неограниченным количеством уровней.
Реквизиты справочника:
•    «ЦенаПокупки» — тип «Число»
•    «ЦенаПродажи» — тип «Число»
•    «ОснЕдинщаИзмерения»-тип «СправочникСсылка. ЕдинщыИзмерения»
Редактируется в диалоге (необходимо настроить формы: списка, группы, элемента). Справочник принадлежит подсистеме «Торговля»
Создадим еще один справочник: «ФизическиеЛица». Справочник будет без иерархии. Содержит реквизиты:
•    «Фамилия» — тип «Строка» длина 30
•    «Имя» — тип «Строка» длина 30
•    «Отчество» — тип «Строка» длина 30
•    «ДатаРождения» — тип «Дата» состав: «Дата»



Кроме этого у справочника есть табличная часть «ТрудоваяДеятельность»

Реквизиты табличной части:

•    «НачалоРаботы» — тип «Дата» состав: «Дата»

•    «ОкончаниеРаботы» — тип «Дата» состав: «Дата»

•    «Организация» — тип «Строка»

•    «Должность» — тип «Строка»

Редактирование справочника будет производиться «Обоими способами». Требуется настроить форму списка и форму элемента.

При настройке формы списка в нее необходимо определить только колонки «Код», «Наименование», «ДатаРождения». Используя свойство колонки «Текст шапки» определить заголовок «Наименования» как «ФИО». Далее, у элемента диалога «Список» необходимо свойство «Способ редактирования» выставить в значение: «в списке».

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

управления «Панель»
 Справочники
.

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

В   результате   форма  элемента  должна   принять   вид   близкий   к следующему:

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

 Справочники


 Справочники


 Справочники


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

Для того, чтобы «добраться» до наименований справочника «Номенклатура» потребуется прописать следующий код:

 Справочники


//На чтение Выборка=Справочники. Номенклатура. Выбрать ();

 Пока Выборка. Следующий () Цикл Наим=Выборка. Наименование;

 КонецЦикла;

 //На запись Выборка=Справочники. Номенклатура. Выбрать ();

 Пока Выборка. Следующий () Цикл обСпр=Выборка, ПолучитьОбъект ();

 обСпр. Наименование="Одинаковое";

 обСпр. Записать ();

 КонецЦикла;

<


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

В модуле формы пропишем текст процедуры

Процедура ОткрытьПодробно (Кнопка)

ТекСтрока=ЭлементыФормы. СправочникСписок. ТекущаяСтрока;

 Если ТекСтрока <> Неопределено Тогда

Форма=ТекСтрока. ПолучитьФорму ("ФормаЭлемента"„);

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

 КонецЕсли;

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

_________________________________________________________

В свойствах элемента формы «СправочникСписок» снимите флажок «Авто контекстное меню» и в свойстве «Контекстное меню» выберите значение «ДействияФормы».

Проверьте работоспособность созданного вами механизма.

В  форме  списка определим  свойства кнопки командной  панели

управления
 Справочники
(добавим   в   автоматически   созданную   панель

управления свою кнопку).

 Справочники



Сравнение и объединение конфигураций


Режим сравнения и объединения конфигураций позволяет детально сравнить две конфигурации и объединить их. Возможно выборочное объединение по результатам сравнения.
Режим запускается при выборе пункта меню «Конфигурация — Сравнить, объединить с конфигурацией из файла». После выбора открывается окно «Объединение конфигураций». Оно позволяет:
•    Ознакомиться с тем, какие объекты  в двух конфигурациях отличаются
•    Выбрать объекты, по которым необходимо детально изучить различия
•    Вызвать указанные объекты для просмотра и редактирования
•    Задать, какие из объектов включить в объединение
•    Установить соответствия объектов
•    Установить   режимы   объединения   конфигураций   (для   всей конфигурации или по каждому объекту)
•    Установить    порядок    подчиненных    объектов    (для    всей конфигурации или по каждому объекту)
•    Сформировать отчет о различиях в конфигурациях
•    Запустить процесс объединения конфигураций
 Сравнение и объединение конфигураций

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

 Сравнение и объединение конфигураций

 Сравнение и объединение конфигураций

В открывшемся окне можно просмотреть отличия между модулями. Выполнив «Действия — Показать результат объединения модуля», просмотреть результат объединения.



Процесс объединения конфигураций запускается при нажатии кнопки «Выполнить».

 Сравнение и объединение конфигураций


 Сравнение и объединение конфигураций


Групповая разработка конфигураций

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

Для снижения вероятности допущения ошибок, повышения производительности и упрощения процесса разработки конфигурации в системе «1С: Предприятие 8.0» существует механизм поддержки групповой разработки конфигурации.

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

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


Стили


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


Структура запроса (описание запроса)


Для выполнения запроса (получения необходимой выборки данных) необходимо составить текст запроса. Текст запроса — это инструкция, в соответствии с которой должен быть выполнен запрос.
После составления текста запроса его необходимо выполнить. По окончании выполнения полученный результат необходимо «обойти» (разобрать результат запроса).
Для формирования текста запроса существует специализированный язык запросов. Он определяет используемые синтаксические конструкции, структуру запроса.
Можно сказать, что текст запроса состоит из следующих секций:
•    Описание запроса
•    Объединение запросов
•    Упорядочивание результатов
•   Автоупорядочивание
•    Описание итогов
Из всех вышеуказанных секций обязательно наличие только описания запроса. В свою очередь, данная секция имеет следующую структуру:
Выбрать [Различные] [Первые <Количество>] <Список полей выборки>
[Из <Список источников>]
[Где <Условие отбора>]
[Сгруппировать По <Поля группировки>]
[Имеющие <Условия отбора>]
[Для изменения [[ОГ]<Список таблиц верхнего уровня>]]
Уже в рамках данной секции обязательно только наличие «Выбрать» и указание полей выборки. Все остальные структурные элементы могут опускаться.


Сводная таблица


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

Процедура ВыполнитьОтчет (ТабДок) Экспорт Макет = ПолучитьМакет ("ПродолжениеМакет");

 Секция = Макет. ПолучитьОбласть ("Шапка");

 ТабДок. Вывести (Секция);

 Секция = Макет. ПолучитьОбласть ("Позиция");

 СекцияП = Макет. ПолучитьОбласть ("Поставщик");

 Запрос = Новый Запрос;

 ТекстЗагтроса = "ВЫБРАТЬ |Контрагент Как Поставщик, Товары |ИЗ Документ. Приходная
Запрос. Текст = ТекстЗапроса;

 РезультатЗапроса = Запрос. Выполнить ();

 ВыборкаОсновная = РезультатЗапроса. Выбрать ();

 Пока ВыборкаОсновиая. Следующий () Цикл СекцияП. Параметры. Наименование = ВыборкаОсновная. Поставшик;

 ТабДок. Вывести (СекцияП);

 ВыборкаДетальная = ВыборкаОсновная. Товары. Выбрать ();

 Пока ВыборкаДетальная. Следующий () Цикл Секция. Параметры. Наименование = ВыборкаДетальная. Номенклатура;

 Секция. Параметры. Колво = ВыборкаДетальная. Количество;

 ТабДок. Вывести (Секция, ВыборкаДетальная. Уровень ());

 КонецЦикла;

 КонецЦикла;

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

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

Процедура КнопкаСформироватьНажатие (Элемент) Запрос = Новый Запрос;

 Запрос. Текст = "ВЫБРАТЬ |            Ссылка, Контрагент КАК Покупатель, |            Ссылка. КонтактноеЛицо КАК Контакт, |            Номенклатура КАК Номенклатура, |            Количество, |            Сумма | из |            Документ. Расходная. Товары |Где ссылка. Дата Между &НачПериода И &КонПериода



 Сводная таблица


|ИТ0ГИ СУММА (Количество), СУММА (Сумма) ПО |           Покупатель, Номенклатура, |            Контакт [АВТОУПОРЯДОЧИВАНИЕ";

 Запрос. УстановитьПараметр ("НачПериода", НачПериода);

 Запрос. УстановитьПараметр ("КонПериода", КонецДня (КонПериода));

 Результат = Запрос. Выполнить ();

 СводнаяТаблица = ЭлементыФормы. ПТД. ВстроеиныеТаблицы. СводнаяТаблица1;

 СводнаяТаблица. ИсточникДанных = Результат;

 Если СводнаяТаблица. Колонки. Количество () = 0 И Сводная Таблица. Строки. КоличествоО — 0 И СводнаяТаблица. Данные. Количество () = 0 Тогда // Зададим начальное расположение измерений          на осях СводнаяТаблица. Обновление = Ложь;

 Сводная Таблица. Колонки. Добавить ("Покупатель");

 СводнаяТаблица. Строки. Добавить ("Номенклатура");

 СводнаяТаблица. Данные. Добавить ("Количество");

 СводнаяТаблица. Данные. Добавить (" Сумма");

 СводнаяТаблица. Обновление = Истина;

 КонецЕсли;

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

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


Таблица документов


Любому документу соответствует следующая таблица:













































Документ.<Имя>

Поле

Тип

Ссылка

ДокументСсылка.<Имя>

Пометка удаления

Булево

Номер

Число, Строка

Дата

Дата

Проведен

Булево

Представление

Строка

МоментВремени

Момент времени

<Реквизиты>

Тип реквизита

<Табличные частей

РезультатЗапроса

Практикум № 12_________________________________________
1. Напишите текст запроса, позволяющий посмотреть поля таблицы документа   «Приходная».   Сравните  с  таблицей,   представленной выше.
2.   Напишите  текст запроса,   позволяющий получить  данные  из табличной части документа (источником будет являться вложенная таблица).
3.     Напишите    текст    запроса,     который    выдаст     перечень контрагентов, которые являются и поставщиками и покупателями.


Таблица констант


Таблица констант имеет имя «Константы». Имена полей таблицы соответствуют именам констант, заданным в конфигураторе.
Запишем в окне текстового документа следующий текст:
Выбрать
Константы. НазваниеОрганизации,
Константы. ЮридическийАдрес
После обязательного ключевого слова «Выбрать» следует описание полей выборки. Описание полей разделяются запятыми. После последнего описанного поля запятая не ставится.


Таблица плана видов характеристик


Состав таблицы:





























































ПланВидовХарактеристик.<Имя>


Поле

Тип


Код

Строка


Наименование

Строка


Пометка удаления

Булево


Предопределенный

Булево


Представление

Строка

Родитель

ПланВидовХарактеристикСсылка.<Имя>

Ссылка

СправочникСсылка.<Имя>

ЭтоГруппа

Булево

<Реквизиты>

Тип реквизита

<Табличные части>

РезультатЗапроса

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


Таблица получения оборотов


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

































РегистрНакопления.<Имя>. Обороты (Начало, Окон чание, Периодичность, Условие)

Поле

Тип

Период

Дата

Регистратор

ДокументСсылка.<Имя>

<Измерение>

Тип измерения

<Ресурс>Оборот

Число

<Ресурс>Приход

Число

<Ресурс>Расход

Число

Параметры   «Начало»,   «Окончание»   задают   период,   за   который получаются обороты.
В  качестве  периодичности  может задаваться  один  из  следующих вариантов:
•    Период (не разворачивать)
•    Регистратор
•    День
•    Неделя
•    Месяц
•    Квартал
•   Год Посмотреть таблицу можно с помощью запроса:





Выбрать
*
Из РегистрНакопления. ОстаткиНоменклатуры. Обороты („Неделя)



Таблица получения остатков и оборотов


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






















































РегистрНакопления.<Имя>ОстаткиИОбороты (Начало, Окончание,     Периодичность,     Метод     дополнения, Условие)

Поле

Тип

Период

Дата

Регистратор

ДокументСсылка.<Имя>

НомерСтроки

Число

<Измерение>

Тип измерения

<Ресурс>Оборот

Число

<Ресурс>Приход

Число

<Ресурс>Расход

Число


<Ресурс>НачальныйОстаток

Число


<Ресурс>КонечныйОстаток

Число


Возможные значения метода дополнения:
•    Движения (выдаются те периоды, в которых были движения)
•    ДвиженияИГраницыПериода     (выбираются      периоды,      по которым были движения и существовали остатки на начало и конец)
Практикум 23——————————————————————————————————1.  Напишите текст запроса, который при выполнении позволил бы получать     остаток     выбранной     номенклатурной     позиции     на интересующую дату.
2.  Напишите текст запроса, который при выполнении выдавал бы данные, необходимые для «оборотки по месяцам» (номенклатурная позиция,  остаток на начало периода, приход, расход,  остаток на конец периода) за выбранный интервал дат.
3.   Напишите   текст  запроса,   который  при  выполнении  выдаст данные о продажах номенклатуры по выбранному покупателю.


Таблица получения остатков


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























РегистрНакопления.<Имя>. Остатки (Период, Условие)


Поле

Тип

<Измерение>

Тип измерения

<Ресурс>Остаток

Число

Выбрать
*
ИзРегистрНакопления. ОстаткиНоменклатуры. Остатки (&НачПериода)



Таблица получения среза последних


Виртуальная таблица. Она предназначена для получения наиболее близких в «прошлое» записей регистра сведений на указанную дату (включительно). Включает только активные записи.





































РегистрСведений.<Имя>. СрезПоследних (Дата, Условие)

Поле

Тип

Период

Дата

Регистратор

ДокументСсылка.<Имя>

НомерСтроки

Число

Активность

Булево

<Измерение>

Тип измерения

<Ресурс>

Тип ресурса

<Реквизит>

Тип реквизита

Выбрать
¦
Из
РегистрСведений. Валюты. СрезПоследних (&НачПериода)
Таблица получения среза первых
Виртуальная таблица. Предназначена для получения наиболее близких в «будущее» записей регистра сведений на указанную дату (включительно). Включает только активные записи.
































РегистрСведений.<Имя>. СрезПервых (Дата, Условие)


Тип

Дата

ДокументСсылка.<Имя>

Число

Булево

Тип измерения

Тип ресурса

Тип реквизита

Практикум 22___________________________________________
Напишите текст запроса, результатом выполнения которого будет получение «истории» значений выбранной валюты.
Напишите текст запроса, результат выполнения которого будет получение значения курса выбранной валюты, действующего на выбранную дату. (При этом не надо пользоваться конструкцией «Где» запроса).


Таблицы информационной базы данных


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


Таблицы, поля базы данных


Таблицы в «1С: Предприятии 8.0» подразделяются на два основных класса: реальные и виртуальные.
Реальные таблицы хранятся в базе данных. В случае использования реальной таблицы могут присутствовать вычисляемые поля, значения которых вычисляются как функция нескольких разных полей.
Виртуальные таблицы в базе данных не хранятся. При обращении к информации виртуальных таблиц система автоматически собирает информацию реальных таблиц для выполнения запроса. Виртуальная таблица может быть параметризована.
Отдельный подкласс таблиц образуют так называемые объектные таблицы. Эти таблицы предназначены для хранения состояния объектов системы, таких как справочники, документы и т. д. В таких таблицах присутствует поле «Ссылка» (ссылка на объект, данные которого содержит текущая запись таблицы).
В свою очередь любая таблица состоит из набора полей. В качестве поля таблицы может фигурировать:
•    «Обычное   поле»   (содержащее   какое-либо   значение,   либо значение типа «Null»)
•    вложенная таблица
Основное отличие обычного поля от вложенной таблицы состоит в том, что в рамках одной записи обычному полю соответствует одно единственное значение, а вложенной таблице соответствует значение типа «РезультатЗапроса» с заранее заданным набором колонок.
Можно проиллюстрировать данное понятие следующим образом:



















































Дата

Время

Контрагент



Товар

Кол-во

Сумма

Товары

01,01,03

11:00

ООО «Все»

1

Карандаш

5

100

2

Ручка

3

200

02,03,03

11:51

ООО
«Куда»

1

Кнопки

10

20


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


Таблицы регистра сведений Основная таблица











































РегистрСведений.<Имя>

Поле

Тип

Период

Дата

Регистратор

ДокументСсылка.<Имя>

НомерСтроки

Число

Активность

Булево

МоментВремени

Момент времени

<Измерение>

Тип измерения

<Ресурс>

Тип ресурса

<Реквизит>

Тип реквизита

Практикум 21 _____________________________________________
1.     Напишите    текст    запросов,     позволяющих    просматривать наполнение регистров сведений «Валюты», «ШтатноеРасписание»
2.   Сформируйте текст запроса, выполнение которого приведет к получению данных о курсах валют на выбранную дату.


Типы данных


Одним из основных свойств некоторых объектов конфигурации является «тип данных». Это свойство определяет, какого рода информацию может содержать объект конфигурации.
Различают три основных группы типов данных:
•    Примитивные  типы  (в  их  состав  входят  базовые  типы данных)
•    Типы    данных,    «появившиеся»    после    определения    в конфигурации объектов конфигурации.
•    «Другие»   типы,    не   относящиеся   к   примитивным   и «добавляемым», но поддержка которых во встроенном языке есть изначально.
К базовым типам данных относятся:
•    Число (десятичное число)
•    Строка    (строка    фиксированной,    или    неограниченной длинны)
•    Дата (дата, время)
•    Булево (истина или ложь)
Кроме вышеперечисленных существует еще ряд типов, которые относятся к примитивным: это «Тип», «Неопределено», «Null».
Отдельно хочется сказать про такой тип как «Хранилище значений». Если определить реквизиту такой тип, то в нем можно хранить «все что угодно» (включая двоичные данные, картинки, файлы).


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


Рассмотрим следующий запрос: Выбрать
НазваниеОрганизации, ЮридическийАдрес
Из
Константы
Источник запроса (под источником запроса обычно понимается таблица, реальная или виртуальная) указывается после ключевого слова «Из». В общем случае источников может быть несколько. Описание источников разделяется запятыми, после последнего источника запятая не ставится.
Следующий запрос показывает содержимое всех полей в таблице констант
Выбрать
*
Из
Константы
Исходя из назначения констант, таблица «Константы» всегда содержит одну строку.






























































































Таблица справочников
Каждый справочник представлен таблицей, обладающей следующим набором полей:


Справочник. <Имя>


Поле

Тип


Код

Число, Строка


Наименование

Строка


Представление

Строка


Пометка удаления

Булево


Предопределенный

Булево


ЭтоГруппа

Булево


Родитель

СправочникСсылка.<Имя>


Владелец

СправочникСсылка.<ИмяВ>


Ссылка

СправочникСсылка.<Имя>


<Реквизиты>

Тип реквизита


<Табличные части>

РезультатЗапроса


Для просмотра состава полей справочника «Физические лица» можно воспользоваться следующим запросом:


Выбрать
*
Из
Справочник. ФизическиеЛица


Выбрать
*
Из
Справочник. ФизическиеЛица. ТрудоваяДеятельность

Указание вложенной таблицы как источника, конструкции «Различные», Первые N.
В   качестве  примера  получения  данных  из  вложенной  таблицы (табличной   части   справочника)   можно   рассмотреть   следующий запрос:


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


Универсальные коллекции значений


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


Упорядочивание результатов запроса


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





Выбрать
*
Из Документ. Приходная Упорядочить По
Контрагент Иерархия

Следующий текст запроса позволит упорядочить по иерархии:









Выбрать
Наименование, Количество, Сумма Из Документ. Приходная. Товары Правое Внешнее Соединение Справочник. Номенклатура Как Номен По Номен. Ссылка=Номенклатура Упорядочить По Наименование Иерархия


Выбрать
*
Из
Документ. Приходная Упорядочить По Контрагент Возр, Номер Убыв

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


Ведение сложных периодических расчетов


Одним из ярких примеров «сложных периодических расчетов» является расчет заработной платы физических лиц.


Виды модулей


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


Встроенные функции в языке запросов, операция выбора


•    Подстрока (Выражение, Начальный символ, Сколько отрезать)
•    Год (выражение)
•    Квартал (выражение)
•    Месяц (выражение)
•    ДеньГода (выражение)
•    День (выражение)
•    Неделя (выражение)


Встроенный программный язык


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


Ввод на основании


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





Процедура ОбработкаЗаполнения (Основание) Если ТипЗнч (Основание)=Тип ("СправочникСсылка. ФизическиеЛица") Тогда Сотрудник = Основание. Ссылка;

 Для Каждого ТекСтрокаТД Из Основание. ТрудоваяДеятельность Цикл

 Ввод на основании






НоваяСтрока = ТрудоваяДеятельность. Добавить ();

 НоваяСтрока. Должность = ТекСтрокаТД. Должность;

 НоваяСтрока. НачалоРаботы = ТекСтрокаТД. НачалоРаботы;

 НоваяСтрока. ОкончаниеРаботы = ТекСтрокаТД. ОкончаниеРаботы;

 НоваяСтрока. Организация = ТекСтрокаТД. Организация;

 КонецЦикла;

 КонецЕсли;

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

Практикум 8___________________________________________
Создайте документ «Счет», который будет вводиться на основании документа «Расходная». У документа «Счет» должен быть один реквизит «Покупатель», одна табличная часть «Товары», содержащая реквизиты «Номенклатура», «Количество», «Стоимость». Запретите проведение, настройте все необходимые формы документа.


Выгрузка, загрузка информационной базы


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



Выполнение и работа с запросами во встроенном языке


Для формирования запросов, выборки и обработки результатов запросов в языке предусмотрен специальный набор объектов. С помощью этих объектов выполняется формирование запроса, обход записей запроса и т. д.
Рассмотрим в качестве первого примера отчет «Знакомство с Запросом».
При создании отчета определим у него следующие реквизиты:
•    НачПериода тип «Дата» состав «Дата+Время»
•    КонПериода тип «Дата» состав «Дата+Время»
•    ЗначениеСсылка тип «СправочникСсылка»
•    ЗначениеЧисло тип «Число»
•    ЗначениеСтрока тип «Строка»
•    ЗначениеБулево тип «Булево» Определена табличная часть «ТЧ»:
•    Реквизит        табличной         части         «ТЧСсылка»,         тип «СправочникСсылка»
При настройке диалога основной формы отчета необходимо разместить элементы управления, связанные с реквизитами и табличной частью отчета на второй закладке. На первую необходимо поместить поле текстового документа «ПолеТД» и табличное поле «тПоле».
У поля текстового документа в свойстве «Расширение» проставить значение «Язык запросов». У табличного поля определить тип значения «Таблица значений».









Текст процедуры,  которая выполняется  при  нажатии  на  кнопку «Сформировать» приводится ниже:

Процедура КнопкаСформироватьНажатие (Элемент) Запрос=Новый Запрос;

 Запрос. Текст = ЭлементыФормы. ПолеТД. ПолучитьТекст ();

 Запрос. УстановитьПараметрС'ТЧ", ТЧ. ВыгрузитьКолонку ("ТЧСсылка"));

 Запрос. УстановитьПараметр ("НачПериода", Нач11ериода);

 Запрос. УстановитьПараметр ("КонПериода", КонПериода);

 Запрос. УстановитьПараметр ("ЗначениеСсылка", ЗначениеСсылка);

 Запрос. УстановитьПараметр ("ЗначениеЧисло", ЗначениеЧисло);

 Запрос. УстановитьПараметр ("ЗначениеБулево", ЗначениеБулево);

 Запрос. УстановитьПараметр ("ЗначениеСтрока", ЗначениеСтрока);

РезультатЗапроса = Запрос. Выполнить ();

 ЭлементыФормы. тПоле. Значение=РезультатЗапроса. Выгрузить ();

 //ЭлементыФормы. тПоле. ЧередованиеЦветовСтрок=Истина;

 ЭлементыФормы. тПоле. СоздатьКолонки ();

 Для Каждого Колонка из ЭлементыФормы. тПоле. Колонки Цикл Колонка. Ширина= 15;

 КонецЦикла;

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


 Выполнение и работа с запросами во встроенном языке



Запросы


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


Журналы документов


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

 Журналы документов

Практикум № 5;

_____________________________
Создайте справочник «Должности», без реквизитов, табличных частей, без иерархии. Редактируется в списке.
Создайте документ «Прием на работу». У документа нет табличных частей, но есть следующие реквизиты: «Сотрудник», «Подразделение», «Должность». Определите печатную форму.


Значения субконто


Таблица хранит значения субконто записей регистра бухгалтерии. Связь с таблицей записей регистра бухгалтерии осуществляется через поля;

 «Регистратор», «Номер строки». Поле «Корреспонденция» показывает, к какой части записи относится данное значение.














































РегистрБухгалтерии.<Имя>. Субконто

Поле

Тип

МоментВремени

Момент времени

Период

Дата

Регистратор

Любая ссылка

НомерСтроки

Число

ВидДвижения

Вид движения бухгалтерии

ВидСубконто

ПланВидовХарактеристикСсылка. Имя

Значение

Тип субконто

Выбрать * Из РегистрБухгалтерии. Основной. Субконто


Практикум 24____________________________________________
Напишите текст запроса, который при выполнении выдаст данные по счету дебета, счету кредита, сумме, используемых субконто.


















Выбрать * Из РегистрБухгалтерии. Основной

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


Выбрать * Из РегистрБухгалтерии. Основной. ДвиженияССубконто


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




























































































РегистрБухгалтерии.<Имя>. ДвиженияССубконто (<Начало периода>, <Конец периода>, <Условие>)


Поле

Тип

МоментВремени

Момент времени

Период

Дата

Регистратор

Любая ссылка

НомерСтроки

Число

Активность

Булево

СчетДт

ПланСчетовСсылка. Имя. СчетДт

СубконтоДт<№ >

Значение субконто

ВидСубконто Дт<№ >

ПланВидовХарактеристикСсылка. Имя

СчетКт

ПланСчетовСсылка. Имя. СчетКт

СубконтоКт<№ >

Значение субконто

ВидСубконтоКт<№ >

ПланВидовХарактеристикСсылка. Имя

<Измерение>

Тип измерения

<Измерение>Дт

Тип измерения

<Измерение>Кт

Тип измерения

<Ресурс>

Число

<Ресурс>Дт

Число

<Ресурс>Кт

Число

<Реквизит>

Тип реквизита

Выбрать * Из РегистрБухгалтерии. Основной. Остатки






    Бухгалтерия: Автоматизация - Система 1С