ПГУТИ, основы конфигурирования и программирования в КИС (лабораторные работы)
| 03.06.2026, 12:18 | |
Лабораторная работа №1. Документы Цель работы: изучить объект конфигурации Документ, основные формы Документа. Типы данных, типообразующие объекты конфигурации. Назначение и функциональность Обработчика событий. Модули, виды модулей. Порядок выполнения лабораторной работы Задание №1. Создание документа «Приходная накладная». 1. Запустите «1С:Предприятие». Открыть необходимо созданную базу «Знакомство с платформой» и запустите работу в режиме конфигуратора. 2. Добавьте новый объект конфигурации Документ. На закладке Основные задайте имя документа – ПриходнаяНакладная. На основании имени платформа автоматически заполнит его синоним. 3. Представление объекта задавать нет необходимости, вместо него будет использоваться Синоним объекта. Представление списка, наоборот, задайте во множественном числе как Приходные накладные. 4. Нажмите Далее и перейдите на закладку Подсистемы. По логике конфигурации список приходных накладных должен быть доступен в разделах Учет материалов и Бухгалтерия. К первому разделу этот документ имеет прямое отношение, а для бухгалтерского анализа всегда может понадобиться список документов, отражающих поступление материалов. Поэтому отметьте в списке подсистем эти подсистемы. 5. Создайте реквизит документа с именем Склад. 1. Выберите для реквизита ссылочный тип данных СправочникСсылка.Склады. Этот тип стал доступен в конфигурации после создания объекта конфигурации Справочник Склады (рис. 8.1). 2. Работа в автоматизируемой фирме построена таким образом, что, как правило, все поступающие товары приходуются на основной склад. Поэтому в палитре свойств для созданного реквизита Склад документа найдите свойство Значение заполнения. В качестве значения этого свойства выберите предопределенный элемент справочника Склады – Основной. 3. Добавьте в документ табличную часть с именем Материалы. Кроме имени табличной части установите свойство Проверка заполнения в значение Выдавать ошибку. Тем самым задано условие, что документ Приходная накладная обязательно должен содержать табличную часть, то есть список приходуемых материалов. Иначе будет выдано сообщение об ошибке, и документ не будет сохранен. 4. Создайте реквизиты табличной части Материалы. Для этого нажмите кнопку Добавить реквизит в разделе описания табличных частей документа: 1. Материал, тип СправочникСсылка.Номенклатура; 2. Количество, тип Число, длина 15, точность 3, неотрицательное; 3. Цена, тип Число, длина 15, точность 2, неотрицательное; 4. Сумма, тип Число, длина 15, точность 2, неотрицательное. 5. Для каждого реквизита табличной части также установите свойство Проверка заполнения в значение Выдавать ошибку. Тем самым при записи документа будет проверяться на заполнение не только табличная часть в целом, но и ее отдельные реквизиты. 6. Перейдите на закладку Нумерация и убедитесь, что свойство Автонумерация включено. Это обеспечит автоматическую генерацию уникальных номеров для создаваемых документов. 7. Отредактируйте командный интерфейс, чтобы в разделе Учет материалов была доступна команда создания новых документов. 8. Запустите «1С:Предприятие» в режиме отладки и протестируйте получившийся документ. В открывшемся окне «1С:Предприятия» должно быть отражено, что в разделах Бухгалтерия и Учет материалов появилась команда Приходные накладные для открытия списка приходных накладных. Название этой команды определяется свойством Представление списка, которое было задано для этого документа. Кроме того, в разделе Учет материалов в подменю Создать добавилась команда Приходная накладная для создания новых документов этого вида. Название этой команды определяется синонимом, так как Представление объекта для этого документа не задавали (рис. 8.2). Задание №2. Добавление приходных накладных. 1. Выполните команду Приходная накладная из подменю Создать в разделе Учет материалов и создайте новую приходную накладную. Откроется форма документа. Заголовок этой формы Приходная накладная совпадает с синонимом документа. Система автоматически подставит текущую дату создания документа и нулевое время, так как документ еще не проведен. В качестве времени документа при оперативном проведении ему присваивается оперативная отметка времени. Поле Номер не заполнено, но система сама сгенерирует для нового документа уникальный номер, так как свойство Автонумерация для документа включено по умолчанию. Новый номер будет сохранен в момент записи документа. Обратите внимание, что склад уже заполнен значением Основной, как и было задано в свойствах этого реквизита. 2. Заполните табличную часть приходной накладной материалами для ремонта телевизоров так, как показано на рисунке (рис. 8.3). 3. Нажмите Провести и закрыть. Обратите внимание, что при переходе к еще незаполненной колонке Материал (в табличной части документа) автоматически открывается окно выбора значения из справочника Номенклатура, так как этот реквизит имеет ссылочный тип данных и ссылается на справочник Номенклатура. Как только начинается ввод названия материала в это поле, платформа автоматически найдет материалы, наименование которых начинается с введенных символов, и предложит их для выбора. А также при нажатии кнопки Показать все открывается форма для выбора элементов этого справочника. Документ будет сохранен и проведен, ему будет присвоен автоматически сгенерированный системой номер и текущее время проведения документа. 4. Аналогичным образом создайте второй документ, который будет приходовать на Основной склад материалы для установки стиральных машин. 5. Чтобы просмотреть список созданных документов, выполните команду Приходные накладные. В форме списка видно два созданных документа, отмеченных пиктограммой, указывающей на то, что документы проведены (зеленая галочка в пиктограмме документа). Задание №3. Автоматический пересчет суммы в строках документа. При заполнении документа приходится вводить сумму в каждой строке. Это неудобно, и возникает естественное желание автоматизировать работу документа так, чтобы сумма вычислялась автоматически каждый раз при изменении цены или количества материалов в строке. Для этого необходимо сначала создать собственную форму документа, а затем воспользоваться возможностями встроенного языка. До сих пор использовались предопределенные формы объектов, которые система «1С:Предприятие» по умолчанию создавала сама. Теперь возникла необходимость слегка изменить логику работы формы документа, поэтому нужно создать свою собственную форму документа ПриходнаяНакладная для того, чтобы в ней с помощью встроенного языка описать тот алгоритм, который нужен. И система будет использовать созданную форму вместо формы по умолчанию. 1. В конфигураторе откройте окно редактирования объекта конфигурации Документ ПриходнаяНакладная. В этом окне нас интересует закладка Формы. Ни одна из основных форм документа пока не задана. Для того чтобы создать форму документа, нажмите кнопку открытия со значком лупы в поле ввода или кнопку Добавить над списком форм. Система вызовет еще один полезный инструмент разработчика – конструктор формы. 2. Выберите тип формы Форма документа и нажмите кнопку Готово, согласившись тем самым со всем, что предложила система. Обратите внимание, что в дереве объектов конфигурации у объекта конфигурации Документ ПриходнаяНакладная появилась форма ФормаДокумента, а на экране открылось окно редактора форм, содержащее эту форму (рис. 8.4). Необходимо, чтобы каждый раз, когда меняется значение в поле Количество или в поле Цена, в поле Сумма автоматически устанавливалось значение, равное произведению значений полей Количество и Цена. Очевидно, что для этого нужно написать на встроенном языке команду, похожую на Сумма = Количество*Цена, которая будет выполняться при изменении значения поля Количество или Цена. 3. Дважды щелкните на элементе формы МатериалыКоличество или правой кнопкой мыши откройте для него палитру свойств (пункт контекстного меню Свойства). Прокрутив список до конца, виден перечень событий, которые могут быть связаны с этим полем. Необходимо выбрать событие ПриИзменении, которое возникает после изменения значения поля. Найдите его в списке событий и нажмите кнопку открытия со значком лупы в поле ввода. Система предложит окно для выбора типа обработчика события, который необходимо создать. Оставьте без изменения вариант Создать на клиенте, предложенный по умолчанию. Система создала шаблон процедуры обработчика этого события в модуле формы и открыла закладку Модуль редактора формы (рис. 8.5). 4. В модуль формы, в процедуру МатериалыКоличествоПриИзменении() добавьте следующий текст (листинг 8.1). Назначение этих строк. В первой строке сначала создается переменная СтрокаТабличнойЧасти, в которую будет помещен объект, содержащий данные, находящиеся в строке табличной части, которую нужно пересчитать. Мягкая типизация данных встроенного языка позволяет сделать это, не объявляя переменную и ее тип заранее. Создается переменная прямо в ходе работы, и ее тип определяется типом значения, которое она содержит. Поскольку мы находимся в модуле формы, то в нем доступны все свойства и методы объекта встроенного языка УправляемаяФорма. Поэтому можно обращаться к ним напрямую. В данном случае после знака равенства происходит обращение к коллекции элементов формы, используя одно из свойств объекта УправляемаяФорма – свойство Элементы. Коллекция элементов формы является объектом встроенного языка ВсеЭлементыФормы, содержащим все элементы формы. То есть это программный аналог корня дерева элементов формы. Каждый элемент формы можно получить, указав его имя в качестве свойства этого объекта, то есть через точку от него. В данном случае мы обращаемся к табличной части документа Материалы (Элементы.Материалы). Табличная часть документа представляет собой объект встроенного языка ТаблицаФормы. Получить ту строку, в которой в настоящее время осуществляется редактирование, можно при помощи свойства программного объекта ТаблицаФормы – ТекущиеДанные (Элементы.Материалы.ТекущиеДанные). Таким образом, в результате выполнения первой строки процедуры обработчика переменная СтрокаТабличнойЧасти будет содержать объект ДанныеФормыСтруктура. Этот объект содержит данные, находящиеся в текущей строке табличной части документа (Элементы.Материалы.ТекущиеДанные). Получив этот объект, можно обратиться к данным конкретной колонки табличной части, указав имя колонки в качестве свойства объекта. Например, используя обращение СтрокаТабличнойЧасти.Количество, получается число, которое находится в редактируемой строке в колонке Количество. Таким образом, во второй строке процедуры обработчика вычисляется значение колонки Сумма как произведение значений колонок Количество и Цена. 5. Запустите «1С:Предприятие» в режиме отладки, откройте список документов Приходные накладные и откройте любой из двух созданных документов. Проверьте, будет ли пересчитана сумма при изменении показателя количество. Задание №4. Одна процедура для обработки нескольких событий. На данный момент при изменении количества в любой строке документа Приходная накладная сумма в этой строке пересчитывается автоматически. Теперь необходимо сделать тоже самое и для поля Цена. Подобное автоматическое заполнение поля Сумма может понадобиться и в других документах. Поэтому необходимо поместить расчет суммы в некоторое «общедоступное» место, чтобы разные документы, имеющие аналогичные реквизиты табличной части, могли использовать этот алгоритм. Для описания таких «общедоступных» мест служат объекты конфигурации Общий модуль, расположенные в ветке Общие - Общие модули. Процедуры и функции, содержащиеся в этих модулях, могут быть доступны для любых объектов конфигурации. Поэтому необходимо создать общий модуль и перенести в него процедуру расчета суммы. А в документе просто оставить вызовы этой процедуры из общего модуля. 1. Добавьте объект конфигурации Общий модуль. Для этого раскройте ветвь Общие в дереве объектов конфигурации. Затем выделите ветвь Общие модули и нажмите кнопку Добавить в командной панели окна конфигурации. 2. Откроется окно для ввода текста модуля и окно палитры его свойств. Присвойте имя модулю – РаботаСДокументами и установите в его свойствах флажок Клиент (управляемое приложение), а флажок Сервер снимите. Это значит, что экземпляры этого модуля будут скомпилированы в контексте тонкого клиента и в контексте веб-клиент. 3. Внесите в модуль следующий текст (листинг 8.2). 4. Теперь в модуле формы измените текст обработчика МатериалыКоличествоПриИзменении (листинг 8.3). 5. Проверьте, как это работает, и убедитесь, что ничего не изменилось. 6. Создайте обработчик события ПриИзменении для поля табличной части МатериалыЦена так же, как сделали это для поля МатериалыКоличество, и повторите в нем вызов процедуры РассчитатьСумму из общего модуля (листинг 8.4). 7. Запустите «1С:Предприятие» в режиме отладки и убедитесь, что теперь сумма в строках табличной части документов ПриходнаяНакладная пересчитывается как при изменении количества, так и при изменении цены. Задание №5. Создание документа «Оказание услуги». 1. Добавьте новый объект конфигурации Документ и назовите его ОказаниеУслуги. 2. На закладке Основные определите, как будет представлен документ в интерфейсе «1С:Предприятия». Представление объекта задавать нет необходимости, вместо него будет использоваться Синоним объекта. Представление списка задайте как Оказание услуг. 3. На закладке Подсистемы отметьте, что документ будет доступен в подсистемах Оказание услуг и Бухгалтерия. 4. На закладке Данные создайте реквизиты документа: 1. Склад, тип СправочникСсылка.Склады. Выберите для свойства Значение заполнения предопределенный элемент Основной справочника Склады; 2. Клиент, тип СправочникСсылка.Клиенты. Установите свойства Проверка заполнения в значение Выдавать ошибку; 3. Мастер, тип СправочникСсылка.Сотрудники. Установите свойство Проверка заполнения в значение Выдавать ошибку. 5. Создайте табличную часть этого документа ПереченьНоменклатуры с реквизитами: 1. Номенклатура, тип СправочникСсылка.Номенклатура; 2. Количество, тип Число, длина 15, точность 3, неотрицательное; 3. Цена, тип Число, длина 15, точность 2, неотрицательное, 4. Сумма, тип Число, длина 15, точность 2, неотрицательное. 6. Установите для табличной части в целом и для каждого ее реквизита свойство Проверка заполнения в значение Выдавать ошибку. 7. На закладке Формы создайте основную форму документа. 8. Для поля ПереченьНоменклатурыКоличество создайте обработчик события ПриИзменении (выполняющийся на клиенте), в котором будет возможность вызывать процедуру РассчитатьСумму из общего модуля РаботаСДокументами. При этом откроется модуль формы с шаблоном обработчика события ПереченьНоменклатурыКоличествоПриИзменении, который пока заполнять не нужно. 9. Перейдите в окно элементов формы на закладку Форма и аналогичным образом создайте обработчик события ПереченьНоменклатурыЦенаПриИзменении для поля ПереченьНоменклатурыЦена. 10. Модуль формы документа ОказаниеУслуги заполните следующим образом (листинг 8.5). 11. Отредактируйте командный интерфейс, чтобы в разделе Оказание услуг была доступна команда создания новых документов. 12. В результате в дереве объект в конфигурации документ ОказаниеУслуги должен выглядеть следующим образом (рис. 8.6). 13. Запустите «1С:Предприятие» в режиме отладки. В разделе Оказание услуг выполните команду создания документа Оказание услуги из подменю Создать и заполните его следующим образом (рис. 8.7). Обратите внимание, что склад Основной подставляется по умолчанию, а для полей Мастер и Клиент выполняется проверка заполнения. А также при вводе цены и количества в табличную часть документа Оказание услуги сумма пересчитывается по созданному алгоритму. Содержание отчёта: 1. Титульный лист. 2. Цель работы. 3. Порядок выполнения работы согласно заданию 1-5. 4. Полученный вариант информационной базы с соответствующим добавлением объектов конфигурации. 5. Выводы по работе. 6. Ответы на контрольные вопросы. Контрольные вопросы 1. Для чего предназначен объект конфигурации «Документ»? 2. Какими характерными особенностями обладает документ? 3. Для чего предназначены реквизиты и табличные части документа? 4. Какие существуют основные формы документа? 5. Что такое проведение документа? 6. Как создать объект конфигурации «Документ» и описать его основную структуру? 7. Как создать новый документ и заполнить его данными? 8. Как создать собственную форму документа? 9. Что такое конструктор форм? 10. Что такое редактор форм? 11. Что такое элементы формы? 12. Что такое события, и с чем они связаны? 13. Что такое обработчик события, и как его создать? 14. Что такое модуль, и для чего он нужен? 15. Зачем нужны общие модули? 16. Что такое типообразующие объекты? Лабораторная работа №2. Регистр накопления Цель работы: познакомиться с объектом конфигурации Регистром накопления, предназначенным для описания структуры накопления данных. Создать Регистр накопления. Порядок выполнения лабораторной работы Задание №1. Создание объекта конфигурации Регистр накопления. Необходимо создать в существующей конфигурации «Знакомство с платформой» новый объект конфигурации Регистр накопления. 1. Запустите систему «1С:Предприятие». В открывшемся диалоге из списка информационных баз, необходимо открыть созданную ранее базу «Знакомство с платформой» и запустить ее работу в режиме конфигуратора. 2. Раскройте ветвь Общие в дереве объектов конфигурации, выделите в дереве объектов конфигурации ветвь Регистры накопления и нажмите кнопку Добавить в командной панели окна конфигурации. 3. В открывшемся окне редактирования объекта конфигурации на закладке Основные задайте имя регистра – ОстаткиМатериалов. Также необходимо задать и Расширенное представление списка как Движения по регистру Остатки материалов. Этот заголовок будет отображаться в окне списка записей регистра. 4. Нажмите Далее и перейдите на закладку Подсистемы. По логике конфигурации данный регистр должен быть доступен в разделах Учет материалов, Оказание услуг и Бухгалтерия. Поэтому необходимо отметить в списке подсистем эти подсистемы. 5. Выделите закладку Данные и перейдите к созданию структуры регистра. Выделите ветвь Измерения и нажмите кнопку Добавить в командной панели окна. Создайте измерения регистра: Материал, тип СправочникСсылка.Номенклатура; Склад, тип СправочникСсылка.Склады. Далее выделите ветвь Ресурсы и нажмите кнопку Добавить в командной панели окна. Создайте ресурс Количество с длиной 15 и точностью 3. В результате этих действий регистр ОстаткиМатериалов должен иметь следующий вид (рис. 2.1). Задание №2. Создание движений документа. 1. Откройте окно редактирования объекта конфигурации Документ ПриходнаяНакладная. Перейдите на закладку Движения, откройте список Регистры накопления и отметьте регистр накопления ОстаткиМатериалов (рис. 2.2). 2. Нажмите кнопку Конструктор движений. Конструктор устроен просто. В списке Регистры перечислены регистры, в которых документ может создавать движения. В данном случае там пока один регистр ОстаткиМатериалов. В списке Реквизиты документа должны находиться исходные данные для создания движений – реквизиты документа ПриходнаяНакладная. В таблице Поле – Выражение должны быть заданы формулы, по которым будут вычисляться значения измерений и ресурсов регистра при записи движений. 3. В поле выбора Табличная часть выберите табличную часть документа – Материалы. Далее нажмите кнопку Заполнить выражения. В нижнем окне сформируется соответствие полей (измерений и ресурсов) регистра и выражений для их расчета (рис. 2.3). 4. Нажмите кнопку OK и обратите внимание на текст, сформированный конструктором в модуле документа ПриходнаяНакладная. Конструктор создал обработчик события ОбработкаПроведения объекта конфигурации Документ ПриходнаяНакладная, поместил его в модуль объекта и открыл текст модуля. 5. Откройте окно редактирования объекта конфигурации Регистр накопления ОстаткиМатериалов и перейдите на закладку Регистраторы, в списке документов, созданных в конфигурации, должен отобразиться отмеченный документ ПриходнаяНакладная, так как он был задан в модуле этого документа формирование движений в регистре ОстаткиМатериалов. Задание №3. Редактирование командного интерфейса. Необходимо чтобы в разделах Бухгалтерия, Оказание услуг и Учет материалов была доступна ссылка для просмотра записей регистра накопления. Команды открытия регистров также добавляются в панель команд разделов, но по умолчанию они невидимы, в отличие от команд открытия справочников и документов. 1. В дереве объектов конфигурации выделите ветвь Подсистемы, вызовите ее контекстное меню и выберите пункт Все подсистемы. В открывшемся окне слева в списке Подсистемы выделите подсистему УчетМатериалов. Справа в списке Командный интерфейс отразятся все команды выбранной подсистемы. 2. В группе Панель навигации.Обычное включите видимость у команды Остатки материалов и мышью перетащите ее в группу Панель навигации.См.также (рис. 2.4). 3. Далее выделите подсистемы ОказаниеУслуг и Бухгалтерия, в группе Панель навигации.Обычное включите видимость у команды Остатки материалов и перенесите ее в группу Панель навигации См.также. Задание №4. В режиме «1С:Предприятие». 1. Запустите «1С:Предприятие» в режиме отладки и протестируйте внесенные изменения. В открывшемся окне «1С:Предприятия» должно быть видно, что в панели команд разделов Бухгалтерия, Оказание услуг и Учет материалов в конце списка команд для открытия различных списков, перед подменю Создать, Отчеты (если они есть) появилась команда для открытия списка регистра Остатки материалов. 2. Чтобы проследить связь между проведением документа и накоплением информации в регистре, откройте список приходных накладных, выполнив команду Приходные накладные в разделе Учет материалов. Откройте Приходную накладную № 1 и нажмите Провести и закрыть, то есть перепроведите ее. То же самое сделайте для Приходной накладной № 2 (при наличии). 3. Далее выполните команду Остатки материалов и откройте список регистра накопления (рис. 2.5). При проведении приходных накладных появляются соответствующие записи в регистре накопления Остатки материалов. Задание №5. Команда перехода к движениям в форме документа. 1. В режиме Конфигуратора откройте форму документа ПриходнаяНакладная. В левом верхнем окне перейдите на закладку Командный интерфейс. 2. В разделе Панель навигации раскройте группу Перейти и увидите команду для открытия списка регистра накопления Остатки материалов. Эта команда была автоматически помещена в панель навигации формы документа, так как он является регистратором, то есть создает движения в регистре. Установите свойство Видимость для этой команды (рис. 2.6). 3. Запустите «1С:Предприятие» в режиме отладки и откройте Приходную накладную (рис. 2.7). Под заголовком формы документа появилась панель навигации, в которой существует возможность переходить к списку записей регистра Остатки Материалов, связанному с документом, и обратно к содержимому документа. Задание №6. Движения документа «Оказание услуги». 1. Создайте движения документа ОказаниеУслуги. 2. Измените тип движения регистра на Расход, так как документ ОказаниеУслуги должен расходовать материалы. Пиктограмма слева от названия регистра изменится на знак –. В поле выбора Табличная часть выберите табличную часть документа – ПереченьНоменклатуры. Содержание отчёта: 1. Титульный лист. 2. Цель работы. 3. Порядок выполнения работы согласно заданию 1-6. 4. Полученный вариант информационной базы с соответствующим добавлением объектов конфигурации. 5. Выводы по работе. 6. Ответы на контрольные вопросы. Контрольные вопросы 1. Для чего предназначен объект конфигурации «Регистр накопления»? 2. Почему следует использовать регистры, хотя необходимая информация содержится в других объектах? 3. Для чего нужны измерения регистра, ресурсы и реквизиты? 4. Что такое движения регистра, и что такое регистратор? 5. Как создать новый регистр накопления и описать его структуру? 6. Как создать движения документа с помощью конструктора движений? 7. Как средствами встроенного языка обойти табличную часть документа и обратиться к ее данным? 8. Как показать команды открытия списка регистра в интерфейсе конфигурации и в интерфейсе формы? Лабораторная работа №3. Простой отчет Цель работы: познакомиться с объектом конфигурации Отчет, предназначенным для описания алгоритмов, при помощи которых пользователь может получать необходимые ему выходные данные. Создать простой Отчет. Порядок выполнения лабораторной работы Задание №1. Создание объекта конфигурации Отчет. Необходимо создать в существующей конфигурации «Знакомство с платформой» новый объект конфигурации Отчет. 1. Запустите систему «1С:Предприятие». В открывшемся диалоге из списка информационных баз, необходимо открыть созданную ранее базу «Знакомство с платформой» и запустить ее работу в режиме конфигуратора. 2. Раскройте ветвь Общие в дереве объектов конфигурации, выделите в дереве объектов конфигурации ветвь Отчеты и нажмите кнопку Добавить в командной панели окна конфигурации. 3. В открывшемся окне редактирования объекта конфигурации на закладке Основные задайте имя – Материалы. 4. Откройте схему компоновки данных или кнопку открытия со значком лупы. 5. Так как у отчета еще не существует схемы компоновки данных, платформа предложит создать новую схему. Схема компоновки данных с точки зрения конфигурации является макетом, поэтому будет открыт конструктор макета, предлагающий выбрать единственный тип макета – Схема компоновки данных. Необходимо нажать кнопку Готово. Задание №2. Схема компоновки данных. Платформа создала новый макет, содержащий схему компоновки данных, и сразу же открыла конструктор схемы компоновки данных. Конструктор обладает большим количеством возможностей для визуального проектирования отчетов, но сейчас необходимо воспользоваться только самыми простыми его возможностями и определить те данные, которые необходимо видеть в результате работы отчета. 1. Нажмите кнопку Добавить или вызовите контекстное меню ветки Наборы данных (рис. 2.1). 2. Для того чтобы создать текст запроса, запустите конструктор запроса кнопкой Конструктор запроса. 3. Раскройте ветку РегистрыНакопления, здесь, что кроме таблицы регистра ОстаткиМатериалов, присутствуют еще несколько виртуальных таблиц, которые формирует система. (рис. 2.2). 4. Так как в отчете должны отражаться как остатки материалов, так и информацию об их поступлении и расходовании, необходимо выбрать виртуальную таблицу ОстаткиМатериалов.ОстаткиИОбороты. Перетащите мышью эту таблицу в список Таблицы и раскройте ее структуру (рис. 2.3). 5. Двойным щелчком мыши или соответствующими стрелками необходимо выбрать Склад и Материал. Затем выберите КоличествоНачальныйОстаток, КоличествоПриход, КоличествоРасход. В заключение выберите КоличествоКонечныйОстаток. В результате окно Поля должно быть заполнено следующим образом (рис. 2.4). 6. Нажмите OK и вернитесь в конструктор схемы компоновки данных. Задание №3. Настройки отчета. 1. Перейдите на закладку Настройки. В верхнем правом окне будет находиться иерархическая структура отчета. Для добавления нового элемента выделите в дереве структуры отчета корневой элемент Отчет и вызовите его контекстное меню. 2. Добавьте в отчет группировку (контекстное меню – Новая группировка). При этом не указывайте поле группировки, а просто нажмите OK (рис. 2.5). В структуре отчета появится группировка Детальные записи. 3. Для настройки полей, которые будут выводиться в результат отчета, необходимо перейти в нижнем окне настроек на закладку Выбранные поля и перенести мышью из списка доступных полей: Склад, Материал, КоличествоНачальныйОстаток, КоличествоПриход, КоличествоРасход, КоличествоКонечныйОстаток. 4. Перейдите на закладку Параметры и укажите, что параметры отчета Дата начала и Дата окончания будут включены в состав пользовательских настроек, и эти настройки будут находиться непосредственно в форме отчета, то есть будут быстрыми настройками. 5. Сначала укажите, что оба эти параметра будут использоваться в отчете – установите флажки в первой колонке. Затем выделите каждый из параметров, нажмите кнопку Свойства элемента пользовательских настроек и установите флажок Включать в пользовательские настройки (рис. 2.6). 6. Определите, что отчет будет отображаться в подсистемах Учет материалов, Оказание услуг и Бухгалтерия. Таким образом, ссылка на отчет автоматически попадет в панель команд этих разделов, в подменю Отчеты. Задание №4. В режиме «1С:Предприятие». 1. Запустите «1С:Предприятие» в режиме отладки и посмотрите, как работает отчет. 2. Задайте даты начала и окончания отчетного периода и нажмите кнопку Сформировать. Содержание отчёта: 1. Титульный лист. 2. Цель работы. 3. Порядок выполнения работы согласно заданию 1-4. 4. Полученный вариант информационной базы с соответствующим добавлением объектов конфигурации. 5. Выводы по работе. 6. Ответы на контрольные вопросы. Контрольные вопросы 1. Для чего предназначен объект конфигурации «Отчет»? 2. Для чего предназначена Система компоновки данных? 3. Что в себе содержит Отчет системы компоновки данных? 4. Как создать отчет с помощью конструктора схемы компоновки данных? 5. Как отобразить отчет в разделах прикладного решения? Лабораторная работа №4. Макет. Печатная форма Цель работы: познакомиться с объектом конфигурации Макет, предназначенным для хранения различных форм представления данных, которые могут потребоваться каким-либо объектам конфигурации или всему прикладному решению в целом. Создать с помощью конструктора и формы документа печатную форму документа. Порядок выполнения лабораторной работы Задание №1. Создание печатной формы документа Оказание услуги. 1. Запустите систему «1С:Предприятие». В открывшемся диалоге из списка информационных баз, необходимо открыть созданную ранее базу «Знакомство с платформой» и запустить ее работу в режиме конфигуратора. 2. Откройте в конфигураторе окно редактирования объекта конфигурации Документ ОказаниеУслуги. 3. Перейдите на закладку Макеты, нажмите кнопку Конструкторы и запустите конструктор печати 4. В открывшемся окне конструктора на первом шаге укажите, что будет создана новая команда Печать для формирования печатной формы документа. 5. На втором шаге нажатием кнопки определите, что все реквизиты документа будут отображены в шапке печатной формы. 6. На третьем шаге точно так же определите, что все реквизиты табличной части документа будут отображены в печатной форме. 7. На четвертом шаге конструктор предложит сформировать подвал (нижнюю часть) печатной формы. Нет необходимости ничего указывать (подвал в данном случае использовать не нужно), нажмите Далее. 8. На данном этапе ничего менять не нужно. Тем самым разработчик соглашается с тем, что команда для вызова процедуры формирования печатной формы будет помещена в командную панель формы, в раздел Важное. Нажмите OK. В конфигураторе откроется модуль команды Печать, модуль менеджера документа ОказаниеУслуги и макет этого документа. Задание №2. В режиме «1С:Предприятие». 1. Запустите «1С:Предприятие» в режиме отладки и откройте документ Оказание услуги. Обратите внимание, что в командной панели документа появилась новая кнопка Печать. 2. Кнопка Печать добавилась также и в командную панель формы списка документов Оказание услуги. Поэтому распечатать документ можно, не открывая его, а просто выделив в списке и нажав кнопку Печать. Нажмите эту кнопку (в форме списка или в форме документа) и просмотрите печатную форму документа. Задание №3. Редактирование макета. Добавление итоговой суммы в печатную форму документа ОказаниеУслуги. 1. Откройте конфигуратор, раскройте дерево документа Оказание Услуги и дважды щелкните на макете Печать. Макет документа состоит из именованных областей, которые в определенном порядке выводятся на печать. 2. Те именованные области, которые видны слева, были созданы с помощью конструктора. Но разработчик может сам создавать или удалять области, переименовывать их и т. п. 3. Добавьте новую область для вывода итоговой суммы документа. Выделите мышью две пустые строки под табличной частью документа и выполните пункт главного меню Таблица - Имена - Назначить имя… (рис. 4.1). Назовите область Всего, нажмите ОК. 4. Чтобы формат добавленных строк совпадал с имеющимся форматом заголовка и табличной части документа, измените ширину колонок. Для этого потяните мышью в заголовке таблицы за правую границу колонки 2 так, чтобы ее ширина совпала с шириной колонки № в шапке таблицы документа. Отпустите мышь. Платформа предложит создать новый формат для выделенных строк. Необходимо согласиться. Аналогичные действия выполните и для колонок 3, 4, 5 и 6. 5. В созданной области, в колонке Цена напишите ВСЕГО, а в колонке Сумма напишите ВсегоПоДокументу (рис. 4.2). 6. Вызовите палитру свойств для ячейки ВсегоПоДокументу (контекстное меню – Свойства), в свойстве Заполнение укажите, что в этой ячейке будет находиться не текст, а параметр. 7. Перейдите на закладку Прочее окна редактирования объекта конфигурации Документ ОказаниеУслуги и нажмите кнопку Модуль менеджера. 8. Найдите в нем процедуру Печать и отредактируйте ее следующим образом (новые строки выделены жирным шрифтом), листинг 4.1. Задание №4. В режиме «1С:Предприятие». 1. Запустите «1С:Предприятие» в режиме отладки и проверьте результат изменений (рис. 4.3). Подобным образом, создавая именованные области и ячейки макета, используя их свойства и управляя порядком их вывода c помощью встроенного языка, разработчик имеет возможность создать печатную форму любого дизайна. Содержание отчёта: 1. Титульный лист. 2. Цель работы. 3. Порядок выполнения работы согласно заданию 1-4. 4. Полученный вариант информационной базы с соответствующим добавлением объектов конфигурации. 5. Выводы по работе. 6. Ответы на контрольные вопросы. Контрольные вопросы 1. Для чего предназначен объект конфигурации «Макет»? 2. Что такое конструктор печати? 3. Как создать макет с помощью конструктора печати? 4. Как изменить табличный документ? 5. Какая разница в заполнении ячейки табличного документа, текстом, параметром и шаблоном? 6. Как с помощью встроенного языка вывести в табличный документ новую область? Лабораторная работа №5. Периодический регистр сведений. Цель работы: познакомиться с объектом конфигурации Регистр сведений, предназначенным для описания структуры хранения данных в разрезе нескольких измерений. Порядок выполнения лабораторной работы Задание №1. Создание Периодического регистра сведений. 1. Запустите систему «1С:Предприятие». В открывшемся диалоге из списка информационных баз, необходимо открыть созданную ранее базу «Знакомство с платформой» и запустить ее работу в режиме конфигуратора. 2. Выделите в дереве объектов конфигурации ветвь Регистры сведений и нажмите кнопку Добавить в командной панели окна конфигурации. 3. В открывшемся окне редактирования объекта конфигурации на закладке Основные задайте имя регистра – Цены. 4. Установите свойство Периодичность этого регистра – В пределах секунды. 5. Задайте свойства Представление записи как Цена, а Представление списка как Цены на номенклатуру. 6. Обратите внимание на свойство Режим записи. По умолчанию оно имеет значение – Независимый, то есть создается независимый регистр сведений и существует возможность в дальнейшем вводить в него данные без использования регистратора, вручную. 7. Выполните необходимые действия для отнесения созданного Регистра сведений к следующим подсистемам: Учет материалов, Оказание услуг и Бухгалтерия. Задание №2. Измерения и ресурсы. 1. На закладке Данные создайте измерение Номенклатура с типом СправочникСсылка.Номенклатура. Укажите что измерение будет ведущим. 3. Создайте ресурс Цена, тип Число, длина 15, точность 2, неотрицательное. 4. Запустите «1С:Предприятие» в режиме отладки и посмотрите что в разделах Бухгалтерия, Оказание услуг и Учет материалов появилась команда для открытия списка регистра Цены на номенклатуру. Команда для открытия регистра сведений по умолчанию доступна в интерфейсе разделов, в которых отображается регистр, так как в отличие от регистров накопления предполагается изменение данных регистра пользователем. Задание №3. Создание записей в регистре сведений. 1. Выполните команду для открытия списка регистра Цены на номенклатуру. Чтобы добавить новую запись в регистр сведений, нажмите кнопку Создать. 2. Задайте стоимость услуг ООО «Мастер». При этом период следует задать задним числом, так как он должен быть меньше или равен дате создания документа об оказании услуг. 3. После этого задайте розничные цены на материалы. Появилась очень полезная возможность в программе – установка цен на услуги и материалы. Поскольку цены хранятся с привязкой к дате, можно заранее установить новые цены и быть уверенными в том, что новые цены вступят в действие не раньше указанного для них времени. Задание №4. Автоматическая подстановка цены в документ при выборе номенклатуры. Данная задача заключается в следующем. Цена номенклатуры хранится в отдельном регистре сведений. Когда пользователь создает или изменяет документ ОказаниеУслуги и добавляет в табличную часть какую-либо номенклатуру, появляется необходимость, чтобы одновременно с этим в документ подставлялась бы сразу и актуальная цена этой номенклатуры, полученная из регистра сведений и соответствующая дате документа. Для этого необходимо сделать две вещи. Сначала написать некую функцию, которая будет возвращать актуальную цену номенклатуры, а затем вызвать эту функцию в тот момент, когда в документ добавляется номенклатура, и подставить в документ цену номенклатуры, которую вернет эта функция. Поскольку такой сервис понадобится, скорее всего, не только в этом, но и в других документах, которые содержат в табличной части номенклатуру, нужно поместить функцию в некоторое общедоступное место – в общий модуль. Задание №5. Создание функции, возвращающей цену номенклатуры. Сначала необходимо создать функцию РозничнаяЦена(), которая будет возвращать актуальную розничную цену номенклатуры, и поместить ее в общий модуль конфигурации. 1. Откройте конфигуратор, в ветке Общие - Общие модули добавьте новый объект конфигурации Общий модуль и назовите его Рабо- таСоСправочниками. 2. В палитре свойств модуля должно быть отображено, что у модуля по умолчанию установлен флажок Сервер. Это означает, что экземпляры этого модуля будут скомпилированы только на стороне сервера. 3. Установите флажок Вызов сервера для того, чтобы экспортные процедуры и функции этого модуля можно было вызывать с клиента. 4. Поместите в него следующий текст (листинг 5.1).
Во второй строке необходимо обратиться к менеджеру регистра сведений Цены (РегистрыСведений.Цены) и выполнить метод ПолучитьПоследнее(), который возвращает значения ресурсов самой поздней записи регистра, соответствующей передаваемой в функцию дате (АктуальнаяДата) и значениям измерений регистра (Отбор). Метод ПолучитьПоследнее возвращает структуру, содержащую значения ресурсов, которая сохраняется в переменной ЗначенияРесурсов. Вообще говоря, у регистра может быть несколько ресурсов. В данном регистре ресурс один, но все равно будет возвращена структура, содержащая единственный элемент. Поэтому в следующей строке необходимо получить искомую розничную цену, просто указав имя нужного ресурса регистра через точку (ЗначенияРесурсов.Цена), и возвратить ее при выполнении функции. Теперь эту функцию нужно вызвать в некоторый момент работы документа. Задание №6. Вызов функции при выборе номенклатуры и заполнение цены в документе. При редактировании документа ОказаниеУслуги нам необходимо обеспечить автоматическое заполнение поля Цена после того, как пользователь выберет услугу. Причем цена услуги должна определяться исходя из даты создаваемого документа. 1. Найдите в конфигураторе документ ОказаниеУслуги и откройте его форму ФормаДокумента. 2. Дважды щелкните на элементе формы ПереченьНоменклатурыНоменклатура или правой кнопкой мыши откройте для него палитру свойств (пункт контекстного меню Свойства). Найдите событие ПриИзменении, которое возникает после изменения значения поля. Нажмите кнопку открытия со значком лупы в поле ввода. 3. На вопрос конфигуратора о типе обработчика события, создаваемого в форме, оставьте без изменения предложенное значение Создать на клиенте, так как необходимо создать клиентский обработчик события, являющийся результатом интерактивных действий пользователя. 4. Система создаст шаблон процедуры обработчика этого события в модуле формы и откроет закладку Модуль редактора формы. Внесите в него следующий текст (листинг 6.1). Пояснение обработчика. Первая строка обработчика знакома по процедурам ПереченьНоменклатурыКоличествоПриИзменении и ПереченьНоменклатурыЦенаПриИзменении. Сначала получаем текущую строку табличной части документа, так как она понадобится в дальнейшем, и сохраняем ее в переменной СтрокаТабличнойЧасти. Затем вызывается функция РозничнаяЦена() из общего модуля РаботаСоСправочниками. Первым параметром передается в эту функцию дата документа, на которую необходимо получить цену. Дату документа получаем из основного реквизита формы – Объект.Дата. Вторым параметром передается ссылка на элемент справочника Номенклатура, который содержится в текущей строке табличной части документа (СтрокаТабличнойЧасти.Номенклатура). Функция возвращает последнее значение цены, и это значение присваивается полю Цена в текущей строке табличной части документа (СтрокаТабличнойЧасти.Цена). Затем вызывается процедура РассчитатьСумму из общего модуля РаботаСДокументами. Эта процедура была создана на предыдущих занятиях для того, чтобы при изменении цены или количества в документе пересчитывать сумму в строке документа. Заметьте, что сама процедура ПереченьНоменклатурыНоменклатураПриИзменении() начинает работать в модуле формы на стороне клиента, так как это обработчик интерактивного события формы. Создавая заготовку этой процедуры, платформа автоматически разместила перед описанием процедуры директиву компиляции &НаКлиенте. Затем вызывается функция РозничнаяЦена(). Поскольку эта функция не будет найдена на стороне клиента, то исполнение будет передано в общий модуль РаботаСоСправочниками, который выполняется на сервере. После завершения функции программный код продолжит исполняться на клиенте. Задание №7. В режиме «1С:Предприятие». 1. Запустите «1С:Предприятие» в режиме отладки и откройте регистр сведений Цены. 2. Для любого материала добавьте другим числом новую цену. 3. Откройте документ Оказание услуги. Оставьте дату документа без изменения и повторите выбор материала в колонке Номенклатура табличной части документа. Автоматически установится значение цены от выбранной ранее даты. Это последнее значение цены на дату документа. Измените дату документа на текущую и снова повторите выбор материала. Будет установлено новое значение цены, последнее на эту дату. Таким образом, в документе появляется актуальная на момент создания документа цена услуги. Содержание отчёта: 1. Титульный лист. 2. Цель работы. 3. Порядок выполнения работы согласно заданию 1-7. 4. Полученный вариант информационной базы с соответствующим добавлением объектов конфигурации. 5. Выводы по работе. 6. Ответы на контрольные вопросы. Контрольные вопросы 1. Для чего предназначен объект конфигурации «Регистр сведений»? 2. Какими особенностями обладает объект конфигурации «Регистр сведений»? 3. В чем главные отличия регистра сведений от регистра накопления? 4. Какие поля определяют ключ уникальности регистра сведений? 5. Что такое периодический регистр сведений, и что такое независимый регистр сведений? 6. Как создать периодический регистр сведений? 7. Что такое ведущее измерение регистра? 8. Как получить значения ресурсов наиболее поздних записей регистра сведений средствами встроенного языка? 9. Как с помощью встроенного языка вывести в табличный документ новую область? | |