Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IS_v_BUA_lektsii.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
751.62 Кб
Скачать

I. Создание новых объектов конфигурации

1. Новый Справочник ВариантыНоменклатуры подчиненный Номенклатуре.

2. Новый Справочник ДополнительныеСвойстваНоменклатуры.

3. Новый План видов характеристик СвойстваНоменклатуры. Тип значения:

  • Число;

  • Строка;

  • Дата;

  • Булево;

  • СправочникСсылка.ДополнительныеСвойстваНоменклатуры.

4. Владелец справочника ДополнительныеСвойстваНоменклатуры - План видов характеристик СвойстваНоменклатуры. На закладке Формы – редактирование в списке.

5. План видов характеристик СвойстваНоменклатуры – дополнительные значения характеристик – справочник ДополнительныеСвойстваНоменклатуры. На закладке Формы – редактирование в списке.

6. Новый Регистр сведений ЗначенияСвойствНоменклатуры.

Измерения:

  • НаборСвойств, ведущее, тип Справочник ВариантыНоменклатуры;

  • ВидСвойства, тип План видов характеристик СвойстваНоменклатуры.

Ресурс:

  • Значение, тип Характеристика.СвойстваНоменклатуры.

II. Изменение справочника Номенклатура

1. Редактирование обоими способами.

2. Форма / Вставить элемент управления / Панель. Перенести на нее элементы. Название страницы: «Основная».

3. В контекстном меню - Добавить страницу «Свойства».

4. Надпись «Варианты номенклатуры», табличное поле – тип СправочникСписок. ВариантыНоменклатуры. Для табличного поля свойство – Связь по владельцу - СправочникОбъект.Ссылка. Благодаря этому список справочника всегда будет содержать только элементы, подчиненные редактируемому элементу Номенклатуры.

5. Надпись «Значения свойств», табличное поле – тип РегистрСведенийСписок. ЗначенияСвойствНоменклатуры. Связь по типу ЭлементыФормы.Свойства.ТекущиеДанные. ВидСвойства.

6. Для возможности изменения вида характеристики:

Процедура СвойстваВидСвойстваПриИзменении(Элемент)

ДанныеВидСвойства = ЭлементыФормы.Свойства.ТекущиеДанные.ВидСвойства;

Если ДанныеВидСвойства.ТипЗначения <> Неопределено Тогда

ЭлементыФормы.Свойства.ТекущиеДанные.Значение =

ДанныеВидСвойства. ТипЗначения.ПривестиЗначение(ЭлементыФормы. Свойства.ТекущиеДанные.Значение);

КонецЕсли;

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

Процедура ВариантыПриАктивизацииСтроки(Элемент)

ЭлементыФормы.Свойства.Значение.Отбор.НаборСвойств.Установить (Элемент. ТекущиеДанные. Ссылка, Истина);

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

Процедура ПриОткрытии()

ЭлементыФормы.Свойства.Значение.Отбор.НаборСвойств.Установить( , Истина);

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

Бухгалтерский учет

Виды субконто

1. Новый План видов характеристик: ВидыСубконто.

2. Новый Справочник Субконто, подчиненный Плану видов характеристик ВидыСубконто.

3. Тип значения характеристик плана: Клиенты, Номенклатура, Субконто (для будущих дополнительных видов характеристик).

5. План видов характеристик – дополнительные значения характеристик – справочник Субконто. На закладке Формы – редактирование в списке.

6. На закладке Прочее – предопределенные значения: Клиенты и Материалы.

План счетов

1. Новый План счетов – Основной.

2. Данные – признак учета – Количественный.

3. Виды Субконто – ВидыСубконто, макс – 2., Количественный.

4. Прочее – Предопределенные:

  • 41 Товары

  • 60 Расчеты с поставщиками

  • 62 Расчеты с покупателями

  • 90 Продажи

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

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

Кроме того, регистр бухгалтерии поддерживает механизм двойной записи.

Создание регистра бухгалтерии Управленческий

1. Новый регистр Управленческий, связан с планом счетов Основной, флаг Корреспонденция (поддерживает механизм двойной записи).

2. Данные: два ресурса: сумма (балансовый), количество (небалансовый).

3. Документы: движения по этому регистру.

Движения документа Приходная накладная

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

Подсистема

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

  • при разработке крупных конфигураций разделять их на логические части (Бухгалтерия, Производство и пр.);

  • легко создавать пользовательские интерфейсы и роли.

Просмотр: корень дерева конфигурации / контекст. Дополнительно / закладка Подсистемы.

Ведение списка пользователей

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

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

Создание ролей

Создание пользователей

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

Для каждого пользователя может быть установлен пароль на вход в систему. Пароль используется для подтверждения прав пользова­телей на работу в системе 1С: Предприятие.

Администрирование – Пользователи. Виды аутентификации – рассказать.

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

Рассмотреть после НачисленияЗП

Панель истории

Контекстное меню корня дерева конфигурации – Открыть интерфейс клиентского приложения.

Настройка командного интерфейса

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

  1. В окне редактирования подсистемы – Открыть командный интерфейс. Картинка.

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

  3. Настройка начальной страницы. В рабочей области раздела Главное содержится Начальная страница. Контекстное меню корня дерева конфигурации – Открыть рабочую область начальной страницы. Две колонки разной ширины. Автоматически созданные формы нельзя расположить на начальной странице. Создать формы списка документов. Вывести.

ПРИЕМЫ РЕДАКТИРОВАНИЯ ФОРМ

Показать

Встроенный язык системы «1С: Предприятие»

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

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

  • мягкая типизация (тип переменной определяется типом значения, которое она содержит, и может изменяться в процессе работы);

  • отсутствие программного описания прикладных типов (они создаются при добавлении объектов конфигурации);

  • событийная ориентированность встроенного языка;

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

Модули конфигурации

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

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

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

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

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

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

  • Модули форм. Каждая форма имеет свой модуль, в котором определяется поведение формы и действия, выполняемые из нее, например, открытие других форм. Для всех форм вызываются события ПередОткрытием, ПриОткрытии, ПередЗакрытием и ПриЗакрытии.

Контекст

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

  • Глобальный контекст, доступный во всех остальных контекстах, состоит из следующих частей:

      • свойства, методы и события глобального контекста (например, свойство РабочаяДата);

      • системные перечисления и системные наборы значений (например, КодВозвратаДиалога и Символы).

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

  • В контексте модуля приложения или модуля внешнего соединения доступны экспортируемые процедуры и функции общих модулей.

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

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

Схематично взаимосвязь контекстов изображена на рис. 2. На рис. 3 изображено возможное взаимодействие модуля формы журнала и модуля документа.

Процедуры и функции

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

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

Пример 1:

Процедура Расчет()

Сумма=Цена*Количество;

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

Расчет(); // Вызов процедуры

Пример 2:

Перем Глоб;

// Описание процедуры

Процедура Расчет(Пар1, Пар2, ПарЗ) Экспорт

Глоб = Глоб + Пар1 + Пар2 + ПарЗ;

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

Глоб = 123;

Расчет(5, 6, 7); // Вызов процедуры

Пример 3:

Перем Глоб;

// Описание функции

Функция Расчет(Пар1, Пар2, ПарЗ) Экспорт

Лок = Глоб + Пар1 + Пар2 + ПарЗ;

Возврат Лок;

КонецФункции

Глоб = 123;

Рез = Расчет(5, 6, 7); // Вызов функции

Типы данных

Число, Строка, Дата, Булево, значение Неопределено, значение Null (для неуказанных значений в таблицах базы данных)

Тип. Значения специального типа «Тип» нужны для представления и сравнения типов данных, например:

Если ТипЗнч(ВыбДок)=Тип(«ДокументСсылка.Чек») Тогда …

Объявление переменных

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

  • после их объявления при помощи оператора Перем.

Перем <Имя_переменной> [Экспорт];

Перем А,В;

  • после первого размещения имени переменной в левой части оператора присваивания.

Пример:

А=2*В;

  • при определении имен идентификаторов редактируемых элементов диалога;

  • при задании формальных параметров процедур.

Приведение типов

Приведение типов может быть явное и неявное.

Для явного приведения существуют следующие функции: Число, Строка, Дата, Булево. Неявное приведение типов производится системой автоматически при вычислении выражений.

Пример: значение числовой переменной НомерМесяца неявно преобразуется в строку и присоединяется к другой строке:

А= «Месяц»+НомерМесяца;

Справочники

Работа со справочниками производится с помощью следующих объектов:

  • СправочникиМенеджер. Обеспечивает доступ ко всем справочникам конфигурации. Свойства этого объекта совпадают с именами справочников и содержат объекты типа СправочникМенеджер.

  • СправочникМенеджер. Обеспечивает доступ к операциям над справочником как множеством элементов. Через методы этого объекта можно осуществлять поиск, получать выборку, создавать новые элементы, обращаться к формам и макетам справочника.

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

  • СправочникОбъект. Предоставляет доступ к элементу с возможностью записи. Данный объект содержит методы, влияющие на элемент в базе данных, например, методы Записать и Удалить.

  • СправочникВыборка. Предоставляет возможность перебора элементов справочника. Выборка может быть прямой или иерархической.

  • СправочникСписок. Объект для управления списком элементов в табличном поле. Позволяет управлять колонками, отбором и сортировкой в списке.

Обращение к менеджеру справочника

СпрСотр=Справочники.Сотрудники;

СпрТовары=Справочники(«Номенклатура»);

Свойство глобального контекста Справочники предоставляет доступ к объекту СправочникиМенеджер. Объект СправочникиМенеджер является коллекцией значений и позволяет обратиться к конкретному элементу коллекции через приведенные выше конструкции:

  1. Первый вариант применяется, когда имя справочника известно и неизменно. Такая конструкция рекомендуется.

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

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

Перебор элементов справочника производится через объект СправочникВыборка, который возвращается при вызове методов Выбрать и ВыбратьИерархически объекта СправочникМенеджер:

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

Пока СпрВыборка.Следующий() Цикл

Сообщить(СпрВыборка.Код + “ “ +СпрВыборка.Наименование);

КонецЦикла;

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

Пока СпрВыборка.Следующий() Цикл

Сообщить(СпрВыборка.Код + “ “ +СпрВыборка.Наименование);

Для Каждого Стр Из СпрВыборка.ЕдиницыИзмерения Цикл

Сообщить(“ “ + Стр.ЕдиницаИзмерения);

КонецЦикла;

КонецЦикла;

Рассмотреть методы Выбрать, ВыбратьИерархически, Следующий.

Создание элементов и групп

Создание нового элемента или группы производится через специальный объект СправочникОбъект:

НГ=Справочники.Контрагенты.СоздатьГруппу();

НГ.Код=15;

НГ.Наименование=”Прочие”;

НГ.Записать();

НЭ=Справочники.Контрагенты.СоздатьЭлемент();

НЭ.Код=100;

НЭ.Наименование=”ОЗАТЭ”;

НЭ.Родитель=НГ.Ссылка;

НЭ.Записать();

Свойства справочника:

Код, Наименование, ИмяРеквизита, ИмяТабличнойЧасти, Владелец, Родитель, Ссылка, ПометкаУдаления (бул), Предопределенный (бул), ЭтоГруппа (бул).

Методы:

СоздатьГруппу() - создает новую группу справочника.

СоздатьЭлемент() - создает новый элемент справочника. Использование метода не приводит к записи созданного объекта в базу данных.

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

Взаимодействие с текстовыми файлами

Для взаимодействия с текстовыми документами используются объекты ТекстовыйДокумент, ЗаписьТекста и ЧтениеТекста (Общие объекты).

Объект ТекстовыйДокумент предназначен для манипулирования строками текстового файла. С помощью методов Прочитать и Записать текстовый документ считывается из файла или записывается в файл.

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

Текст=Новый ТекстовыйДокумент;

Текст.Прочитать("c:\test.txt",КодировкаТекста.ANSI);

Сообщить(Текст.ПолучитьТекст());

Новый - оператор позволяет создать значение указанного типа, например, Массив, СписокЗначений, Структура и пр. Допустим только для тех типов, для которых разрешено создание с помощью данного оператора.

КодировкаТекста - определяет набор допустимых кодировок текстовых файлов.

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

  • ДобавитьСтроку(«текст») – добавляет строку в конец текстового документа;

  • ВставитьСтроку – вставляет в текстовый документ строку с указанным номером;

  • УдалитьСтроку и пр.

Последовательный доступ к тексту

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

Объект ЗаписьТекста для последовательной записи текстовых файлов.

Текст=Новый ЗаписьТекста("c:\test.txt",КодировкаТекста.ANSI, Символы.ПС);

Текст.Записать("ааааа");

Текст.Закрыть();

Символы - определяет набор специальных символов. Значения этого набора имеют тип Строка. Значения:

ПС – перевод строки;

ПФ – перевод формы (страницы);

Таб – символ табуляции и пр.

Записать - записывает строку текста в файл. Разделитель за записываемой строкой не ставится.

ЗаписатьСтроку - записывает строку текста в файл. В конце строки записывается разделитель.

Текст=Новый ЗаписьТекста("c:\test.txt",КодировкаТекста.ANSI, Символы.ПС);

Текст.Записать("ааааа");

Текст.ЗаписатьСтроку("ббббб");

Текст.Записать("ввввв");

Текст.Закрыть();

Объект ЧтениеТекста предназначен для последовательного чтения текстовых файлов.

Файл=Новый ЧтениеТекста("c:\test.txt",КодировкаТекста.ANSI,Символы.ПС);

А=Файл.Прочитать(5);

Б=Файл.ПрочитатьСтроку();

В=Файл.Прочитать();

Файл.Закрыть();

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

ПрочитатьСтроку - считывает строку текста, ограниченную разделителем.

Закрыть - закрывает открытый текстовый файл.

Файл=Новый ЧтениеТекста("c:\test.txt",КодировкаТекста.ANSI,Символы.ПС);

НЭ=Справочники.Контрагенты.СоздатьЭлемент();

НЭ.Код=Файл.ПрочитатьСтроку();

НЭ.Наименование=Файл.ПрочитатьСтроку();

НЭ.Записать();

Файл.Закрыть();

Поиск в справочнике

Поиск элемента или группы производится методами НайтиПоКоду, НайтиПоНаименованию, НайтиПоРеквизиту. Эти методы возвращают ссылку на найденный элемент или пустую ссылку, если элемент не найден. Проверка на пустую ссылку производится методом Пустая (булево).

СпрСсылка=Справочники.Контрагенты.НайтиПоКоду(000000072);

Если СпрСсылка.Пустая() Тогда

Сообщить("Контрагент не найден");

Иначе

Сообщить(СпрСсылка.Наименование);

КонецЕсли;

Удаление элемента или группы

Удаление элемента справочника производится толь с помощью объекта СправочникОбъект. Следует различать пометку на удаление и непосредственное удаление объекта.

СпрСсылка=Справочники.Контрагенты.НайтиПоКоду(72);

Если НЕ СпрСсылка.Пустая() Тогда

СпрОбъект=Спр.ПолучитьОбъект();

//1

СпрОбъект.ПометкаУдаления=Истина;

СпрОбъект. Записать();

//2

СпрОбъект.УстановитьПометкуУдаления(Истина);

//3

СпрОбъект.Удалить();

КонецЕсли;

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

ПометкаУдаления свойство справочника, содержит признак пометки на удаление элемента справочника.

УстановитьПометкуУдаления(<Пометка удаления>, <Включая подчиненные>) - устанавливает/снимет пометку на удаление. Объект при этом не удаляется из базы данных. Окончательное удаление помеченных элементов справочника происходит при удалении помеченных объектов. Применение метода влечет инициирование события ПередЗаписью, т.к. происходит сохранение измененного свойства ПометкаУдаления.

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

Открытие форм справочника

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

// Обращение к форме по имени

Форма=Справочники.Контрагенты.ПолучитьФорму("ФормаСписка");

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

// Открыть основную форму списка

Справочники.Контрагенты.ПолучитьФормуСписка().Открыть();

Модуль объекта

Существуют следующие события, обработчики которых располагаются в модуле справочника:

ПриКопировании - возникает при создании элемента справочника копированием. В обработчике события можно, например, заполнить некоторые реквизиты элемента справочника.

ПередЗаписью(<Отказ>) - возникает перед выполнением записи элемента справочника. Процедура-обработчик вызывается после начала транзакции записи, но до начала записи элемента справочника. Здесь можно отказаться от записи элемента. Параметр <Отказ> - признак отказа от записи элемента. Если в теле процедуры-обработчика установить данному параметру значение Истина, запись элемента выполнена не будет. Значение по умолчанию: Ложь.

ПриЗаписи(<Отказ>) - возникает при записи объекта. Процедура-обработчик вызывается после записи объекта в базу данных, но до окончания транзакции записи. Параметр <Отказ> - признак отказа от записи элемента. Если в теле процедуры-обработчика установить данному параметру значение Истина, запись элемента выполнена не будет.

ПередУдалением(<Отказ>) - возникает перед непосредственным удалением объекта из базы данных.

ПриУстановкеНовогоКода(<Стандартная обработка>, <Префикс>) - возникает в момент, когда выполняется установка нового кода элемента справочника.

Параметры: <Стандартная обработка>. В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная генерация нового кода производиться не будет. Значение по умолчанию: Истина. <Префикс> - Префикс, который будет использоваться для генерации кода. Может быть изменен в процедуре-обработчике события.

ОбработкаЗаполнения(<Основание>) - возникает при вводе элемента справочника на основании, а также при выполнении метода Заполнить. В процедуре-обработчике этого события должен быть описан сам алгоритм заполнения реквизитов элемента справочника на основании переданного значения. Параметры:<Основание> Тип: Произвольный. Значение, которое используется как основание для заполнения.

Документы

Работа с документами производится с помощью следующих объектов:

  • ДокументыМенеджер. Обеспечивает доступ ко всем справочникам конфигурации. Свойства этого объекта совпадают с именами справочников и содержат объекты типа СправочникМенеджер.

  • ДокументМенеджер. Обеспечивает доступ к операциям над справочником как множеством элементов. Через методы этого объекта можно осуществлять поиск, получать выборку, создавать новые элементы, обращаться к формам и макетам справочника.

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

  • ДокументОбъект. Предоставляет доступ к элементу с возможностью записи. Данный объект содержит методы, влияющие на элемент в базе данных, например, методы Записать и Удалить.

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

  • ДокументСписок. Объект для управления списком элементов в табличном поле. Позволяет управлять колонками, отбором и сортировкой в списке.

Проведение документов

Как правило, при регистрации события изменяется состояние регистров, например, формируется бухгалтерские проводки, изменяется количество товара на складе. Все эти действия совершаются при проведении документа. При проведении документа вызывается процедура – обработчик события ОбработкаПроведения, в которой определяются действия данного документа.

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

Обращение к менеджеру документа

ДокСчет=Документы.Счет;

ДокСчет=Документы(«Счет»);

Выборка документов

ДокВыборка=Документы.Счет.Выбрать();

Пока ДокВыборка.Следующий() Цикл

Сообщить(…);

КонецЦикла;

Создание и проведение документа

Док=Документы.Счет.СоздатьДокумент();

Док.Дата=ТекущаяДата();

Док.Записать() // обычная запись документа

//запись документа с неоперативным проведением

Док.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный)

Показать в СП

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

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

Удаление документа – аналогично спр.

Открытие форм документа - аналогично спр.

Движения документа

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

ПроводкиБУ = Движения.Хозрасчетный;

ПроводкиНУ = Движения.Налоговый;

Для каждого СтрокаТаблицы Из ТаблицаПоТоварам Цикл

Проводка = ПроводкиБУ.Добавить();

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

Проводка.Организация = СтруктураШапкиДокумента.Организация;

Проводка.СчетДт = СтрокаТаблицы.СчетУчетаБУ;

КонецЦикла;

Движения.Хозрасчетный.Записать();

Движения.Налоговый.Записать();

Модуль объекта

Существуют следующие события, обработчики которых располагаются в модуле документа: (см. Документ.Объект – События).

Перечисления

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

Если ПолФЛ=Перечисления.Пол.Мужской Тогда …

Видно, что при изменении значений перечисления потребуется изменение программных модулей.

Запросы

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

Пример решения задачи с помощью языка программирования и с помощью запроса:

Язык программирования:

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

Пока СпрВыборка.Следующий() Цикл

Если СпрВыборка.Услуга=Истина Тогда

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

КонецЕсли;

КонецЦикла;

Механизм запросов

Запрос=Новый Запрос("ВЫБРАТЬ Наименование ИЗ Справочник.Номенклатура

| ГДЕ Услуга=Истина");

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

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

Пока Выборка.Следующий() Цикл

Сообщить(Выборка.Наименование);

КонецЦикла;

Запрос:

  • внутри цикла не нужно фильтровать записи;

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

  • в клиент-серверном варианте работы запросы будут транслироваться в SQL для выполнения в среде MS SQL Server.

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

Для работы с запросами предусмотрено несколько специальных объектов:

  • Запрос;

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

  • ВыборкаИзРезультатаЗапроса.

Общая схема выполнения запроса такова:

  1. Создание объекта типа Запрос с текстом запроса на языке запросов.

  2. Установка параметров запроса с помощью метода УстановитьПараметр.

  3. Выполнение запроса, получение результата.

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

  5. Обработка или анализ полученных данных.

// создание объекта Запрос

Запрос=Новый Запрос("ВЫБРАТЬ Наименование ИЗ Справочник.Номенклатура

| ГДЕ Услуга=Истина");

// выполнение запроса и получение результата

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

// получение выборки из результата запроса

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

Пока Выборка.Следующий() Цикл

// обращение к полям

Сообщить(Выборка.Наименование);

КонецЦикла;

Конструктор запросов

Язык запросов

В общем случае текст запроса строится по следующей схеме:

ВЫБРАТЬ <Список полей | *>

[ИЗ <Список таблиц - источников>]

[ГДЕ <Список условий>]

[УПОРЯДОЧИТЬ ПО <Список полей>] | [АВТОУПОРЯДОЧИВАНИЕ]

[СГРУППИРОВАТЬ ПО <Список полей>]

[ИТОГИ [агрегатные функции]] ПО <Список полей> [, ОБЩИЕ]]

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

1. Предложение ВЫБРАТЬ

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

Синтаксическая диаграмма конструкции ВЫБРАТЬ:

ВЫБРАТЬ [РАЗЛИЧНЫЕ] [ПЕРВЫЕ <Количество>] <Список полей | *>

Ключевое слово РАЗЛИЧНЫЕ позволяет оставить в запросе только отличающиеся строки.

Запрос=Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ Организация ИЗ

Документ.ПриходныйКассовыйОрдер");

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

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

Пока Выборка.Следующий() Цикл

Сообщить(Выборка.Организация);

КонецЦикла;

Ключевое слово ПЕРВЫЕ позволяет ограничить выборку несколькими первыми записями. Часто применяется в комбинации с сортировкой, например, требуется выбрать три самых дорогих товара:

ВЫБРАТЬ ПЕРВЫЕ 3 Наименование, Цена ИЗ Справочник.Номенклатура

УПОРЯДОЧИТЬ ПО Цена УБЫВ

Для поля может быть назначен псевдоним с помощью ключевого слова КАК. Это позволяет обращаться к полю по псевдониму:

ВЫБРАТЬ Наименование, ЕдиницаИзмерения КАК ЕдИз ИЗ Справочник.Номенклатура

УПОРЯДОЧИТЬ ПО ЕдИз

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

  1. ВЫБРАТЬ Документ.ПоступлениеТоваровУслуг.Товары

  2. ВЫБРАТЬ Документ.ПоступлениеТоваровУслуг.Товары.*

  3. ВЫБРАТЬ Документ.ПоступлениеТоваровУслуг.Товары.Сумма

  4. ВЫБРАТЬ Документ.ПоступлениеТоваровУслуг.Товары.(Количество,Сумма)

2. Предложение ИЗ

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

Конструкция ИЗ необязательна, если в списке выбираемых полей указаны полные имена таблиц (см. выше).

Таблицы – источники данных: таблицы справочников, документов, регистров и пр. Таблица справочника предоставляет следующие поля:

  • Код, Наименование, Имя реквизита, Имя табличной части.

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

  • ПометкаУдаления.

  • Родитель.

  • ЭтоГруппа.

  • Владелец.

  • Представление. Виртуальное поле (*), содержит представление элемента справочника, код или наименование.

Документы – аналогично.

В качестве таблиц источников можно указывать табличные части объектов, например, справочников или документов. Это не то же самое, что получать табличную часть как поле запроса (см. выше):

ВЫБРАТЬ Номенклатура, Цена ИЗ Документ.ПоступлениеТоваровУслуг.Товары

Если запрос делается к табличной части справочника или документа, то обращение к реквизитам шапки документа или обычным реквизитам справочника производится через поле Ссылка:

ВЫБРАТЬ Ссылка.Дата, Номенклатура, Цена ИЗ Документ.ПоступлениеТоваровУслуг.Товары

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

ВЫБРАТЬ Товары.Номенклатура КАК Товар, Товары.Номенклатура.СтранаПроисхождения КАК Страна

ИЗ (ВЫБРАТЬ Номенклатура ИЗ Документ.ПоступлениеТоваровУслуг.Товары

ОБЪЕДИНИТЬ

ВЫБРАТЬ Номенклатура ИЗ Документ.ПоступлениеТоваровУслуг.Товары) КАК Товары

Конструкция СОЕДИНЕНИЕ … ПО

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

Пример (выбрать все купленные товары и вывести их в отчет с указанием группы):

Запрос=Новый Запрос("ВЫБРАТЬ Док.Номенклатура КАК Ном, Спр.Родитель КАК Группа

|ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК Док

|СОЕДИНЕНИЕ Справочник.Номенклатура КАК Спр ПО Док.Номенклатура=Спр.Ссылка");

Выборка=Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

Сообщить(Выборка.Ном);

Сообщить(Выборка.Группа);

КонецЦикла;

Конструкция ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ

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

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

Пример:

Запрос=Новый Запрос("ВЫБРАТЬ Спр.Наименование КАК Наим, Рег.Курс КАК Курс

|ИЗ Справочник.Валюты КАК Спр

|ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК Рег ПО Спр.Ссылка=Рег.Валюта");

Выборка=Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

Сообщить(Выборка.Наим);

Сообщить(Выборка.Курс);

КонецЦикла;

ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ

ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ

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

3. Предложение ГДЕ

Позволяет задать условие отбора данных из исходных таблиц – источников запроса:

ВЫБРАТЬ Наименование ИЗ Справочник.Номенклатура ГДЕ Услуга=Истина

Логические операторы И, ИЛИ, НЕ

Параметры в языке запросов

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

Запрос=Новый Запрос("ВЫБРАТЬ Наименование, ДатаВыпуска

ИЗ Справочник.ОсновныеСредства

| ГДЕ ДатаВыпуска>&Дата");

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

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

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

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

Пока Выборка.Следующий() Цикл

Сообщить(Выборка.Наименование);

КонецЦикла;

Ключевое слово МЕЖДУ

ГДЕ Цена МЕЖДУ &МинЦена И &МаксЦена

Сравнение строк ПОДОБНО

Позволяет сравнить значение строкового выражения, указанного слева от него со строкой шаблона.

ВЫБРАТЬ Наименование ИЗ Справочник.Контрагенты

ГДЕ Наименование ПОДОБНО «М%»

Служебные символы:

% - последовательность, содержащая любое количество произвольных символов («М%» - все контрагенты, начинающиеся на М).

_ - один произвольный символ. («_аша» - Маша, Саша, Даша..)

[…] – любой одиночный символ из перечисленных в скобках («[МС]аша»).

[^…] - любой одиночный символ кроме перечисленных в скобках («[^МС]аша»).

4. Предложение УПОРЯДОЧИТЬ ПО

Используется для сортировки по алфавиту или по числовому полю результата запроса (УБЫВ, ВОЗР).

Запрос=Новый Запрос("ВЫБРАТЬ Наименование, ДатаВыпуска ИЗ Справочник.ОсновныеСредства

|УПОРЯДОЧИТЬ ПО ДатаВыпуска ВОЗР");

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

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

Пока Выборка.Следующий() Цикл

Сообщить(Выборка.Наименование + " " + Выборка.ДатаВыпуска);

КонецЦикла;

Упорядочивание по иерархии для иерархических справочников достигается с помощью ключевого слова ИЕРАРХИЯ. Если запрос составляется к документу или регистру, иерархическое упорядочивание не происходит – необходимо ВНЕШНЕЕ СОЕДИНЕНИЕ со справочником.

УПОРЯДОЧИТЬ ПО Наименование ИЕРАРХИЯ

АВТОУПОРЯДОЧИВАНИЕ

5. Агрегатные функции в запросе

Для получения сводной информации в запросах могут использоваться:

  • агрегатные функции;

  • предложение СГРУППИРОВАТЬ ПО;

  • предложение ИМЕЮЩИЕ.

Любая агрегатная функция принимает в качестве аргумента столбец, а возвращает единственное значение. Агрегатные функции:

  • СУММА

  • МАКСИМУМ

  • МИНИМУМ

  • СРЕДНЕЕ

  • КОЛИЧЕСТВО

ВЫБРАТЬ Сумма (Сумма) КАК См ИЗ Документ.ПоступлениеТоваровУслуг.Товары

В отличие от других агрегатных функций КОЛИЧЕСТВО допускает три варианта использования:

  • позволяет узнать количество строк в результате запроса. Для этого в качестве параметра надо указать «*». КОЛИЧЕСТВО(*);

  • позволяет подсчитать количество значений указанного поля, не являющихся Null-значениями;

  • позволяет подсчитать количество различных значений указанного поля (ключевое слово РАЗЛИЧНЫЕ перед именем поля). КОЛИЧЕСТВО (РАЗЛИЧНЫЕ Наименование).

6. Предложение СГРУППИРОВАТЬ ПО

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

Запрос=Новый Запрос("ВЫБРАТЬ Номенклатура, Сумма (Сумма) КАК ОбъемПродаж

|ИЗ Документ.ПоступлениеТоваровУслуг.Товары СГРУППИРОВАТЬ ПО Номенклатура");

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

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

Пока Выборка.Следующий() Цикл

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

Сообщить(Выборка.ОбъемПродаж);

КонецЦикла;

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

7. Предложение ИМЕЮЩИЕ

Позволяет накладывать условия на значения агрегатных функций, поскольку в предложении ГДЕ использовать агрегатные функции нельзя. В условии отбора ИМЕЮЩИЕ можно использовать только агрегатные функции и поля группировки.

Запрос=Новый Запрос("ВЫБРАТЬ Номенклатура, Сумма (Количество) КАК ПроданоМного

|ИЗ Документ.ПоступлениеТоваровУслуг.Товары

|СГРУППИРОВАТЬ ПО Номенклатура

|ИМЕЮЩИЕ Сумма (Количество)>1000");

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

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

Пока Выборка.Следующий() Цикл

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

Сообщить(Выборка.ПроданоМного);

КонецЦикла;

8. Предложение ИТОГИ

Общие итоги:

Запрос=Новый Запрос("ВЫБРАТЬ Номенклатура, Сумма

|ИЗ Документ.ПоступлениеТоваровУслуг.Товары

|ИТОГИ СУММА(Сумма) ПО ОБЩИЕ");

Сообщить ("Всего: ");

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

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

Пока Выборка.Следующий() Цикл

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

Сообщить(Выборка.Сумма);

КонецЦикла;

При обходе результата запроса итоговые строки можно отличить от обычных с помощью метода ТипЗаписи().

Итоги по группировкам:

Запрос=Новый Запрос("ВЫБРАТЬ Номенклатура, Сумма

|ИЗ Документ.ПоступлениеТоваровУслуг.Товары

|ИТОГИ СУММА(Сумма) ПО Номенклатура");

Запрос с итогами по группировкам в отличие от СГРУППИРОВАТЬ ПО выводит не только итоговые, но и детальные записи.

Итоги по иерархии:

Запрос=Новый Запрос("ВЫБРАТЬ Номенклатура, Сумма

|ИЗ Документ.ПоступлениеТоваровУслуг.Товары

|ИТОГИ СУММА(Сумма) ПО Номенклатура ИЕРАРХИЯ");

9. Предложение ОБЪЕДИНИТЬ

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

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

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

Запрос=Новый Запрос("ВЫБРАТЬ Номенклатура, Сумма

|ИЗ Документ.ПоступлениеТоваровУслуг.Товары

|ОБЪЕДИНИТЬ

|ВЫБРАТЬ Номенклатура, Сумма

|ИЗ Документ.РеализацияТоваровУслуг.Товары");

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

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

Пока Выборка.Следующий() Цикл

Сообщить("Товар: " + Выборка.Номенклатура + " на сумму: " + Выборка.Сумма);

КонецЦикла;

По умолчанию при объединении запросов полностью одинаковые строки заменяются одной. Если требуется, чтобы были оставлены все строки (даже если сумма покупки и продажи совпала):

ОБЪЕДИНИТЬ ВСЕ

10. Операции выбора ВЫБОР

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

Запрос=Новый Запрос("ВЫБРАТЬ Номенклатура, Сумма,

|ВЫБОР

|Когда Сумма>=100000 Тогда ""100000 и выше""

|Когда Сумма>=10000 Тогда ""10000 - 100000""

|Когда Сумма>=0 Тогда ""0 - 10000""

|КОНЕЦ КАК Диапазон

|ИЗ Документ.ПоступлениеТоваровУслуг.Товары");

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

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

Пока Выборка.Следующий() Цикл

Сообщить("Товар: " + Выборка.Номенклатура + " на сумму: " + Выборка.Сумма + " из диапазона " + Выборка.Диапазон);

КонецЦикла;

Коллекции значений

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

  • массив;

  • список значений;

  • таблица значений;

  • дерево значений;

  • структура;

  • соответствие.

Все объекты создаются с помощью ключевого слова Новый.

Массив

Массив представляет собой пронумерованную совокупность значений любого типа. К элементу массива можно обращаться через оператор […], причем индекс первого массива равен 0.

Создание нового массива:

Массив = Новый Массив; // одномерный массив без элементов

Массив = Новый Массив(10); // одномерный массив из 10 элементов (имеющих значение Неопределено)

Массив = Новый Массив(5,5); // массив с двумя измерениями

Методы объекта Массив:

  • ВГраница()

  • Вставить

  • Добавить

  • Количество

  • Найти

  • Очистить

  • Получить

  • Удалить

  • Установить

Мс = Новый Массив;

Мс.Добавить("Иванов");

Мс.Добавить(123);

Мс.Вставить(1,"Петров");

Сообщить("Количество после добавления: "+ Мс.Количество());

Сообщить(Мс[1]);

Список значений

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

В списке могут храниться значения разных типов, хотя можно наложить ограничение с помощью свойства ТипЗначения. Список значений состоит из объектов типа ЭлементСпискаЗначений, которые имеют свойства:

  • Значение;

  • Представление – пользовательское представление значения при выводе на экран;

  • Пометка - тип: Булево. Содержит связанное с элементом списка значение пометки;

  • Картинка - содержит картинку, связанную с данным элементом списка значений.

СЗ=Новый СписокЗначений;

СЗ.Добавить("ИИ","Иванов Иван");

СЗ.Добавить("ПП","Петров Петр");

Для Каждого Эл Из СЗ Цикл

Сообщить(Эл.Представление);

КонецЦикла;

Добавить на форму ПолеСписка СЗ, в модуле:

СЗ.Добавить("ИИ","Иванов Иван");

СЗ.Добавить("ПП","Петров Петр");

Таблица значений

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

ТЗ=Новый ТаблицаЗначений;

ТЗ.Колонки.Добавить("Наименование");

ТЗ.Колонки.Добавить("Цена");

НовСтрока=ТЗ.Добавить();

НовСтрока.Наименование="роо";

Структура и соответствие

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

В структуре ключи могут быть только строковые. В соответствиях – почти любого типа. Структуры часто применяются для указания отборов:

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

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

Для работы с регистром сведений средствами встроенного языка применяются следующие объекты:

РегистрыСведенийМенеджер – предоставляет доступ к объектам РегистрСведенийМенеджер через свои свойства:

Курсы = РегистрыСведений.КурсыВалют;

РегистрСведенийМенеджер.<Имя регистра сведений> - предназначен для управления данными конкретного регистра сведений. Позволяет осуществлять поиск, выбирать и создавать записи регистра сведений.

Курсы = РегистрыСведений.КурсыВалют;

Выборка = Курсы.Выбрать();

Объект РегистрСведенийМенеджер позволяет обращаться к «итогам» регистра методами:

Получить (<Период>, <Структура>) - получает значения ресурсов записи регистра, соответствующей указанным значениям измерений регистра.

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

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

Курсы = РегистрыСведений.КурсыВалют;

Отбор = Новый Структура("Валюта",Вал);

Стр = Курсы.Получить(Дат,Отбор);

Сообщить(Стр.Курс);

Следующие методы применимы только для периодических регистров сведений:

  • ПолучитьПервое

  • ПолучитьПоследнее

  • СрезПервых

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

РегистрСведенийНаборЗаписей.<Имя регистра сведений> - предназначен для операций с наборами записей регистра сведений в памяти. Представляет собой коллекцию записей регистра сведений. Позволяет выполнять считывание записей по определенному условию отбора из базы данных, добавлять, удалять и модифицировать записи в наборе. Также может быть выполнена запись в базе данных по определенному условию.

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

РегистрСведенийЗапись.<Имя регистра сведений> - предоставляет доступ к записи регистра сведений. Объект не создается непосредственно, а предоставляется другими объектами, связанными с регистром сведений. Например, данный объект представляет записи регистра в наборе записей.

РегистрСведенийМенеджерЗаписи.<Имя регистра сведений> - позволяет читать, записывать и удалять отдельную запись регистра сведений. Используется только для регистров сведений, неизменяемых регистраторами, т.е. для которых в конфигураторе установлен режим записи "Независимый".

РегистрСведенийВыборка.<Имя регистра сведений> - объект этого типа возвращается методами Выбрать и ВыбратьПоРегистратору у объекта типа РегистрСведенийМенеджер.<Имя регистра сведений> и представляет собой специализированный способ перебора записей регистра сведений.

Курсы = РегистрыСведений.КурсыВалют;

Выборка = Курсы.Выбрать();

Пока Выборка.Следующий() Цикл

Сообщить(Выборка.Курс);

КонецЦикла;

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

РегистрСведенийСписок.<Имя регистра сведений> - предназначен для управления списком записей регистра сведений, отображаемым в табличном поле.

РегистрСведенийКлючЗаписи.<Имя регистра сведений> - набор значений, однозначно идентифицирующих запись регистра. Объект используется в тех случаях, когда необходимо сослаться на определенную запись.

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

ВЫБРАТЬ * ИЗ РегистрСведений.КурсыВалют

Список полей, используемых в запросе:

  • Имя измерения, реквизита или ресурса;

  • Активность – содержит признак активности записи. Записи, для которых значение данного свойства установлено в Ложь, не будут учитываться при получении «первых» или «последних» записей регистра;

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

  • НомерСтроки – порядковый номер записи в наборе записей;

  • Период;

  • Регистратор.

Бухгалтерский учет

К объектам, с помощью которых реализуется бухгалтерский учет, относятся:

  • Планы счетов;

  • Планы видов характеристик (для ведения аналитического учета по субконто);

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

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

Основная таблица – доступ к записям регистра бухгалтерии (проводкам). Доступна вся информация о проводке, кроме субконто.

ВЫБРАТЬ Период, Организация, СчетДт, СчетКт, Сумма ИЗ РегистрБухгалтерии.Основной

ДвиженияССубконто – расширение предыдущей таблицы.

ВЫБРАТЬ Период, Организация, СчетДт, ВидСубконотоДт1, СубконтоДт1, СчетКт, Сумма ИЗ РегистрБухгалтерии.Основной.ДвиженияССубконто

ЗначенияСубконто – доступ к значениям субконто.

Остатки – получение остатков по счетам, измерениям и субконто.

ВЫБРАТЬ Организация, СчетДт, СуммаОстаток ИЗ РегистрБухгалтерии.Основной.Остатки

Обороты - получение оборотов по счетам, измерениям и субконто.

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

ОборотыДтКт – предназначена для получения дебетовых и кредитовых оборотов между счетами, измерениями и субконто.

89

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]