Добавлен: 31.03.2023
Просмотров: 921
Скачиваний: 13
&НаСервереБезКонтекста
Процедура Передача()
ApplicationExcel= Новый COMОбъект("Excel.Application");
ApplicationExcel.Visible = Истина;
ApplicationExcel.Workbooks.Open ("C:\1\Клиенты.xls");
Спр=Справочники.Клиенты; i=2;
Выборка=Спр.Выбрать();
Пока Выборка.Следующий() > 0 Цикл
ApplicationExcel.Sheets(1).Cells(i, 1).Value=Выборка.Наименование;
ApplicationExcel.Sheets(1).Cells(i, 2).Value=Выборка.Адрес;
ApplicationExcel.Sheets(1).Cells(i, 3).Value=Выборка.Телефоны;
i=i+1;
КонецЦикла;
КонецПроцедуры
Характерной особенностью выполняемого обмена данными является открытие окна рабочей книги Microsoft Excel в процессе передачи данных.
Программные процедуры теперь готовы, осталось разместить на форме списка справочника «Клиенты» кнопку, запускающую разработанную команду ПередачаВExcel. Для этого достаточно в окне редактора форм перетащить созданную команду ПередачаВExcel на элемент «Командная панель» (см.рис. 265).
Теперь, когда разработка готова, перейдем в режим 1С: Предприятие и откроем форму списка справочника «Клиенты» (рис. 266).
Рис. 266. Форма списка справочника «Клиенты» с дополнительной кнопкой Передача в excel
Как видно, на командной панели присутствует новая кнопка «Передача в excel». После щелчка на ней происходит запуск приложения Microsoft Excel и передача информации из справочника «Клиенты» в рабочую книгу Клиенты xls (рис. 267).
Рис. 267. Окно книги Microsoft Excel c полученной информацией из справочника «Клиенты»
Анализ работы менеджеров
Рассмотрим еще одну задачу учета, касающуюся торговой деятельности. При этом основное содержание прикладной разработки будет связано с анализом работы менеджеров нашей условной организации.
Будем считать, что менеджеры условной фирмы имеют разное образование (техническое, экономическое, гуманитарное), которое влияет на то, какие товары они предлагают клиентам. В результате детального анализа может оказаться, что наиболее высокотехнологичные модели продаются в основном менеджерами с техническим образованием. Подобный результат, несомненно, важен для руководства компании. Он позволит вовремя внести необходимые коррективы в работу организации.
Создание перечисления
Для выполнения практических действий создадим новую конфигурацию, основным назначением которой будет разработка ряда аналитических отчетов. Начнем построение информационной базы с создания перечисления «Образование», отражающее разное образование менеджеров нашей фирмы. в качестве значений перечисления укажем следующие:
- Экономическое
- Техническое
- Гуманитарное
Справочники Менеджеры и УчасткиРаботы
Создадим еще один объект нашей конфигурации — справочник «Менеджеры». Кроме обязательных реквизитов (кода и наименования) добавим в него следующие реквизиты:
- Образование (тип данных – ПеречислениеСсылка.Образование)
- Стаж (тип данных - число)
После выполнения описанных действий в режиме конфигуратора перейдем в режим 1С: Предприятие и внесем в справочник Менеджеры несколько фамилий менеджеров (рис. 268).
Рис. 268. Форма списка справочника «Менеджеры» в режиме 1С:Предприятие
Еще один справочник, который нам понадобится, — «УчасткиРаботы». Данный справочник не будет иметь дополнительных реквизитов. После создания данного объекта конфигурации перейдем в режим 1С: Предприятие и внесем в справочник «УчасткиРаботы» несколько записей, которые характеризуют основные направления деятельности нашей организации по торговой деятельности (рис. 269).
Рис. 269. Заполнение справочника «УчасткиРаботы» в режиме 1С: Предприятие
Регистр накопления РаботаМенеджеров и документ ПродажиМенеджеров
Для накопления информации о продажах товаров в качестве объекта конфигурации создадим регистр накопления с именем «РаботаМенеджеров». На вкладке «Основные» окна редактирования объекта конфигурации следует указать имя объекта и вид регистра накопления — «Обороты».
После этого на вкладке Данные необходимо создать измерения регистра:
- УчастокРаботы (тип данных — СправочникСсылка.УчасткиРаботы)
- Менеджеры (тип данных — СправочникСсылка.Менеджеры)
В качестве ресурса регистра накопления укажем ресурс Сумма (тип данных — число).
Перейдем теперь к разработке документа ПродажиМенеджеров, который будет отражать совершенные продажи конкретными менеджерами. На вкладке «Данные» разместим реквизит «Менеджер» (тип данных — СправочникСсылка.Менеджеры) для указания в документе фамилии менеджера, выполнившего конкретную продажу, и создадим табличную часть «Перечень», в которую поместим два реквизита:
- УчастокРаботы (тип данных — СправочникСсылка.УчасткиРаботы)
- Сумма (тип данных — число)
Осталось обеспечить проведение документа — формирование движений по регистру «РаботаМенеджеров». Во вкладку «Движения» необходимо в списке регистров конфигурации отметить единственный регистр накопления, которым мы располагаем.
После установки флажка для регистра становится доступной кнопка «Конструктор движений», которой мы и воспользуемся. В результате на экране откроется окно конструктора движений регистра. Здесь с помощью кнопки «Заполнить выражения» формируется соответствие названий полей регистра и реквизитов документа.
Теперь в окне конструктора движений осталось щелкнуть на кнопке «OK», что приводит к генерации программной процедуры, которая формирует движения по регистру «РаботаМенеджеров» при проведении документа «ПродажиМенеджеров» (листинг 5.30).
Листинг 5.30. Процедура проведения документа ПродажиМенеджеров
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
Движения.РаботаМенеджеров.Записывать = Истина;
Для Каждого ТекСтрокаПеречень Из Перечень Цикл //цикл перебора строк таб.части
// регистр РаботаМенеджеров
Движение = Движения.РаботаМенеджеров.Добавить();
Движение.Период = Дата;
Движение.УчастокРаботы = ТекСтрокаПеречень.УчастокРаботы;
Движение.Менеджер = Менеджер;
Движение.Сумма = ТекСтрокаПеречень.Сумма;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
При каждом проходе цикла с помощью метода Добавить() создается новая запись в регистре накопления. В последующих строках данной процедуры устанавливаются значения полей регистра в соответствии с данными из очередной строки табличной части документа.
Теперь следует перейти в режим 1С: Предприятие и проверить результат выполненных действий. На рис. 270 представлен один из заполненных документов «ПродажиМенеджеров».
Рис. 270. Форма документа «ПродажиМенеджеров» в режиме 1С: Предприятие
После внесения данных щелчок на кнопке Провести и закрыть в форме документа приводит к записи созданного документа в информационную базу. Кроме того, осуществляется и его проведение.
Отчет с группировкой по заказам
Мы завершили первую фазу разработки конфигурации — разработали необходимые объекты для фиксирования фактов продаж товаров. Дальнейшая цель заключается в разработке ряда отчетов, связанных с деятельностью менеджеров. Первый из них представлен на рис. 271, где мы видим группировку по каждому виду деятельности с отражением участия менеджеров в денежном выражении.
Рис. 271. Отчет в режиме 1С: Предприятие
Разработку данного отчета начнем с создания нового объекта конфигурации — отчета «Отчет5_7». И как уже мы неоднократно делали, воспользуемся системой компоновки данных, а для построения запроса обратимся к конструктору запросов. Нам нужна виртуальная таблица «РаботаМенеджеровюОбороты» и поля:
- РаботаМенеджеровОбороты.УчастокРаботы
- РаботаМенеджеровОбороты.Менеджер
- РаботаМенеджеровОбороты.СуммаОборот
Щелчок на кнопке «OK» приведет к формированию текста запроса (листинга 5.31).
Листинг 5.31. Текст запроса для отчета Отчет5_7
ВЫБРАТЬ
РаботаМенеджеровОбороты.УчастокРаботы,
РаботаМенеджеровОбороты.Менеджер,
РаботаМенеджеровОбороты.СуммаОборот
ИЗ
РегистрНакопления.РаботаМенеджеров.Обороты КАК РаботаМенеджеровОбороты
Теперь необходимо выполнить ряд установок в окне схемы компоновки данных. Так, на вкладке «Ресурсы» добавим ресурс «СуммаОборот». Осталось задать группировку и выбрать поля для отчета на вкладке «Настройки» (рис. 272), после чего можно перейти в режим 1С:Предприятие и получить отчет в том виде, в каком мы его уже видели.
Рис. 272. Вкладка «Настройки» окна конструктора схемы компоновки данных
Отчёт по интервалу дат
Теперь немного изменим предыдущий отчет, чтобы предусмотреть возможность указания интервала дат при выборе сведений из виртуальной таблицы регистра. В обновленном виде отчет должен выглядеть так, как показано на рис. 273.
Рис. 273. Отчет по работе менеджеров с отбором информации по дате
Для выполнения данной разработки создадим новый объект конфигурации с именем «Отчет5_8». После этого воспользуемся системой компоновки данных и конструктором запроса. Здесь, как и в предыдущем отчете, мы задействуем виртуальную таблицу РаботаМенеджеров.Обороты (рис. 274)
Рис. 274. Вкладка «НаборыДанных» окна конструктора схемы компоновки данных
На вкладке Ресурсы укажем необходимый ресурс для отчета — СуммаОборот. Далее на вкладке Настройки обратимся к дополнительной вкладке Параметры, где следует выполнить пользовательские настройки элементов:
- Начало периода
- Конец периода
А именно, требуется установить флажок «Включать в пользовательские» настройки. После этого остается на той же вкладке «Настройки» создать группировки для отчета и выбрать необходимые поля (УчастокРаботы, Менеджеры, СуммаОборот). На этом разработка отчёта завершается.
Отчет по зависимости результатов от стажа
Рассмотрим еще один интересный отчет, который представлен на рис. 275.
Рис. 275. Зависимость суммы продаж от стажа работы
Здесь для руководящего состава организации приводится весьма полезная сводная информация о том, как результаты работы менеджеров зависят от их стажа работы. Так, в первом столбце указывается срок работы в фирме в годах, во втором — оборот продаж менеджеров, имеющих указанный стаж, в третьем — число сотрудников фирмы с указанным стажем работы.
На этот раз после создания нового объекта конфигурации и использования схемы компоновки данных непосредственно введем текст запроса (листинг 5.32). Так делали во второй главе.
Листинг 5.32. Запрос для извлечения сводной информации
ВЫБРАТЬ
СУММА(РаботаМенеджеровОбороты.СуммаОборот) КАК СуммаОборот,
Менеджеры.Стаж,
КОЛИЧЕСТВО(*) КАК КоличествоМенеджеров
ИЗ
Справочник.Менеджеры КАК Менеджеры
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РаботаМенеджеров.Обороты КАК
РаботаМенеджеровОбороты
ПО (РаботаМенеджеровОбороты.Менеджер = Менеджеры.Ссылка)
СГРУППИРОВАТЬ ПО
Менеджеры.Стаж
Теперь в окне конструктора схемы компоновки данных следует включить в отчет только детальные записи и выбрать следующие поля:
- Стаж
- СуммаОборот
- КоличествоМенеджеров
Осталось перейти в режим 1С:Предприятие и сформировать разработанный отчет по той информации, которая присутствует в базе данных.
Отчет по зависимости продаж от образования менеджеров
Последний отчет для данной конфигурации представлен на рис. 276. В нем указаны объемы сделок, проведенных менеджерами с разным базовым образованием.
Рис. 276. Отчет, отражающий влияние базового образования на эффективность работы
После начальных шагов по созданию нового отчета в окне конструктора запроса выберем две таблицы — «Менеджеры» и «РаботаМенеджеров.Обороты» — и укажем необходимые поля:
- Менеджеры.Образование
- РаботаМенеджеровОбороты.СуммаОборот
Далее следует установить связь между таблицами (рис. 277).
Рис. 277. Закладка «Связи» окна конструктора запросов
После этого на вкладке «Группировка» следует задать группировку по полю «Образование». На этом действия по работе с конструктором запроса завершаются. Остается щелчком на кнопке «OK» сформировать текст запроса (листинг 5.33).