МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Мурманский государственный гуманитарный университет» (ФГБОУ ВПО «МГГУ») УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС ДИСЦИПЛИНЫ ГСЭ.В.2.2 АВТОМАТИЗИРОВАННЫЙ БУХГАЛТЕРСКИЙ УЧЁТ Основная образовательная программа подготовки специалиста по специальности 010501 “Прикладная математика и информатика” Утверждено на заседании кафедры математики и математических методов в экономике факультета физико-математического образования, информатики и программирования (протокол № 6 от 27 февраля 2013 г.) Зав. кафедрой _______________О.М. Мартынов Раздел I Программа учебной дисциплины 1.1. Автор программы старший преподаватель кафедры Яковлева Л.В. 1.2. Рецензенты кандидат физико-математических наук, доцент кафедры АГ и ПМ Маренич А.С. 1.3. Пояснительная записка Курс "Автоматизированный бухгалтерский учёт" является дисциплиной по выбору. Он читается в 8, 9 семестрах. Целью программы является углубленное изучение вопросов создания, оптимизации и поддержки прикладных решений на платформе 1С:Предприятие. К задачам программы относятся: изучение архитектуры системы и прикладных решений, рассматривается структура и реализация прикладных механизмов. Значительное внимание уделяется организации хранения данных и обеспечению эффективной работы прикладных решений. Также изучаются методические подходы к созданию и поддержке прикладных решений, и механизмы системы, которые используются для реализации этих задач. В процессе изучения курса " Автоматизированный бухгалтерский учёт " студент должен получить следующие знания: об архитектуре1С:Предприятия ; об функциональности1С:Предприятие ; об использовании встроенного языка; о работе с объектными и необъектными данными, системе типов, транзакциях; о клиент-серверном варианте работы; о хранении информации в1С:Предприятии; о документах и последовательностях в 1С:Предприятии о реализации задач учёта движения средств; о реализации задач бухгалтерского учёта; о реализации сложных периодических расчетов; о механизмах бизнес-процессов; об использовании механизма анализа данных и прогнозирования; о средствах построения отчетов; об интеграции с другими информационными системами; о создании распределенных информационных систем; о Web-расширениях; о методологии разработки. В процессе изучения курса студент должен приобрести следующие умения: применять платформу 1С:Предприятие для разработки прикладных решений; применять приемы и методы создания прикладных решений платформы 1С:Предприятие для предметной области своей практической деятельности, использовать принципы организации хранения информации; умение выполнить обмен данными с другими информационными системами; .умение создавать Web-сервисы и ASP.NET-страницы в среде 1С:Предприятие Итоговой формой контроля знаний студентов - зачет в каждом семестре. 1.4. Выписка из ГОС ВПО по содержанию дисциплины - 1.5. Объем дисциплины и виды учебной работы: Курс Семестр 4 5 8 9 Трудоемкость 54 120 Виды учебной работы в часах Всего ПР/ Сам. ЛК ЛБ аудит. СМ Работа 24 10 14 30 62 26 36 58 Вид итогового контроля зачет зачет Предусмотрена разработка одного расчетно-графического задания в каждом семестре. 1.6. Содержание дисциплины 1.6.1. Разделы дисциплины и виды занятий (в часах). Примерное распределение учебного времени Количество часов № Наименование раздела, темы Всего Сам. п/п ЛК ПР ЛБ аудит. Раб. 1 Архитектура 1С:Предприятия 2 2 4 2 Функциональность 1С:Предприятия 2 2 4 3 Использование встроенного языка 4 2 2 8 4 Работа с данными 16 2 4 8 5 Хранение информации 2 8 6 Всего за 8 семестр 24 10 14 30 6 Клиент-серверный вариант работы 2 2 4 7 Документы и последовательности 2 4 4 8 Реализация задач учёта движения средств 2 4 9 Реализация задач бухгалтерского учёта 4 6 6 10 Реализация сложных периодических расчетов 10 4 4 6 Использование механизма бизнес-процессов и 10 11 2 4 6 анализа данных и прогнозирования 12 Средства построения отчетов 10 2 4 4 Интеграция с другими информационными си10 13 2 4 6 стемами Создание распределенных информационных 10 14 2 4 6 систем 15 Web-приложения и Web-сервисы XML 6 2 2 6 16 Методология разработки 12 2 4 6 Всего за 9 семестр 90 26 36 58 1.6.2. Содержание разделов дисциплины 8 семестр 1 Архитектура 1С:Предприятия Платформа и прикладные решения Средства разработки в составе платформы Метаданные – способ описания прикладного решения Создание прикладных решений на основе модели Объектные и необъектные данные Три способа представления данных Файловый и клиент-серверный варианты работы Поддержка хранилищ данных 2 Функциональность 1С:Предприятия Обзор функциональности прикладных решений Справочники Документы Механизм характеристик Механизм сведений Механизм учёта движения средств Механизм бухгалтерского учёта Механизм сложных периодических расчетов Механизм бизнес-процессов Механизм анализа данных и прогнозирования Средства интеграции и механизмы обмена данными Web-расширение Обзор функциональности средств разработки Обзор функциональности средств администрирования 3 Использование встроенного языка Модули конфигурации Общий модуль Модуль приложения Модуль внешнего соединения Модуль объекта Модуль формы Компиляция модулей Компиляция модулей и режимы исполнения встроенного языка Компиляция общих модулей Компиляция модуля приложения и модуля внешнего соединения Компиляция модуля объекта и формы 4 Работа с данными Объектные данные: Модель хранения данных; Ссылка, представление ссылочной целостности; Объект; Кэширование представлений и объектов; Оптимизированная запись объектов. Необъектные данные Модель хранения данных; Подчинение регистратору; Уникальность записей Набор записей Система типов: Типы значений и типы данных Типы значений. Примитивные типы: число, строка, булево, неопределенно. Типы, образуемые в прикладном решении: менеджер объектов, менеджер, объект, ссылка, набор записей, список, выборка. Типы данных: числовые, строковые типы данных, составной тип данных. Транзакции: 5 Хранение информации Хранение информации, общей для информационной базы Хранение единичных значений условно-постоянной информации Использование перечисление Использование предопределенных элементов Хранение информации объектных и необъектных сущностей Хранение иерархической информации Хранение информации, имеющей привязку ко времени Хранение информации в регистрах сведений Хранение дополнительных характеристик 9 семестр 6 Клиент-серверный вариант работы Общие сведения о клиент-серверном варианте работы. Выполнение общих функций Управление сервером 1С: Предприятие Работа встроенного языка на сервере Особенности использования Запуск и остановка сервера Соединение с сервером Выполнение кода на сервере Отладка кода на сервере Использование аппаратных ресурсов Совместная работа с сервером Организация выполнения кода на сервере или на клиенте Особенности использования экспортируемых переменных, функций и процедур модуля Передача параметров на сервер и возврат значений Выполнение кода на сервере без проверки прав 7 Документы и последовательности Функциональность документов Заполнение документов Запись документов Проведение документов Формирование движений по регистрам Пометка на удаление документа Состав документа Структура таблиц базы данных Отдельные вопросы типового использования документов Нумерация документов Запись документов Проведение документов Использование механизма оперативного проведения Особенности работы формы документа Журналы документов Последовательности документов 8 Реализация задач учёта движения средств Структура регистра накопления Механизмы заполнения таблиц регистров накопления в базе данных Получение данных из регистров накопления Получение движений регистров накопления Получение остатков Получение оборотов Получение остатков и оборотов в одной таблице Применение отборов в запросах, использующих виртуальные таблицы регистров накопления Работа с регистрами при отображении динамических данных Получение остатков при проведении документов 9 Реализация задач бухгалтерского учёта Диаграмма взаимодействия объектов План счётов и его основные свойства Основы организации аналитического учёта План видов характеристик для создания списка видов субконто Детализация счёта плана счётов по видам субконто Ввод в диалог и хранение в базе данных объектов аналитического учета Объект Регистр бухгалтерии Основные свойства регистра бухгалтерии Запись движений в регистр бухгалтерии Чтение данных регистра бухгалтерии Вопросы производительности регистра бухгалтерии 10 Реализация сложных периодических расчетов Технология реализации расчетных задач Вид расчёта Принципы регистрации записей Период регистрации Период действия Ведущие расчеты и перерасчёт Сторнирование Планы видов расчёта Свойства регистров расчёта Структура регистров расчёта Структура таблиц базы данных Настройка протяженных во времени расчетов Использование механизма вытеснения Использование графиков Сторнирование Настройка зависимости по базовому периоду Настройка планов видов расчета и регистров расчёта Получение базы при помощи запроса Технология формирования и расчета записей регистров расчёта Формирование записей регистра расчёта Настройка алгоритмов расчёта Расчёт записей регистра расчета Перерасчёт записей регистров расчета Объект конфигурации Перерасчёт Измерения перерасчета Автоматическое формирование записей перерасчёта при вводе вытесняющих расчетов Автоматическое формирование записей перерасчёта при вводе прочих расчетов Особенности использования таблицы вытесняющих видов расчёта Формирование записей перерасчета средствами встроенного языка Автоматическое удаление записей перерасчёта Анализ данных таблицы перерасчета Реализация перерасчета записей регистров расчета 11 Использование механизма бизнес-процессов и анализа данных и прогнозирования Карта маршрута Точки маршрута Точка старта, точка завершения Точка действия Точка условия Точка выбора варианта Точка разделения, слияния Точки обработки Точка вложенного бизнес-процесса Состояние бизнес-процесса Старт бизнес-процесса Завершение бизнес-процесса Основные объекты механизма анализа данных Типы анализа данных Модели прогноза Проведение прогнозов Модель прогноза 12 Средства построения отчетов Построитель отчета Автоматическое заполнение настроек построителя отчета Заполнение настроек построителя отчета с использованием языка запросов Настройка построителя отчета средствами встроенного языка Выполнение запроса вывод отчета Макет построителя отчета Условное оформление Вывод в табличный документ Вывод представлений ссылочных значений Текстовый документ Табличный документ Общие свойства табличного документа Области табличного документа Работа с областями табличного документа Использование макетов табличных документов Печать табличного документа Сводная таблица Использование табличного документа в форме 13 Интеграция с другими информационными системами Форматы файлов обмена Работа с DBF Работа с XML-документами Основные положения Базовые средства 1С:Предприятие 8.0 для работы с XML Запись данных в XML-документ Чтение данных из XML-документа XML-сериализация Работа с ZIP-архивами Использование Internet-технологий 14 Создание распределенных информационных систем Планы обмена Служба регистрации изменений Управление регистрацией изменений Универсальный механизм обмена данными Использование возможностей работы с XML-документам Полная регистрация изменений по узлу Удаление регистрации изменений по узлу Выполнение выгрузки данных в узел Выполнение загрузки данных из узла Регистрация в произвольные узлы Распределенные информационные базы Главный и подчиненный узлы Сообщение обмена данными в распределенной информационной базе Создание узла распределенной информационной базы Запись и чтение сообщений обмена Сценарии обмена данными в распределенной информационной базе Разрешение коллизий Использование транзакций при организации обмена Методика включения в сообщение обмена дополнительной информации Организация одностороннего обмена 15 Web-приложения и Web-сервисы XML Конструкторы Web-расширения для Web-приложений V8 List Form V8ItemForm V8ReportForm V8ChartForm Доступ к данным через ADO.NET Получение данных Добавление данных Изменение данных Удаление данных Web-сервисы Обращение к Web-сервису из Web-формы Обращение к Web-сервису из 1С:Предприятие 8.0 Вызов процедур, функций. Преобразование типов Идентификация пользователя Объекты Response, Request, Session Подготовка Web-приложения к работе 16 Методология разработки “Жизненный цикл” прикладного решения Проектирование Разработка Функциональное тестирование Нагрузочное тестирование Внедрение Сопровождение Выводы Проектирование структуры метаданных Выбор между объектными и необъектными данными Анализ логики работы прикладных объектов с данными Анализ производительности Анализ возможностей использования обмена данными Групповая разработка прикладных решений Общие сведения о хранилище конфигурации Создание хранилища конфигурации Подключение к хранилищу Отображение состояния объектов конфигурации Просмотр состояния объектов Захват и помещение объектов в хранилище Производительность прикладного решения Общее понятие производительности прикладного решения Последовательность решения задач оптимизации Оптимизация производительности на уровне конфигурации. 1. 6. 3. Темы для самостоятельного изучения. № Наименование Форма самостоятельной работы Кол-во Форма контроля п/п раздела самостоятельно часов выполнения само- дисциплины. стоятельной работы Тема. 8 семестр 1 Архитектура 1С:Предприятия 2 Функциональность 1С:Предприятия Использование Напишите прикладное решение, исвстроенного язы- пользующее объекты встроенного ка языка для доступа к коллекции метаданных, использование метода Содержит().. Работа с данны- Объясните различие между объектными ми и необъектными данными. Приведите пример сравнения объектов. Как выполняется преобразование типов? Какие особенности при использовании выборки? как транзакции влияют на работу программных объектов? Хранение ин- .Как хранится информация , общая для формации информационной базы? Чем отличается хранение объектных данных от необъектных? Как хранится иерархическая информация?. 9 семестр КлиентКак выполняется администрирование серверный вари- клиент-серверного варианта работы? ант работы Приведите пример Документы и по- Что означает понятие проведение доследовательности кументов? Как формируются движения по регистрам? Приведите примеры Реализация задач Как решаются вопросы быстродейучёта движения ствия системы при получении движесредств ний? Обоснуйте ответ прикладным решением. Реализация задач Какими свойствами обладает регистр бухгалтерского бухгалтерии? Как выполняется запись учёта движений в регистр бухгалтерии? Реализация Какие расчеты называются ведущими? сложных периоКак выполняется учет сторно-записей 3 4 5 6 7 8 9 10 Механизм обновления прикладных решений. Механизм интернационализации Каким образом может быть использован объект географическая карта 4 Реферат 4 Реферат 8 Реферат Прикладное решение 8 Реферат Прикладное ние реше- Реферат Прикладное ние реше- 6 4 4 Реферат Прикладное ние Реферат Прикладное ние решереше- 4 Реферат Прикладное решение 6 Реферат Прикладное решение Реферат 6 дических расчетов 11 12 13 14 15 16 Использование механизма бизнес-процессов и анализа данных и прогнозирования при формировании фактического периода действия? Что представляют собой бизнеспроцессы в 1С:Предприятии? Как составляется карта маршрута? Как определить состояние бизнес-процесса?. Приведите приме реализации бизнеспроцессов. Как выполняется анализ общая статистика? Средства постро- Как выполняется настройка построиения отчетов теля отчета средствами встроенного языка? Приведите примеры реализации. Интеграция с Как выполняется работа с XMLдругими инфордокументами? Приведите пример примационными си- кладного решения записи данных в стемами XML-документ. Приведите пример прикладного решения чтения из XMLдокумента. Создание распре- Как организуется постоянный обмен деленных ин- данными ? Для каких элементов моформационных жет выполняться регистрация изменесистем ний? Когда рекомендуется применять автоматическую регистрацию изменений и когда “ручную”? Web-приложения Приведите пример Web-приложения и Web-сервисы прикладного решения с реализацией XML доступа к данным через ADO.NET для операций выборки, добавления, обновления и удаления Методология Какие действия выполняются при опразработки тимизации параллельности работы пользователей с прикладным решением? Прикладное решение 6 Реферат Прикладное решение 4 Реферат Прикладное решение 6 Реферат Прикладное решение 6 Реферат Прикладное решение 6 Реферат Прикладное решение 6 Реферат Прикладное решение 1.7. Методические рекомендации по организации изучения дисциплины. 1. Тематика и планы практических занятий по изученному материалу 8 семестр Практическое занятие № 1 Тема: Использование встроенного языка и основных объектов конфигурации Краткие теоретические сведения Конфигурация описывает структуру данных и всевозможные алгоритмы обработки этих данных, как эти данные должны выглядеть на экране и на бумаге(принтере). Объект конфигурации Справочник предназначен для описания списков данных, на его основе платформа создает в базе данных информационную структуру. Справочники могут иметь табличную часть, когда каждый элемент справочника, имеет поясняющую информацию, как правило, со связью один-ко-многим. Кроме того справочники могут иметь заданный уровень иерархии и содержать предопределенные элементы. Объект конфигурации Документ предназначен для описания информации о совершенных операциях или о событиях. Документ всегда привязан к конкретному моменту времени. Это позволяет отражать в базе данных фактическую последовательность событий. Для документа можно создать форму, чтобы изменить логику обработки данных. С элементом управления формы может быть связан определенный код, который хранится в модулях. Для того, чтобы алгоритм, выполняемый при обработке событий был доступен для разных документов, нужно создать общий модуль и перенести в него процедуру расчета суммы. Объект конфигурации Регистр накопления предназначен для описания структуры накопления данных. На основе регистра объекта конфигурации Регистр накопления платформа создает в базе данных информационную структуру , данные будут храниться в регистре в виде отдельных записей, каждая из которых имеет одинаковую, заданную в конфигураторе структуру. Объект конфигурации Отчет предназначен для описания средств и алгоритмов, с помощью которых необходимые ему выходные данные. Задание №1 Напишите конфигурацию для ведения учета фирмы, занимающейся оказанием услуг в области ремонта бытовой техники. № 2. Напишите конфигурацию для предметной области, заданной преподавателем Ход выполнения работы 1. Запустите программу 1С:Предприятие. В появившемся окне нажмите копку Добавить, затем выберите опцию Создание новой информационной базы и далее выберите создание новой пустой базы данных введите имя В итоге получили следующее окно: 2. Затем нажмите кнопку Конфигуратор. В появившемся окне в меню Конфигурация выберите команду Открыть конфигурацию Это окно можно закрыть , но при этом конфигурация останется открытой. Для закрытия Конфигурации используется команда Конфигурация->Закрыть конфигурацию. 3. Создайте справочники Клиенты и Сотрудники. Клиенты –обычный справочник с двумя предопределенными реквизитами. Сотрудники с табличной частью Организация –символьный тип -длина100; Начало работы –тип Дата; Окончание работы –тип Дата; Должность – символьный тип –длина 100 . Для создания нового объекта конфигурации выделяется объект на дереве конфигурации и выбирается команда в меню Действие или из контекстного меню. В справочнике Клиенты используйте поля, которые система предлагает по умолчанию: Код (5) и Наименование (50). Выполните все шаги мастера по созданию Справочника Клиенты, оставляя все установки по умолчанию, и выполните команду Отладка->Начать отладку. Заполните справочник Клиенты. В справочнике Сотрудники для каждого сотрудника должна храниться информация об его прошлой трудовой деятельности. Это информация представляет включает в себя название организации, начало работы, окончание работы, должность. Для хранения этой информации используйте табличную часть справочника. При создании справочника на вкладке Данные Наименование и Код оставляем без изменения, но добавляем табличную часть. Для этого выделяем объект табличная часть и выбираем команду добавить. Открывается окно свойств табличной части, вводится имя После этого определяются реквизиты табличной деятельности: Организация –символьный тип -длина100; Начало работы –тип Дата; Окончание работы –тип Дата; Должность – символьный тип –длина 100 Для создания нового реквизита нажимается кнопка Добавить реквизит Теперь нужно выбрать вариант редактирования справочника. Редактирование только в списке не подходит, поэтому выберите вариант редактирования – как в списке, так и в диалоге. На вкладке Формы установите соответству- ющие переключатели. Запустите 1С:Предприятие в режиме отладки и заполните справочник, установив режим редактирования справочника меню Действия>Редактировать в диалоге 4. Создайте иерархический тип справочник Номенклатура. Услуги должны быть сгруппированы в одну группу, материалы – в другую. При создании справочника на вкладке Иерархия установите следующие параметры: установите флажок Иерархический справочник. На вкладке Данные у реквизита Наименование устано- вите длину 100 символов. 5. Прейдите в режим отладки, внесите записи, сначала создайте новые группы материалы и услуги. Затем внесите значения, и создайте на каждом уровне новые группы 6. Создайте справочник Склады, который будет содержать всю информацию о складах. Он будет содержать один предопределенный элемент – склад Основной, на который будут поступать все материалы. При создании нового объекта Справочник, после определения имени, перейдите на вкладку Прочее, нажмите кнопку Пред- определенные Система откроет список предопределенных элементов справочника, пока он пуст, выполните команду Действия->Добавить и создайте предопределенный элемент с именем Основной Перейдите в режим отладки, откройте справочник и внесите еще записи 7. Создайте документ ПриходнаяНакладная. Этот документ будет фиксировать факт поступления в организацию материалов. Создайте новый объект конфигурации Документ, задайте ему имя 8. На вкладке Данные создайте реквизит документа Склад с типом данных СправочникСсылка.Склады 9. Добавьте в документ ПриходнаяНакладная табличную часть с именем Материалы. Эта табличная часть содержит следующие поля: Материал – СправочникСсылка.Номенклатура; Количество –Число –длина 15, точность 3, неотрицательное; Цена - Число –длина 15, точность 2, неотрицательное; Сумма - Число –длина 15, точность 2, неотрицательное. 10. Создайте форму документа, чтобы сумма вычислялась автоматически. Перейдите на вкладку Форма, нажмите на символ лупы в поле ввода 11. Появится окно Конструктора форм Сразу нажмите готово. Теперь нужно создать процедуру обработки в модуле формы. Для поля Количество откройте из контекстного меню команду Свойства Расположите свойства должным образом, например, используя вкладки. В группе События выберите При изменении, щелкните на значке лупы и будет создана заготовка процедуры. Внесите код Процедура МатериалыКоличествоПриИзменении(Элемент) // Вставить содержимое обработчика. СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные; СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена; КонецПроцедуры В этом коде создаем переменную инициализируем ее объектом именем табличной части ЭлементыФормы.Материалы. 12. Теперь требуется перенести процедуру расчета в общий модуль, чтобы эта процедура была доступна для разных документов. Для этого создайте объект конфигурации Общий модуль в Общие->Общие модули 13. Назовите его РаботаСДокументами и введите следующий программный код: Процедура РассчитатьСумму(СтрокаТабличнойЧасти) Экспорт СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена; КонецПроцедуры Затем измените код вмодуле документа Процедура МатериалыКоличествоПриИзменении(Элемент) // Вставить содержимое обработчика. СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные; //СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена; РассчитатьСумму(СтрокаТабличнойЧасти); КонецПроцедуры 14. Запустите 1С:Предприятие в режиме отладки. Выполните команду Операции->Документы, создайте новый документ 15. Создайте документ ОказаниеУслуги с реквизитами Склад , тип СправочникСсылка.Склады Клиент, тип СправочникСсылка.Клиенты; Мастер, тип СправочникСсылка.Сотрудники 16. Создайте табличную часть с именем ПереченьНоменклатуры с реквизитами Номенклатура, тип СправочникСсылка.Номенклатура; Количество, тип Число, длина 15, точность 3, неотрицательное; Цена, тип Число, длина 15, точность 2, неотрицательное; Сумма, тип Число, длина 15, точность 3, неотрицательное. 17. Создайте основную форму документа, для полей ввода столбцов Количество и Цена создать обработчик события ПриИзменении, в котором должна быть вызвана процедура РассчитатьСумму из общего модуля РаботаСДокументами. 18. Перейдите в режим отладки и введите несколько документов. 19. Создайте регистр накопления ОстаткиМатериалов. Для этого создайте новый объект конфигурации РегистрНакопления. 20. Затем создайте измерения регистра: Материал, тип СправочникСсылка.Номенклатура; Склад, тип СправочникСсылка.Склады; 21. Затем создайте ресурс : Количество, тип Число, длина 15, точность 3 22. Теперь нужно определить регистратор для этого регистра. Для этого создайте движение документа ПриходнаяНакладная. Откройте окно редактирования объекта конфигурации , перейдите на вкладку Движения и в списке рнгистраторов конфигурации отметите регистр накопления ОстаткиИатериалов 23. Нажмите копку Конструктор движений и в списке Табличная часть выберите Материалы. Затем нажмите кнопку Заполнить выражения. После нажатия копки ОК, откроется окно Объект встроенного языка ДокументОбъект имеет свойство Движения, оно воз- вращает коллекцию наборов записей регистров, которые принадлежат этому документу. 24. Прейдите в режим отладки и откройте одновременно два окна: список документа ПриходнаяНакладная и список регистра накопления ОстаткиМатериалов. Выполните проведение и в результате заполнится список регистра накопления. 25. Создайте движение документа ОказаниеУслуги 26. Перейдите в режим отладки и проверьте расход материала 27. Создайте отчет, который показывает приход, расход, остатки материалов. Для этого создайте новый объект конфигурации Отчет с именем Материалы и перейдите на вкладку Макеты и выберите в списке конструкторов конструктор выходной формы, после этого появится окно: Раскройте виртуальную таблицу ОстаткиМатериалов.ОстаткиИОбороты : Выберите нужные поля: Склад Материал Затем выберите КоличествоНачальныйОстаток, КоличествоПриход, КоличествоРасход, КоличествоКонечныйОстаток. После этого нужно перейдите на вкладку Итоги и укажите группировочное поле Склад. Нажмите ОК, система автоматически сформирует формы. Перейдите в режим отладки и сформируйте отчет. Контрольные вопросы 1. Какие объекты конфигурации называются типообразующими? 2. Когда следует использовать редактирование справочника в списке, а когда – в диалоге? 3. Зачем нужна основная конфигурация и конфигурация базы данных? 4. Что такое подчиненные объекты конфигурации? Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 1. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Практическое занятие № 2Тема: Работа с данными . Использование основных объектов конфигурации Краткие теоретические сведения Объект конфигурации Макет предназначен для хранения различных форм представления данных. Макет может содержать табличный или текстовый документ, двоичные данные, HTML-документ и Active Document. Объект конфигурации Регистр сведений предназначен для описания структуры хранения данных в разрезе нескольких измерений. На его основе платформа создает в базе данных информационную структуру, в которой может храниться произвольная информация, “привязанная” к набору измерений. Объект конфигурации Перечисление предназначен для описания структуры хранения постоянных наборов значений, не изменяемых в процессе работы конфигурации. Задание №1 . Добавьте в разрабатываемую конфигурацию документ Оказание услуги, регистр сведений.. № 2. Добавьте в пользовательскую конфигурацию документ и регистр сведений. Ход выполнения работы 1. Запустите 1С:Предприятие. Откройте созданную конфигурацию. 2. Создайте макет документа ОказаниеУслуги. Для этого откройте в конфигураторе Документ ОказаниеУслуги, перейдите на вкладку Макеты и запустите конструктор печати . 3. На первом шаге мастера укажите, что новая процедура будет создана для формирования печатной формы документа, будет располагаться в модуле формы. 4. На втором шапке нажмите двойную стрелку, что все реквизиты нашего документа будут отображены в шапке печатной формы 5. На третьем шаге также перенесите все реквизиты табличной части документа в печатную форму 6. На четвертом шаге формируется нижняя часть печатной формы, пока в нижнею часть ничего не надо помещать. 7. На следующем шаге конструктор должен вставить новую кнопку в форму документа для вызова процедуры формирования печатной формы, нажмите ОК 8. В конфигураторе откроется форма документа и его макет: Проверьте макет в работе. Перейдите в режим отладки и откройте документ ОказаниеУслуги. В форме не хватает итоговой суммы. Продолжите редактирование макета документа ОказаниеУслуги. Выделите две строки для вывода итоговой суммы документа и выполните команду Таблицв->Имена->Назначить имя. Назовите область Всего. В созданной области, в колонке Цена напишите Всего, а в колонке Сумма напишите ВсегоПоДокументу. 9. Вызовите окно свойств для выделенной ячейки, с текстом ВсегоПоДокументу Каждая ячейка редактируемого табличного документа может содержать либо текст, либо некоторый параметр, либо шаблон. Текст, содержащийся в ячейке, будет показан на экране. Параметр будет заменен некоторым значением, которое может быть присвоено ему средствами встроенного языка. Текст, содержащийся в ячейке является именем этого параметра. Шаблон представляет собой текстовую строку, в определенные места которой будут вставлены значения параметров. Раскройте список Заполнение и выберите значение Параметр. 10. Откройте модуль формы документа ОказаниеУслуги –ФормаДокумента. Нужно внести в заготовку модуля изменения: КонецЦикла; //после этой строки Область=Макет.ПолучитьОбласть("Всего"); Область.Параметры.ВсегоПоДокументу = ПереченьНоменклатуры.Итог("Сумма"); ТабДок.Вывести(Область); То есть, получаем новую область Всего, затем параметру ВсегоПоДокументу присваиваем значение суммы табличной части документа по колонке Сумма. 11. Теперь отредактируйте форму документа ОказаниеУслуги. Для этого откройте в конфигураторе форму документа ОказаниеУслуги –ФормаДокумента и для табличного поля, расположенного в форме откройте окно свойств Установите флажок для использования Подвала –нижней части формы. Затем откройте свойство для колонки Цена и установите текст подвала –Всего, выравнивание –Прижать вправо, жирное начертание, затем перейдите к колонке Сумма , установите выравнивание и начертание, а также флажок Показывать итог в подвале: Запустите 1С:Предприятие в режиме отладки и посмотрите как выглядит форма документа ОказаниеУслуги 12. Чтобы хранить развернутые по времени розничные цены материалов и услуг, требуется создать периодический регистр сведений. Для этого откройте конфигуратор и создайте новый объект конфигурации Регистр сведений с именем Цены. Устано- вите периодичность в пределах секунды. 13. Перейдите на вкладку Данные и создайте измерение регистра Номенклатура с типом СправочникСсылка.Номенклатура. Это измерение будет ведущим. Свойство Ведущее используется лишь тогда, когда измерение имеет тип ссылки на объект базы данных. 14. Создайте новый ресурс Цена , тип Число, длина 15, точность 2, неотрицательное. Перейдите в режим отладки и задайте стоимость услуг и розничные цены на материалы. Так как цены хранятся с привязкой к дате, можно заранее установить новые цены и быть уверенным, что новые цены вступят в действие не раньше указанной даты. Для этого требуется создать функцию, которая будет возвращать актуальную розничную цену номенклатуры. Для этого в конфигураторе выделите Общие->Общие модули и создайте новый объект конфигурации Модуль, назовите его РаботаСоСправочниками. Разместите в модуле следующий текст: Функция РозничнаяЦена(АктуальнаяДата, ЭлементНоменклатуры ) Экспорт Отбор = Новый Структура("Номенклатура", ЭлементНоменклатуры); ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор); Возврат ЗначенияРесурсов.Цена; КонецФункции 15. Теперь нужно применить созданную функцию в документе ОказаниеУслуги. Откройте в конфигураторе документ ОказаниеУслуги. Откройте его ФормуДокумента. Выделите поле ввода в колонке Номенклатура и внизу списка найдите событие При изменении и создайте модуль. Сначала в модуле нужно проинициализировать переменную текущей строкой табличной части документа, затем устанавливаем полученную цену в документе, вызывая процедуру РозничнаяЦена. В процедуру передаются два параметра: дата документа и ссылка, на элемент справочника Номенклатура. Процедура ПереченьНоменклатурыНоменклатураПриИзменении(Элемент) СтрокаТабличнойЧасти = ЭлементыФормы.ПереченьНоменклатуры.ТекущиеДанные; СтрокаТабличнойЧасти.Цена = РозничнаяЦена(Дата, Элемент.Значение); РассчитатьСумму(СтрокаТабличнойЧасти); КонецПроцедуры Проверьте в режиме отладки. 16. Запустите в режиме отладки. Заполните в регистре сведений новую цену на материалы с другим числом. Заполните документ ОказаниеУслуги. Повторите выбор материала при изменении даты. 17. Сначала создайте новый объект конфигурации Перечисление с именем ВидыНоменклатуры. На вкладке Данные добавьте два значения перечисления: Материал и Услуга. 18. Добавьте в справочник :Номенклатура новый реквизит ВидНоменклатуры с типом ПеречислениеСсылка.ВидыНоменклатуры 19. Переключитесь в режим отладки, и задайте для каждого элемента справочника Номенклатура соответствующее значение реквизита ВидНомеклатуры. 20. Теперь требуется изменить процедуру проведения документа ОказаниеУслуги, так чтобы в регистр накопления ОстаткиМатериалов попадали только израсходованные материалы, но не записи об израсходованных материалах. Для этого в обработчик события ОбработкаПроведения добавить следующий код Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл // регистр ОстаткиМатериалов Расход Если ТекСтрокаПереченьНоменклатуры .Номенклатура.ВидНоменклатуры<>Перечисления.ВидыНоменклатуры.Матери ал Тогда Продолжить; КонецЕсли; Движение = Движения.ОстаткиМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура; Движение.Склад = Склад; Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество; КонецЦикла; // записываем движения регистров Движения.ОстаткиМатериалов.Записать(); //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры 21. Запустите 1С:Предприятие в режиме отладки и проверьте работу процедуры проведения документа ОказаниеУслуги. Контрольные вопросы 1. Какими особенностями обладает объект конфигурации Регистр сведений? 2. В чем главные отличия регистра сведений от регистра накопления? 3. Что такое периодический регистр сведений и что такое независимый регистр сведений? 4. Как получить значения ресурсов наиболее поздних записей регистра средствами встроенного языка? Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 1. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Практическое занятие № 3-1 Тема: Использование основных объектов конфигурации: Перечисление, Проведение документа по нескольким регистрам. Создание отчетов. Краткие теоретические сведения Объект конфигурации Перечисление предназначен для описания структуры хранения постоянных наборов значений, не изменяемых в процессе работы конфигурации. Работа с запросами . Для работы с запросами используется объект встроенного языка Запрос. Он позволяет получать информацию, хранящуюся в полях базы данных, в виде выборки. Задание №1. Добавьте в разрабатываемую конфигурацию перечисление, выполните проведение документа по нескольким регистрам. Создайте отчеты, необходимые для данной предметной области. № 2. В пользовательскую конфигурацию добавьте необходимые отчеты. Ход выполнения работы 1. Запустите программу 1С:Предприятие, откройте конфигурацию, создайте новый объект Перечисление с именем ВидыНоменклатуры. На вкладке данные добавьте два значения перечисления Материал и Услуги. 2. Теперь измените, справочник Номеклатура, добавьте в справочник новый реквизит ВидНоменклатуры с типом ПеречислениеСсылка.ВидыНоменклатуры. Перейдите в режим отладки. Задайте для каждого элемента справочника Номенклатура соответствующее значение реквизита ВидНоменклатуры. 3. Измените процедуру проведения документа ОказаниеУслуги, так чтобы при движении документа ОказаниеУслуги в регистр накопления ОстаткиМатериалов попадали только записи об израсходованных материалах, но не об оказанных услугах. Для этого нужно изменить модуль документа ОказаниеУслуги. Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл // регистр ОстаткиМатериалов Расход Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНомеклатуры <> Перечисления.ВидыНоменклатуры.Материал Тогда Продолжить; КонецЕсли; Движение = Движения.ОстаткиМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура; Движение.Склад = Склад; Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество; КонецЦикла; // записываем движения регистров Движения.ОстаткиМатериалов.Записать(); //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры Переключитесь в режим отладки, заполните документ ОказаниеУслуги и убедитесь, что в регистре накопления содержатся только материалы. 4. Необходимо знать какие денежные средства были затрачены на приобретение материалов и каковы материальные запасы в денежном выражении. Для этого создайте регистр накопления СтоимостьМатериалов. Этот регистр будет иметь одно измерение –Материал с типом СправочникССылка.Номенклатура и один ресурс Стоимость, тип данных числовой длина 15, точность 2 5. Теперь требуется изменить процедуру проведения документа ПриходнаяНакладная.. Откройте в конфигураторе объект конфигурации ПриходнаяНакладная, перейдите на вкладку Движение, в списке регистраторов отметьте еще и регистр СтоимостьМатериалов 6. Запустите конструктор движений. Добавьте в список регистров, по которым формируются еще регистр накопления СтоимостьМатериалов. Выберите табличную часть Материалы. Для ресурса стоимость выберите значение реквизита табличной части Сумма. Нажмите ОК и проанализируйте процедуру обработки проведения. Как видно конструктор со- здал два цикла обхода табличной части документа –отдельно для каждого регистра, в имеющемся документе табличная часть одна, поэтому объединим два цикла в один Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Для Каждого ТекСтрокаМатериалы Из Материалы Цикл // регистр ОстаткиМатериалов Приход Движение = Движения.ОстаткиМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Материал = ТекСтрокаМатериалы.Материал; Движение.Склад = Склад; Движение.Количество = ТекСтрокаМатериалы.Количество; //КонецЦикла; //Для Каждого ТекСтрокаМатериалы Из Материалы Цикл // регистр СтоимостьМатериалов Приход Движение = Движения.СтоимостьМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Материал = ТекСтрокаМатериалы.Материал; Движение.Стоимость = ТекСтрокаМатериалы.Сумма; КонецЦикла; // записываем движения регистров Движения.ОстаткиМатериалов.Записать(); Движения.СтоимостьМатериалов.Записать(); //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры 7. Перейдите в режим отладки и перепроведите документ. Откройте его и убедитесь в созданных записях в регистрах накопления: 8. Теперь измените прохождение документа ОказаниеУслуги. Для этого сначала измените форму документа ОказаниеУслуги. Добавьте в табличное поле колонку, отображающую реквизит Стоимость Теперь создайте движение документа ОказаниеУслуги. Стоимость будет вычисляться как произведение стоимости и количества. Нажмите ОК, в сформированном модуле, требуется объединить два цикла в один. Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНомеклатуры <> Перечисления.ВидыНоменклатуры.Материал Тогда Продолжить; КонецЕсли; // регистр ОстаткиМатериалов Расход Движение = Движения.ОстаткиМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура; Движение.Склад = Склад; Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество; //КонецЦикла; //Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл // регистр СтоимостьМатериалов Расход Движение = Движения.СтоимостьМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура; Движение.Стоимость = ТекСтрокаПереченьНоменклатуры.Стоимость*ТекСтрокаПереченьНоменклатуры.Количество; КонецЦикла; // записываем движения регистров Движения.ОстаткиМатериалов.Записать(); Движения.СтоимостьМатериалов.Записать(); //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры Перейдите в режим отладки и укажите стоимость выбранных метериалов. 9. Для учета услуг и определения рейтинга, нужно создать оборотный регистр накопления. Назовите его Продажи. На вкладке Данные определите измерения регистра: Номенклатура, тип СправочникСсылка.Номенклатура; Клиент, тип СправочникСсылка.Клиенты; Мастер, тип СправочникСсылка.Сотрудники. У регистра будет три ресурса: Количество, тип Число, длина 15, точность 3 Выручка, тип Число, длина 15, точность 2 Стоимость , тип Число, длина 15, точность 2. 10. В документе ОказаниеУслуги на вкладке Движения укажите, что документ будет создавать движение по регистру Продажи. 11. Измените процедуру проведения документа ОказаниеУслуги. Откройте в конфигураторе модуль объекта конфигурации документа ОказаниеУслуги, найдите процедуру ОбработкаПроведения. Создайте еще один цикл обхода табличной части и команду записи движений регистра Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНомеклатуры <> Перечисления.ВидыНоменклатуры.Материал Тогда Продолжить; КонецЕсли; // регистр ОстаткиМатериалов Расход Движение = Движения.ОстаткиМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура; Движение.Склад = Склад; Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество; //КонецЦикла; //Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл // регистр СтоимостьМатериалов Расход Движение = Движения.СтоимостьМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура; Движение.Стоимость = ТекСтрокаПереченьНоменклатуры.Стоимость*ТекСтрокаПереченьНоменклатуры.Количество; КонецЦикла; Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл //регистр Продажи Движение = Движения.Продажи.Добавить(); Движение.Период = Дата; Движение.Номенклатура = ТекСтрокаПереченьНоменклатуры.Номенклатура; Движение.Клиент = Клиент; Движение.Мастер = Мастер; Движение.Количество= ТекСтрокаПереченьНоменклатуры.Количество; Движение.Выручка = ТекСтрокаПереченьНоменклатуры.Сумма; Движение.Стоимость= ТекСтрокаПереченьНоменклатуры.Стоимость* ТекСтрокаПереченьНоменклатуры.Количество; КонецЦикла; // записываем движения регистров Движения.ОстаткиМатериалов.Записать(); Движения.СтоимостьМатериалов.Записать(); //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры 12. Перейдите в режим отладки, перепроведите все документы ОказаниеУслуги. Движение по регистру Продажи должны иметь вид: 13. Создайте отчет, выводящий список существующих в базе данных документов ОказаниеУслуги в порядке их дат и номеров. Создайте новый объект конфигурации Отчет СписокДокументовОказаниеУслуг. Введите имя и перейдите на вкладку Макет и запустите конструктор выходной формы. Выберите поля: Дата, Номер, Склад, Мастер, Клиент 14. На вкладке Порядок установите порядок сортировки : сначала по дате, потом по значению поля ОказаниеУслуги.Ссылка. На вкладке Отчет сбросьте флаг Ис- пользовать построитель отчета. Нажмите ОК, потом проанализируйте процедуру СписокДокументовОказаниеУслуги. Для проверки перейдите в режим отладки и сформируйте отчет 15. Создайте отчет Рейтинг услуг. В этом отчете используется запрос с параметром, также используется левое внешнее объединение. Создайте новый объект конфигурации отчет РейтингУслуг, перейдите на вклад- ку Макет. Выберите две таблицы :ссылочную таблицу Номенклатура и виртуальную таблицу регистра накопления ПродажиОбороты. Для исключения неоднозначности в именах переименуйте таблицу Номенклатура . 16. Установите курсор на таблицу ПродажиОбороты и вызовите команду ввода параметров виртуальной таблицы (Символ & указывает, что это параметр запроса). 17. Теперь выберите поля СпрНоменклатура.Ссылка и ПродажиОбороты.ВыручкаОборот Перейдите на вкладку Связи Установите связи Установите на вкладке Условия выбора элементов 18. На вкладке Объединения/Псевдонимы укажите псевдонимы: Услуга, Выручка 19. На вкладке Порядок укажите порядок сортировки поля Выручка по убыванию 20. На вкладке Итоги нужно определить , что будут выводиться общие итоги по полю Выручка 21. На вкладке Отчет сбросьте флажок Использовать построитель отчета 22. На вкладке Выходная форма укажите, что параметры ДатаОкончания ДатаНачала будут редактироваться в форме в полях ввода с типом Дата 23. Нажмите ОК. Платформа сформирует макет и форму отчета. Откройте модуль формы и измените процедуру РейтингУслуг Процедура РейтингУслуг(ТабДок, ВидНомеклатуры, Датаначала, ДатаОкончания) Экспорт //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(РейтингУслуг) // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Макет = ПолучитьМакет("РейтингУслуг"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СпрНоменклатура.Ссылка КАК Услуга, | СпрНоменклатура.Представление, | ПродажиОбороты.ВыручкаОборот КАК Выручка |ИЗ | Справочник.Номенклатура КАК СпрНоменклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&Датаначала, &ДатаОкончания, , ) КАК ПродажиОбороты | ПО (ПродажиОбороты.Номенклатура = СпрНоменклатура.Ссылка) |ГДЕ | СпрНоменклатура.ЭтоГруппа = ЛОЖЬ | И СпрНоменклатура.ВидНомеклатуры = &ВидНомеклатуры | |УПОРЯДОЧИТЬ ПО | Выручка УБЫВ |ИТОГИ | СУММА(Выручка) |ПО | ОБЩИЕ"; Запрос.УстановитьПараметр("ВидНомеклатуры", Перечисления.ВидыНоменклатуры.Услуга); Запрос.УстановитьПараметр("Датаначала", Датаначала); Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания); Результат = Запрос.Выполнить(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы"); ОбластьОбщийИтог = Макет.ПолучитьОбласть("ОбщиеИтоги"); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ВыборкаОбщийИтог.Следующий(); // Общий итог ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог); ТабДок.Вывести(ОбластьОбщийИтог, ВыборкаОбщийИтог.Уровень()); ВыборкаДетали = ВыборкаОбщийИтог.Выбрать(); Пока ВыборкаДетали.Следующий() Цикл ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали); ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень()); КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.Вывести(ОбластьПодвалТаблицы); ТабДок.Вывести(ОбластьПодвал); //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ КонецПроцедуры //// Процедура ДействияФормыРейтингУслугСформировать(Кнопка) //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(РейтингУслу г) // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! ТабДок = ЭлементыФормы.ПолеТабличногоДокумента; ОтчетОбъект.РейтингУслуг(ТабДок, Неопределено, Датаначала, КонецДня(ДатаОкончания)); //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА КонецПроцедуры 24. Перейдите в режим отладки и сформируйте отчет. 25. Создайте отчет ВыручкаМастеров.В отчете должна выводиться информация о выручке по каждому мастеру с разворотом по каждому клиенту по всем дням 26. Создайте новый объект конфигурации, перейдите на вкладку Макет и запустите конструктор выходной формы. Выберите виртуальную таблицу регистра накопления ПродажиОбороты. Задайте для нее значения параметров НачалоПериода и КонецПериода и периодичность. 27. Выберите поля: ПродажиОбороты.Мастер ПродажиОбороты.Период; ПродажиОбороты.Клиент; Продажи.Обороты.ВыручкаОборот 28. Установите группировку: Просмотрите полученный запрос, проверьте отчет 29. Самостоятельно создайте отчеты перечню услуг, по рейтингу клиентов. Контрольные вопросы 1. Как использовать конструктор запроса? 2. Как запросом выбрать данные в некотором периоде? 3. Как вывести запросом иерархический справочник? 4. Что такое сводная таблица и как ее использовать для вывода результата отчета? 5. Как заполнить диаграмму данными, используя средства встроенного языка? Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 1. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Практическое занятие № 3-2 Лабораторная работа № 3 Тема: План видов характеристик Краткие теоретические сведения План видов характеристик предназначен для описания структуры хранения информации о характеристиках , создаваемых пользователем. Задание Реализуйте возможность ведения учета в разрезе цвета товаров, используя план видов характеристик. Ход выполнения работы 1. Для того, чтобы узнать остатки материалов, обладающих некоторым значением характеристики, достаточно будет выбрать из регистра сведений все элементы подчиненного справочника, обладающего таким значением характеристики, а затем и их владельцам получить остатки регистра накопления. Создайте несколько новых объектов конфигурации: Справочник с именем ВариантыНоменклатуры и укажите, что он будет подчинен справочнику Номенклатура; Справочник с именем ДополнительныеСвойстваНоменклатуры; Объект конфигурации План видов характеристик с именем СвойстваНоменклатуры. 2. Справочнику ДополнительныеСвойстваНоменклатуры укажите владельца – план видов характеристик СвойстваНоменклатуры. 3. Создайте объект конфигурации Регистр сведений с именем ЗначенияСвойствНоменклатуры. Измерения регистра: НаборСвойств, ведущее, тип СправочникСсылка.ВариантыНоменклатуры; Ресурс регистра: Значение, тип Характеристика.СвойстваНоменклатуры. 4. Теперь нужно доработать справочник Номенклатура. Для этого укажите, что справочник Номенклатура будет редактироваться теперь обоими способами, в списке и в диалоге, и создайте основную форму элемента при помощи конструктора. Немного увеличьте размер формы, и добавьте в нее панель, выполнив команду Форма->Вставить элемент управления ->Панель. Измените положение панели и ее размер, появится вопрос: перенести элементы управления в накрывавшую их панель? Ответьте утвердительно и все элементы управления переместятся в добавленную панель 5. Добавьте еще страницу, выбрав из контекстного меню команду Добавить страницу. Задайте имя новой страницы Свойства, а первую страницу переименуйте в Основные. 6. Перейдите на вкладку Свойства и добавьте надпись с заголовком Варианты номенклатуры Поле Код удалите, и для этого табличного поля установите свойство Связь по владельцу –СправочникОбъект.Ссылка Установка этого свойства обеспечивает то, что для источника данных этого поля – реквизита формы Варианты, имеющего тип СправочникСписок.ВариантыНоменклатуры, значение отбора по владельцу будет равно ссылке на редактируемый элемент справочника Номенклатура. 7. Затем разместите надпись с заголовком Значение свойств, под ней расположите табличное поле с командной панелью и именем Свойства и типом РегистрСведенийСписок.ЗначенияСвойствНоменклатуры. Для колонки НаборСвойств снимите флажок Видимость . 8. Для поля ввода в клонке Значение установите связь по типу элементыФормы.Свойства.Текущиеданные.ВидСвойства Связь по типу будет обеспечивать то, что тип значений, вводимых в это поле ввода. будет ограничен только типом характеристики, выбранной в поле Вид Свойства. Но также следует то, что нужно обеспечить чтобы при смене значения в поле Вид Свойства привести значение поля Значение к типу характеристики, выбранной в поле Вид Свойства. 9. Для поля ввода в колонке Вид свойства создайте обработчик события При изменении Процедура СвойстваВидСвойстваПриИзменении(Элемент) ДанныеВидСвойства = ЭлементыФормы.Свойства.ТекущиеДанные.ВидСвойства; ЭлементыФормы.Свойства.ТекущиеДанные.Значение = ДанныеВидСвойства.ТипЗначения.ПривестиЗначение(ЭлементыФормы.Свойства.ТекущиеДанные.Значен ие); КонецПроцедуры 10. Теперь сделайте так, чтобы в табличном поле Свойства отображались записи регистра сведений, относящиеся только к выбранному в верхнем табличном поле элементу справочника ВариантыНоменклатуры. Для табличного поля Варианты создайте обработчик события При активизации строки: Процедура ВариантыПриАктивизацииСтроки(Элемент) ЭлементыФормы.Свойства.Значение.Отбор.НаборСвойств.Установить(Элемент.ТекущиеДанные.Сс ылка, Истина); КонецПроцедуры 11. Чтобы не отображать весь регистр при открытии формы, создайте обработчик события формы ПриОткрытии Процедура ПриОткрытии() ЭлементыФормы.Свойства.Значение.Отбор.НаборСвойств.Установить( , Истина); КонецПроцедуры Доработка справочника ВариантыНоменклатуры. 12. Надо иметь возможность создавать новые свойства материалов, как при редактировании, так и при вводе нового материала. Для этого укажите, что справочник ВариантыНоменклатуры будет редактироваться как в списке, так и в диалоге. 13. Откройте основную форму элемента справочника ВариантыНоменклатуры и увеличьте размер формы вниз. На освободившееся место поместите табличное поле с именем Свойства, типом РегистрСведенийСписок.ЗначенияСвойствНоменклатуры и командной панелью. Для колонки НаборСвойств снимите флажок видимости. 14. Затем для поля ввода, расположенного в колонке Значение задайте связь по типу ЭлементыФормы.Свойства.ТекущиеДанные.ВидСвойства 15. Для поля ввода, расположенного в колонке ВидСвойства создайте обработчик события при изменении Процедура СвойстваВидСвойствПриИзменении(Элемент) ДанныеВидСвойства = ЭлементыФормы.Свойства.ТекущиеДанные.ВидСвойства; ЭлементыФормы.Свойства.ТекущиеДанные.Значение = ДанныеВидСвойства.ТипЗначения.ПривестиЗначение(ЭлементыФормы.Свойства.ТекущиеДанные.Значен ие); КонецПроцедуры 16. Добавьте процедуру обработчика события при изменении ссылки Процедура ПриИзмененииСсылки(ПутькДанным) Свойства.Отбор.НаборСвойств.Установить(Ссылка, Истина); КонецПроцедуры 17. Затем в модуль формы добавьте вызов обработчика ПодключитьОбработчикИзмененияДанных("СправочникОбъект.Ссылка", "ПриИзмененииСсылки"); 18. Для того, чтобы пользователь мог начать задавать новые значения свойств. не записав еще сам элемент справочника НаборыСвойств, создайте обработчик события табличного поля Процедура СвойстваПередНачаломДобавления(Элемент, Отказ, Копирование) Если ЭтоНовый() Тогда Записать(); КонецЕсли; КонецПроцедуры Доработка регистра ОстаткиМатериалов Для того чтобы обеспечивать учет материалов по значениям характеристик, нужно изменить структуру регистра накопления ОстаткиМатериалов и добавить в него новое измерение НаборСвойств с типом СправочникСсылка.ВариантыНоменклатуры 19. Теперь нужно доработать документ ПриходнаяНакладная, для того чтобы при приходовании товаров пользователь мог указывать набор свойств для каждого приходуемого материала, добавив в табличную часть документа новый реквизит НаборСвойств с типом СправочникСсылка.ВариантыНоменклатуры 20. Для поля ввода, расположенного в колонке НаборСвойств воспользуйтесь свойством Связь по владельцу – ЭлементыФормы.Материалы.ТекущиеДанные.Материал. 21. Добавьте в процедуру обработки проведения в модуле документа присвоение значения измерению НаборСвойств Процедура ОбработкаПроведения(Отказ, Режим) Для Каждого ТекСтрокаМатериалы Из Материалы Цикл // регистр ОстаткиМатериалов Приход Движение = Движения.ОстаткиМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Материал = ТекСтрокаМатериалы.Материал; Движение.Склад = Склад; Движение.НаборСвойств = ТекСтрокаМатериалы.НаборСвойств; Движение.Количество = ТекСтрокаМатериалы.Количество; // регистр СтоимостьМатериалов Приход Движение = Движения.СтоимостьМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Материал = ТекСтрокаМатериалы.Материал; Движение.Стоимость = ТекСтрокаМатериалы.Сумма; // регистр Управленческий Движение = Движения.Управленческий.Добавить(); Движение.СчетДт = ПланыСчетов.Основной.Товары; Движение.СчетКт = ПланыСчетов.Основной.РасчетыСПоставщиками; Движение.Период = Дата; Движение.Сумма = ТекСтрокаМатериалы.Сумма; Движение.КоличествоДт = ТекСтрокаМатериалы.Количество; Движение.СубконтоДт.Материалы = ТекСтрокаМатериалы.Материал; КонецЦикла; // записываем движения регистров Движения.ОстаткиМатериалов.Записать(); Движения.СтоимостьМатериалов.Записать(); Движения.Управленческий.Записать(); //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры 22. Перейдите в режим отладки и создайте несколько наборов свойств. Для кабеля, например, задайте цвет, сечение; для шланга –цвет, производитель и т.д. 23. Откройте документ ПриходнаяНакладная и укажите характеристики кабеля и шланга. Проведите документ и посмотрите движение документа по регистру ОстаткиМатериалов.. Контрольные вопросы 1. В чем принципиальное отличие плана вида характеристик от справочника? 2. Что такое тип значения характеристик? 3. Как, используя план видов характеристик, организовать учет по переменному количеству характеристик? 4. Что такое связь по типу? 5. Что такое связь по владельцу? Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 1. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 9 семестр Практическое занятие № 1 Тема: Документы и последовательности Цель: Изучить проведение оптимизации документов Краткие теоретические сведения Если алгоритм проведения документа использует только те данные, которые присутствуют в реквизитах документа (и его табличных частей), вполне достаточно использовать конструктор движений документа (например, в документе"ПриходнаяНакладная"). Если же в алгоритме проведения требуется анализировать дополнительные реквизиты объектов, ссылки на которые содержатся в документе, а также использовать результаты расчета итогов регистров, – следует использовать запросы для более быстрой выборки данных из базы данных. To же самое справедливо в отношении выполнения любых участков программы, критичных по производительности. Механизм запросов лучше "читает" информационную базу и может за один раз выбрать все необходимые данные, поэтому, например, в типовых решениях вы практически не увидите использования объекта СправочникВыборка<имя>. Задание № 1. Выполните оптимизацию документа ОказаниеУслуги Для оптимизации документа "ОказаниеУслуги" – удалите реквизит табличной части "Стоимость", который не понадобится в будущем. Также следует удалить соответствующую колонку из табличного поля, расположенного в форме. После этого можно полностью удалить содержимое обработчика события "ОбработкаПроведения" в модуле документа и создать в нем заготовку процедуры проведения. Текст запроса, выполняемого в режиме оперативного проведения, будет отличаться от запроса, выполняемого при неоперативном проведении, поэтому при формирование текста запроса включите условие Если...Иначе...КонецЕсли: Контрольные вопросы 1. Как система 1С:Предприятие выполняет обращение к ссылочным данным? 2. Почему для доступа к массивам данных информационной базы предпочтительнее использовать запросы? 3. Как запросом получить остатки регистра накопления? 4. Когда следует использовать ключевое предложение ДЛЯ ИЗМЕНЕНИЯ? Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 1. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Практическое занятие № 2 Тема: Реализация задач бухгалтерского учёта Цель: Изучить возможность ведения бухгалтерского учета средствами 1С:Предприятие Краткие теоретические сведения Для ведения бухгалтерского учета средствами 1С:Предприятия можно использовать план видов характеристик и два новых объекта конфигурации – план счетов и регистр бухгалтерии. Регистр бухгалтерии будет использоваться для накопления данных о совершенных хозяйственных операциях. С помощью плана счетов описывают счета, в разрезе которых ведется учет, а план видов характеристик будет служить для описания объектов аналитического учета, в разрезе которых должен вестись учет на счетах. План счетов, который будет использовать в нашей учебной конфигурации, очень сильно упрощен. Он содержит всего несколько условных счетов, которые, однако, позволят познакомиться с основными методами организации бухгалтерского учета средствами 1С:Предприятия. Бухгалтерский учет, как правило, подразумевает ведение аналитического учета на большинстве из счетов. Для обозначения объектов аналитического учета используется термин субконто. Так вот, частным случаем использования плана видов характеристик является использование его для описания субконто, т.е. все объекты аналитического учета, в разрезе которых должен вестись учет на тех или иных счетах, описываются в соответствующем плане видов характеристик и там же задаются типы значений, которые могут принимать те или иные субконто. Объект конфигурации Регистр бухгалтерии является прикладным объектом и предназначен для описания структуры накопления данных, учет которых ведется исходя из некоторого плана счетов. На основе объекта конфигурации Регистр бухгалтерии платформа создает в базе данных информационную структуру, в которой будут накапливаться данные о хозяйственных операциях, отображаемых в бухгалтерском учете. По своему виду регистр бухгалтерии напоминает регистр накопления – он также имеет ресурсы, может иметь измерения и реквизиты. Измерения позволяют разделять ведение учета (например, используя измерение "Организация", можно вести учет в разрезе нескольких юридических лиц). Реквизиты служат признаком, по которому одни записи регистра можно отделить от других (например, в качестве реквизита может использоваться номер журнала, что позволит отбирать проводки, имеющие одинаковый смысл). Значительное отличие от регистра накопления заключается в том, что регистр бухгалтерии имеет жесткую связь с используемым планом счетов. Поэтому каждая запись регистра бухгалтерии содержит дополнительные поля, определяемые настройкой используемого плана счетов. Например, запись регистра может содержать дополнительные поля для указания корреспондирующих счетов, сумм, объектов аналитического учета (субконто), количества, вида валюты и т.д. Кроме этого, отличительной чертой регистра бухгалтерии является возможность поддержки механизма двойной записи, при которой каждая запись регистра содержит обязательные поля для указания счета дебета и счета кредита. Задание № 1. Добавьте в разрабатываемую конфигурацию объект План видов характеристик ВидыСубконто. Также добавьте объекты План счетов и объект конфигурации Регистр бухгалтерии. Создайте движение документа ПриходнаяНакладная. Создайте отчет ОборотноСальдоваяВедомость. Контрольные вопросы 1. Как использовать план видов характеристик для организации ведения бухгалтерского учета? 2. Что такое субконто? 3. Для чего предназначен объект конфигурации План счетов? 4. Для чего предназначен Регистр бухгалтерии? 5. Как создать регистр бухгалтерии и настроить параметры учета? Литература Основная 5. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 6. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 7. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 8. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 2. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Практическое занятие № 3 Тема: Реализация сложных периодических расчетов Цель: Изучить использование регистра расчета Краткие теоретические сведения 1С:Предприятие предоставляет возможности для автоматизации сложных периодических расчетов. Такие расчеты используются, прежде всего, при расчете заработной платы. В общем случае, сумма заработной платы сотрудника складывается из множества частей (например, оплата по окладу, премии, штрафы, оплаты по больничному листу, разовые выплаты и т.д.). Каждая из этих частей рассчитывается по некоторому алгоритму, присущему только этой части. Например, сумма штрафа может определяться просто фиксированной суммой, сумма премии может рассчитываться как процент от оклада, а сумма оплаты по окладу рассчитывается исходя из количества рабочих дней в месяце и количества дней, отработанных сотрудником. Поэтому для обозначения каждой такой части мы будем использовать термин вид расчета. Алгоритм каждого вида расчета опирается в общем случае на две категории параметров: период, за который нужно получить конечные данные и набор некоторых исходных данных, используемых при расчете. Как правило, в реальной жизни различные виды расчета существуют не сами по себе, а оказывают некоторое влияние на другие виды расчета. Исходя из того, что вид расчета опирается на две различные категории параметров, такое влияние тоже имеет двойственный характер. Во-первых, это может быть влияние на исходные данные, используемые при расчете. В качестве примера можно привести начисление премии в виде процента от оплаты по окладу. При изменении оплаты по окладу размер премии тоже должен быть пересчитан, исходя из новой суммы начисленного оклада. Другими словами, сумма начисленного оклада является базой для расчета премии. Причем, поскольку оклад рассчитывается за некоторый период, то при расчете премии интересно знать не значение оклада вообще, а сумму, которая начислена в том периоде, который влияет на расчет премии. Такой период будем называть базовым, а подобную зависимость между видами расчета будем называть зависимостью по базовому периоду. Объект конфигурации План видов расчета является прикладным объектом и предназначен для описания структуры хранения информации о возможных видах расчетов. На основе объекта конфигурации План видов расчета платформа создает в базе данных информационную структуру в которой может храниться информация о том, какие существуют виды расчета, и каковы взаимосвязи между ними. Отличительной особенностью плана видов расчета является то, что пользователь в процессе работы может добавлять в план видов расчета новые виды расчета. Такая возможность делает механизм периодических расчетов более гибким и позволяет пользователю создавать собственные виды расчета, помимо тех, которые заданы разработчиком как предопределенные. Объект конфигурации План видов расчета имеет свойство "Использует период действия". С помощью этого свойства определяется, будут ли в этом плане находиться виды расчета, которые могут быть вытеснены по периоду действия. Если это свойство установлено, то разработчик получает возможность указать для каждого вида расчета те виды расчета, которые вытесняют его по периоду действия. Следующим важным свойством объекта конфигурации План видов расчета является свойство "Зависимость от базы". Оно определяет, будут ли в этом плане находиться зависимые по базовому периоду виды расчета. Если это свойство установлено, появляется возможность указать, в каком плане видов расчета будут находиться базовые виды расчета и, кроме этого указать, как будет определяться эта зависимость. Существует возможность указать один из двух видов зависимости от базы: "Зависимость по периоду действия" и "Зависимость по периоду регистрации". Еще одной важной осо- бенностью плана видов расчета является возможность создания предопределенных видов расчета и описания их взаимного влияния. При этом в общем случае, разработчик имеет возможность указать три категории видов расчета, влияющих на предопределенный вид расчета: Базовые – это те виды расчета, результаты которых должны быть использованы при перерасчете этого вида расчета Вытесняющие – это те виды расчета, которые вытесняют этот вид расчета по периоду действия Ведущие – это те виды расчета, изменение результатов которых должно приводить к необходимости перерасчета этого вида расчета. 1. то такое сложные периодические расчеты? 2. Какая разница между базовым периодом, фактическим периодом и периодом действия? 3. Что такое вытеснение по периоду действия? 4. Для чего предназначен объект конфигурации План видов расчета? 5. Каковы отличительные особенности регистра расчета? Литература Основная 9. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 10. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 11. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 12. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 3. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Практическое занятие № 4 Тема: Использование механизма бизнес-процессов и анализа данных и прогнозирования Цель: Изучить возможности анализа 1С6Предприятие Краткие теоретические сведения В общем случае анализ и прогнозирование данных связаны следующим образом. Анализ данных позволяет найти неочевидные закономерности в анализируемых данных, и представить их в виде легко воспринимаемого результата. Прогнозирование позволяет, на основе проведенного анализа данных, предсказать последующие события или значения некоторых характеристик для новых исходных данных. Таким образом, результаты анализа являются основой, на которой строятся последующие прогнозы Источник данных – представляет исходные данные для анализа. В качестве источника данных может выступать результат запроса, область ячеек табличного документа или таблица значений. Тип анализа – определяет вид результата, к которому должны быть сведены исходные данные. Система поддерживает пять различных типов анализа: общая статистика – позволяет получить общую статистическую информацию об источнике данных для его предварительного исследования (количество значений и количество уникальных значений, минимальное, максимальное и среднее значение, размах, стандартное отклонение, медиана, мода, частота появления каждого значения в источнике), поиск ассоциаций предназначен для поиска часто встречаемых групп характеристик объектов и создания правил ассоциации "Если ... To ..." (например, такой анализ может быть использован для поиска групп товаров, часто покупаемых вместе) поиск последовательностей – применяется для выявления цепочек событий часто наблюдаемых в источнике данных (например, это может быть цепочка товаров или услуг, которые часто последовательно приобретают клиенты), дерево решений – предназначен для выявления закономерностей того, что объект относится к тому или иному классу (например, при помощи дерева решения можно проанализировать какие характеристики клиента влияют на то, что он перейдет к другому поставщику), кластерный анализ – при помощи кластерного анализа можно объединить объекты в группы (кластеры), в которых будут находиться объекты, наиболее схожие по ряду характеристик. Например, можно сгруппировать клиентов по их характеристикам и деятельности, чтобы в дальнейшем проанализировав полученные кластеры принять решение о стратегии работы с клиентами определенных групп. Анализ данных – объект встроенного языка (АнализДанных), непосредственно выполняющий анализ данных. Объекту устанавливается источник данных, задаются параметры, настраиваются колонки анализа данных. Результатом работы данного объекта является результат анализа данных, тип которого зависит от типа анализа. Каждому типу анализа соответствует свой тип результата анализа. Результат анализа – объект встроенного языка, содержащий информацию о результате анализа. Для каждого типа анализа предусмотрен свой тип результата. Например, результатом анализа данных типа АнализДанныхДеревоРешений будет объект типа РезультатАнализаДанныхДеревоРешений. В дальнейшем результат может быть выведен в табличный Документ при помощи построителя отчета анализа данных (о нем будет рассказано далее), может быть выведен посредством программного доступа к его содержимому, может быть использован [447] для создания модели прогноза. Любой результат анализа данных может быть сохранен для последующего использования. Задание №1 Проведите общестатистический анализ данных, содержащихся в регистре накопления “Продажи” №2. Проведите анализ АнализДанныхПоискАссоциаций для регистра Продажи: поле Регистратор и измерение “Номенклатура” № 3. Проведите анализ АнализДанныхПоискПоследовательностей для регистра “Продажи : измерения“ “Номеклатура”, ”Контрагент” и поле “Период” Контрольные вопросы 1. Чем анализ данных отличается от прогнозирования? 2. Какие объекты встроенного языка обеспечивают работу механизма анализа данных? 3. Какие объекты встроенного языка обеспечивают работу механизма прогнозирования данных? 4. Что такое построитель отчета анализа данных? Литература Основная 13. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 14. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 15. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 16. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 4. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Практическое занятие № 5 Тема: Средства построения отчетов Цель: Изучить использование регистра расчета Краткие теоретические сведения При проведении документа сначала записываем движения, сформированные документом, в регистр, а затем передаем этот набор записей регистра в процедуру расчета. Сначала для расчета первичных записей ("Оклад"), а затем для расчета вторичных ("Премия"). Процедура расчета, на основе описанных в ней алгоритмов и данных, содержащихся в записях регистра, должна сформировать значения ресурсов регистра. После того, как ресурсы будут рассчитаны, перезаписываем набор записей регистра без формирования записей перерасчета (второй параметр в методе Записать() – Истина). Перед вызовом процедуры из общего модуля мы формируем список сотрудников, содержащихся в документе, чтобы передать его в вызываемую процедуру. Теперь создадим в ветке "Общие" новый общий модуль "ПроведениеРасчетов". Добавим в него заготовку процедуры "РасчитатьНачисления": Процедура РасчитатьНачисления(НаборЗаписейРегистра, ТребуемыйВидРасчета, СписокСотрудников) Экспорт //Рассчитать первичные записи Если ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда //Рассчитать вторичные записи ИначеЕсли ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Премия Тогда КонецЕсли; КонецПроцедуры Алгоритм расчета начислений будет различным при расчете первичных и вторичных записей, и каждая из его частей будет находиться в своей ветке условия Если... При расчете первичных записей нам понадобятся данные графика из регистра расчета, поэтому добавим в первую ветку условия запрос по виртуальной таблице регистра расчета "РегистрРасчета.Начисления.ДанныеГрафика": Процедура РасчитатьНачисления(НаборЗаписейРегистра, ТребуемыйВидРасчета, СписокСотрудников) Экспорт //Рассчитать первичные записи Если ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НачисленияДанныеГрафика.ЗначениеПериодДействия КАК Норма, | НачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК Факт, | НачисленияДанныеГрафика.НомерСтроки КАК НомерСтроки |ИЗ | РегистрРасчета.Начисления.ДанныеГрафика( | Регистратор = &Регистратор | И ВидРасчета = &ВидРасчета | И Сотрудник В (&СписокСотрудников)) КАК НачисленияДанныеГрафика"; Запрос.УстановитьПараметр("Регистратор", НаборЗаписейРегистра.Отбор.Регистратор.Значение);[351] Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета); Запрос.УстановитьПараметр("СписокСотрудников",СписокСотрудников); ВыборкаРезультата = Запрос.Выполнить().Выбрать(); //Рассчитать вторичные записи ИначеЕсли ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Премия Тогда КонецЕсли; КонецПроцедуры Задание №1. Добавьте в разрабатываемую конфигурацию Регистр расчета, а затем на основании данных из этого регистр создать отчет Контрольные вопросы 1. Как создать движения документа по регистру расчета? 2. Как запросом получить записи перерасчета? 3. Как выполнить перерасчет отдельных записей регистра расчета? 4. Как получить запросом фактический период действия записей регистра расчета? Литература Основная 17. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 18. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 19. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 20. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 5. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Практическое занятие № 6 Тема: Интеграция с другими информационными системами Цель:Изучить возможности интеграции 1С:Предприятия с другими информационными системами Краткие теоретические сведения Для того, чтобы существовала возможность обмена какими-либо данными с кем-либо, необходимо некоторым образом идентифицировать тех, с кем мы будем обмениваться и для каждого из них описать перечень того, чем мы будем с ним обмениваться. Обе эти задачи позволяет решать прикладной объект конфигурации План обмена. Подобно тому, как элементами данных справочника являются элементы справочника, элементами данных плана обмена являются узлы плана обмена. Каждый узел идентифицирует участника обмена данными по данному плану обмена. Кроме этого, в каждом плане обмена всегда существует один предопределенный узел, идентифицирующий данную информационную базу. В одной конфигурации может существовать несколько планов обмена. Каждый план обмена определяет набор данных, которым будет производиться обмен в рамках данного плана и сам механизм этого обмена. Наличие нескольких планов обмена может [395] потребоваться в случае, если с разными узлами ведется обмен разным составом данных, или когда схема организации обмена с одними узлами отличается от схемы организации обмена с другими узлами. В состав данных, которыми может производиться обмен, входят элементы информационных структур базы данных, которые описываются следующими объектами встроенного языка: УдалениеОбъекта. Для упрощения изложения, в дальнейшем будем называть эти элементы информационных структур объектами обмена. Разработчик имеет возможность определить состав каждого плана обмена, указав, объекты конфигурации, данные которых должны участвовать в обмене по данному плану. При описании состава данных плана обмена разработчик имеет возможность указать для каждого типа объектов признак "Авторегистрация". Этот признак определяет, каким образом план обмена будет отслеживать изменения этих данных. Возможность отслеживать изменения данных реализована в плане обмена за счет использования механизма регистрации изменений. Работа этого механизма базируется на том, что каждый из объектов обмена имеет свойство "ОбменДанными", с помощью которого можно указать, для каких узлов необходимо производить регистрацию изменений этого объекта. Любые изменения объекта обмена сводятся, [396] в конечном итоге, к записи или удалению объекта обмена. Механизм регистрации изменений анализирует события записи и удаления объектов обмена и на основании параметров обмена данными, содержащихся в каждом из объектов обмена, формирует записи регистрации изменений. Следует отметить, что свойство "ОбменДанными" не хранится в базе данных, а используется только во время записи объекта обмена. Так вот, признак "Авторегистрация", устанавливаемый при указании состава данных плана обмена, позволяет указать, что параметры обмена данными будут формироваться каждый раз самим механизмом регистрации изменений на основании информации, содержащейся в плане обмена. После автоматического заполнения параметров обмена, разработчик все же имеет возможность внести изменения в сформированные таким образом параметры. Для этого следует использовать обработчики событий объектов, участвующих в обмене – "ПередЗаписью" и "ПередУдалением", в которых можно модифицировать список узлов-получателей (т.е. тех узлов, для которых регистрируются изменения). Кроме этого, существует возможность отключить авторегистрацию изменений, и тогда параметры обмена данными нужно будет формировать полностью средствами встроенного языка. Гипотетически делать это можно в любом фрагменте кода, но для того, чтобы конфигура- ция была легко читаема, рекомендуется использовать для этих целей все те же обработчики событий "ПередЗаписью" и "ПередУдалением". В этом случае код формирования параметров обмена данными будет сосредоточен в логически понятных точках, а не разбросан по всей конфигурации. Итак, как мы теперь знаем, при записи и удалении объектов обмена план обмена формирует записи регистрации изменений. Записи регистрации изменений хранятся в таблицах регистрации изменений, причем для каждого объекта обмена ведется своя отдельная таблица регистрации изменений. При изменении объекта обмена в таблице регистрации изменений создается столько записей, сколько узлов-получателей указано в параметрах обмена данными у объекта обмена. Каждая запись при этом будет хранить ссылку на свой узел-получатель. Таблицы регистрации изменений создаются лишь в том случае, если соответствующий объект метаданных указан в составе хотя бы одного плана обмена. [397] Кроме ссылки на узел обмена, для которого регистрируются изменения, каждая запись таблицы регистрации изменений хранит также номер сообщения, в котором изменение было передано в первый раз в этот узел. До тех пор, пока сообщение не будет передано в первый раз, это поле хранит Null. Сообщение, с точки зрения плана обмена, это единица обмена информацией. Поэтому одной из важнейших составляющих плана обмена, помимо службы регистрации изменений, является инфраструктура сообщений. Поскольку сообщения передаются в рамках плана обмена от одного узла к другому, каждое сообщение точно ассоциировано с планом обмена, имеет уникальный номер и имеет одного отправителя и одного получателя. За нумерацию сообщений отвечает инфраструктура сообщений, и благодаря этому записи регистрации изменений и имеют возможность хранить номера сообщений, в которых эти изменения были переданы первый раз. Инфраструктура сообщений позволяет, также, получать подтверждения от узлаполучателя о приеме сообщений. Такое подтверждение содержится в каждом сообщении, приходящем от узла-получателя в виде номера последнего принятого сообщения. Впоследствии, проанализировав номер последнего принятого сообщения и номера сообщений, содержащиеся в записях регистрации изменений, разработчик может удалить записи регистрации изменений, прием которых подтвержден получателем. Задание № 1 В рассматриваемой конфигурации предприятие ООО "На все руки мастер" открыло свой филиал в городе XX и установило в нем такую же конфигурацию для учета работы филиала. В результате возникла необходимость наладить обмен данными между этими двумя базами таким образом, чтобы каждая из баз отражала полную информацию о материалах и услугах, в то время как бухгалтерский учет и расчет зарплаты велся бы в каждой базе отдельно. Ход выполнения работы Для этого создадим план обмена, опишем состав данных, которые будут включены в обмен и создадим несколько процедур, которые будут позволять нам формировать на жестком диске файлы обмена и соответственно загружать полученные файлы обмена с жесткого диска. Для упрощения примера мы не будем программировать какой-либо автоматический обмен файлами между двумя базами, и запуск процедуры обмена будем осуществлять вручную. Прежде чем мы начнем непосредственно программировать алгоритм обмена, следует сказать о некоторых доработках, которые нам придется предварительно внести в нашу базу. Эти доработки будут связаны с тем, что до сих пор мы работали только в одной базе и использовали уникальность номеров кодов справочников и номеров документов. Теперь, когда создание новых элементов справочников и новых документов будет происходить в двух базах одновременно и независимо друг от друга, нам снова необходимо обеспечить уникальность номеров кодов элементов справочников и номеров документов теперь уже "в пространстве" двух баз. Если мы этого не сделаем, то не исключена ситуация, когда в каждой из баз будут созданы, например, новые документы с одинаковыми номерами и при обмене данными возникнет конфликт, поскольку система будет пытаться записать в базу документ с номером, который уже используется другим документом. Для исключения подобных ситуаций в каждой базе к номерам документов и кодам справочников мы будем добавлять уникальный префикс, однозначно идентифицирующий базу данных. Тогда, даже если номера новых документов в двух базах совпадут, они все равно будут отличаться префиксом и конфликта не возникнет. Для хранения префикса номеров мы используем объект конфигурации, с которым до сих пор еще не работали – это объект Константа. Создание константы ПрефиксНомеров Объект конфигурации Константа является прикладным объектом и предназначен для создания в базе данных структур, в которых будет храниться информация, которая не изменяется во времени или изменяется очень редко. Каждый объект конфигурации Константа описывает структуру для хранения одного значения. Теперь приступим к созданию константы, в которой мы будем хранить значение префикса номеров. Откроем конфигуратор и создадим новый объект конфигурации Константа с именем "ПрефиксНумерации". Определим тип значения константы – Строка, с фиксированной длиной 2 символа. Доработка объектов конфигурации, участвующих в обмене Первое, что нам следует сделать – внести изменения в модули всех объектов, участвующих в обмене (в нашем случае это будут документы, справочники и планы видов характеристик). Эти изменения будут заключаться в том, что теперь при формировании номера документа и кода справочника или плана видов характеристик будет использоваться значение константы "ПрефиксНумерации" для обеспечения уникальности номеров и кодов в каждой из наших баз. Функцию формирования префикса номера мы вынесем в общий модуль, поскольку не исключена возможность того, что в будущем алгоритм формирования префикса документов может быть изменен. Функцию мы разместим в общем модуле "ОбменДанными", выглядеть она будет следующим образом: Функция ПопучитьПрефиксНомера() Экспорт Возврат Константы.ПрефиксНумерации.Получить(); КонецФункции Как вы видите, эта функция просто возвращает значение константы "ПрефиксНумерации". Теперь доработаем справочник "Клиенты". В модуль объекта добавим следующий обработчик события "ПриУстановкеНовогоКода": ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс) Префикс = ПопучитьПрефиксНомера(); КонецПроцедуры Событие "При установке нового кода" возникает в момент, когда выполняется установка нового кода элемента справочника. Вторым параметром вызова обработчика передается префикс, который будет использоваться системой для генерации кода. В обработчике события мы устанавливаем его равным значению константы "ПрефиксНумерации". Такие же обработчики нужно будет добавить во все справочники и планы видов характеристик, участвующие в обмене. После этого у всех справочников и планов видов характе- ристик, участвующих в обмене, нужно будет изменить тип кода на Строка и увеличить длину кода до 7 символов. Теперь займемся доработкой документов. В модуль документа "ПриходнаяНакладная" добавим обработчик события "ПриУстановкеНовогоНомера": Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс) Префикс = ПопучитьПрефиксНомера(); КонецПроцедуры Такие же обработчики нужно будет добавить во все документы, участвующие в обмене. После этого для всех них нужно изменить тип номера на Строка и увеличить длину номера до 7 символов. На этом подготовительная работа с существующими объектами конфигурации завершена, и мы можем перейти к созданию процедур обмена данными. Создание плана обмена Филиалы Теперь займемся созданием "центра" любого алгоритма обмена данными, вокруг которого группируются прочие механизмы – плана обмена. Откроем конфигуратор и создадим новый объект конфигурации ПланОбмена с именем "Филиалы". На закладке "Данные" создадим реквизит плана обмена "Главный", имеющий тип Булево. Этот реквизит понадобится нам для того, чтобы разрешать коллизии при обмене данными. Под коллизией понимается ситуация, когда один и тот же объект обмена данными был изменен одновременно в двух узлах. В этом случае мы будем анализировать значение реквизита "Главный" и принимать изменения только в том случае, если они сделаны в главном узле. В случае коллизии, изменения, произведенные не в главном узле, мы будем отвергать. Теперь перейдем на закладку "Прочее" и определим состав объектов обмена данными (кнопка "Состав"). Установим отбор по подсистеме "УчетУслугИМатериалов" и включим в обмен все объекты, относящиеся к этой подсистеме. Проверьте, что константа "ПрефиксНумерации" не участвует в обмене, поскольку ее значение должно быть уникальным для каждой базы, участвующей в обмене. Теперь создадим с помощью конструктора основную форму узла, для того, чтобы описать в ней некоторые действия, которые должны выполняться при создании нового узла обмена. Суть этих действий будет заключаться в том, что при создании нового узла обмена мы должны будем сформировать для него все необходимые записи регистрации изменений для всех объектов конфигурации, входящих в данный план обмена. Это будет, своего рода, начальная синхронизация узла обмена всеми данными обмена. Прежде всего, опишем в модуле формы узла служебную переменную, которая будет хранить признак того, является ли записываемый узел новым, или нет: Перем РегистрацияВНовыйУзел; Затем создадим обработчик события формы "ПередЗаписью": Процедура ПередЗаписью(Отказ) РегистрацияВНовыйУзел = ЭтоНовый(); КонецПроцедуры Этот обработчик и будет устанавливать значение нашей служебной переменной в Истина, в случае записи нового узла плана обмена. После этого создадим обработчик события формы "ПриЗаписи": Процедура ПриЗаписи(Отказ) Если РегистрацияВНовыйУзел Тогда //Регистрация изменений всех данных для узла ПланыОбмена.ЗарегистрироватьИзменения(Ссылка); КонецЕсли; КонецПроцедуры Событие формы "ПриЗаписи" возникает после записи объекта ПланОбменаОбъект.Филиалы, но до окончания транзакции. Именно в этот момент мы обращаемся к механизму регистрации изменений, вызывая метод менеджера планов обмена – ЗарегистрироватьИзменения(). В данном случае будут созданы записи регистрации изменений, предназначенные для пересылки в созданный нами узел, для всех объектов обмена, указанных в составе данного плана обмена. В заключение, создадим обработчик события формы "ПередОткрытием" для того, чтобы запретить установку реквизита "Главный" для предопределенного узла, соответствующего данной информационной базе: Процедура ПередОткрытием(Отказ, СтандартнаяОбработка) Если Ссылка = ПланыОбмена.Филиалы.ЭтотУзел() Тогда ЭлементыФормы.Главный.Доступность = Ложь; КонецЕсли; КонецПроцедуры В этой процедуре мы используем метод менеджера плана обмена ЭтотУзел(), который возвращает ссылку на узел плана обмена, соответствующий данной информационной базе. На этом создание плана обмена завершено, и мы можем перейти непосредственно к созданию процедур обмена данными. Создание процедур обмена данными Для инициализации обмена данными мы используем объект конфигурации Обработка. Этот объект раньше не встречался нам, поэтому следует сказать о нем несколько слов. С точки зрения структуры и организации работы обработка ничем не отличается от отчета. Разница состоит лишь в том, что обработка обычно используется для того, чтобы выполнить какие-либо действия над информационной базой, а отчет – чтобы получить некоторое визуальное представление данных. Создание обработки ОбменДанными Откроем конфигуратор и создадим новый объект конфигурации Обработка с именем "ОбменДанными". Перейдем на закладку "Прочее" и откроем модуль объекта. Создадим в нем процедуру "ОбменСФилиалами": Процедура ОбменСФилиалами() Экспорт ВыборкаУзлов = ПланыОбмена.Филиалы.Выбрать(); Пока ВыборкаУзлов.Следующий() Цикл // Произвести обмен данными со всеми узлами, // кроме текущего (ЭтотУзел) Если ВыборкаУзлов.Ссылка <> ПланыОбмена.Филиалы.ЭтотУзел() Тогда УзелОбъект = ВыборкаУзлов.ПолучитьОбъект(); // Получить сообщение УзелОбъект.ПрочитатьСообщениеСИзменениями(); // Сформировать сообщение УзелОбъект.ЗаписатьСообщениеСИзменениями(); КонецЕсли; КонецЦикла; КонецПроцедуры Алгоритм работы этой процедуры заключается в следующем: В цикле мы перебираем узлы, которые содержатся в плане обмена "Филиалы", и для всех узлов, кроме себя самого, производим сначала чтение сообщений, поступивших из других узлов обмена (процедуру "ПрочитатьСообщенияСИзменениями" мы создадим позднее), а затем формируем для них сообщения, предназначенные для передачи и содержащие измененные данные для этого узла (процедура "ЗаписатьСообщениеСИзменениями" также будет создана нами позднее). Теперь создадим основную форму обработки и в обработчик события нажатия кнопки "Выполнить" – "КнопкаВыполнитьНажатие" вставим вызов процедуры ОбменСФилиалами(): Процедура КнопкаВыполнитьНажатие(Кнопка) ОбменСФилиалами(); КонецПроцедуры Создание процедуры записи данных Сами процедуры записи и чтения данных обмена мы разместим в модуле объекта План обмена "Филиалы". Сначала создадим процедуру, которая используется нами при обмене данными – "ЗаписатьСообщениеСИзменениями". Порядок создания этой процедуры будет следующим: сначала мы сформируем имя файла, который будет содержать данные для обмена: Процедура ЗаписатьСообщениеСИзменениями() Экспорт Сообщить("------------ Выгрузка в узел" + Строка(ЭтотОбъект) + "-----------"); Каталог = КаталогВременныхФайлов(); // Сформировать имя временного файла ИмяФайла = Каталог +?(Прав(Каталог, 1) = "\","", "\") + "Message" + СокрЛП(ПланыОбмена.Филиалы.ЭтотУзел().Код) + "_" + СокрЛП(Ссылка.Код) + ".xml"; Сообщить("------------ Конец выгрузки ------------"); КонецПроцедуры Для упрощения примера, мы будем обмениваться сообщениями через каталог временных файлов. Имена сообщений стандартизованы и имеют вид "МеssаgеКодУзлаОтправителя_КодУзлаПолучателя.xml". После этого обратимся к механизмам записи/чтения XML документов и создадим новый объект ЗаписьXML с помощью которого откроем новый XML файл для записи, запишем в него объявление XML, и в конце процедуры завершим запись закроем файл: Процедура ЗаписатьСообщениеСИзменениями() Экспорт Сообщить("------------ Выгрузка в узел" + Строка(ЭтотОбъект) + "-----------"); Каталог = КаталогВременныхФайлов(); // Сформировать имя временного файла ИмяФайла = Каталог +?(Прав(Каталог, 1) = "\","", "\") + "Message" + СокрЛП(ПланыОбмена.Филиалы.ЭтотУзел().Код) + "_" + СокрЛП(Ссылка.Код) + ".xml"; // Создать объект записи XML //*** запись XML документов ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(ИмяФайла); ЗаписьXML.ЗаписатьОбъявлениеXML(); ЗаписьXML.Закрыть(); Сообщить("------------ Конец выгрузки ------------"); КонецПроцедуры Теперь мы обратимся к механизмам инфраструктуры сообщений и создадим новый объект ЗаписьСообщенияОбмена, метод которого НачатьЗапись() позволяет, кроме всего прочего, создать очередной номер сообщения и записать заголовок сообщения в XML. В конце процедуры мы опять же закончим запись сообщения: Процедура ЗаписатьСообщениеСИзменениями() Экспорт Сообщить("------------ Выгрузка в узел" + Строка(ЭтотОбъект) + "-----------"); Каталог = КаталогВременныхФайлов(); // Сформировать имя временного файла ИмяФайла = Каталог +?(Прав(Каталог, 1) = "\","", "\") + "Message" + СокрЛП(ПланыОбмена.Филиалы.ЭтотУзел().Код) + "_" + СокрЛП(Ссылка.Код) + ".xml"; // Создать объект записи XML //*** запись XML документов ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(ИмяФайла); ЗаписьXML.ЗаписатьОбъявлениеXML(); //*** инфраструктура сообщений ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения(); ЗаписьСообщения.НачатьЗапись(ЗаписьХМL, Ссылка); Сообщить(" Номер сообщения; " + ЗаписьСообщения.НомерСообщения); [408] ЗаписьСообщения.ЗакончитьЗапись(); ЗаписьXML.Закрыть(); Сообщить("------------ Конец выгрузки ------------"); КонецПроцедуры м параметром номер сообщения, которым эти данные будут переданы:После этого, чтобы получить данные, которые необходимо сохранить в этом файле, мы обратимся к механизму регистрации изменений и получим выборку из записей регистрации изменений, предназначенных данному узлу. При формировании выборки мы передаем вторым параметром номер сообщения, которым эти данные будут переданы:После этого, чтобы получить данные, которые необходимо сохранить в этом файле, мы обратимся к механизму регистрации изменений и получим выборку из записей регистрации изменений, предназначенных данному узлу. Процедура ЗаписатьСообщениеСИзменениями() Экспорт Сообщить("------------ Выгрузка в узел" + Строка(ЭтотОбъект) + "-----------"); Каталог = КаталогВременныхФайлов(); // Сформировать имя временного файла ИмяФайла = Каталог +?(Прав(Каталог, 1) = "\","", "\") + "Message" + СокрЛП(ПланыОбмена.Филиалы.ЭтотУзел().Код) + "_" + СокрЛП(Ссылка.Код) + ".xml"; // Создать объект записи XML //*** запись XML документов ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(ИмяФайла); ЗаписьXML.ЗаписатьОбъявлениеXML(); //*** инфраструктура сообщений ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения(); ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Ссылка); Сообщить(" Номер сообщения; " + ЗаписьСообщения.НомерСообщения); // Получить выборку измененных данных //*** механизм регистрации изменений ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения( ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения); ЗаписьСообщения.ЗакончитьЗапись(); ЗаписьXML.Закрыть(); Сообщить("------------ Конец выгрузки ------------"); КонецПроцедуры Теперь осталось только перебрать выборку записей в цикле сериализовать их в открытый XML файл: Процедура ЗаписатьСообщениеСИзменениями() Экспорт Сообщить("------------ Выгрузка в узел" + Строка(ЭтотОбъект) + "-----------"); Каталог = КаталогВременныхФайлов(); // Сформировать имя временного файла ИмяФайла = Каталог +?(Прав(Каталог, 1) = "\","", "\") + "Message" + СокрЛП(ПланыОбмена.Филиалы.ЭтотУзел().Код) + "_" + СокрЛП(Ссылка.Код) + ".xml"; // Создать объект записи XML //*** запись XML документов ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(ИмяФайла); ЗаписьXML.ЗаписатьОбъявлениеXML(); //*** инфраструктура сообщений ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения(); ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Ссылка); Сообщить(" Номер сообщения; " + ЗаписьСообщения.НомерСообщения); // Получить выборку измененных данных //*** механизм регистрации изменений ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения( ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения); Пока ВыборкаИзменений.Следующий() Цикл // Записать данные в сообщение //***XML-сериализация ЗаписатьXML(ЗаписьXML, ВыборкаИзменений.Получить()); КонецЦикла; ЗаписьСообщения.ЗакончитьЗапись(); ЗаписьXML.Закрыть(); Сообщить("------------ Конец выгрузки ------------"); КонецПроцедуры Контрольные вопросы 1. Для чего предназначен объект конфигурации План обмена? 2. Каковы основные составляющие плана обмена? 3. Что такое узлы плана обмена? 4. Что такое состав плана обмена, и для каких элементов данных возможен обмен данными? Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 1. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Практическое занятие № 7 Тема: Создание распределенных информационных систем Цель:Изучить возможности 1С:Предприятия по созданию распределенных систем Краткие теоретические сведения Механизм распределенных информационных баз реализуется планами обмена. Для этого объект конфигурации План обмена содержит свойство "Распределенная информационная база". Если это свойство установлено, для данного плана обмена включается механизм распределенных информационных баз и разработчик получает возможность создать распределенную базу исключительно интерактивными средствами, без написания кода. Такая возможность не исключает программное управление обменом, которое также доступно при работе с распределенными информационными базами и в ходе создания примера мы рассмотрим оба варианта организации обмена в распределенных информационных базах. Распределенная информационная база должна иметь четко определенную древовидную структуру. Количество уровней в такой структуре не ограничено, главное – между двумя связанными узлами всегда должно быть определено отношение "главный – подчиненный": Таким образом, любой узел этой структуры может иметь произвольное количество подчиненных узлов (в том числе и ни одного). Кроме этого все узлы, кроме одного, должны иметь по одному главному узлу, и один узел не будет иметь главного узла – это корневой узел. Такое жесткое задание структуры узлов необходимо для определения порядка миграции изменений данных и изменений конфигурации. Конфигурация может быть изменена только в узле, не имеющем главного узла (то есть в корневом узле). Изменения данных могут выполняться в любом узле. Изменения конфигурации будут передаваться от главного к подчиненным узлам. Изменения данных могут передаваться между любыми связанными узлами. Разрешение коллизий также будет производиться исходя Из отношения "главный– подчиненный". Если изменения выполнены одновременно и в главном, и в подчиненном узле, при обмене данными будут приняты только изменения главного узла, а изменения подчиненного отвергнуты. Для любого подчиненного узла возможно создание начального образа – информационной базы, созданной на основании конфигурации и данных главного узла, в соответствии с правилами определяемыми планом обмена. Процедура создания начального образа узла может выполняться неоднократно, при этом удаляются все записи изменений в базе главного узла для подчиненного узла. Сразу после создания начальный образ готов к обмену с главным узлом. Создание начального образа является рекомендуемым способом создания подчиненного узла в распределенной информационной базе. Задание №1 Покажите использование механизма распределенных информационных баз на примере, что будет создание нескольких отделений нашего OOO "На все руки мастер". В отличие от филиалов, которые расположены в других городах, являются отдельными юридическими лицами и довольно самостоятельны в плане организации учета своей деятельности, отделения нашего OOO расположены в этом же городе, никакой юридической самостоятельностью не обладают и ведут учет в точности так, как это организовано в главном офисе. Поэтому все они используют ту же конфигурацию, что и главный офис, причем, если главный офис вносит какие-либо изменения в свою конфигурацию, все эти изменения должны быть своевременно внесены и в конфигурации отделений. Ход выполнения работы Для реализации такой схемы работы распределенная информационная база подойдет как нельзя лучше, и сначала мы организуем обмен с отделениями, используя исключительно интерактивные средства. Пример интерактивного обмена в распределенной информационной базе. Для построения распределенной информационной базы нам понадобится создать еще один объект конфигурации План обмена, который назовите "Отделения". Для этого плана обмена установите свойство "Распределенная информационная база": Установим свойство "Распределенная информационная база"... Перейдем на закладку "Прочее" и определите тот же состав данных для обмена, что и в плане обмена "Филиалы": отметим все объекты конфигурации, относящиеся к подсистеме "УчетУслугИМатериалов". Запустим 1С:Предприятие в режиме отладки. Откроем план обмена "Отделения" и зададим параметры центрального узла (предопределенный элемент плана обмена): код "ЦБ" и наименование "Центральная база". После этого создадим новый узел с кодом "Отд" и наименованием "Отделение". Обратите внимание, что для созданного нами узла стали доступны три иконки в командной панели формы плана обмена: "Создать начальный образ" "Записать изменения" и "Прочитать изменения": Стали доступны команды работы с распределенной информационной базой... воспользуйтесь первой из них, чтобы создать начальный образ информационной базы нашего отделения. Для этого потребуется сначала создать на диске новый каталог, в котором будет располагаться база отделения. После этого выполним команду "Создать начальный образ" и укажем, что информационная база будет расположена на данном компьютере: На следующем шаге укажите каталог информационной базы и нажмите "Готово". Система создаст в указанном каталоге начальный образ информационной базы нашего отделения. Запустим 1С:Предприятие, подключим новую базу нашего отделения и откройте ее в конфигураторе. Обратите внимание на то, что конфигурация нашего отделения стала защищена от изменений средствами управления распределенной информационной базой: Конфигурация подчиненного узла защищена от изменений средствами управления распределенной информационной базой... Запустим базу отделения в режиме отладки и откроем план обмена "Отделения": Обратите внимание, что в базе подчиненного узла сам подчиненный узел является предопределенным узлом плана обмена, а узел центральной базы отмечен красной пиктограммой, указывающей на то, что он является главным для информационной базы отделения. Кроме этого для узла центральной базы доступны только команды "Записать изменения" и "Прочитать изменения". Теперь проверим работу обмена данными. Откроем список констант и зададим значение константы "ПрефиксНумерации" – "ОТ". После этого откроем справочник клиентов и добавим в него нового клиента. Затем выполним запись изменений для центральной базы (указав каталог обмена). Перейдем в центральную базу и выполним чтение изменений в центральной базе. Убедимся, что новый клиент, созданный в базе отделения, присутствует и в центральной базе. Теперь посмотрим, как будут переноситься изменения конфигурации между главным и подчиненным узлом. В конфигураторе центральной базы создадим новую константу с именем "НоваяКонстанта". Выполним обновление конфигурации базы данных и запустим 1С:Предприятие в режиме отладки. Откроем план обмена "Отделения" и выполним запись изменений для подчиненного узла. После этого закроем конфигуратор информационной базы отделения, и выполним чтение изменений в базе подчиненного узла. Теперь запустим конфигуратор базы отделения и увидим, что в основной конфигурации появилась новая константа "НоваяКонстанта", т.е. изменения, внесенные в конфигурацию центральной базы, были автоматически перенесены в конфигурацию подчиненного узла. Теперь единственное, что остается сделать – это выполнить обновление конфигурации базы данных в подчиненном узле. Следует сказать несколько слов о порядке принятия изменений, когда в одном сообщении получены как изменения конфигурации, так и изменения данных. В этом случае сначала будет изменена основная конфигурация и выдано сообщение о необходимости выполнения сохранения конфигурации базы данных. После объединения конфигураций следует выполнить повторное получение данных, при котором будут приняты уже изменения данных, содержащиеся в сообщении. Такой порядок принятия изменений не зависит от того, относятся ли измененные данные к существующим объектам конфигурации, или к новым. Программный обмен в распределенной информационной базе Все описанные выше действия по обмену данными в распределенной информационной базе можно выполнить программно. Мы создадим обработку, которая будет программно выполнять для выбранного узла все те действия, которые были рассмотрены в предыдущем разделе. Для этого в конфигураторе центральной базы создадим новый объект конфигурации Обработка с именем "ОбменСОтделениями". Создадим основную форму обработки и расположим на ней поле ввода с именем "ПолеВводаОтделение", подписью "Отделение:" и типом ПланОбменаСсылка.Отделения: После этого расположим в форме три кнопки: "Создать начальный образ" с именем "КнопкаСоздатьНачальныйОбраз", "Записать изменения" с именем "КнопкаЗаписатьИзменения" и "Прочитать изменения" с именем "КнопкаПрочитатьИзменения": Начнем с создания обработчика нажатия кнопки "Создать начальный образ". Текст обработчика будет выглядеть следующим образом: Процедура КнопкаСоздатьНачальныйОбразНажатие(Элемент) Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога); Диалог.Заголовок = "Укажите каталог информационной базы:"; Если Диалог.Выбрать() Тогда ПланыОбмена.СоздатьНачальныйОбраз(ПолеВводаОтделение,"File=" + Диалог.Каталог); Предупреждение("Создание начального образа узла завершено."); КонецЕсли; КонецПроцедуры В начале процедуры мы вызываем диалог выбора каталога, в который будет помещен образ информационной базы, и затем выполняем метод СоздатьНачальныйОбраз() объекта ПланыОбменаМенеджер. Именно этот метод и позволяет нам создать образ подчиненного узла распределенной информационной базы. В первом параметре метода передается ссылка на узел, для которого мы хотим создать начальный образ, а во втором – строка соединения, указывающая информационную базу. Теперь создадим обработчик нажатия кнопки "Записать изменения": Процедура КнопкаЗаписатьИзмененияНажатие(Элемент) Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); Диалог.Заголовок = "Укажите файл обмена:"; Если Диалог.Выбрать() Тогда // Создать и проинициализаровать объект ЗаписьХМL ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(Диалог.ПолноеИмяФайла); // Создать объект ЗаписьСообщенияОбмена и начать запись сообщения ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения(); ЗаписьСообщения.НачатьЗапись(ЗаписьXML, ПолеВводаОтделение); // Записать содержимое тела сообщения обмена данными распределенной ИБ ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщения); // Закончить запись сообщения и запись ХМL ЗаписьСообщения.ЗакончитьЗапись(); [435] ЗаписьXML.Закрыть(); Предупреждение("Запись изменений завершена."); КонецЕсли; КонецПроцедуры В начале процедуры мы вызываем диалог ввода имени файла, в который будут записаны изменения. После этого мы создаем объект ЗаписьXML для работы с этим файлом. Затем создаем объект ЗаписьСообщенияОбмена, с помощью которого будем создавать сообщение обмена. В методе НачатьЗапись(), во втором параметре, мы указываем, для какого узла обмена будет создаваться это сообщение. После этого мы выполняем метод ЗаписатьИзменения() объекта ПланыОбменаМенеджер, который и записывает изменения, предназначенные для передачи в выбранный узел, в указанное сообщение обмена. В заключение мы как обычно заканчиваем запись сообщения обмена и закрываем файл. Контрольные вопросы 1. Для чего используется запись/чтение документов XML? 2. Как настроить конфигурацию для обмена данными? 3. Как реализовать обмен данными в распределенной информационной базе? 4. Как программно управлять обменом данными в распределенной информационной базе? 5. Каково назначение XML-сериализации? Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 1. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Практическое занятие № 8 Тема: Web-приложения и Web-сервисы XML Цель: Краткие теоретические сведения Термином XML-сериализация обозначается механизм, позволяющий представить объект 1С:Предприятия в виде последовательности данных в формате XML. Кроме этого XMLсериализация позволяет выполнить и обратное преобразование – представить последовательность данных формата XML в виде объекта 1С:Предприятия, если существует подходящий тип данных. Дело в том, что объект обмена, являющийся в системе 1С:Предприятие единым целым, на самом деле представляет собой совокупность данных различных типов, определенным образом связанных между собой. Например, элемент справочника может содержать, кроме кода и наименования, некоторое количество реквизитов различного типа и некоторое количество табличных частей, содержащих в свою очередь некоторое количество реквизитов различного типа. В результате XML-сериализации вся эта совокупность данных представляется в виде последовательности соответствующих данных формата XML. B результате обратного преобразования производится "сборка" объекта, при условии, что существует подходящий тип данных 1С:Предприятия. Задание. №1 Используя возможности 1С:Предприятия создайте Web-сервис, передающий сообщения и данные в зависимости от выбранной предметной областии и используемых процедур. Контрольные вопросы 1. Как выполняется доступ к данным через ADO.NET? 2. Объясните использование конструкторов Web-расширения для Web-приложений: 3. Как подготовить Web-приложения к работе? Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 2. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 1.8. Учебно-методическое обеспечение дисциплины 1.7.1. Рекомендуемая литература: Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 1. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 1.9. Материально-техническое обеспечение дисциплины Программное обеспечение: 1С:Предприятие Microsoft Visual Studio.NET 2005 1.9.1. Перечень используемых технических средств Компьютеры на базе процессора – Intel Pentium 4 2.8 Гц, 512 МВ ОЗУ; – Intel Core 2 Duo 1.8 Гц, 1024 МВ ОЗУ. 1.9.2. Перечень используемых пособий 1.9.3. Перечень видео- и аудиоматериалов, программного обеспечения: Microsoft Visual Studio.Net 2005 1.10. Примерные зачетные тестовые задания по дисциплине 1. Создайте Отчет «Анализ продаж запрос» - построение запросом по документам; 2. Создайте Отчет «Анализ продаж запрос по реквизитам» построение запросом по регистру остатков с использ ованием реквизитов регистра; 3. Создайте Отчет «АнализПродажЗапросПоРег» запросом по оборотному регистру; 4. построение Выполните Организацию планирования «активных продаж». Работа с регистром сведений; 1.11. Примерный перечень вопросов к зачету Примерный перечень вопросов к зачету 1. Что такое платформа и что такое конфигурация? 2. Что такое объекты конфигурации? 3. Что создает система на основе объектов конфигурации? 4. Какими способами можно создать объект конфигурации? 5. Для чего предназначен объект конфигурации Справочник? 6. Для чего используются реквизиты и табличные части справочника? 7. Как переместить элементы из одной группы справочника в другую? 8. Как изменить конфигурацию базы данных? 9. Что такое подчиненные объекты конфигурации? 10. Для чего предназначен объект конфигурации Документ? 11. Какие существуют основные части документа? 12. Как создать объект конфигурации Документ и как описать его основную структуру? 13. Что такое модуль и для чего он нужен? 14. Что такое обработчик события и как его создать? 15. Как назначить обработчик события? 16. Как сделать процедуру доступной в разных модулях? 17. Для чего предназначен объект конфигурации Регистр накопления? 18. Почему следует использовать регистры, хотя необходимая информация содержится в других объектах? 19. Как средствами встроенного языка сформировать т записать движения документа в регистр накопления? 20. Для чего предназначен объект конфигурации Макет? 21. Как создать макет с помощью конструктора печати? 22. Как с помощью встроенного языка вывести в табличный документ новую область? 23. Как изменить внешний вид и поведение элемента управления, расположенного в форме? 24. Для чего предназначен объект конфигурации Регистр сведений? 25. Какими особенностями обладает объект конфигурации Регистр сведений? 26. Как создать периодический регистр сведений? 27. Какие поля определяет ключ уникальности регистра накопления? 28. Для чего может понадобиться проведение документа по нескольким регистрам? 29. Что такое оборотный регистр накопления? 30. Как создать оборотный регистр накопления? 31. Для чего предназначен объект встроенного языка Запрос: 32. Что является источником запроса? 33. В чем отличие между реальными, виртуальными и ссылочными таблицами? 34. Из каких частей состоит текст запроса, какие из них являются обязательными? 35. Как вывести запросом иерархический справочник? 36. Какими способами можно задать параметры настройки ПостроителяОтчетов? 37. Как система 1С:Предприятие выполняет обращение к ссылочным данным? 38. Почему для доступа к массивам данных информационной базы предпочтительнее использовать запросы? 39. Как и зачем можно передать вложенный запрос в параметры виртуальной таблицы? 40. Для чего предназначен объект конфигурации План видов характеристик? 41. Что такое тип значения характеристик? 42. Как создать план видов характеристик? 43. Что такое связь по типу? 44. Что такое связь по владельцу? 45. Как ограничить выборку виртуальной таблицы результатом вложенного запроса? 46. Как использовать план видов характеристик для организации ведения бухгалтерского учета? 47. Что такое субконто? 48. Для чего предназначен объект конфигурации План счетов? 49. Для чего предназначен Регистр бухгалтерии? 50. Как создать движения документа по регистру бухгалтерии при помощи конструктора движения и как средствами встроенного языка? 51. Что такое сложные периодические расчеты? 52. Какая разница между базовым периодом, фактическим периодом и периодом действия? 53. Для чего предназначен объект конфигурации План видов расчета? 54. Как создать план видов расчета? 55. Что такое объект конфигурации Регистр расчета? 56. Что такое перерасчет? По какому принципу формируются записи перасчета? 57. Как создать регистр расчета? 58. Как создать движения документа по регистру расчета? 59. Как запросом получить записи перерасчета? 60. Как запросом получить данные графика и базы? 61. Для чего используется диаграмма Ганта? Как заполнить диаграмму Ганта данными? 62. Как описать логическую структуру конфигурации при помощи объектов подсистема? 63. Для чего предназначен объект конфигурации Интерфейс? 64. Для чего предназначен объект конфигурации План обмена? 65. Каковы основные составляющие плана обмена? 66. Для чего используется запись/чтение XML-документов? 67. Как реализовать обмен данными в распределенной информационной базе? 68. Как изменить структуру дерева распределенной информационной базы? 69. Какие объекты встроенного языка обеспечивают работу механизма анализа данных? 70. Как получить визуальное представление результата анализа данных? 71. Как реализовать одиночный подбор и как множественный? 72. Для чего используется механизм ввода на основании? 73. Когда используется объект конфигурации Критерий отбора? 74. Как осуществляется связь формы и ее элементов управления с данными? 75. Как изменить источник данных табличного поля? 76. Как отобразить вычисляемую информацию? ” 1. Комплект экзаменационных билетов --- 1.13. Примерная тематика рефератов 1. Оптимизация производительности при обработке документов, содержащих большие объемы данных 2. Сравнительный метод анализа данных; 3. Выполнение прогнозирования и тестирование результатов 1.14. Примерная тематика курсовых работ -1. Разработка прикладного решения для автоматизированных продаж авиабилетов в распределенной информационной базе. 1. Примерная тематика квалификационных (дипломных) работ 1.16. Бально-рейтинговая система Оценка « зачтеноо» выставляется при условии – усвоения студентом 80-100% дидактических единиц; – 80-100% правильно выполненных практических заданий; – выполнение расчетно-графического задания по разработке прикладного решения на «зачтено». Оценка «незачтено » выставляется при условии – усвоения студентом менее 80 дидактических единиц; – менее 80% правильно выполненных тестовых заданий; – выполнение расчетно-графического задания по разработке прикладного решения на «незачтено». Раздел II Содержательный компонент теоретического материала 8 семестр Лекция №1. Тема: Архитектура 1С:Предприятия Платформа и прикладные решения Средства разработки в составе платформы Метаданные – способ описания прикладного решения Создание прикладных решений на основе модели Объектные и необъектные данные Три способа представления данных Файловый и клиент-серверный варианты работы Поддержка хранилищ данных Литература: Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 Лекция № 2. Тема: Функциональность 1С:Предприятия Обзор функциональности прикладных решений Справочники Документы Механизм характеристик Механизм сведений Механизм учёта движения средств Механизм бухгалтерского учёта Механизм сложных периодических расчетов Механизм бизнес-процессов Механизм анализа данных и прогнозирования Средства интеграции и механизмы обмена данными Web-расширение Обзор функциональности средств разработки Обзор функциональности средств администрирования Литература: Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 3. Лекция № 3. Тема: Использование встроенного языка Модули конфигурации Общий модуль Модуль приложения Модуль внешнего соединения Модуль объекта Модуль формы Компиляция модулей Компиляция модулей и режимы исполнения встроенного языка Компиляция общих модулей Компиляция модуля приложения и модуля внешнего соединения Компиляция модуля объекта и формы Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Лекция № 4. Тема: Работа с данными Объектные данные: Модель хранения данных; Ссылка, представление ссылочной целостности; Объект; Кэширование представлений и объектов; Оптимизированная запись объектов. Необъектные данные Модель хранения данных; Подчинение регистратору; Уникальность записей Набор записей Система типов: Типы значений и типы данных Типы значений. Примитивные типы: число, строка, булево, неопределенно. Типы, образуемые в прикладном решении: менеджер объектов, менеджер, объект, ссылка, набор записей, список, выборка. Типы данных: числовые, строковые типы данных, составной тип данных. Транзакции Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Лекция № 5 . Тема: Хранение информации Хранение информации, общей для информационной базы Хранение единичных значений условно-постоянной информации Использование перечисление Использование предопределенных элементов Хранение информации объектных и необъектных сущностей Хранение иерархической информации Хранение информации, имеющей привязку ко времени Хранение информации в регистрах сведений Хранение дополнительных характеристик Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 9 семестр Лекция № 6. Тема: Клиент-серверный вариант работы Общие сведения о клиент-серверном варианте работы. Выполнение общих функций Управление сервером 1С: Предприятие Работа встроенного языка на сервере Особенности использования Запуск и остановка сервера Соединение с сервером Выполнение кода на сервере Отладка кода на сервере Использование аппаратных ресурсов Совместная работа с сервером Организация выполнения кода на сервере или на клиенте Особенности использования экспортируемых переменных, функций и процедур модуля Передача параметров на сервер и возврат значений Выполнение кода на сервере без проверки прав Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 1. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Лекция № 7. Тема: Документы и последовательности Функциональность документов Заполнение документов Запись документов Проведение документов Формирование движений по регистрам Пометка на удаление документа Состав документа Структура таблиц базы данных Отдельные вопросы типового использования документов Нумерация документов Запись документов Проведение документов Использование механизма оперативного проведения Особенности работы формы документа Журналы документов Последовательности документов Литература: Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Лекция № 8. Тема: Реализация задач учёта движения средств Структура регистра накопления Механизмы заполнения таблиц регистров накопления в базе данных Получение данных из регистров накопления Получение движений регистров накопления Получение остатков Получение оборотов Получение остатков и оборотов в одной таблице Применение отборов в запросах, использующих виртуальные таблицы регистров накопления Работа с регистрами при отображении динамических данных Получение остатков при проведении документов Литература: Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Лекция № 9. Тема: Реализация задач бухгалтерского учёта Диаграмма взаимодействия объектов План счётов и его основные свойства Основы организации аналитического учёта План видов характеристик для создания списка видов субконто Детализация счёта плана счётов по видам субконто Ввод в диалог и хранение в базе данных объектов аналитического учета Лекция № 10. Тема: Реализация задач бухгалтерского учёта (прод.) Объект Регистр бухгалтерии Основные свойства регистра бухгалтерии Запись движений в регистр бухгалтерии Чтение данных регистра бухгалтерии Вопросы производительности регистра бухгалтерии Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 1. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Лекция №11 . Тема: Реализация сложных периодических расчетов Технология реализации расчетных задач Вид расчёта Принципы регистрации записей Период регистрации Период действия Ведущие расчеты и перерасчёт Сторнирование Планы видов расчёта Свойства регистров расчёта Структура регистров расчёта Структура таблиц базы данных Настройка протяженных во времени расчетов Использование механизма вытеснения Использование графиков Сторнирование Настройка зависимости по базовому периоду Настройка планов видов расчета и регистров расчёта Получение базы при помощи запроса Технология формирования и расчета записей регистров расчёта Формирование записей регистра расчёта Настройка алгоритмов расчёта Расчёт записей регистра расчета Лекция №12 . Тема: Реализация сложных периодических расчетов (прод.) Перерасчёт записей регистров расчета Объект конфигурации Перерасчёт Измерения перерасчета Автоматическое формирование записей перерасчёта при вводе вытесняющих расчетов Автоматическое формирование записей перерасчёта при вводе прочих расчетов Особенности использования таблицы вытесняющих видов расчёта Формирование записей перерасчета средствами встроенного языка Автоматическое удаление записей перерасчёта Анализ данных таблицы перерасчета Реализация перерасчета записей регистров расчета Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Лекция №13 . Тема: Использование механизма бизнес-процессов и анализа данных и прогнозирования Карта маршрута Точки маршрута Точка старта, точка завершения Точка действия Точка условия Точка выбора варианта Точка разделения, слияния Точки обработки Точка вложенного бизнес-процесса Состояние бизнес-процесса Старт бизнес-процесса Завершение бизнес-процесса Основные объекты механизма анализа данных Типы анализа данных Модели прогноза Проведение прогнозов Модель прогноза Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Лекция №14 . Тема: Средства построения отчетов Построитель отчета Автоматическое заполнение настроек построителя отчета Заполнение настроек построителя отчета с использованием языка запросов Настройка построителя отчета средствами встроенного языка Выполнение запроса вывод отчета Макет построителя отчета Условное оформление Вывод в табличный документ Вывод представлений ссылочных значений Текстовый документ Табличный документ Общие свойства табличного документа Области табличного документа Работа с областями табличного документа Использование макетов табличных документов Печать табличного документа Сводная таблица Использование табличного документа в форме Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 1. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Лекция №15 . Тема: Интеграция с другими информационными системами Форматы файлов обмена Работа с DBF Работа с XML-документами Основные положения Базовые средства 1С:Предприятие 8.0 для работы с XML Запись данных в XML-документ Чтение данных из XML-документа XML-сериализация Работа с ZIP-архивами Использование Internet-технологий Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 1. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Лекция №16 . Тема: Создание распределенных информационных систем Планы обмена Служба регистрации изменений Управление регистрацией изменений Универсальный механизм обмена данными Использование возможностей работы с XML-документам Полная регистрация изменений по узлу Удаление регистрации изменений по узлу Выполнение выгрузки данных в узел Выполнение загрузки данных из узла Регистрация в произвольные узлы Распределенные информационные базы Главный и подчиненный узлы Сообщение обмена данными в распределенной информационной базе Создание узла распределенной информационной базы Запись и чтение сообщений обмена Сценарии обмена данными в распределенной информационной базе Разрешение коллизий Использование транзакций при организации обмена Методика включения в сообщение обмена дополнительной информации Организация одностороннего обмена Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 1. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Лекция №17 . Тема: Web-приложения и Web-сервисы XML Конструкторы Web-расширения для Web-приложений V8 List Form V8ItemForm V8ReportForm V8ChartForm Доступ к данным через ADO.NET Получение данных Добавление данных Изменение данных Удаление данных Web-сервисы Обращение к Web-сервису из Web-формы Обращение к Web-сервису из 1С:Предприятие 8.0 Вызов процедур, функций. Преобразование типов Идентификация пользователя Объекты Response, Request, Session Подготовка Web-приложения к работе Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 1. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Лекция №18 . Тема: Методология разработки “Жизненный цикл” прикладного решения Проектирование Разработка Функциональное тестирование Нагрузочное тестирование Внедрение Сопровождение Выводы Проектирование структуры метаданных Выбор между объектными и необъектными данными Анализ логики работы прикладных объектов с данными Анализ производительности Анализ возможностей использования обмена данными Групповая разработка прикладных решений Общие сведения о хранилище конфигурации Создание хранилища конфигурации Подключение к хранилищу Отображение состояния объектов конфигурации Просмотр состояния объектов Захват и помещение объектов в хранилище Производительность прикладного решения Общее понятие производительности прикладного решения Последовательность решения задач оптимизации Оптимизация производительности на уровне конфигурации. Литература Основная 1. Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004- 656с.:ил. ISBN 59521-0091-0 2. Конфигурирование в системе "1С:Предприятие 8.0" Решение задач бухгалтерского учета Методические материалы 2004 Фирса !С 3. Б.Маршал.XML в действии. - М.: Издательство Триумф, 2002-368с.:ил ISBN589392-053-8 4. Грэм Малкольм . ь19 Программирование для Microsoft SQL Server 2000 с использованием XML/Пер. с англ. - М.:Издательско-торговый дом «Русская Редакция», 2002.-320с.:ил. ISBN 5-7502-0205-4 Дополнительная. 1. Марти Холл , Лэрри Браун.Х72. Программирование для Web. Библиотека профессионала.:Пер. с англ. –М.: Издательский дом «Вильямс», 2002.-1264с.:ил ISBN 5-8459-0237-1 Раздел III Словарь терминов (глоссарий) (страницы указаны в соответствии с учебником: Радченко М.Г. 1С:Предприятие 8.0. Практическое пособие разработчика. Примеры и типовые приемы. М.:, ООО “1С-Паблишинг”, 2004656с.:ил. ISBN 5-9521-0091-0 Р Встроенный язык Использование функции КонецДня() – процедура "РейтингУслуг" в модуле формы отчета "РейтингУслуг" в разделе "Отчет Рейтинг услуг" на странице 173. Глобальный контекст Сериализация объектов 1С:Предприятия – процедуры "ЗаписатьСообщениеСИзменениями" и "ПрочитатьСообщениеСИзменениями" в модуле узла плана обмена "ОбменСФилиалами" в разделе "Создание процедуры записи данных" на странице 407. Общие объекты Использование объекта ПостроительОтчета – модуль отчета "Универсальный" в разделе "Создание универсального отчета" на странице 211. Чтение и запись XML документов – процедура "ЗаписатьСообщениеСИзменениями" в модуле узла плана обмена "ОбменСФилиалами" в разделе "Создание процедуры записи данных" на странице 407. Работа с объектом Файл – процедуры "ЗаписатьСообщениеСИзменениями" и "ПрочитатьСообщениеСИзменениями" в модуле узла плана обмена "ОбменСФилиалами" в разделе "Создание процедуры записи данных" на странице 407. Работа с объектом ДиалогВыбораФайла – процедуры модуля формы обработки "ОбменСОтделениями" в разделе "Программный обмен в распределенной информационной базе" на странице 433. Использование объекта ОписаниеТипов – список документа "ОказаниеУслуги" в разделе "Изменение данных табличного поля путем установки типа значения" на странице 520. [648] Универсальные коллекции значений Использование объекта Структура – процедура "РозничнаяЦена" в общем модуле "РаботаСоСправочниками" в разделе "Создание функции РозничнаяЦена()" на странице 124. Использование объекта Массив – список документа "ОказаниеУслуги" в разделе "Изменение данных табличного поля путем установки типа значения" на странице 520. Интерфейсные объекты Вычисляемое значение в поле ввода строки табличного поля – процедура "МатериалыКоличествоПриИзменении" в модуле формы документа "ПриходнаяНакладная" в разделе "Создание процедуры обработки события в модуле формы" на странице 74. Создание обработчиков событий элементов управления – процедура "МатериалыКоличествоПриИзменении" в модуле формы документа "ПриходнаяНакладная" в разделе "Создание процедуры обработки события в модуле формы" на странице 74. Обработка нескольких событий одной процедурой – модуль формы документа "ПриходнаяНакладная" в разделе "Создание процедуры обработки события в общем модуле" на странице 77. Использование макета для вывода в табличный документ – процедура "РеестрДокументовОказаниеУслуги" в модуле формы отчета "РеестрДокументовОказаниеУслуги" в разделе "Отчет РеестрДокументовОказаниеУслуги" на странице 166. Управление группировками при выводе в табличный документ – процедура "ВыручкаМастеров" в модуле формы отчета "ВыручкаМастеров" в разделе "Отчет ВыручкаМастеров" на странице 183. Работа с элементом управления Список выбора – модуль формы отчета "РейтингКлиентов" в разделе "Создание отчета РейтингКлиентов" на странице 198. Заполнение диаграммы данными – процедура "Сформировать" в модуле формы отчета "РейтингКлиентов" в разделе "Создание отчета РейтингКлиентов" на странице 198. [649] Использование сводной таблицы – модуль отчета "Универсальный" в разделе "Создание универсального отчета" на странице 211. Вывод данных в сводную диаграмму – отчет "ВыручкаМастеров2" в разделе "Отчет ВыручкаМастеров2" на странице 227. Заполнение диаграммы Ганта данными – процедура "КнопкаСформироватьНажатие" в модуле отчета "ДиаграммаНачислений" в разделе "Создание отчета ДиаграммаНачислений" на странице 366. Использование элемента управления Переключатель – список документа "ПриходнаяНакладная" в разделе "Изменение источника данных табличного поля" на странице 516, и список документа "ОказаниеУслуги" в разделе "Изменение данных табличного поля путем установки типа значения" на странице 520. Работа с панелями и страницами панелей формы – форма элемента справочника "Номенклатура" в разделе "Доработка справочника Номенклатура" на странице 261. Использование связи по типу – форма элемента справочника "Номенклатура" в разделе "Доработка справочника Номенклатура" на странице 261. Использование связи по владельцу – форма элемента справочника "Номенклатура" в разделе "Доработка справочника Номенклатура" на странице 261, и форма документа "ПриходнаяНакладная" в разделе "Доработка документа ПриходнаяНакладная" на странице 271. Использование связи по регистратору – форма документа "ПриходнаяНакладная" в разделе "Связанные списки" на странице 512. Связь одного табличного поля со строкой другого табличного поля – форма элемента справочника "Номенклатура" в разделе "Доработка справочника Номенклатура" на странице 261, и форма документа "ПриходнаяНакладная" в разделе "Связанные списки" на странице 512. Связь табличного поля с объектом, в форме которого оно расположено – форма элемента справочника [650] "ВариантыНоменклатуры" в разделе "Доработка справочника ВариантыНоменклатуры" на странице 269. Использование подключаемых обработчиков изменения данных формы – форма элемента справочника "ВариантыНоменклатуры" в разделе "Доработка справочника ВариантыНоменклатуры" на странице 269. Организация подбора – форма документа "ПриходнаяНакладная" в разделах "Одиночный подбор", "Множественный подбор" и "Подбор с использованием множественного выбора" на страницах 488, 490 и 490 соответственно. Изменение источника данных табличного поля – список документа "ПриходнаяНакладная" в разделе "Изменение источника данных табличного поля" на странице 516. Изменение данных табличного поля путем установки типа значения – список документа "ОказаниеУслуги" в разделе "Изменение данных табличного поля путем установки типа значения" на странице 520. Вычисляемая колонка в табличном поле – список справочника "Номенклатура" в разделе "Вычисляемые колонки в списках" на странице 524. Оформление строк табличного поля – список справочника "Номенклатура" в разделе "Оформление строк табличного поля" на странице 527. Использование вариантов стандартного оформления макетов – модуль формы отчета "Универсальный2" в разделе "Отчет Универсальный2" на странице 216 . Получение итога табличного поля по колонке – форма документа "ОказаниеУслуги" в разделе "Редактирование формы документа ОказаниеУслуги" на странице 114. Работа с запросами Использование ключевого слова ВЫБРАТЬ – процедура "РеестрДокументовОказаниеУслуги" в модуле формы отчета "РеестрДокументовОказаниеУслуги" в разделе "Отчет РеестрДокументовОказаниеУслуги" на странице 166. [651] Использование ключевого слова ИЗ – процедура "РеестрДокументовОказаниеУслуги" в модуле формы отчета "РеестрДокументовОказаниеУслуги" в разделе "Отчет РеестрДокументовОказаниеУслуги" на странице 166. Использование ключевого слова КАК – процедура "РеестрДокументовОказаниеУслуги" в модуле формы отчета "РеестрДокументовОказаниеУслуги" в разделе "Отчет РеестрДокументовОказаниеУслуги" на странице 166. Использование ключевого предложения УПОРЯДОЧИТЬ ПО – процедура "РеестрДокументовОказаниеУслуги" в модуле формы отчета "РеестрДокументовОказаниеУслуги" в разделе "Отчет РеестрДокументовОказаниеУслуги" на странице 166. Использование ключевого предложения ЛЕВОЕ СОЕДИНЕНИЕ ПО – процедура "РейтингУслуг" в модуле формы отчета "РейтингУслуг" в разделе "Отчет Рейтинг услуг" на странице 173. Использование ключевого слова ГДЕ – процедура "РейтингУслуг" в модуле формы отчета "РейтингУслуг" в разделе "Отчет Рейтинг услуг" на странице 173. Использование ключевого слова ИТОГИ – процедура "РейтингУслуг" в модуле формы отчета "РейтингУслуг" в разделе "Отчет Рейтинг услуг" на странице 173. Использование ключевого слова ИЕРАРХИЯ – процедура "ПереченьУслуг" в модуле формы отчета "ПереченьУслуг" в разделе "Отчет ПереченьУслуг" на странице 191. Использование ключевого предложения ДЛЯ ИЗМЕНЕНИЯ – процедура "ОбработкаПроведения" документа "ОказаниеУслуги" в разделе "Оптимизация документа ОказаниеУслуги" на странице 238. Получение данных документов запросом – процедура "РеестрДокументовОказаниеУслуги" в модуле формы отчета "РеестрДокументовОказаниеУслуги" в разделе "Отчет РеестрДокументовОказаниеУслуги" на странице 166. Получение данных справочника запросом – процедура "РейтингУслуг" в модуле формы отчета "РейтингУслуг" в разделе "Отчет Рейтинг услуг" на странице 173. [652] Получение данных регистра накопления запросом – процедура "РейтингУслуг" в модуле формы отчета "РейтингУслуг" в разделе "Отчет Рейтинг услуг" на странице 173. Получение данных регистра сведений запросом – процедура "ПереченьУслуг" в модуле формы отчета "ПереченьУслуг" в разделе "Отчет ПереченьУслуг" на странице 191. Получение данных регистра бухгалтерии запросом – отчет "ОборотноСальдоваяВедомость" в разделе "Создание отчета ОборотноСальдоваяВедомость" на странице 312. Получение данных плана счетов запросом – отчет "ОборотноСальдоваяВедомость" в разделе "Создание отчета ОборотноСальдоваяВедомость" на странице 312. Получение данных перерасчета запросом – отчет "Перерасчет" в разделе "Иллюстрация механизмов вытеснения и зависимости от базы" на странице 345, и процедура "ПерерасчитатьНачисления" в общем модуле "ПроведениеРасчетов" в разделе "Выполнение перерасчета записей регистра" на странице 359. Получение данных графика регистра расчета запросом – процедура "РасчитатьНачисления" в общем модуле "ПроведениеРасчетов" в разделе "Создание процедуры расчета записей регистра Начисления" на странице 349. Получение данных базы регистра расчета запросом – процедура "РасчитатьНачисления" в общем модуле "ПроведениеРасчетов" в разделе "Создание процедуры расчета записей регистра Начисления" на странице 349. Получение данных регистра расчета запросом – отчет "НачисленияСотрудникам" в разделе "Создание отчета НачисленияСотрудникам" на странице 357. Получение данных фактического периода действия записей регистра расчета запросом – процедура "КнопкаСформироватьНажатие" в модуле отчета "ДиаграммаНачислений" в разделе "Создание отчета ДиаграммаНачислений" на странице 366. Задание параметров виртуальной таблицы источника – процедура "РейтингУслуг" в модуле формы отчета "РейтингУслуг" в разделе "Отчет Рейтинг услуг" на странице 173. [653] Как выбрать данные из нескольких таблиц – процедура "РейтингУслуг" в модуле формы отчета "РейтингУслуг" в разделе "Отчет Рейтинг услуг" на странице 173. Как выбрать данные, входящие в указанный период – процедура "РейтингУслуг" в модуле формы отчета "РейтингУслуг" в разделе "Отчет Рейтинг услуг" на странице 173. Получение данных регистра накопления периодами – процедура "ВыручкаМастеров" в модуле формы отчета "ВыручкаМастеров" в разделе "Отчет ВыручкаМастеров" на странице 183. Вычисляемое поле в источнике запроса – процедура "Сформировать" в модуле формы отчета "РейтингКлиентов" в разделе "Создание отчета РейтингКлиентов" на странице 198. Передача списка значений в параметры виртуальной таблицы – процедура "ОбработкаПроведения" документа "ОказаниеУслуги" в разделе "Оптимизация документа ОказаниеУслуги" на странице 238, и процедура "ОстаткиМатериаловПоСвойствам" в форме отчета "ОстаткиМатериаловПоСвойствам" в разделе "Отчет ОстаткиМатериаловПоСвойствам" на странице 277. Передача результата запроса в параметры виртуальной таблицы – процедура "ОбработкаПроведения" документа "ОказаниеУслуги" в разделе "Оптимизация документа ОказаниеУслуги" на странице 238. Динамическое формирование текста запроса – процедура "ОстаткиМатериаловПоСвойствам" в форме отчета "ОстаткиМатериаловПоСвойствам" в разделе "Отчет ОстаткиМатериаловПоСвойствам" на странице 277. Вывод результата запроса в табличный документ – процедура "РеестрДокументовОказаниеУслуги" в модуле формы отчета "РеестрДокументовОказаниеУслуги" в разделе "Отчет РеестрДокументовОказаниеУслуги" на странице 166. Получение промежуточных итогов – процедура "ВыручкаМастеров" в модуле формы отчета "ВыручкаМастеров" в разделе "Отчет ВыручкаМастеров" на странице 183. Управление порядком вывода итогов в результате запроса – процедура "ВыручкаМастеров" в модуле формы отчета "ВыручкаМастеров" в разделе "Отчет ВыручкаМастеров" на странице 183. [654] Обход многоуровневых группировок в результате запроса – процедура "ВыручкаМастеров" в модуле формы отчета "ВыручкаМастеров" в разделе "Отчет ВыручкаМастеров" на странице 183. Получение итогов по всем датам в выбранном периоде – процедура "ВыручкаМастеров" в модуле формы отчета "ВыручкаМастеров" в разделе "Отчет ВыручкаМастеров" на странице 183. Вычисляемое поле в результате запроса – смотри процедуру "Сформировать" в модуле формы отчета "РейтингКлиентов" в разделе "Создание отчета РейтингКлиентов" на странице 198. Выгрузка результата запроса в таблицу значений – смотри модуль формы отчета "РейтингКлиентов" в разделе "Создание отчета РейтингКлиентов" на странице198. Выгрузка результата запроса в список значений – смотри обработчик события "ОбработкаПроведения" документа "НачисленияСотрудникам" в разделе "Создание процедуры расчета записей регистра Начисления" на странице 349. Прикладные объекты Обращение к табличной части и данным строки табличной части в форме документа – процедура "МатериалыКоличествоПриИзменении" в модуле формы документа "ПриходнаяНакладная" в разделе "Создание процедуры обработки события в модуле формы" на странице 74. Обход табличной части документа – процедура "ОбработкаПроведения" в модуле документа "Приходная накладная" в разделе "Создание движений документа ПриходнаяНакладная" на странице 89. Формирование и запись движений документа в модуле документа – процедура "ОбработкаПроведения" в модуле документа "Приходная накладная" в разделе "Создание движений документа ПриходнаяНакладная" на странице 89. Формирование движений по регистру накопления остатков – процедура "ОбработкаПроведения" в модуле документа "Приходная накладная" в разделе "Создание движений документа ПриходнаяНакладная" на странице 89. [655] Формирование движений по оборотному регистру накопления – процедура "ОбработкаПроведения" в модуле документа "ОказаниеУслуги" в разделе "Изменение процедуры проведения документа ОказаниеУслуги" на странице 157. Формирование движений документа по регистру бухгалтерии – процедура "ОбработкаПроведения" в модуле документа "ПриходнаяНакладная" в разделе "Создание движений документа ПриходнаяНакладная" на странице 303. Формирование движений документа по регистру расчета – смотри процедуру "ОбработкаПроведения" документа "НачисленияСотрудникам" в разделе "Создание документа НачисленияСотрудникам" на странице 341. Ручное редактирование набора записей регистра в документе – смотри документ "ВводНачальныхОстатковНоменклатуры" в главе "Создание документа ввода начальных остатков" на странице 477. Получение последних значений ресурсов периодического регистра сведений на указанную дату – процедура "РозничнаяЦена" в общем модуле "РаботаСоСправочниками" в разделе "Создание функции РозничнаяЦена()" на странице 124. Обращение к значению перечисления – процедура "ОбработкаПроведения" в модуле документа "ОказаниеУслуги" в разделе "Изменение процедуры проведения документа ОказаниеУслуги" на странице 134. Расчет записей регистра расчета – раздел "Создание процедуры расчета записей регистра Начисления" на странице 349. Перерасчет записей регистра расчета – процедура "ПерерасчитатьНачисления" в общем модуле "ПроведениеРасчетов" в разделе "Выполнение перерасчета записей регистра" на странице 359. Организация обмена данными на основе механизма универсального обмена данными – раздел "Универсальный механизм обмена данными" на странице 400. Организация обмена данными на основе механизма распределенных информационных баз – раздел "Механизм распределенных информационных баз" на странице 426. Ввод на основании – документ "ОказаниеУслуги" в разделе "Ввод на основании" на странице 493. Использование объекта КритерийОтбора – в разделе "Отбор объектов, введенных на основании" на странице 497. [656] Раздел IV Практикум по решению заданий Теперь создайте специальную процедуру, которая будет определять, требуется ли перерасчет данных регистра расчета и, если такая необходимость есть – выполнять перерасчет. Поскольку единственным способом получения итоговой информации о начислениях сотрудникам в нашей конфигурации является отчет "НачисленияСотрудникам", для вызова этой процедуры мы добавим кнопку "Перерасчитать" в командную панель "ДействияФормы": В обработчик события нажатия кнопки вставим текст вызова процедуры перерасчета: Процедура ДействияФормыПерерасчитать(Кнопка) ПерерасчитатьНачисления(ПланыВидовРасчета.ОсновныеНачисления.Оклад); ПерерасчитатьНачисления(ПланыВидовРасчета.ОсновныеНачисления.Премия); КонецПроцедуры Саму процедуру перерасчета разместим в общем модуле "ПроведениеРасчетов": Процедура ПерерасчитатьНачисления(ТребуемыйВидРасчета) Экспорт //здесь следует выбрать из набора записей перерасчета, записи //в следующей последовательности: //записи документа1 для сотрудников из списка, [359] //записи документа2 для сотрудников из списка, //и т.д. Запрос = Новый Запрос( "ВЫБРАТЬ | НачисленияПерерасчет.ОбъектПерерасчета КАК ОбъектПерерасчета, | НачисленияПерерасчет.Сотрудник |ИЗ | РегистрРасчета.Начисления.Перерасчет КАК НачисленияПерерасчет |ГДЕ | НачисленияПерерасчет.ВидРасчета = &ТребуемыйВидРасчета |ИТОГИ ПО | ОбъектПерерасчета"); Запрос.УстановитьПараметр("ТребуемыйВидРасчета", ТребуемыйВидРасчета); СписокСотрудников = Новый СписокЗначений; //перебрать группировку по регистратору ВыборкаПоРегистратору = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппир овкам); Пока ВыборкаПоРегистратору.Следующий() Цикл Регистратор = ВыборкаПоРегистратору.ОбъектПерерасчета; //перебрать группировку по сотрудникам //для выбранного регистратора //и создать список сотрудников ВыборкаПоСотрудникам = ВыборкаПоРегистратору.Выбрать(); СписокСотрудников.Очистить(); Пока ВыборкаПоСотрудникам.Следующий() Цикл СписокСотрудников.Добавить(ВыборкаПоСотрудникам.Сотрудник); КонецЦикла; //получить набор записей регистра расчета //для выбранного регистратора НаборЗаписей = РегистрыРасчета.Начисления.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Значение = Регистратор; НаборЗаписей.Прочитать(); РасчитатьНачисления(НаборЗаписей, ТребуемыйВидРасчета, СписокСотрудников); НаборЗаписей.Записать(,Истина); //очистить перерасчитанные записи в перерасчете НаборЗаписейПерерасчета = РегистрыРасчета.Начисления.Перерасчеты.Перерасчет.СоздатьНаборЗаписей( ); НаборЗаписейПерерасчета.Отбор.ОбъектПерерасчета.Значение = Регистратор; НаборЗаписейПерерасчета.Записать(); КонецЦикла; КонецПроцедуры } Процедура КнопкаСформироватьНажатие(Кнопка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НачисленияФактическийПериодДействия.Сотрудник, | НачисленияФактическийПериодДействия.ВидРасчета, | НачисленияФактическийПериодДействия.ПериодДействияНачало, | НачисленияФактическийПериодДействия.ПериодДействияКонец, | НачисленияФактическийПериодДействия.Результат, | НачисленияФактическийПериодДействия.Регистратор, | НачисленияФактическийПериодДействия.Регистратор.Представление [367] |ИЗ | РегистрРасчета.Начисления.ФактическийПериодДействия КАК НачисленияФактическийПериодДействия"; ВыборкаРезультата = Запрос.Выполнить().Выбрать(); Диаграмма = ЭлементыФормы.ДиаграммаГанта; // Запретить обновление диаграммы Диаграмма.Обновление = Ложь; Диаграмма.Очистить(); Диаграмма.ОтображатьЗаголовок = Ложь; //заполнить диаграмму Пока ВыборкаРезультата.Следующий() Цикл //получить серию, точку н значение для них ТекущаяСерия=Диаграмма.УстановитьСерию(ВыборкаРезультат а.ВидРасчета,ВыборкаРезультата.ВидРасчета); ТекущаяТочка = Диаграмма.УстановитьТочку(ВыборкаРезультата.Сотрудник , ВыборкаРезультата.Сотрудник); ТекущееЗначение = Диаграмма.ПолучитьЗначение(ТекущаяТочка,ТекущаяСерия) ; //создать нужные нам интервалы в значении ТекущийИнтервал = ТекущееЗначение.Добавить(); ТекущийИнтервал.Начало = ВыборкаРезультата.ПериодДействияНачало; ТекущийИнтервал.Конец = ВыборкаРезультата.ПериодДействияКонец; ТекущийИнтервал.Текст = ВыборкаРезультата.РегистраторПредставление; ТекущийИнтервал.Расшифровка = ВыборкаРезультата.Регистратор; КонецЦикла; //раскрасить серии своими цветами Для Каждого Серия Из Диаграмма.Серии Цикл Если Серия.Значение = ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда Серия.Цвет = WEBЦвета.Желтый; ИначеЕсли Серия.Значение = ПланыВидовРасчета.ОсновныеНачисления.Премия Тогда Серия.Цвет = WEBЦвета.Зеленый; ИначеЕсли Серия.Значение = ПланыВидовРасчета.ОсновныеНачисления.Невыход Тогда Серия.Цвет = WEBЦвета.Красный; КонецЕсли; КонецЦикла; //разрешить обновление диаграммы Диаграмма.Обновление = Истина; КонецПроцедуры Сначала в переменной "Диаграмма" мы сохраняем расположенную в форме диаграмму Ганта и запрещаем обновление диаграммы на то время, пока мы будем заполнять ее данными. Это нужно для того, чтобы в процессе заполнения не выполнялись пересчеты при каждом изменении данных диаграммы. После окончания заполнения диаграммы мы разрешим обновление, и все пересчеты будут выполнены один раз. Затем в цикле по выборке запроса мы заполняем диаграмму. Сначала, используя методы УстановитьСерию() и УстановитьТочку() мы получаем либо существующие, либо новые точку и серию. Точки и серии однозначно идентифицируются своими значениями, в качестве которых мы используем сотрудника и вид расчета из результата запроса. После того, как точка и серия получены, с помощью метода ПолучитьЗначение() мы получаем соответствующее им значение диаграммы. Затем мы добавляем в значение диаграммы новый интервал, задаем его начало и конец, задаем текст интервала, который будет показываться во всплывающей подсказке, и задаем расшифровку интервала, которая будет выполняться при двойном щелчке мышью на этом интервале. Раздел V Изменения в рабочей программе, которые произошли после утверждения программы Характер изменений в программе Номер и дата протокола заседания кафедры, на котором было принято данное решение Подпись заведующего кафедрой, утверждающего внесенное изменение Подпись декана факультета (проректора по учебной работе), утверждающего данное изменение Раздел VI Учебные занятия по дисциплине ведут: Ф.И.О., ученое звание и степень преподавателя Яковлева Л.В. Учебный Факультет год 2007-2008 ПМПЭ Яковлева Л.В. 2010-2011 ФМОИП Специальность Прикладная математика и информатика Прикладная математика и информатика