Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3 курс (заочка) / Методические пособия / Пособие для ответов на контрольные вопросы

.pdf
Скачиваний:
159
Добавлен:
15.02.2021
Размер:
46.69 Mб
Скачать

Краткий справочник разработчика 921

Свойства и методы взаимодействия перечисленных объектов в большинстве своем аналогичны свойствам и методам объектов, предназначенных для работы со справочниками (см. раздел «Объекты встроенного языка для работы со справочниками» на стр. 905).

Последовательность событий при записи счета из формы счета (записать и закрыть)

Рис. 29.13. Последовательность событий при записи счета из формы счета

ПРИМЕЧАНИЕ

Заливкой выделены события, выполняющиеся в транзакции записи.

922 1С:Предприятие 8.3. Практическое пособие разработчика

Планы видов расчета

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

На следующей схеме изображено взаимодействие объектов встроенного языка для работы с планами видов расчета (рис. 29.14).

Рис. 29.14. Объекты встроенного языка для работы с планами видов расчета

ПРИМЕЧАНИЕ

Заливкой выделен объект манипулирования данными.

Узнай больше!

Про основные виды объектов встроенного языка можно прочитать в разделе «Объекты встроенного языка для работы с прикладными данными» на стр. 896.

Краткий справочник разработчика 923

ВытесняющиеВидыРасчета.<имя>. Предопределенная табличная часть вида расчета – список вытесняющих видов расчета. Такая табличная часть определена только для планов видов расчета с признаком ИспользуетПериодДействия. Имеет единственную

колонку – ВидРасчета типа ПланВидовРасчетаСсылка.<имя>.

ВытесняющиеВидыРасчетаСтрока.<имя>. Строка предопределенной таблицы вытесняющих видов расчета.

ВедущиеВидыРасчета.<имя>. Предопределенная табличная часть вида расчета – список ведущих видов расчета. Имеет единственную

колонку – ВидРасчета типа ПланВидовРасчетаСсылка.<имя>.

ВедущиеВидыРасчетаСтрока.<имя>. Строка предопределенной таблицы ведущих видов расчета.

БазовыеВидыРасчета.<имя>. Предопределенная табличная часть вида расчета – список ведущих видов расчета. Такая табличная часть (свойство БазовыеВидыРасчета) определена только для планов видов расчета со свойством ЗависимостьОтБазы, не равным значению Не зависит. Имеет единственную колонку – Вид Расчета типа

ПланВидовРасчетаСсылка.<имя>.

БазовыеВидыРасчетаСтрока.<имя>. Строка предопределенной таблицы базовых видов расчета.

Свойства и методы взаимодействия перечисленных объектов в большинстве своем аналогичны у объектов, предназначенных для работы со справочниками (см. раздел «Объекты встроенного языка для работы со справочниками» на стр. 905).

924 1С:Предприятие 8.3. Практическое пособие разработчика

Последовательность событий при записи вида расчета из формы вида расчета (записать и закрыть)

Рис. 29.15. Последовательность событий при записи вида расчета из формы вида расчета

ПРИМЕЧАНИЕ

Заливкой выделены события, выполняющиеся в транзакции записи.

Краткий справочник разработчика 925

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

Объекты встроенного языка для работы с регистрами сведений

На следующей схеме изображено взаимодействие объектов встроенного языка для работы с регистрами сведений (рис. 29.16).

Рис. 29.16. Объекты встроенного языка для работы с регистрами сведений

ПРИМЕЧАНИЕ

Заливкой выделен объект манипулирования данными. Метод объекта, от которого идет стрелка, приводится в листинге под соответствующей цифрой, а объект, к которому идет стрелка, – это тип объекта, возвращаемого методом.

Узнай больше!

Про основные виды объектов встроенного языка можно прочитать в разделе «Объекты встроенного языка для работы с прикладными данными» на стр. 896.

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

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

926 1С:Предприятие 8.3. Практическое пособие разработчика

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

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

Ниже приведены примеры использования объектов встроенного языка для работы с регистрами сведений (листинг 29.8).

Листинг 29.8. Примеры использования объектов

1. // Глобальный контекст // РегистрыСведений

// Пример: получить текущую цену из периодического регистра сведений "Цены". Элемент = Справочники.Номенклатура.НайтиПоКоду(4); Отбор = Новый Структура("Номенклатура", Элемент);

ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(ТекущаяДата(), Отбор); Цена = ЗначенияРесурсов.Цена;

2. // объект РегистрыСведенийМенеджер

//.<имя регистра сведений>

//[<имя регистра сведений>]

//Для Каждого … Из … Цикл … КонецЦикла;

//Пример: Получить начальную цену из периодического регистра сведений Цены. ИмяРегистра = "Цены"; Услуга = Справочники.Номенклатура.НайтиПоНаименованию("Диагностика"); Отбор = Новый Структура;

Отбор.Вставить("Номенклатура", Услуга ); Цена = РегистрыСведений[ИмяРегистра].ПолучитьПервое(ТекущаяДата(), Отбор).Цена;

3.// объект РегистрСведенийМенеджер.<имя>

//СоздатьКлючЗаписи()

//Пример: активизировать требуемую строку списка регистра сведений. СтруктураКлючевыхПолей = Новый Структура; СтруктураКлючевыхПолей.Вставить("Период", Дата("20040331000000")); СтруктураКлючевыхПолей.Вставить(

"Номенклатура", Справочники.Номенклатура.НайтиПоКоду("0000006")); Элементы.Материалы.ТекущаяСтрока = РегистрыСведений.Цены.СоздатьКлючЗаписи(

СтруктураКлючевыхПолей);

Краткий справочник разработчика 927

4.// объект РегистрСведенийМенеджер.<имя>

//СоздатьНаборЗаписей()

//Пример: показать номенклатуру, цена на которую была установлена в заданную дату и время. Набор = РегистрыСведений.Цены.СоздатьНаборЗаписей(); Набор.Отбор.Период.Установить(ЗаданнаяДата, Истина); Набор.Прочитать(); Для Каждого ОчереднаяЗапись Из Набор Цикл

Сообщить("Номенклатура = "+ ОчереднаяЗапись.Номенклатура +", цена = "+ ОчереднаяЗапись.Цена);

КонецЦикла;

5.// объект РегистрСведенийМенеджер.<имя> // СоздатьМенеджерЗаписи()

// Пример: добавить новое значение цены в регистр "Цены". Запись = РегистрыСведений.Цены.СоздатьМенеджерЗаписи(); Запись.Период = ТекущаяДата();

Запись.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("0000005"); Запись.Цена = 568; Запись.Записать();

6.// объект РегистрСведенийНаборЗаписей.<имя>

//[<индекс элемента коллекции>]

//Для Каждого … Из … Цикл … КонецЦикла;

//Пример: показать номенклатуру, цена на которую была установлена в заданную дату и время. Набор = РегистрыСведений.Цены.СоздатьНаборЗаписей(); Набор.Отбор.Период.Установить(ЗаданнаяДата, Истина); Набор.Прочитать(); Для Каждого ОчереднаяЗапись Из Набор Цикл

Сообщить("Номенклатура = "+ ОчереднаяЗапись.Номенклатура + ", цена = " + ОчереднаяЗапись.Цена);

КонецЦикла;

7.// объект РегистрСведенийВыборка.<имя> // ПолучитьМенеджерЗаписи()

// Пример: удалить все записи регистра сведений за текущий месяц. Выборка = РегистрыСведений.Цены.Выбрать(

НачалоМесяца(ТекущаяДата()), КонецМесяца(ТекущаяДата())); Пока Выборка.Следующий() цикл Выборка.

ПолучитьМенеджерЗаписи().Удалить();

КонецЦикла;

8.// объект РегистрСведенийМенеджер.<имя>

//Выбрать()

//ВыбратьПоРегистратору()

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

Отбор = Новый Структура("Номенклатура", Справочники.Номенклатура.НайтиПоКоду("0000005")); Выборка = РегистрыСведений.Цены.Выбрать(НачалоГода(ТекущаяДата()), ТекущаяДата(), Отбор); Пока Выборка.Следующий() цикл

Сообщить("Дата = " + Выборка.Период + ", цена = " + Выборка.Цена); КонецЦикла;

928 1С:Предприятие 8.3. Практическое пособие разработчика

Последовательность событий при сохранении данных из формы записи регистра сведений (записать и закрыть)

Рис. 29.17. Последовательность событий при сохранении данных из формы записи регистра сведений

Краткий справочник разработчика 929

ПРИМЕЧАНИЕ

Заливкой выделены события, выполняющиеся в транзакции записи.

Работа с формой записи регистра сведений осуществляется при помощи объекта РегистрСведенийМенеджерЗаписи.<имя>, который,

в свою очередь, использует объект РегистрСведенийНаборЗапи-

сей.<имя>.

Особенности внутренней реализации объекта РегистрСведенийМенеджерЗаписи.<имя> таковы, что в случае сохранения существующей записи регистра сведений обработчики события Перед Записью() и ПриЗаписи() модуля набора записей будут вызваны дважды: сначала для старого набора записей (с количеством записей 0) и затем для нового (с количеством записей 1).

930 1С:Предприятие 8.3. Практическое пособие разработчика

Последовательность событий при сохранении данных из формы набора записей регистра сведений (записать и закрыть)

Рис. 29.18. Последовательность событий при сохранении данных из формы набора записей регистра сведений

ПРИМЕЧАНИЕ

Заливкой выделены события, выполняющиеся в транзакции записи.