Главная страница
Навигация по странице:

  • Выбор данных из двух таблиц

  • Запрос для набора данных

  • Рис. 13.22.

  • Рис. 13.24.

  • Лекция №15 Финансовый результат

  • Вывод данных по всем дням в выбранном периоде

  • Рис. 13.61.

  • Рис. 13.62.

  • Лекция №16 Формирование регламентированных отчетов

  • Получение актуальных значений из периодического регистра сведений

  • Параметры виртуальной таблицы

  • Использование вычисляемого поля в отчете

  • Лекция №17 Введение в программирование 1С

  • Как понять работу кода на встроенном языке

  • Анализ кода с помощью синтакс-помощника

  • Анализ кода с помощью отладчика

  • 1с программирование. Лекция 1 Вводное занятие. Инструктаж План разработка прикладных решений Общие сведения о системе


    Скачать 2.39 Mb.
    НазваниеЛекция 1 Вводное занятие. Инструктаж План разработка прикладных решений Общие сведения о системе
    Дата26.01.2022
    Размер2.39 Mb.
    Формат файлаdocx
    Имя файла1с программирование.docx
    ТипЛекция
    #342546
    страница5 из 8
    1   2   3   4   5   6   7   8

    Лекция №14 Документы на реализацию готовой продукции

    План:

    1. Выбор данных из двух таблиц

    2. Запрос для набора данных

    3. Условие отбора записей

    Выбор данных из двух таблиц

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

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

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

    Кроме этого, мы научимся более детально настраивать отбор и условное оформление в отчетах.

    Запрос для набора данных

    Левое соединение двух таблиц

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

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

    Для этого выделим ее в списке Таблицы, вызовем ее контекстное меню и выберем пункт Переименовать таблицу (рис. 13.19).

    Рис. 13.19. Переименование таблицы в запросе

    В список полей перенесем поля СпрНоменклатура.Ссылка и Прода- жиОбороты.ВыручкаОборот из этих таблиц (рис. 13.20).

     Рис. 13.20. Выбранные поля Перейдем на закладку Связи.

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

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

    Но нам нужно снять флажок Все у таблицы ПродажиОбороты и установить его у таблицы спрНоменклатура.

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

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

    Описанную связь двух таблиц схематично можно представить следующим примером (рис. 13.21).



    Рис. 13.21. Связь записей таблиц в запросе

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

    Рис. 13.22. Определение связи между таблицами

    Условие отбора записей

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

    Для этого раскроем таблицу спрНоменклатура, перетащим мышью поле ЭтоГруппа в список условий, установим флажок Произвольное и напишем в поле Условие следующий текст (листинг 13.5).

    листинг 13.5. Условие запроса

    спрНоменклатура.ЭтоГруппа = ЛОЖЬ

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

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



    Рис. 13.23. Отбор записей номенклатуры в запросе

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

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

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

    Работу этого условия тоже можно проиллюстрировать на примере. Слева – записи справочника Номенклатура, выбранные согласно первому условию. Справа – только те записи, которые являются услугами (рис. 13.24).



    Рис. 13.24. Отбор записей номенклатуры в запросе

    В результате закладка Условия примет вид (рис. 13.25).

    Рис. 13.25. Создание условия запроса

    Вопросы:

    1. Выбор данных из двух таблиц

    2. Запрос для набора данных

    3. Условие отбора записей

    Лекция №15 Финансовый результат

    План:

    1. Вывод данных по всем дням в выбранном периоде

    2. Запрос для набора данных

    3. Анализ текста запроса

    4. Диаграмма

    Вывод данных по всем дням в выбранном периоде

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

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

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

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

    Добавим новый объект конфигурации Отчет. Назовем его ВыручкаМастеров и запустим конструктор схемы компоновки данных.

    Добавим новый Набор данных – запрос и вызовем конструктор запроса.

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

    Запрос для набора данных

    Параметры виртуальной таблицы

    Зададим один из параметров этой виртуальной таблицы – Периодичность.

    Для этого перейдем в поле Таблицы, выделим таблицу и нажмем кнопку Параметры виртуальной таблицы (рис. 13.58).

    Рис. 13.58. Изменение параметров виртуальной таблицы

    В открывшемся окне параметров зададим значение параметра Периодичность – День (рис. 13.59).

    Рис. 13.59. Параметры виртуальной таблицы

    Нажмем OK. После этого выберем из таблицы следующие поля

    (рис. 13.60):

    • ПродажиОбороты.Мастер,

    • ПродажиОбороты.Период,

    • ПродажиОбороты.Клиент,

    • ПродажиОбороты.ВыручкаОборот.

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

    Теперь перейдем на закладку Объединения/Псевдонимы и зададим псевдоним Выручка для поля ПродажиОбороты.ВыручкаОборот

    Рис. 13.61. Объединения/Псевдонимы

    Анализ текста запроса

    Нажмем ОК и рассмотрим текст запроса, сформированный конструктором (листинг 13.10).

    листинг 13.10. Текст запроса

    ВЫБРАТЬ




    ПродажиОбороты.Мастер,




    ПродажиОбороты.Период,




    ПродажиОбороты.Клиент,




    ПродажиОбороты.ВыручкаОборот КАК Выручка




    ИЗ




    РегистрНакопления.Продажи.Обороты( , , День, ) КАК ПродажиОбороты

    В части описания запроса обратите внимание, что у источника данных задана периодичность выбираемых данных – День (листинг 13.11).

    листинг 13.11. Задание периодичности виртуальной таблицы

    ИЗ




    РегистрНакопления.Продажи.Обороты( , , День, ) КАК ПродажиОбороты

    Именно благодаря этому у нас появляется возможность описать среди выбранных полей поле Период. Ресурсы

    Теперь перейдем к редактированию схемы компоновки данных.

    На закладке Ресурсы нажмем кнопку   и убедимся, что конструктор выбрал единственный имеющийся у нас ресурс – Выручка.

    Параметры

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

    Для параметров НачалоПериода и КонецПериода в поле Тип зададим состав даты – Дата.

    Для параметра КонецПериода зададим Выражение (листинг 13.12).

    листинг 13.12. Выражение для расчета значения параметра «КонецПериода»

    КонецПериода(&КонецПериода, "День")

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

    Рис. 13.62. Параметры компоновки данных

    Диаграмма

    Диаграмма предназначена для размещения в таблицах и формах диаграмм и графиков различного вида.

    Логически диаграмма является совокупностью точек, серий и значений серий в точке (рис. 13.76).

     Рис. 13.76. Пример диаграммы

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

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

    Диаграмма как объект встроенного языка имеет три области, которые позволяют управлять оформлением диаграммы: область построения, область заголовка и область легенды (рис. 13.77).

     Рис. 13.77. Области диаграммы

    Диаграмма может быть вставлена в структуру отчета как отдельный элемент. В следующем варианте настроек отчета ВыручкаМастеров мы будем использовать диаграмму в структуре настроек схемы компоновки данных.

    Вопросы:

    1. Вывод данных по всем дням в выбранном периоде

    2. Запрос для набора данных

    3. Анализ текста запроса

    4. Диаграмма

    Лекция №16 Формирование регламентированных отчетов

    План:

    1. Получение актуальных значений из периодического регистра сведений

    2. Запрос для набора данных

    3. Параметры виртуальной таблицы

    4. Использование вычисляемого поля в отчете

    Получение актуальных значений из периодического регистра сведений

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

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

    Запрос для набора данных

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

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

    Параметры виртуальной таблицы

    Вызовем диалог ввода параметров виртуальной таблицы

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

    Затем выберем из таблиц следующие поля (рис. 13.87):

    • СпрНоменклатура.Родитель,

    • СпрНоменклатура.Ссылка,

    • ЦеныСрезПоследних.Цена.

    Левое соединение таблиц

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

    Снимем флажок Все у таблицы регистра и установим его у таблицы справочника, тем самым установив вид связи как левое соединение для таблицы справочника (рис. 13.88).

    На закладке Условия зададим условие выбора элементов справочника Номенклатура – выбираемые элементы должны соответствовать виду номенклатуры, переданному в параметре запроса ВидНоменклатуры (рис. 13.89).

    Псевдонимы полей

    На закладке Объединения/Псевдонимы укажем, что поле Родитель будет иметь псевдоним ГруппаУслуг, а поле Ссылка – Услуга (рис. 13.90).

    На этом создание запроса завершено, нажмем OK.

    Использование вычисляемого поля в отчете

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

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

    Вопросы:

    1. Получение актуальных значений из периодического регистра сведений

    2. Запрос для набора данных

    3. Параметры виртуальной таблицы

    4. Использование вычисляемого поля в отчете

    Лекция №17 Введение в программирование 1С

    План:

    1. Как понять работу кода на встроенном языке

    2. Анализ кода с помощью синтакс-помощника

    3. Анализ кода с помощью отладчика

    Как понять работу кода на встроенном языке

    На предыдущем занятии мы писали код обработчика события МатериалыКоличествоПриИзменении (листинг 4.1) и кратко объясняли смысл написанного.

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

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

    Чтобы открыть синтакс-помощник, нужно нажать соответствующую кнопку   на панели инструментов конфигуратора или выполнить команду главного меню Справка  Синтакс-помощник (рис. 5.20).

    Как и любая другая справочная система, он представляет собой древовидную структуру, состоящую из глав, разделов, подразделов и т. п. Содержание синтакс-помощника полностью дублирует описание встроенного языка в пяти томах, входящих в стандартный комплект поставки «1С:Предприятия». Однако пользоваться синтакспомощником, на наш взгляд, удобнее, так как он находится сразу под рукой и имеет возможность контекстной помощи (Ctrl + F1).

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

    Анализ кода с помощью синтакс-помощника

    Пользоваться синтакс-помощником удобно в тех случаях, когда нужно разобраться в уже написанном незнакомом коде. На примере нашего обработчика события МатериалыКоличествоПриИзменении

    (см. листинг 4.1) продемонстрируем, как понять код обработчика, используя синтакс-помощник.

    Найти нужный раздел в содержании и спускаться вниз по дереву, раскрывая нужные подразделы, свойства, ссылки и т. п.

    Итак, перед нами первая строка нашего обработчика (листинг 5.19).

    листинг 5.19. Процедура «МатериалыКоличествоПриИзменении» (первая строка)

    СтрокаТабличнойЧасти = Элементы.Материалы.ТекущиеДанные;

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

    Будем изучать нашу строку последовательно слева направо. Что такое СтрокаТабличнойЧасти? Слева от оператора присваивания

    (=) находится либо какое-то свойство, доступное нам непосредственно в этом контексте, либо переменная.

    Согласно алгоритму, мы должны проверить:

    Объявлена ли в модуле формы переменная СтрокаТабличнойЧасти? Откроем модуль формы. Мы не видим здесь строки описания переменной (Перем СтрокаТабличнойЧасти;), значит это не переменная модуля формы.

    • Есть ли у формы реквизит СтрокаТабличнойЧасти? Откроем форму документа ПриходнаяНакладная и перейдем в окно реквизитов формы, расположенное справа вверху редактора форм

    (рис. 5.21).

    Мы видим, что у формы один основной (он выделен жирным шрифтом) реквизит Объект. Значит, реквизита СтрокаТабличнойЧасти у формы нет.

    • Есть ли у объекта УправляемаяФорма свойство СтрокаТабличнойЧасти? Посмотрим в синтакс-помощнике свойства управляемой формы. Откроем синтакс-помощник на закладке Содержание. Управляемая форма – это объект интерфейса управляемого приложения, поэтому раскроем раздел Интерфейс (управляемый)  Управляемая форма. Затем раскроем объект УправляемаяФорма и его

    Свойства (рис. 5.22).

    Рис. 5.22. Список свойств объекта «УправляемаяФорма» в синтакс-помощнике

    Свойства расположены в алфавитном порядке. Мы видим, что среди них нет свойства СтрокаТабличнойЧасти.

    • Есть ли у расширения формы свойство СтрокаТабличнойЧасти? Мы знаем, что основной реквизит формы содержит данные объекта ДокументОбъект.ПриходнаяНакладная (см. рис. 5.21). Следовательно, в модуле формы становятся доступны свойства, методы объекта встроенного языка Расширение управляемой формы для документа (синтакс-помощник – Интерфейс (управляемый)  Управляемая форма  Расширение документа). Посмотрим на них (рис. 5.23).

    для документа» в синтакс-помощнике

    Мы видим, что среди них нет свойства СтрокаТабличнойЧасти.

    • Есть ли свойство глобального контекста СтрокаТабличнойЧасти? Откроем в синтакс-помощнике свойства глобального контекста (рис. 5.24).

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

    • Есть ли в модуле управляемого приложения экспортная переменная СтрокаТабличнойЧасти? Откроем модуль управляемого приложения. Мы не видим здесь строки описания переменных (Перем СтрокаТабличнойЧасти Экспорт;), значит, это не переменная модуля управляемого приложения.

    Таким образом, понятно, что выражение СтрокаТабличнойЧасти – это локальная переменная процедуры МатериалыКоличествоПриИзменении. В процессе выполнения программы ей присваивается какое-то значение. Переменные во встроенном языке не типизированные, поэтому в любой момент ей можно присвоить значение любого типа. Если переменная локальная, то есть используется только в контексте данной процедуры, то не требуется и ее явного объявления. Она объявляется в момент первого ее использования.

    Анализ кода с помощью отладчика

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

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

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

    • пошаговое выполнение модуля,

    • расстановка точек останова,

    • прерывание и продолжение выполнения модуля,

    • возможность отладки нескольких модулей одновременно,

    • вычисление выражений для анализа состояния переменных,

    • просмотр стека вызовов процедур и функций,  возможность остановки по возникновению ошибки,

    • возможность редактирования модуля в процессе отладки.

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

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

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

    Рис. 5.36. Панель инструментов «Точки останова»

    Вопросы:

    1. Как понять работу кода на встроенном языке

    2. Анализ кода с помощью синтакс-помощника

    3. Анализ кода с помощью отладчика
    1   2   3   4   5   6   7   8


    написать администратору сайта