Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Управление блокировкой документа
// Создадим новый документ НовыйПоступлениеТоваров = Документы.ПоступлениеТоваров.СоздатьДокумент(); // Заполним реквизиты документа НовыйПоступлениеТоваров.Номер = "001"; //... // Сохраним его в базе данных НовыйПоступлениеТоваров.Записать(); // Теперь получим ссылку на созданный нами документ ПоступлениеТоваровСсылка = Документы.ПоступлениеТоваров.НайтиПоНомеру("001"); // Получаем объект документа по ссылке ПоступлениеТоваровОбъект = ПоступлениеТоваровСсылка.ПолучитьОбъект(); // Блокируем документ Попытка ПоступлениеТоваровОбъект.Заблокировать(); // Вносим изменения в документ, например, меняем номер ПоступлениеТоваровОбъект.Номер = "002"; // Записываем данные в базу ПоступлениеТоваровОбъект.Записать(); // Разблокируем документ ПоступлениеТоваровОбъект.Разблокировать(); Исключение // Выводим сообщение об ошибке Предупреждение ("Не удалось заблокировать документ!"); КонецПопытки;
Удаление документа // Создадим новый документ НовыйСписаниеТоваров = Документы.СписаниеТоваров.СоздатьДокумент(); // Заполним дату документа НовыйСписаниеТоваров.Дата = ТекущаяДата(); // Запишем документ в базу НовыйСписаниеТоваров.Записать(); // Пометим документ к удалению Если НЕ НовыйСписаниеТоваров.ПометкаУдаления Тогда НовыйСписаниеТоваров.УстановитьПометкуУдаления; КонецЕсли; // или удалим документ непосредственно НовыйСписаниеТоваров.Удалить();
26. Прикладной объект конфигурации регистр (сведений, накопления, бухгалтерии, расчета): свойства, структура, приемы программирования. Регистр сведений Прикладной объект, предназначенный для хранения произвольных данных в разрезе нескольких измерений. В том числе в разрезе времени. Например, в регистре сведений можно хранить курсы валют в разрезе валют, или цены предприятия в разрезе номенклатуры и типа цен. Основными функциональными возможностями, которые предоставляет регистр сведений разработчику, являются: · создание, изменение и удаление записей; · выбор записей в заданном интервале по заданным критериям; · выбор записей по регистратору; · получение значений ресурсов записей, соответствующих указанному периоду и значениям измерений; · получение значений ресурсов наиболее ранних и наиболее поздних записей регистра, соответствующих указанному периоду и значениям измерений.
Для получения наиболее поздних/ранних записей регистра сведений используется функция СрезПоследних/СрезПервых объекта РегистрСведенийМенеджер.<Имя регистра сведений>, либо виртуальная таблица СрезПоследних/СрезПервых регистра сведений, в случае когда выборка данных осуществляется запросом. Приемы программирования Чтение одной записи(структура): // Для периодического: // Получить(<Период>, <Отбор>) // ПолучитьПервое(<НачалоПериода>, <Отбор>) // ПолучитьПоследнее(<КонецПериода>, <Отбор>) // Для непериодического: // Получить(<Отбор>) Доллары = Справочники.Валюты.НайтиПоНаименованию("USD"); Отбор = Новый Структура; Отбор.Вставить("Валюта", Доллары); Курсы = РегистрыСведений.КурсыВалют; ТекКурс = Курсы.ПолучитьПоследнее(ТекущаяДата(), Отбор); Сообщить("Текущий курс доллара: " + ТекКурс.Курс + " руб.");
Срез первых/последних(таблица значений): // СрезПервых(<НачалоПериода>, <Отбор>) // СрезПоследних(<КонецПериода>, <Отбор>) Отбор = Новый Структура("ТипЦен, Номенклатура"); Отбор.ТипЦен = ТипЦены; // Какой тип цены Отбор.Номенклатура = Номенклатура; // Для какой номенклатуры // Цена в регистре сведений до Рабочей даты включительно Цена = РегистрыСведений.ЦеныНоменклатуры.СрезПоследних(РабочаяДата(), Отбор); Запросом(выборка): Единственый способ получения данных по виду сравнения не только "равно" // Чтение данных на определенную дату из регистра сведений Запрос = Новый Запрос;
МассивВалют = Новый Массив;
МассивВалют.Добавить(Валюта1); МассивВалют.Добавить(Валюта2);
Запрос.УстановитьПараметр("МассивВалют", МассивВалют); Запрос.УстановитьПараметр("ДатаПолучения", ДатаПолучения);
Запрос.Текст = " |ВЫБРАТЬ | ВалютыСрезПоследних.Валюта, | ВалютыСрезПоследних.Курс |ИЗ | РегистрСведений.КурсыВалют.СрезПоследних(&ДатаПолучения, Валюта В (&МассивВалют)) КАК ВалютыСрезПоследних";
РезультатЗапроса = Запрос.Выполнить();
ТаблицаКурсов = РезультатЗапроса.Выгрузить(); // или так Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(" "+Выборка.Валюта+": "+Выборка.Курс); КонецЦикла; Чтение по одному измерению нескольких(выборка): Важно! Структура отбора может содержать только один элемент. // Для периодического: // Выбрать(<НачалоИнтервала>, <КонецИнтервала>, <Отбор>, <Порядок>) // Для непериодического: // Выбрать(<Отбор>, <Порядок>) // Для подчиненного: // ВыбратьПоРегистратору(<Регистратор>)
// Пример: ОтборВалют = Новый Структура("Валюта", ВыбВалюта); ВыборкаКурсовВалют = РегистрыСведений.КурсыВалют.Выбрать(,,ОтборВалют); Пока ВыборкаКурсовВалют.Следующий() Цикл Сообщить("Дата " + ВыборкаКурсовВалют.Период + " Валюта "+СокрЛП(ВыборкаКурсовВалют.Валюта) + ", Курс "+ ВыборкаКурсовВалют.Курс); КонецЦикла;
Чтение/запись одной(записи): Курс = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); Курс.Валюта = ВыбВалюта; // все измерения обязательны для заполнения Курс.Период = ТекущаяДата(); // + период для периодического + регистратор для подчиненного // Курс.Записать(); - если вызвать здесь, то удалим запись, т.к. не задали значение ресурсов Курс.Прочитать(); Если Не Курс.Выбран() Тогда Курс.Период = ТекущаяДата(); Курс.Валюта = ВыбВалюта; Курс.Курс = 41.35; Курс.Кратность = 1; КонецЕсли; Если ВвестиЧисло(Курс.Курс, "Введите курс на сегодня",15,5) Тогда Курс.Записать(); КонецЕсли;
Чтение/запись нескольких(набор записей): НаборЗаписей = РегистрыСведений.НумерацияДоговоров.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Период.Установить(НачалоГода(Дата)); НаборЗаписей.Отбор.Организация.Установить(Организация); // Отбор может устанавливаться только на равенство // Для регистров "Подчиненных регистратору", отбор возможен только по регистратору НаборЗаписей.Прочитать(); // считывает записи в память согласно отбору (проще говоря получаем таблицу значений)
Если НаборЗаписей.Количество() = 0 Тогда НовыйНомер = НаборЗаписей.Добавить(); НовыйНомер.Организация = Организация; НовыйНомер.Период = НачалоГода(Дата); НовыйНомер.Номер = 2; ном=1; ИначеЕсли НаборЗаписей.Количество() = 1 Тогда НовыйНомер = НаборЗаписей[0]; ном = НовыйНомер.Номер; НовыйНомер.Номер = ном+1; КонецЕсли; НаборЗаписей.Записать(); // удаляет все старые записи согласно отбору и добавляет строки из НаборЗаписей Регистр накопления Прикладной объект, предназначенный для хранения информации о наличии и движениях средств (финансов, товаров, материалов и т.д.). Позволяет автоматизировать такие направления, как складской учет, взаиморасчеты, планирование. В программных модулях для общих действий над регистром накопления (получение остатков и оборотов по данным регистра накопления, поиска нужных записей, формирования выборок, создания форм и макетов) служит объект РегистрНакопленияМенеджер.<Имя регистра накопления>. Для считывания и занесения набора записей в базу данных по определенному условию отбора служит объект РегистрНакопленияНаборЗаписей.<Имя регистра накопления>. Для динамического обхода записей регистра служит объект РегистрНакопленияВыборка.<Имя регистра накопления>.
Все поля регистра накопления можно разделить на три категории: измерения, ресурсы, реквизиты. К этим категориям относятся и все системные поля регистра. Период является измерением. Регистратор и НомерСтроки, с одной стороны, являются измерениями, так как вместе периодом определяют момент времени в которое произошло движение; с другой стороны, они характеризуют конкретную запись и могут быть отнесены к категории реквизитов. Вид движения является реквизитом так как является только характеристикой конкретной записи. Регистр бухгалтерии Прикладной объект, предназначенный для хранения данных, относящихся к бухгалтерскому учету. Позволяет вести многоуровневый и многомерный аналитический учет, учет по нескольким планам счетов. Возможно опциональное ведение количественного, суммового и валютного учета по отдельным разрезам аналитики и т.д. По своему виду регистр бухгалтерии напоминает регистр накопления: он может иметь набор изменений, в разрезе которых накапливаются числовые значения ресурсов. Также он может содержать набор реквизитов для хранения дополнительной информации, связанной с записями регистра. Регистр бухгалтерии связывается с одним из используемых планов счетов, и хранит бухгалтерские итоги в соответствии с его структурой. Информация в регистре бухгалтерии хранится в виде записей, структура которых строится системой динамически, в зависимости от настроек различных элементов учета, выполненной при редактировании плана счетов. Например, запись может содержать поля для ввода корреспондирующих счетов, сумм, субконто, количества, вида валюты и суммы в валюте. Регистр бухгалтерии может работать в двух режимах: с поддержкой корреспонденции и без. В случае если выбран режим с поддержкой корреспонденции, будет задействован механизм двойной записи и каждая запись регистра будет содержать обязательные поля СчетДт (счет дебета) и СчетКт (счет кредита). Если же регистр не поддерживает корреспонденцию, каждая запись регистра будет содержать только одно поле – Счет. Основными функциональными возможностями, которые предоставляет регистр бухгалтерии разработчику, являются:
· выбор записей в заданном интервале по заданным критериям; · выбор записей по регистратору; · получение остатков и оборотов на указанный момент времени по заданным значениям параметров (счет, субконто, измерения, кор. счет, кор. субконто, кор. измерения); · получение остатков на указанный момент времени по заданным значениям параметров (счетДт, субконтоДт, счетКт, субконтоКт, измеренияКт, измерения (для балансовых) и измеренияДт, измеренияКт (для не балансовых)); · режим работы с разделением итогов, который обеспечивает более высокую параллельность записи в регистр; · отключение использования текущих итогов; · расчет итогов на указанную дату; · чтение, изменение и запись набора записей в регистр; · возможность записи в регистр без пересчета итогов; · полный пересчет итогов и пересчет итогов за указанный период. Приемы программирования
|
|||||||
Последнее изменение этой страницы: 2017-02-05; просмотров: 147; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.200.249.42 (0.036 с.) |