Как прочитать записи регистра сведений в 1с 8.3, 8.2 с возможностью отбора и упорядочивания.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
Процедура КакПрочитатьЗаписиРегистраСведений() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЦеныНоменклатуры.Номенклатура КАК Номенклатура, | ЦеныНоменклатуры.ТипЦен КАК ТипЦен, | ЦеныНоменклатуры.Валюта, | ЦеныНоменклатуры.Цена, | ЦеныНоменклатуры.Период, | ЦеныНоменклатуры.Регистратор, | ЦеныНоменклатуры.НомерСтроки, | ЦеныНоменклатуры.Активность |ИЗ | РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры |ГДЕ | ТипЦен = &ПараметрТипЦен |УПОРЯДОЧИТЬ ПО | Номенклатура УБЫВ"; ВыборкаЦен = Справочники.ТипыЦенНоменклатуры.Выбрать(); ПервыйПопавшийсяТипЦен = ВыборкаЦен.Следующий(); Запрос.УстановитьПараметр("ПараметрТипЦен", ПервыйПопавшийсяТипЦен.Ссылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщить( Строка(ВыборкаДетальныеЗаписи.Период) + " " + ВыборкаДетальныеЗаписи.Номенклатура + " " + ВыборкаДетальныеЗаписи.ТипЦен + " " + ВыборкаДетальныеЗаписи.Цена ); КонецЦикла; КонецПроцедуры |
Как получить наиболее поздние записи (срез последних) регистра сведений на указанную дату (включительно) в 1с 8.3, 8.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
Процедура СрезПоследнийЗаписейРегистраСведений() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЦеныНоменклатурыСрезПоследних.Период, | ЦеныНоменклатурыСрезПоследних.Регистратор, | ЦеныНоменклатурыСрезПоследних.НомерСтроки, | ЦеныНоменклатурыСрезПоследних.Активность, | ЦеныНоменклатурыСрезПоследних.ТипЦен КАК ТипЦен, | ЦеныНоменклатурыСрезПоследних.Номенклатура, | ЦеныНоменклатурыСрезПоследних.Валюта, | ЦеныНоменклатурыСрезПоследних.Цена |ИЗ | РегистрСведений.ЦеныНоменклатуры.СрезПоследних( | &ПараметрДата, ТипЦен = &ПараметрТипЦен | ) КАК ЦеныНоменклатурыСрезПоследних"; ВыборкаЦен = Справочники.ТипыЦенНоменклатуры.Выбрать(); ПервыйПопавшийсяТипЦен = ВыборкаЦен.Следующий(); Запрос.УстановитьПараметр("ПараметрДата", '20140131'); Запрос.УстановитьПараметр("ПараметрТипЦен", ВыборкаЦен.Ссылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщить( Строка(ВыборкаДетальныеЗаписи.Период) + " " + ВыборкаДетальныеЗаписи.Номенклатура + " " + ВыборкаДетальныеЗаписи.ТипЦен + " " + ВыборкаДетальныеЗаписи.Цена ); КонецЦикла; КонецПроцедуры |
Как сделать отбор движений регистра сведений по регистратору в 1с 8.3, 8.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Процедура ВыборкаДвиженийРегистраПоРегистратору() // отберем движения по регистру сведений первого попавшегося // документа "Установка цен номенклатуры" ВыбДок = Документы.УстановкаЦенНоменклатуры.Выбрать(); Если ВыбДок.Следующий() Тогда ВыбРег = РегистрыСведений.ЦеныНоменклатуры.ВыбратьПоРегистратору( СсылкаНаДокумент); Пока ВыбРег.Следующий() Цикл Сообщить(ВыбРег.Номенклатура.Наименование + " " +ВыбРег.Цена); КонецЦикла; КонецЕсли; КонецПроцедуры |
Как добавить новую запись регистра сведений, а также, как изменить/удалить существующую запись регистра сведений в 1с 8.3, 8.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
// Периодический регистр сведений КурсыВалют // Измерения: Валюта // Ресурсы: Курс, Кратность Процедура КакДобавитьИзменитьИлиУдалитьЗаписьРегистраСведений() // добавление новой записи НоваяЗапись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); НоваяЗапись.Период = ТекущаяДата(); НоваяЗапись.Курс = 50; НоваяЗапись.Кратность = 1.0; // НоваяЗапись.Валюта = СсылкаНаВалюту; // НоваяЗапись.Записать(); //Отбор = Новый Структура("Валюта", СсылкаНаВалюту); Выборка = РегистрыСведений.КурсыВалют.Выбрать('20130101', '20131231');//, Отбор); Пока Выборка.Следующий() Цикл // изменение существующей МенеджерЗаписи = Выборка.ПолучитьМенеджерЗаписи(); МенеджерЗаписи.Прочитать(); МенеджерЗаписи.Курс = 25; // МенеджерЗаписи.Записать(); // удаление существующей //Выборка.ПолучитьМенеджерЗаписи().Удалить(); КонецЦикла; КонецПроцедуры |
Как работать с набором записей регистра сведений в 1с 8.3, 8.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Процедура РаботаСНаборомЗаписейРегистраСведений() НаборКурсов = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей(); //НаборКурсов.Отбор.Валюта.Установить(СсылкаНаВалюту); НаборКурсов.Отбор.Период.Установить(ТекущаяДата()); НаборКурсов.Прочитать(); Если НаборКурсов.Количество() = 0 Тогда НовыйКурс = НаборКурсов.Добавить(); //НовыйКурс.Валюта = СсылкаНаВалюту; НовыйКурс.Период = ТекущаяДата(); ИначеЕсли НаборКурсов.Количество() = 1 Тогда НовыйКурс = НаборКурсов[0]; КонецЕсли; НовыйКурс.Курс = 0; НовыйКурс.Кратность = 1; НаборКурсов.Записать(); КонецПроцедуры |