Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Как получить обороты по бухгалтерскому счету за период в 1С 8. 3, 8. 2Содержание книги
Поиск на нашем сайте
Процедура КакПолучитьОборотыПоСчету() // Получим дебетовые обороты по всем счетам входящих в иерархию 60 счета Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.СуммаОборотДт |ИЗ | РегистрБухгалтерии.Хозрасчетный.Обороты( | ДАТАВРЕМЯ(2013, 01, 01), ДАТАВРЕМЯ(2013, 12, 31),, | Счет В ИЕРАРХИИ ( | ЗНАЧЕНИЕ( | ПланСчетов.Хозрасчетный.РасчетыСПоставщикамиИПодрядчиками |) |) |) | КАК ХозрасчетныйОстатки"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаЗапроса = РезультатЗапроса.Выбрать(); Если ВыборкаЗапроса.Следующий() Тогда Сообщить(ВыборкаЗапроса.СуммаОборотДт); КонецЕсли; КонецПроцедуры
Как изменять и добавлять бухгалтерские проводки в 1с 8.3, 8.2
Процедура КакИзменятьИДобавлятьПроводки() ВыбДок = Документы.ПриходныйКассовыйОрдер.Выбрать(); Если ВыбДок.Следующий() Тогда Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); Набор.Отбор.Регистратор.Установить(ВыбДок.Ссылка); Набор.Прочитать(); // изменение существующих записей Для Каждого Движение Из Набор Цикл Движение.Сумма = 100; КонецЦикла; // добавление новых записей Движение = Набор.Добавить(); Движение.СчетДт = ПланыСчетов.Хозрасчетный.Касса; Движение.СчетКт = ПланыСчетов.Хозрасчетный.Выручка; Движение.Период = ТекущаяДата(); Движение.Сумма = 10; // добавление новых записей Движение = Набор.Добавить(); Движение.СчетДт = ПланыСчетов.Хозрасчетный.Касса; Движение.СчетКт = ПланыСчетов.Хозрасчетный.Выручка; Движение.Период = ТекущаяДата(); Движение.Сумма = 1000; // удаление существующих записей Набор.Удалить(0); Набор.Записать(Истина); КонецЕсли; КонецПроцедуры Регистр расчета Прикладной объект, предназначенный для хранения записей о тех или иных видах расчета, которые необходимо выполнить, а также для хранения промежуточных данных и самих результатов выполненных расчетов. Информация в регистре расчета хранится в виде записей, каждая из которых содержит значения измерений и соответствующие им значения ресурсов. Измерения регистра описывают разрезы, в которых хранится информация, а ресурсы регистра непосредственно содержат хранимую информацию. Основными функциональными возможностями, которые предоставляет регистр расчета разработчику, являются: · выбор записей в заданном интервале по заданным критериям; · выбор записей по регистратору; · получение значения базы для записей регистра, удовлетворяющих заданному отбору; · получение данных графика для записей регистра, удовлетворяющих заданному отбору; · получение данных о записях, подлежащих перерасчету; · чтение, изменение и запись набора записей в регистр.
Язык запросов платформы «1С:Предприятие». Запросы – это один из базовых механизмов «1С:Предприятия» наряду со встроенным языком, который позволяет читать и обрабатывать данные, хранящиеся в базе. Для составления запросов «1С:Предприятие» использует собственный язык, основанный на SQL. Основные конструкции языка запросов Рассмотрим самые важные и интересные операторы языка запросов 1С. ВЫБРАТЬ (SELECT) В языке запросов 1С предприятия 8 любой запрос начинается с ключевого слова ВЫБРАТЬ. В языке 1С нет конструкций UPDATE, DELETE, CREATE TABLE, INSERT, эти манипуляция производятся в объектной технике. Предназначение его — только чтение данных. Например: ВЫБРАТЬ ТекущийСправочник.Наименование ИЗ Справочник.Номенклатура КАК ТекущийСправочник Запрос вернёт таблицу с наименованиями номенклатуры. Рядом с конструкцией ВЫБРАТЬ, можно встретить ключевые слова ДЛЯ ИЗМЕНЕНИЯ, РАЗРЕШЕННЫЕ, РАЗЛИЧНЫЕ, ПЕРВЫЕ … ДЛЯ ИЗМЕНЕНИЯ — блокирует записи таблицы на время транзакции (не актуально для управляемых блокировок). Подробнее в статье ДЛЯ ИЗМЕНЕНИЯ в запросас 1С. РАЗРЕШЕННЫЕ — выбирает только записи из таблицы, на которые есть права у текущего пользователя. РАЗЛИЧНЫЕ — означает, что в результат не попадет дублирующих строк. ПЕРВЫЕ n — в языке 1С 8.3, запрос отберет только n первых записей. ВЫБОР (CASE) Очень часто данная конструкция недооценивается программистами. Пример её использования: ВЫБРАТЬ ТекущийСправочник.Наименование, ВЫБОР КОГДА ТекущийСправочник.Услуга ТОГДА «Услуга» ИНАЧЕ «Товар» КОНЕЦ КАК ВидНоменклатуры ИЗ Справочник.Номенклатура КАК ТекущийСправочник Пример возвратит в поле «ВидНоменклатуры» текстовое значение — «Товар» или «Услуга». ГДЕ (WHERE) Конструкция языка запросов 1C, позволяющая наложить отбор на получаемые данные. Учтите, что от сервера система получает все данные, а только потом отбираются по данному параметру. Пример: ВЫБРАТЬ Справочник.Наименование ИЗ ТекущийСправочник.Номенклатура КАК ТекущийСправочник ГДЕ ТекущийСправочник.Услуга = ИСТИНА В примере мы отбираем записи, у которых значения реквизита «Услуга» установлено в положение «Истина». В данном примере можно было бы обойтись и таким условием: «ГДЕ Услуга» По сути, мы отбираем строки, у которых выражение после ключевого слова равно «Истина». В выражениях можно использовать прямые условия: ГДЕ Код = «005215» Можно в условиях использовать обращение к предопределенным элементам и перечислениям: ГДЕ ТипНоменклатуры= Значение(Перечисление.ТипыНоменклатуры.Товар) Значения времени могут указываться следующим образом: ГДЕ ДатаПоступления > ДАТАВРЕМЯ(2012,01,01): Чаще всего условия указываются в виде параметров, передаваемых в запрос: ГДЕ НоменклатурнаяГруппа= &НоменклатурнаяГруппа Условие можно наложить на тип реквизита, если он составного типа: ГДЕ РегистрНакопления.Регистратор ССЫЛКА Документ.ПоступленияТоваров Если необходимо ограничивать отбор из списка значений или массива, можно поступить следующим образом: ГДЕ РегистрНакопления.Регистратор В (&СписокДокументовДляОтбора) Условие может быть и сложное, состоящее из нескольких условий: ГДЕ ДатаПоступления > ДАТАВРЕМЯ(2012,01,01) И НоменклатурнаяГруппа= &НоменклатурнаяГруппа И НЕ Услуга СГРУППИРОВАТЬ ПО (GROUP BY) Конструкция языка запросов 1С 8.2, используемая для группировки результата. Например: ВЫБРАТЬ ПоступлениеТоварвУслугTовары.Товар, СУММА(ПоступлениеТоварвУслугTовары.Количество) КАК Количество, СУММА(ПоступлениеТоварвУслугTовары.Сумма) КАК Сумма ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоварвУслугTовары СГРУППИРОВАТЬ ПО ПоступлениеТоварвУслугTовары.Товар Данный запрос просуммирует все поступления по сумме и количеству в разрезе номенклатуры. Помимо ключевого слова СУММА, можно использовать другие агрегатные функции: КОЛИЧЕСТВО, КОЛИЧЕСТВО РАЗНЫХ, МАКСИМУМ, МИНИМУМ, СРЕДНЕЕ. ИМЕЮЩИЕ (HAVING) Конструкция, о которой часто забывают, но она очень важна и полезна. Она позволяет указать отбор в виде агрегатной функции, этого нельзя сделать в конструкции ГДЕ. Например: ВЫБРАТЬ ПоступлениеТоваровУслугТовары.Товар, СУММА(ПоступлениеТоваровУслугТовары.Количество) КАК Количество, СУММА(ПоступлениеТоваровУслугТовары.Сумма) КАК Сумма ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугТовары.товар ИМЕЮЩИЕ СУММА(ПоступлениеТоваровУслугТовары.Количество) > 5 Так мы отберем количество товаров, которых поступило более 5 штук. ЗНАЧЕНИЕ() В запросе 1C ЗНАЧЕНИЕ () можно использовать для указания предопределенных значений, таких как значения перечисления, пустую ссылку или значение предопределенного элемента (справочника, плана счетов, ПВХ и т.д). Например: ГДЕ Банк = Значение(Справочник.Банки.ПустаяСсылка) или ГДЕ ВидНоменклатуры = Значение(Справочник.ВидыНоменклатуры.Товар) или ГДЕ ТипНоменклатуры= Значение(Перечисление.ТипыНоменклатуры.Услуга) ТИП в запросе Тип данных можно проверить следующим образом с помощью функций ТИП() и ТИПЗНАЧЕНИЯ() или с помощью логический оператора ССЫЛКА. Пример: ГДЕ ТИПЗНАЧЕНИЯ(Проект.Ссылка) <> ТИП(Справочник.Проект) или ГДЕ Проект.Ссылка ССЫЛКА Справочник.Проект ВЫРАЗИТЬ() Оператор выразить служит для преобразования данных в запросе. Синтаксис: ВЫРАЗИТЬ(<Выражение> КАК <Тип значения>) С помощью него, можно преобразовать строковые значения в дату, или ссылочные в строковые данные и так далее. Среди практического применения оператора Выразить() очень часто используется для преобразования полей неограниченной длинны, потому что поля неограниченной длинный нельзя отбирать, группировать и тд. Если такие поля не преобразовывать, вы получите ошибку Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. Пример: ВЫБРАТЬ КонтактнаяИнформация.Объект, ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(150)) КАК Представление ИЗ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация СГРУППИРОВАТЬ ПО ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(150)), КонтактнаяИнформация.Объект ЕСТЬNULL (ISNULL) Достаточно полезная функция языка запросов 1С, которая проверяет значение в записи, и, если оно равно NULL, то позволяет заменить на своё значение. Чаще всего используется при получении виртуальных таблиц остатков и оборотов что бы скрыть NULL и поставить понятный 0 (ноль). Пример: ЕСТЬNULL(НалогиПредМесяца.ПримененнаяЛьготаФСС, 0) Такая функция с ЕСТЬNULL, при отсутствии значения вернет ноль, что позволит избежать ошибки. СОЕДИНЕНИЕ (JOIN) Соединения бывают 4 типов: ЛЕВОЕ, ПРАВОЕ, ПОЛНОЕ, ВНУТРЕННЕЕ. ЛЕВОЕ и ПРАВОЕ СОЕДИНЕНИЕ Соединения используются для связи двух таблиц по определенному условию. Особенность при ЛЕВОМ СОЕДИНЕНИИ в том, что мы берём первую указанную таблицу полностью и привязываем по условию вторую таблицу. Поля второй таблицы, которые не удалось привязать по условию, заполняются значением NULL. Например: ВЫБРАТЬ Клиенты.Ссылка КАК Контрагент, Банки.Ссылка КАК Банк ИЗ Справочник.Контрагенты КАК Клиенты ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Банки КАК Банки ПО Клиенты.Наименование = Банки.Наименование Вернет всю таблицу Контрагентов и заполнит поле «Банк», лишь в тех местах, где будет соблюдаться условие «Контрагенты.Наименование = Банки.Наименование». Если условие не соблюдается, в поле Банк будет установлено NULL. ПРАВОЕ СОЕДИНЕНИЕ, в языке 1С 8.3, абсолютно аналогично ЛЕВОМУ соединению, за исключением одного отличия — в ПРАВОМ СОЕДИНЕНИИ «главная» таблица — вторая, а не первая. ПОЛНОЕ СОЕДИНЕНИЕ ПОЛНОЕ СОЕДИНЕНИЕ отличается от левого и правого тем, выводит все записи из двух таблиц, соединяет лишь те, которые может соединить по условию. Например: ВЫБРАТЬ Клиенты.Ссылка КАК Клиенты, Банки.Ссылка КАК Банк ИЗ Справочник.Контрагенты КАК Клиенты ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Банки КАК Банки ПО Клиенты.Наименование = Банки.Наименование Язык запросов вернет обе таблицы полностью, лишь по выполненному условию соединить записи. В отличие от левого/правого соединения возможно появления NULL в двух полях. ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВНУТРЕННЕЕ СОЕДИНЕНИЕ отличается от полного тем, что выводит только те записи, которые смогли соединить по заданному условию. Например: ВЫБРАТЬ Клиенты.Ссылка КАК Клиенты, Банки.Ссылка КАК Банк ИЗ Справочник.Контрагенты КАК Клиенты ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Банки КАК Банки ПО Клиенты.Наименование = Банки.Наименование
Данный запрос вернет только строки, в которых у банка и контрагента будет одинаковое наименование.
|
||
|
Последнее изменение этой страницы: 2017-02-05; просмотров: 828; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.220 (0.008 с.) |