Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Использование конструктора запросов






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

 

3.3.5 Работа со служебными типами данных и объектами компоненты " Бухгалтерский учет"
Работа с бухгалтерскими счетами Счет – это агрегатный тип данных для доступа к объектам данных – бухгалтерским счетам. Бухгалтерские счета используются для идентификации разрезов синтетического учета наличия и движения средств. В конфигурации может быть несколько планов счетов. Объект типа «Счет» может относиться к конкретному плану счетов или быть неопределенного вида, т.е. принимать значения различных планов счетов. Структура данных объектов типа «Счет» задается в конфигураторе в разделе «Планы счетов» и является одинаковой для всех планов счетов. У счета определены следующие атрибуты: · «Код» – в общем случае представляет собой символьную строку вида < Код счета>.< Код субсчета>.< Код субсчета> и т.д. · «Наименование» – наименование счета. · «Валютный» – признак ведения валютного учета. · «Количественный» – признак ведения количественного учета. · «Забалансовый» – признак того, что счет является забалансовым. · «Активный» – принимает три значения: 1 – активный, 2 – пассивный, 3 – активно-пассивный. Наиболее важные функции: «КоличествоСубконто()» – возвращает количество субконто у текущего счета, «ВидСубконто()» – устанавливает/возвращает вид субконто по порядковому номеру. Работа с операциями и проводками Для отражения в бухгалтерском учете информации о движении средств используются «Операции» и «Проводки». · Объект типа «Операция» используется для формирования и анализа проводок, формируемых документом. Для этого у агрегатного объекта «Документ» существует атрибут «Операция», который обеспечивает доступ к операции данного документа. Чтобы документ формировал операцию необходимо, чтобы в документе стоял флажок «Бухгалтерский учет». · Объект «Операция» также доступен непосредственно в контекстах формы «операции», формы «журнала операций» и формы «журнала проводок». · Объект «Операция» используется для перебора существующих операций и проводок при формировании отчетов и других выборок. В этом случае объект создается при помощи вызова функции СоздатьОбъект(«Операция»). Операция имеет следующие атрибуты: «ДатаОперации», «Содержание», «СуммаОперации», «Документ» – документ, которому принадлжит операция, «Сумма» – сумма текущей проводки операции, «Валюта» – валюта текущей проводки, «ВалСумма» – валютная сумма текущей проводки, «Количество» – количество текущей проводки, «Дебет» – обращение к дебету проводки, «Кредит» – обращение к кредиту проводки. Объекты «Дебет» и «Кредит» имеют следующие атрибуты: «Счет», «Субконто» Пример Опер=СоздатьОбъект(«Операция»); Опер.ВыбратьОперации(Дата1, Дата2); Пока Опер.ПолучитьОперацию()=1 Цикл Опер.ВыбратьПроводки(); Пока Опер.ПолучитьПроводку()=1 Цикл Если Опер.Дебет.Счет=СчетПоКоду(«60.1») Тогда Сообщить(«Субконто»+Опер.Дебет.Организация); КонецЕсли; КонецЦикла; КонецЦикла; Чтобы проводки не попадали в бухгалтерские итоги, используется функция «ОтключитьПроводки()». Работа с корректными проводками Для работы с корректными проводками в системе используется специальный тип данных «КорректныеПроводки». Объект создается функцией «СоздатьОбъект». Атрибуты: «Комментарий», «СчетДт», «СчетКт». Для добавления новой корректной проводки используется функция «Новая()»; Пример КП=СоздатьОбъект(«КорректныеПроводки»); КП.Новая(); КП.Комментарий= «НДС с комиссионного вознаграждения»; КП.СчетДт=СчетПоКоду(«46.28»); КП.СчетКт=СчетПоКоду(«68.2»); КП.Записать();

 

3.3.6 Работа с бухгалтерскими итогами
При наличии в системе 1С: Предприятие компоненты «Бухгалтерский учет» система автоматически реализует специальный механизм работы с бухгалтерскими итогами. Данный механизм обеспечивает хранение, динамический пересчет бухгалтерских итогов и их извлечение средствами встроенного языка. Изменение бухгалтерских итогов может производиться только проводками бухгалтерских операций. Хранение итогов поддерживается системой с детализацией до месяца. В итогах хранятся остатки и обороты по счетам с детализацией по субконто и обороты между счетами (без детализации по субконто). Обращение к бухгалтерским итогам выполняется при помощи агрегатного объекта типа «БухгалтерскиеИтоги». Объект может работать в трех режимах: · работа с основными итогами, · работа с временными итогами, · работа в режиме запроса. Объект типа «БухгалтерскиеИтоги» при создании функцией «СоздатьОбъект()» работает в первом режиме. Переключение в другие режимы производится функциями «Рассчитать()» и «ВыполнитьЗапрос()». Функции «ИспользоватьПланСчетов()» и «ИспользоватьРазделитель Учета()» позволяют назначить план счетов и разделитель учета по которым будут выдаваться итоги. Работа с основными итогами В пункте меню «Управление бухгалтерскими итогами» в системе «1С: Предприятие» устанавливается последний рассчитанный период. В режиме работы с основными итогами осуществляется доступ только к итогам по рассчитанный месяц включительно. Функции работы с итогами: · ПериодД(< ДатаНач>, < ДатаКон>) – установка периода итогов · СНД(< Cчет>, < ТипСуммы>, < Валюта>, < Cубконто1>, …) – сальдо начальное дебетовое; · СНК() – сальдо начальное кредитовое; · СКД() – сальдо конечное дебетовое; · СКК() – сальдо конечное кредитовое; · ДО() – дебетовый оборот по счету за период; · КО() – кредитовый оборот по счету за период; Параметры: < Cчет> – счет, < ТипСуммы> = 1 – сумма, 2 – валютная сумма, 3 – количество, < Валюта> – значение типа “Справочник.Валюты”, < Субконто1> – значение первого субконто счета, < Субконто2> – значение второго субконто счета и т.д. · ОБ(< СчетДеб>, < СчетКред>, < ТипСуммы>, < Валюта>) – обороты между счетами; Для получения остатков и оборотов по счетам, имеющим субсчета, используются аналогичные функции: СНДР(), СКДР(), СКДР(), СККР(). Работа с временными итогами Чтобы получить итоги на любую дату нужно выполнять временный расчет (временный, потому что он хранится только во время существования переменной типа «БухгалтерскиеИтоги») с помощью функции Рассчитать(< ДатаНач>, < ДатаКон>, < ФильтрПоСчетам>, < ТолькоСинтетика>, < ПланСчетов>, < РазделительУчета>). В параметре < ФильтрПоСчетам> можно задать в виде строки список счетов, разделенных запятой или точкой с запятой, по которым будет делаться расчет. Если параметр < ТолькоСинтетика> = 1, то расчет будет делаться только по счетам, иначе по счетам и субконто. Работа в режиме запроса Для получения большего количества итогов (обороты и остатки по разным видам группировок) используется режим запроса. Выполнение запроса Перед выполнением запроса устанавливаются различные фильтры: · ВключатьСубсчета() – устанавливать режим отбора по субсчетам. · ИспользоватьСубконто(< ВидСубконто>, < Значение>, < ТипФильтра>, < ПоГруппам>) – устанавливать режим отбора итогов в разрезе субконто. Параметр < ВидСубконто> задается выражением типа “ВидСубконто” или строкой, содержащей имя идентификатора вида субконто. Параметр < Значение> задает конкретное значение субконто. Если < ТипФильтра> =1, тогда итоги будут разворачиваться по этому виду субконто. Если < ТипФильтра> =2, тогда итоги будут отбираться по значению субконто. Если < ТипФильтра> =3, тогда это субконто вообще не будет учитываться. · Функцию ИспользоватьСубконто() можно выполнять несколько раз для задания в запросе нескольких видов субконто. Обращение к субконто производится по порядковому номеру (порядок определяется последовательностью команд «ИспользоватьСубконто()»). · ИспользоватьКорСубконто(< ВидСубконто>, < Значение>, < ТипФильтра>, < ПоГруппам>) – устанавливать режим отбора итогов по корреспондирующим счетам в разрезе субконто. Затем выполняется сам запрос функцией ВыполнитьЗапрос(< ДатаНач>, < ДатаКон>, < ФильтрПоСчетам>, < ФильтрПоКорСчетам>, < Валюта>, < ТипИтогов>, < Периодичность>, < ТипСуммы>), которая возвращает 1, если запрос выполнился успешно. Параметр < ТипИтогов> принимает следующие значения: 1 – остатки и обороты по счетам, 2 – обороты между счетами, 3 – и то и другое. Параметр < Периодичность> может принимать следующие значения: 1 («Период») – промежуточные итоги не рассчитываются; 2 («Операция») – промежуточные итоги рассчитываются по операциям; 3 («Проводка») – по проводкам; 4 («День») – по дням; 5 («Неделя») – по неделям; 6 («Декада») – по декадам; 7 («Месяц») – по месяцам; 8 («Квартал») – по кварталам; 9 («Год») – по годам; Обращение к результатам запроса Для перебора группировок используются следующие функции: · ВыбратьСчета(), ПолучитьСчет(); · ВыбратьКорСчета(), ПолучитьКорСчет(); · ВыбратьВалюты(), ПолучитьВалюту(); · ВыбратьПериоды(), ПолучитьПериод(); · ВыбратьСубконто(), ПолучитьСубконто(); · ВыбратьКорСубконто(), ПолучитьКорСубконто(); Функции получения остатков и оборотов такие же, как и при работе с основными итогами. Пример. БИ=СоздатьОбъект(«БухгалтерскиеИтоги»); БИ.ИспользоватьСубконто(«Номенклатура»); БИ.ВыполнитьЗапрос(Дата1, Дата2, «41.1»); БИ.ВыбратьСчета(); Пока БИ.ПолучитьСчет()=1 Цикл // выводим итоги по счету БИ.ВыбратьСубконто(1); Пока БИ.ПолучитьСубконто()=1 Цикл // выводим итоги по субконто Сообщить(«Остаток на начало по счету» + БИ.Счет.Код + «товара» + БИ.Субконто(1)+Строка(БИ.СНД(3)) + «ед.»); КонецЦикла; КонецЦикла;

 

3.3.7 Работа с таблицами для ввода данных
Свойства таблицы в режиме ввода данных Работать в режиме ввода данных могут таблицы в отчетах и обработках. Данный режим использования таблицы включается через свойства формы (вызов свойств формы выполняется из меню «Действия» пунктом «Свойства формы»). Режим ввода данных позволяет совместить в одной форме отчета диалог формы вместе с табличным документом или вообще заменить диалог табличным документом. У ячеек таблицы в режиме ввода в свойствах появляется дополнительная закладка, обозначающая тип данных. Для ячеек, в которые предполагается вводить данные, требуется выключить флажок «защита». Работа в режиме ввода имеет несколько особенностей с точки зрения обращения к таблице средствами встроенного языка. Во-первых, доступ к таблице осуществляется с помощью ключевого слова «Таблица». Кроме того, в модуле формы допустимо непосредственное обращение к значениям именованных ячеек по их именам. При обращении к области таблицы используется атрибут «Значение», который предоставляет доступ значению ячеек. При этом тип значений определяется типом, выбранным в закладке свойств ячейки «Данные». В свойствах ячеек можно задавать формулы. Формула выполняется непосредственно после ввода значений в ячейку и используется обычно для вызова процедуры обработки значений других ячеек. У ячеек, имеющих признак «защита», формула является обычным выражением и вычисляет собственно значение ячейки как у элементов диалога типа «Текст». Выгрузка и загрузка значений таблицы с помощью объекта " СписокЗначений" Для выгрузки и загрузки большого числа переменных удобно использовать объект типа «СписокЗначений». Объект этого типа создается функцией «СоздатьОбъект». У каждого элемента списка значений есть «значение» и «представление». Добавление нового элемента в список осуществляется функцией «ДобавитьЗначение(< Значение>, < Представление>)». Для загрузки элементов из списка значений используется функция «Загрузить(< Список>)», причем < Значение> элемента списка будет записано в ячейку с именем < Представление>. Кроме имени можно использовать и строковое выражение вида “R1C1”, обозначающее ряд и колонку ячейки. После ввода данных пользователем делается выгрузка данных из таблицы функцией «Вырузить(< Список>)». Пример. Следующая программа осуществляет запись чисел от 1 до 30 в первую колонку таблицы Сп=СоздатьОбъект(" СписокЗначений"); Для Н=1 по 30 Цикл Сп.ДобавитьЗначение(Строка(Н), " R" +Строка(Н)+" C1"); КонецЦикла; Таблица.Загрузить(Сп); Работа с " Пустой" таблицей Кроме режимов работы с таблицей в режиме «вывода» и «ввода» есть еще один компромиссный вариант. В этом случае в свойствах формы нужно выбрать вариант «Использовать таблицу «Пустую». Тогда в диалоге формы также будет отображаться таблица, доступ к которой осуществляется по ключевому слову «Таблица». Однако для этой таблицы, в отличие от таблицы для ввода, доступны стандартные функции «ИсходнаяТаблица()», «ВывестиСекцию()» и др. Для того, чтобы изменения в таблице стали видны, нужно выполнить функцию Показать(). Чтобы прочитать или записать значение в ячейку таблицы используется работа с объектом «Область». Пример. Следующая процедура считывает из ячеек таблицы значения и увеличивает их в два раза. //******************************************* Процедура Увеличить() Для Ном=1 По 10 Цикл Обл=Таблица.Область(Ном, 1, Ном, 1); Обл.Текст=Строка(Число(Обл.Текст)*2); КонецЦикла; Таблица.Показать(); КонецПроцедуры

 

3.3.8 Операции экспорта - импорта данных
На практике очень часто возникает необходимость в осуществлении переноса данных из одной программы в другую. Система 1С: Предприятие предоставляет мощные механизмы для выполнения таких операций. Использование текстовых файлов для переноса данных Для работы с файлами в системе используется специальный агрегатный тип данных – «ФС». По умолчанию в системе всегда доступен уже существующий объект с именем «ФС», к которому можно применять методы объекта типа «ФС». Кроме того, можно создать произвольное число объектов типа «ФС» при помощи функции «СоздатьОбъект(«ФС»)». У объекта типа «ФС» имеются стандартные функции для работы с файлами: «ВыбратьФайл()» – открывает диалог выбора файла, «ВыбратьКаталог()»– открывает диалог выбора каталога, «СуществуетФайл()» – проверяет, существует ли файл с указанным именем, «КопироватьФайл()», «УдалитьФайл()», «ПереименоватьФайл()» и др. Для работы с текстами в системе используется специальный тип данных «Текст». Средства языка позволяют выводить строк в текстовые файлы и считывать из имеющихся файлов текст с последующим разбором его по строкам. · Открыть(< ИмяФайла>) – открывает файл. · КодоваяСтраница(< Режим>) – получить/установить режим кодировки. < Режим> = 0 – Windows-кодировка, 1 – DOS-кодировка · Показать(< Заголовок>, < ИмяФайла>) – открыть окно редактирования текста. · Записать(< ИмяФайла>) – записывает текст в файл. Чтение текста · КоличествоСтрок() – количество строк в тексте. · ПолучитьСтроку(< НомерСтроки>) – получить строку текста по номеру Пример. Из файла «exp_imp.txt» загружается справочник номенклатуры Спр=СоздатьОбъект(«Справочник.Номенклатура»); Текст = СоздатьОбъект(«Текст»); Список = СоздатьОбъект(«СписокЗначений»); Текст.ОткрытьФайл(«exp_imp.txt»); Для Ном=1 По Текст.КоличествоСтрок() Цикл Стр = Текст.ПолучитьСтроку(Ном); Список.ИзСтрокиСРазделителями(Стр); // преобразуем строку //в список значений Если Спр.НайтиПоКоду(Список.ПолучитьЗначение(1))=0 Тогда Спр.Новый(); Спр.Код= Список.ПолучитьЗначение(1); Спр.Наименование= Список.ПолучитьЗначение(2); Спр.Записать(); КонецЕсли; КонецЦикла; Запись текста · ВставитьСтроку(< НомерСтроки>, < Строка>) – вставить строку с указанным номером. · ЗаменитьСтроку(< НомерСтроки>, < Строка>) – заменить строку с указанным номером. · УдалитьСтроку(< НомерСтроки>) – удалить строку с указанным номером. · ДобавитьСтроку(< Строка>) – добавить строку в конец текста. · Очистить() –удалить все строки текста. Пример. В файл «exp_imp.txt» выгружается справочник номенклатуры Текст = СоздатьОбъект(«Текст»); Список = СоздатьОбъект(«СписокЗначений»); Спр=СоздатьОбъект(«Справочник.Номенклатура»); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=1 Цикл Список.ДобавитьЗначение(Спр.Код); Список.ДобавитьЗначение(Спр.Наименование); // и другие поля… // выводим список в текст Текст.ДобавитьСтроку(Список.ВСтрокуСРазделителями()); Список.УдалитьВсе(); // очищаем список КонецЦикла; Текст.Записать(«exp_imp.txt»); Работа с файлами в формате " DBE" Для работы с базами данных в формате «DBF» используется объект типа «XBase». При этом надо учитывать следующие ограничения: 1. Не поддерживаются поля типа memo. 2. База данных открывается монопольно 3. Поддерживаются только индексные файлы в формате “CDX” Доступ к полям базы данных осуществляется через точку с именем поля. Пример БД=СоздатьОбъект(“XBase”); БД.ОткрытьФайл(«data.dbf»); Если БД.Открыта()=1 Тогда БД.Первая(); //встаем на первую запись Пока 1=1 Цикл // Обработка записи базы данных Сообщить(Строка(БД.CODE) + «» + БД.Name); Если БД.Следующая()=0 Тогда // не удалось перейти к следующей записи Прервать; КонецЕсли; КонецЦикла; КонецЕсли; Обмен данными с помощью OLE Automation Для запуска системы 1С: Предприятие в качестве OLE Automation сервера из внешнего приложения (например, из другой программы 1С), выполняется следующая последовательность действий: - Создается объект с OLE идентификатором: · V1СEnterprise.Application — версия независимый ключ; · V77.Application — версия зависимый ключ; · V77S.Application — версия зависимый ключ, SQL версия; · V77L.Application — версия зависимый ключ, локальная версия; · V77M.Application — версия зависимый ключ, сетевая версия. - Выполняется инициализация системы 1С: Предприятие методом Initialize. - Вызываются атрибуты и методы системы 1С: Предприятие как OLE Automation сервера Пример. Процедура Загрузить() Если ФС.Существуетфайл(Путь + " \NUL") = 0 Тогда Предупреждение(" Путь информационной базы не найден! "); Иначе V7 = СоздатьОбъект(" V77.Application"); Открыта = V7.Initialize(V7.RMTrade, " /d" + Путь + " /M /N" + Пользователь, " "); Если Открыта = 0 Тогда Предупреждение(" Ошибка открытия информационной базы"); Возврат; КонецЕсли; Импорт = V7.CreateObject(" Справочник.Контрагенты"); Импорт.ВыбратьЭлементы(); Пока Импорт.ПолучитьЭлемент() = 1 Цикл Если Импорт.ЭтоГруппа() = 0 Тогда Сообщить(Импорт.Наименование); КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры

 

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.008 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал