Функции, применяемые в выражениях
Функция |
Параметр(ы) |
Возвращаемое значение |
DATE() |
Тип даты. Системная дата. |
|
DAY(Date) |
Тип даты. |
Число. Номер дня в месяце. |
DTOC(Date) |
Тип даты. |
Строка. Представление даты в формате ММ/ДД/ГГ |
DTOS(Date) |
Тип даты. |
Строка. Представление даты в формате ГГГГММДД |
IIF(Log, IfTrue, IfFalse) |
Log — выражение булева типа. IfTrue, IfFalse — тип определяется во время исполнения. Должны иметь одинаковую длину и тип. |
Тип совпадает с типом IfTrue и IfFalse. Возвращает IfTrue, если значение вычисленного выражения Log равно истине, и IfFalse в противном случае. |
LTRIM(String) |
String — строка. |
Строка. Исходная строка без ведущих пробелов. |
Month(Date) |
Date — дата. |
Число. Номер месяца в году. |
STOD(String) |
String — строка. Представление даты в формате ГГГГММДД |
Тип даты. Преобразованное в дату значение исходной строки. |
STR(Number, Length, Decim) |
Number — число. Преобразуемое число. Length — число. Количество символов в возвращаемой строке, включая дес. точку. Decim — число. Желаемое кол-во знаков после точки. |
Строка. Результат преобразования числа в строковое представление. |
SUBSTR(String, StartPos, Num) |
String — строка. Исходная строка. StartPos — число. Начальная позиция. Num — число. Кол-во символов. |
Строка. Подстрока, состоящая из Num символов от начальной позиции исходной строки. |
TIME() |
Строка. Системное время в представлении ЧЧ:ММ:СС |
|
TRIM(String) |
String — строка. |
Строка. Исходная строка без заключительных пробелов. |
UPPER(String) |
String — строка. |
Строка. Преобразование к верхнему регистру |
VAL(String) |
String — строка. |
Число. Преобразование строки в число |
YEAR(Date) |
Date — дата. |
Число. Год. |
![](image/jelementjazyka_1.gif)
This site is hosted for FREE on VirtualAve -- yours can be, too! Click here for more information.
Функция
Секция описания функции.
Синтаксис:
Функция <Имя_функции>([[Знач] <Парам1>[=<ДефЗнач>], ...
, [Знач] <ПарамN> [=<ДефЗнач>]])[Экспорт]
//Объявления локальных переменных;
// Операторы;
...
Возврат <ВозвращаемоеЗначение>;
// Операторы;
...
КонецФункции
Англоязычный Синтаксис:
Function <Имя_функции> ([[Val] <Парам1>[=<ДефЗнач>], ...
, [Val] <ПapaмN> [=<ДефЗнач>]])[Export]
//Объявления локальных переменных;
// Операторы;
...
Return <ВозвращаемоеЗначение>;
// Операторы;
...
EndFunction
Параметры:
<Имя_функции> |
Назначает имя функции. |
Знач |
Необязательное ключевое слово, которое указывает на то, что следующий за ним параметр передается по значению, т. е. изменение значения формального параметра при выполнении функции никак не повлияет на значение фактического параметра, переданного при вызове функции. Если это ключевое слово не указано, то параметр функции передается по ссылке, то есть изменение внутри функции значения формального параметра приведет к изменению значения соответствующего фактического параметра. |
<Парам1>, ..., <ПарамN> |
Необязательный список формальных параметров, разделяемых запятыми. Значения формальных параметров должны соответсвовать значениям передаваемых при вызове функции фактических параметров. В этом списке определяются имена каждого из параметров так, как они используются в тексте функции. Список формальных параметров может быть пуст. См. также: «Передача параметров». |
=<ДефЗнач> |
Необязательная установка значения параметра по умолчанию. Параметры с установленными значениями по умолчанию можно располагать в любом месте списка формальных параметров. Если параметр при вызове процедуры опущен, то он принимает либо установленное по умолчанию значение (если оно есть) либо принимает «пустое» значение (значение неопределенного типа). Если параметру не задано значение по умолчанию и он является последним в списке передаваемых параметров, то при вызове процедуры его нельзя опускать. Если параметру задано значение по умолчанию и он является последним в списке, то при вызове процедуры его можно опускать в списке передаваемых фактических параметров и не ставить запятую перед опущенным параметром. Если параметру не задано значения по умолчанию, то при вызове процедуры его можно опускать в списке передаваемых фактических параметров, но разделительную запятую надо ставить. |
Экспорт |
Необязательное ключевое слово, которое указывает на то, что данная функция является доступной из других программных модулей. Данное ключевое слово имеет смысл использовать только в глобальном программном модуле. |
//Объявления локальных переменных |
Объявляются локальные переменные, на которые можно ссылаться только в рамках этой функции (см. оператор Перем). |
//Операторы |
Исполняемые операторы функции. |
Возврат |
Ключевое слово, которое завершает выполнение функции и возвращает ВозвращаемоеЗначение в выражение, в котором используется функция. Использование данного ключевого слова в функции обязательно. |
<ВозвращаемоеЗначение> |
Выражение, значение которого содержит результат обращения к функции. |
КонецФункции |
Обязательное ключевое слово, обозначающее конец исходного текста функции. |
Вычисляет функцию и включает ее результат в запрос.
Синтаксис:
Функция <ИмяФункции> = <ТипФункции> (<Параметр>|<УточненныйПараметр>)
[Когда (<Условие>)];
Англоязычный синоним:
Function <ИмяФункции>= <ТипФункции> (<Параметр>|<УточненныйПараметр>)
[When (<Условие>)];
Параметры:
<ИмяФункции> |
Имя, которое присваивается функции. По этому имени можно в дальнейшем обращаться к значению вычисленной функции из вызывающего программного модуля как к атрибуту запроса. Данную внутреннюю переменную заранее объявлять не нужно. Она фактически неявно объявляется в операторе Функция. |
<TипФyнкции> |
Ключевое слово одной из встроенных функций языка. Может быть одним из приведенных ниже. |
<Параметр> |
Имя объявленной ранее внутренней переменной, значение которой используется как параметр встроенной функции <ТипФункции>. В функциях: Сумма, Среднее, Максимум, Минимум в качестве данного параметра возможно использование арифметического выражения в терминах встроенного языка 1С:Предприятие. |
<УточненныйПараметр> |
Конкретизация объявленной ранее внутренней переменной, значение которой используется как аргумент встроенной функции < ТипФункции>. |
Когда |
Необязательное добавочное ключевое слово, использование которого в команде означает, что вычисление функции следует производить только при условии, когда заданное логическое выражение <Условие> истинно. |
<Условие> |
Логическое выражение встроенного языка 1С:Предприятие. В логическом выражении могут участвовать как внутренние, так и внешние переменные запроса (см. описание метода Условие). Используется только после ключевого слова Когда. |
Описание:
Оператор Функция вычисляет функцию <ТипФункции> и присваивает ее значение внутренней переменной <ИмяФункции>.
Типы применяемых функций предопределены и могут быть следующими:
Тип Функции |
Англояз. Синоним |
Выполняемое действие |
Сумма |
Sum |
Вычисляет сумму выбранных по запросу значений параметра.1 |
Среднее |
Avg |
Вычисляет среднее из выбранных по запросу значений параметра. |
Минимум |
Min |
Вычисляет минимум из выбранных по запросу значений параметра. |
Максимум |
Мах |
Вычисляет максимум из выбранных по запросу значений параметра. |
Счётчик |
Count |
Подсчитывает количество записей, вошедших в выборку. |
НачОст |
BegRest |
Вычисляет начальный остаток для выбранных по запросу значений параметра.2 |
КонОст |
EndRest |
Вычисляет конечный остаток для выбранных по запросу значений параметра.2 |
Приход |
Debit |
Вычисляет приход для выбранных но запросу значений параметра.2 |
Расход |
Credit |
Вычисляет расход для выбранных по запросу значений параметра.2 |
СНД |
IDB |
Вычисляет сальдо начальное дебетовое для выбранных по запросу значений параметра.3 |
СКД |
FDB |
Вычисляет сальдо конечное дебетовое для выбранных по запросу значений параметра.3 |
СНК |
ICD |
Вычисляет сальдо начальное кредитовое для выбранных по запросу значений параметра.3 |
СКК |
FCD |
Вычисляет сальдо конечное кредитовое для выбранных по запросу значений параметра.3 |
ДО |
TD |
Вычисляет дебетовые обороты для выбранных по запросу значений параметра. |
КО |
TC |
Вычисляет кредитовые обороты для выбранных по запросу значений параметра.3 |
КорДО |
CorTD |
Вычисляет дебетовые обороты между корреспондирующим счетам или субконто для выбранных по запросу значений параметра.3, 4 |
КорКО |
CorTC |
Вычисляет кредитовые обороты между корреспондирующим счетам или субконто для выбранных по запросу значений параметра.3, 4 |
Ключевое слово Функция начинает секцию исходного текста функции, выполнение которой можно инициировать из любой точки программного модуля, просто указав Имя_функции со списком параметров (если параметры не передаются, то круглые скобки, тем не менее, обязательны). Если в глобальном программном модуле в теле описания функции использовано ключевое слово Экспорт, то это означает, что данная функция является доступной из всех других программных модулей конфигурации. Ключевое слово Экспорт имеет смысл использовать только в глобальном программном модуле.
Выполнение функции заканчивается обязательным оператором Возврат. Функции отличаются от процедур только тем, что возвращают Воз вращаемое Значение. Конец программной секции функции определяется по оператору КонецФункции.
Вызов любой функции в тексте программного модуля можно записывать как вызов процедуры, т. е. в языке допускается не принимать от функции возвращаемое значение.
Переменные, объявленные в теле функции в разделе Объявления_локальных_переменных, являются локальными переменными данной функции, поэтому доступны только в этой функции (за исключением случая передачи их как параметров при вызове других процедур, функций или методов).
Замечание: ключевые слова Функция, КонецФункции являются не операторами, а операторными скобками, поэтому не должны заканчиваться точкой с запятой (это может приводить к ошибкам выполнения модуля).
См. также: «Передача параметров»
Пример:
Перем Глоб;
// Описание функции
Функция МояФункция(Парам1, Парам2, ПарамЗ) Экспорт
Лок = Глоб + Парам1 + Парам2 + ПарамЗ;
Возврат Лок;
КонецФункции
Глоб = 123;
Рез = МояФункция(5, 6, 7); // Вызов функции
1Замечание: Для ресурсов оборотных регистров допускается вызывать только тип функции "Сумма".
2Замечание: Типы функций НачОст, КонОст, Приход, Расход можно использовать только с параметрами, указывающими на ресурсы регистров остатков. Для ресурсов регистров остатков другие типы функций вызывать нельзя.
3Замечание: Функции СНД, СНК, СКД, СКК, ДО, КО, КорДО, КорКО можно использовать только с реквизитами проводки: Сумма, Количество или ВалСумма.
4Замечание: Функции КорДО и КорКО накапливают значения только тогда когда в запросе есть обращение к реквизитам проводок Счет, КорСчет Субконто или КорСубконто.
Замечание: В программном модуле, где используется запрос, <ИмяФункции> будет являться атрибутом запроса. При помощи данного атрибута можно обращаться к значению вычисленной в запросе функции.
Замечание: В функциях: Сумма, Среднее, Максимум, Минимум в качестве аргумента возможно использование арифметического выражения в терминах встроенного языка.
Пример:
...
|КолВо = Документ.ВидДокумента.Количество;
|Цена = Документ.ВидДокумента.Цена;
|Функция Сум = Сумма(КолВо * Цена);
|Функция Макс = Максимум(Окр(КолВо) * Окр(Цена));
|Функция Средн = Среднее(ФункцияОпределеннаяВМодуле(КолВо, Цена));
...
Пример:
// Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Функции)
|Период с ДатаНач по ДатаКон;
|Оклад = Справочник.Сотрудники.Оклад;
|Подр = Справочник.Сотрудники.Подразделение;
|Ктг = Справочник.Сотрудники.Категория;
|Группировка Подр без групп;
|Группировка Ктг без групп;
|Функция Всего = Сумма(Оклад);
|Условие((Ктг.Выбран() = 1) И (Подр.Выбран() = 1));
|"//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// ...
Итог = Запрос.Всего;
// ...
Оператор Функция предназначен для вычисления и накопления некоторых численных значений в процессе формирования выборки по запросу.
Кроме того, при формировании временного набора данных запрос специально формирует итоговые записи, в которые заносит накопленные значения вычисленных функций для каждой вложенной Группировки (подробнее об этом см. главу данной книги «Структура запросов и методика их использования»).
Операторы функций в запросе можно опускать, тогда запрос просто не будет ничего вычислять, а просто во временный набор данных заносятся записи со значениями Группировок. Однако это справедливо только для работы запросов по справочникам и по документам. При работе запроса по регистрам следует помнить, что в этом случае обязательно наличие Функций, причем только в том случае, когда их вычисленные значения отличны от нуля (хотя бы одной из заданных Функций), найденные объекты включаются во временный набор данных, формируемый запросом. Если при работе запроса по регистрам в тексте запроса операторы функций опущены, то программа не выдаст никакого сообщения об ошибке, добросовестно пройдет по всем Группировкам, не вычислит никаких значений Функций и, значит, ничего не запишет во временном файле.
При создании в тексте запроса внутренней переменной, которую вы предполагаете использовать в качестве параметра оператора Функция, надо учитывать, что тип этой внутренней переменной должен быть «число», т. к. функции в языке запросов обрабатывают только численные значения.
В тексте запроса, при описании оператора Функция можно использовать необязательное ключевое слово Когда, использование которого в операторе означает, что вычисление функции следует производить только при условии, что значение логического выражения, заданного в параметре ключевого слова является ИСТИНА. Синтаксис применяемого логического выражения полностью аналогичен синтаксису разрешенному к применению в операторах Условие.
Следует понимать, что не все функции внутри конкретной группировки запроса могут иметь четко интерпретируемый смысл. Например, для группировки по документу движения регистра следующие функции
|Функция ПрихКол = Приход(Количество);
|Функция РасхКол = Расход(Количество);
имеют четкий смысл — приращения, сделанные документом при движении регистра. С другой стороны, в той же группировке следующие функции:
|Функция НачКол = НачОст(Количество);
|Функция КонКол = КонОст(Количество);
явно не имеют смысла (в запросах по регистрам, обычно задают период запроса при помощи оператора ПериодC. Функция НачКол в данном примере должна по смыслу показывать остаток ресурса "Количество" на начальную дату запроса. Внутри группировки по документу вопрос: «Какой начальный остаток ресурса на дату 10.01.97?» по документу, проведенному, например, 13.01.97, не имеет смысла). Поэтому в таких ситуациях функция будет иметь нулевое значение.
Пример:
Запрос = СоздатьОбъект("Запрос");
Текст3апроса=
'//{{ЗАПРОС(Функции)
|Период с ДатаОтчета;
|Товар = Регистр.КвотыТоваров.Товар;
|Отдел = Регистр.КвотыТоваров.Отдел;
|Сотрудник = Регистр.КвотыТоваров.Сотрудник;
|Партнер = Регистр.КвотыТоваров.Партнер;
|Док = Регистр.КвотыТоваров.ТекущийДокумент;
|Количество = Регистр.КвотыТоваров.КвотаТовара;
|Группировка Товар;
|Группировка Отдел;
|Группировка Сотрудник;
|Группировка Партнер;
|Группировка Док;
|Функция НачКол = НачОст(Количество);
|Функция ПрихКол = Приход(Количество);
|Функция РасхКол = Расход(Количество);
|Функция КонКол = КонОст(Количество);
|// Следующие Функции вычисляем только при определенных
|// условиях, чтобы получить отфильтрованные итоги
|Функция ПрихКолТов = Приход(Количество) Когда (Док.ФлагТовара = 1);
|Функция РасхКолТов = Расход(Количество) Когда (Док.ФлагТовара = 1);
|Функция ПрихКолОтд = Приход(Количество) Когда (Док.ФлагОтдела = 1);
|Функция РасхКолОтд = Расход(Количество) Когда (Док.ФлагОтдела = 1);
|Функция ПрихКолСотр = Приход(Количество) Когда (Док.ФлагСотрудника = 1);
|Функция РасхКолСотр = Расход(Количество) Когда (Док.ФлагСотрудника = 1);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Формат исходных текстов программных модулей
Что такое программный модуль?
Контекст выполнения программного модуля
Виды программных модулей
Глобальный модуль
Модуль Формы списка справочника
Модуль Формы группы справочника
Модуль Формы элемента справочника
Модуль Формы документа
Модуль документа
Модуль Формы журнала документов
Модуль Формы журнала расчетов
Модуль Формы списка счетов
Модуль Формы счета
Модуль Формы журнала операций
Модуль Формы операции
Модуль Формы журнала проводок
Модуль Формы отчета
Модуль Формы обработки
Модуль вида расчета
Формат программного модуля
Комментарии
Формат операторов
Имена переменных, процедур и функций
Зарезервированные слова
Структура программного модуля
Специальные символы, используемые в исходном тексте
Процедуры и функции программного модуля
Процедура
Функция
Предварительное описание процедур и функций
Передача параметров
Передача локального контекста программного модуля в качестве параметра
Пример исходного текста программного модуля
Типы данных
Базовые типы данных
Правила преобразования типов данных
Агрегатные типы данных
Англоязычные синонимы названий агрегатных типов данных
Атрибуты агрегатных типов данных
Методы агрегатных типов данных
Объявление переменных
Оператор объявления переменной
Перем
Область использования переменной
В языке переменные не обязательно объявлять в явном виде. Неявным определением переменной является первое ее появление в левой части оператора присваивания. Возможно также явное объявление переменной при помощи оператора Перем. Тип переменной определяется типом присвоенного ей значения. Не допускается использование в выражениях переменных с неопределенным значением (то есть переменных, которым никогда не присваивалось значения).
Переменные могут объединяться в массивы. В данной реализации программы предусмотрены только одномерные массивы.
Выражения и оператор присваивания
Выражения
Арифметические операции
Операция конкатенации
Логические операции
Числовые константы
Константы даты
Строковые константы
Строковые выражения
Логические выражения
Оператор присваивания
Управляющие операторы
Управляющие конструкции
Если
Пока
Для
Попытка
Управляющие операторы
Перейти
Продолжить
Прервать
Возврат
Специальные конструкции языка
#ЗагрузитьИзФайла
Системные константы
Строковые системные константы
РазделительСтраниц
РазделительСтрок
СимволТабуляции
Системные константы — это константы, которые доступны в любом программном модуле конфигурации. Они могут размещаться в правой части оператора присваивания, в выражениях, могут использоваться в качестве параметров вызываемых методов, процедур или функций. Имена системных констант можно использовать только для того, чтобы получить их значения. Системные константы не могут стоять в левой части оператора присваивания.
Системные процедуры и функции
Математические функции
Окр
Цел
Мин
Макс
Лог10
Лог
Строковые функции
СтрДлина
ПустаяСтрока
СокрЛ
СокрП
СокрЛП
Лев
Прав
Сред
Найти
СтрЗаменить
СтрЧислоВхождений
СтрКоличествоСтрок
СтрПолучитьСтроку
Врег
Нрег
OemToAnsi
AnsiToOem
Симв
КодСимв
Функции работы с датой
РабочаяДата
ТекущаяДата
ДобавитьМесяц
НачМесяца
КонМесяца
НачКвартала
КонКвартала
НачГода
КонГода
НачНедели
КонНедели
ДатаГод
ДатаМесяц
ДатаЧисло
НомерНеделиГода
НомерДняГода
НомерДняНедели
ПериодСтр
НачалоСтандартногоИнтервала
КонецСтандартногоИнтервала
Функции работы с временем
ТекущееВремя
Функции преобразования типов
Дата
Строка
Число
Системные процедуры и функции доступны в любом программном модуле конфигурации. Доступ к системным процедурам и функциям в текстах программных модулей непосредственный, т. е. просто имя процедуры или функции (без предварительной ссылки на какой-либо объект).
Вызов любой функции в тексте программного модуля можно записывать как вызов процедуры, т. е. в языке допускается игнорировать возвращаемое значение.
Функции для вызова диалога ввода
Функции работы с позицией документа
СформироватьПозициюДокумента
РазобратьПозициюДокумента
Процедуры и функции форматирования
Пропись
Формат
Шаблон
ФиксШаблон
Функции для вызова диалога ввода данных
ВвестиЗначение
ВвестиЧисло
ВвестиСтроку
ВвестиДату
ВвестиПериод
ВвестиПеречисление
Процедуры и функции общего назначения
Вопрос
Предупреждение
Сообщить
ОчиститьОкноСообщений
Состояние
? (вычислить выражение по условию)
Сигнал
Разм
Функции среды исполнения
ЗаголовокСистемы
ИмяКомпьютера
ИмяПользователя
ПолноеИмяПользователя
НазваниеНабораПрав
ПравоДоступа
НазваниеИнтерфейса
КаталогПользователя
КаталогИБ
КаталогПрограммы
КаталогВременныхФайлов
МонопольныйРежим
ОсновнойЯзык
Процедуры работы с транзакциями
НачатьТранзакцию
ЗафиксироватьТранзакцию
ОтменитьТранзакцию
Специальные процедуры
Специальные процедуры и функции
СоздатьОбъект
СтатусВозврата
ОткрытьФорму
ОткрытьФормуМодально
ТипЗначения
ТипЗначенияСтр
ПустоеЗначение
ПолучитьПустоеЗначение
НазначитьВид
ЗаписьЖурналаРегистрации
ПрефиксАвтоНумерации
ПолучитьЗначенияОтбора
КомандаСистемы
ЗапуститьПриложение
ЗавершитьРаботуСистемы
НайтиПомеченныеНаУдаление
НайтиСсылки
УдалитьОбъекты
ОбработкаОжидания
и функции обработки
Процедуры и функции обработки значений
ЗначениеВСтрокуВнутр
ЗначениеИзСтрокиВнутр
ЗначениеВСтроку
ЗначениеИзСтроки
ЗначениеВФайл
ЗначениеИзФайла
СохранитьЗначение
ВосстановитьЗначение
Процедуры и функции компоненты «Оперативный учет»
ПолучитьТА
ПолучитьДатуТА
ПолучитьВремяТА
ПолучитьДокументТА
ПолучитьПозициюТА
УстановитьТАна
УстановитьТАпо
Процедуры и функции компоненты «Бухгалтерский учет»
ВыбранныйПланСчетов
ОсновнойПланСчетов
СчетПоКоду
НачалоПериодаБИ
КонецПериодаБИ
КонецРассчитанногоПериодаБИ
НазначитьСчет
ВвестиПланСчетов
ВвестиВидСубконто
МаксимальноеКоличествоСубконто
Процедуры и функции компоненты «Расчет»
ОсновнойЖурналРасчетов
Системные предопределенные процедуры
Предопределенные процедуры Глобального модуля
ПриНачалеРаботыСистемы
ПриЗавершенииРаботыСистемы
ПриУдаленииДокумента
ПриУдаленииЭлемента
ПриОткрытииИстории
ПриЗаписиИстории
ПриУдаленииИстории
ПриЗаписиКонстанты
ПриОтменеПроведенияДокумента
ПриИзмененииВремениДокумента
ПриУстановкеОтбора
ПриСменеРасчетногоПериода
ПриУдаленииСчета
ПриВыклВклПроводокОперации
Системные предопределенные процедуры предназначены для того, чтобы дать возможность программно обрабатывать системные события, возникающие при интерактивных действиях пользователя, таких как ввод нового, изменение, удаление. Исключение составляют только предопределенные процедуры Модуля документа: ОбработкаПроведения, ОбработкаУдаленияПроведения, АрхивироватьДокумент, которые вызываются как при интерактивном, так и при программном возникновении события.
ВНИМАНИЕ! Системные предопределенные процедуры не являются встроенными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком конфигурации в соответствующих программных модулях.
Вызов системных предопределенных процедур (если они использованы в конфигурации) производится неявно самой системой 1С:Предприятие перед обработкой какого-либо интерактивного действия пользователя, например, при вводе нового документа. В этот момент система передает в предопределенную процедуру фактические значения параметров. В теле процедур переданные параметры могут использоваться для обработки события, например, выдачи предупреждающих сообщений, установки статуса возврата и т. п.
С помощью системной функции СтатусВозврата в теле предопределенной процедуры можно устанавливать значение статуса возврата процедуры. Статус возврата используется системой, чтобы определить — выполнить или нет действие того системного события, которое вызвало данную предопределенную процедуру.
Работа с Константами
Методы констант
НазначитьТип
УстановитьАтрибут
ПолучитьАтрибут
Методы периодических констант
Получить
Установить
Константа — это агрегатный тип данных, средство работы с постоянными (условно постоянными) величинами. В константах хранится информация, характеризующая конфигурацию в целом, которая может быть как постоянной, так и изменяться с той или иной периодичностью.
Константы могут быть периодическими или нет (это задается в конфигураторе при их создании). Периодические константы — это константы, значения которых связаны с датой. При изменении значения периодической константы старое значение сохраняется, просто новое значение действует с указанной даты, а старое до указанной даты.
Пример:
* Изначально значение периодической константы Константа.ИмяДиректора было — "Иванов И. И.". В некоторый момент директор сменился.
Константа.ИмяДиректора.Установить('01.05.96', "Петров П.П.");
* Данный оператор устанавливает новое значение периодической константы с даты '01.05.96', но старое значение — "Иванов И. И." сохраняется до этой даты и может быть получено, например, следующей строкой текста программы:
ПрежнДирект = Константа.ИмяДиректора.Получить('01.01.96');
Средства языка предоставляют возможность непосредственного доступа к созданным в конфигураторе названиям констант в любом программном модуле, т. к. константы принадлежат глобальному контексту задачи. Работа с периодическими константами осуществляется при помощи методов Получить и Установить или при помощи специального агрегатного типа данных — Периодический. Работа с непериодическими константами осуществляется непосредственно через их идентификаторы.
Использование непериодических констант в синтаксисе языка аналогично глобальным переменным, т. е. идентификаторы непериодических констант могут размещаться в левой и правой части оператора присваивания, в выражениях, быть параметрами методов, процедур или функций в любом программном модуле.
В качестве имени константы обязательно должно выступать полное имя конкретной константы, как оно объявлено в конфигураторе. Имя константы записывается через точку после ключевого слова Константа, т. е. полное имя константы записывается следующим образом:
Константа.<Имя_константы>,
где <Имя_константы> — название конкретной константы, как оно объявлено в окне «Метеданные» конфигуратора.
Англоязычный синоним ключевого слова Константа — Const.
Пример:
* Пример работы с непериодическими константами:
Константа.Организация = "АО СПЕЦСТРОЙКОНСЕРВБАНК";
Константа.Адрес = "г.Москва, Вернадского, 523, 25";
Р_Счет = Константа.НашСчет;
// операторы
Если Всего > Константа.МинимальнаяЗарплата Тогда
// операторы
Иначе
// операторы
КонецЕсли;
Работа со Справочниками
Контекст работы со справочниками
Атрибуты справочников
Код
Наименование
<Реквизит>
Родитель
Владелец
Методы периодических реквизитов
Получить
Установить
Справочники — это агрегатный тип данных, средство для работы со списками однородных элементов данных. При помощи справочников организуется ввод стандартной информации в документы, а также ее просмотр и, если необходимо, корректировка. В большинстве своем справочники являются электронными аналогами каталогов. Каждая карточка — это строка справочника, а сведения, заносимые в карточку, являются реквизитами справочника.
Например, для того, чтобы покупатель, продавец, кладовщик, директор однозначно понимали, о каком товаре идет речь, каждый должен называть его одинаково, т. е. в соответствии с однажды утвержденным справочником товаров. Обычно в торговом предприятии он имеет вид прайс-листа, а если такой справочник товаров хранится в компьютере, то в него заносят всю возможную номенклатуру товаров, с которыми работает торговая фирма.
Название и структура каждого конкретного справочника определяется при его создании в конфигураторе. У любого справочника существует два обязательных реквизита, которые создаются автоматически — "Код" и "Наименование". Другие реквизиты справочника, которые могут содержать различную дополнительную информацию помимо наименования, определяются в конфигураторе конкретно для каждого создаваемого справочника.
Реквизиты справочников могут быть периодическими или нет (это задается в конфигураторе при создании реквизита). Периодические реквизиты — это реквизиты, значения которых связаны с датой. При изменении значения периодического реквизита старое значение сохраняется, при этом новое значение действует с указанной даты, а старое — до указанной даты. Работа с периодическими реквизитами осуществляется при помощи методов Получить и ИспользоватьДату, а также при помощи специального агрегатного типа данных — Периодический.
Система 1С:Предприятие дает возможность создавать и использовать многоуровневые справочники. Количество уровней вложенности конкретного справочника устанавливается в конфигураторе. Кроме того, справочникам можно указывать их подчиненность другим справочникам, образовывая таким образом связи типа «один ко многим».
Работа со Справочниками
Методы справочников
Вид
ПредставлениеВида
Уровень
УстановитьАтрибут
ПолучитьАтрибут
ЭтоГруппа
ПринадлежитГруппе
Выбран
Выбрать
ВидыДляВыбора
ВыборГруппы
ТекущийЭлемент
ПолныйКод
ПолноеНаименование
НайтиЭлемент
НайтиПоКоду
НайтиПоНаименованию
НайтиПоРеквизиту
ВыбратьЭлементы
ВыбратьЭлементыПоРеквизиту
ОбратныйПорядок
ПолучитьЭлемент
ИспользоватьДату
ИспользоватьВладельца
ИспользоватьРодителя
ВключатьПодчиненные
ПорядокКодов
ПорядокНаименований
ПорядокРеквизита
Новый
НоваяГруппа
ПрефиксКода
УстановитьНовыйКод
НазначитьТип
Записать
Удалить
Блокировка
ПометкаУдаления
СнятьПометкуУдаления
Методы контекста Модуля формы элемента
Методы контекста Модуля формы элемента справочника
Модифицированность
ИспользоватьДату
СохранениеПериодическихРеквизитов
ПросмотрИстории
Предопределенные процедуры Модуля формы справочника
ВводНового
ПриЗаписи
Методы контекста Модуля формы списка справочника
ИспользоватьДату
ИспользоватьВладельца
ИспользоватьРодителя
ИерархическийСписок
ВыборГруппы
РедактироватьВДиалоге
СохранениеПериодическихРеквизитов
Сортировка
УстановитьОтбор
ПолучитьОтбор
ВидыОтбора
ЗакладкиОтбора
ИспользоватьСписокЭлементов
ПросмотрИстории
Предопределенные процедуры Модуля формы списка справочника
ПриВводеСтроки
ПриРедактированииНовойСтроки
ПриНачалеРедактированияСтроки
ПриЗаписи
ПриПереносеЭлементаВДругуюГруппу
ПриВыбореРодителя
ПриВыбореВладельца
ПриСменеИерархии
ПриУстановкеОтбора
Работа с Перечислениями
Контекст работы с перечислениями
Методы перечислений
ПолучитьАтрибут
КоличествоЗначений
ЗначениеПоНомеру
ЗначениеПоИдентификатору
Вид
ПредставлениеВида
Выбран
ПорядковыйНомер
Идентификатор
Перечисление — средство работы с элементами данных, список возможных значений которых жестко задан в конфигурации. Например, для перечисления "ТипСотрудника" можно задать возможные значения: "Штатный", "Совместитель".
В отличие от справочника, списки значений в перечислении задаются исключительно в процессе их создания в конфигураторе и при выполнении задачи не могут быть изменены.
Работа с Документами
Контекст работы с документами
Позиция документа
Атрибуты документов
НомерДок
ДатаДок
<Реквизит>
НомерСтроки
Операция
Документ — одно из основных понятий системы 1С:Предприятие. При помощи документов организуется ввод в систему информации о совершаемых хозяйственных операциях, а также ее просмотр и, если необходимо, корректировка.
В большинстве своем документы, которые создаются в процессе настройки конфигурации задачи, являются электронными аналогами стандартных бумажных документов, являющихся основаниями для тех или иных учетных действий или расчетов. Тем на менее, использование этого типа данных может выходить далеко за рамки простой фиксации изменений внесенных в регистры и журналы расчетов.
Структура каждого конкретного вида документа определяется при его создании в конфигураторе. У любого вида документа существует два обязательных реквизита, которые создаются автоматически — дата и номер документа. Другие реквизиты документа определяются в конфигураторе конкретно для каждого создаваемого вида документа.
В документах выделяются две основные структурные части: шапка документа и многострочная табличная часть, поэтому реквизиты документа можно подразделить на «Реквизиты шапки» и «Реквизиты табличной части».
Как правило, в шапке содержатся реквизиты, которые являются общими для всего документа. Реквизиты шапки принадлежат всему документу в целом и принимают только одно значение.
Например, в случае расчета заработной платы, документ «Больничный лист» в заголовочной части может содержать процент оплаты, сведения о сотруднике.
Многострочная (табличная) часть документа представляет собой список однотипных строк. Реквизиты табличной части принадлежат строке документа, т. е. каждая строка содержит свои собственные значения этих реквизитов.
Например, в уже упоминавшемся больничном листе табличная часть — это набор данных за прошлые расчетные периоды, предназначенные для расчета средней заработной платы.
Получить Строку
Методы документов
Вид
ПредставлениеВида
УстановитьАтрибут
ПолучитьАтрибут
Выбран
Проведен
ТекущийДокумент
Выбрать
ВидыДляВыбора
Итог
КоличествоСтрок
НайтиДокумент
НайтиПоНомеру
Получить Строку ПоНомеру
ВыбратьДокументы
ВыбратьПодчиненныеДокументы
ВыбратьПоЗначению
ВыбратьПоНомеру
ВыбратьПоПоследователыюсти
ОбратныйПорядок
УстановитьФильтр
ПолучитьДокумент
ВыбратьСтроки
ПолучитьСтроку
Новый
ПрефиксНомера
УстановитьНовыйНомер
НазначитьТип
Записать
Удалить
ПометкаУдаления
СнятьПометкуУдаления
НоваяСтрока
УдалитьСтроку
УдалитьСтроки
СортироватьСтроки
ПолучитьПозицию
ПринадлежитПоследовательности
ИспользоватьЖурнал
Графа
Блокировка
ПолучитьВремя
УстановитьВремя
АвтоВремяНачалоДня
АвтоВремяКонецДня
АвтоВремяТекущее
АвтоВремяПослеТА
АвтоВремяОтключить
Провести
СделатьНеПроведенным
СравнитьТА
СуществуетОперация
ВыгрузитьТабличнуюЧасть
ЗагрузитьТабличнуюЧасть
Команды организации механизма заполнения документа
Методы контекста Модуля формы документа
ПриЗаписиПерепроводить
ПроводитьПослеТА
АктивизироватьСтроку
ИзменениеПорядкаСтрок
Модифицированность
Предопределенные процедуры Модуля формы документа
ВводНового
ВводНаОсновании
ПриЗаписи
ПриНачалеРедактированияСтроки
ПриВводеСтроки
ПриРедактированииНовойСтроки
ПриОкончанииРедактированияСтроки
ПриУдаленииСтроки
ПриИзмененииПорядкаСтрок
Методы контекста Модуля документа
ИтогиАктуальны
ГрупповаяОбработка
НеПроводитьДокумент
УстановитьРеквизитСправочника
ОчиститьДвижения
ПривязыватьСтроку
Предопределенные процедуры Модуля документа
ОбработкаПроведения
ОбработкаУдаленияПроведения
АрхивироватьДокумент
Команды организации механизма заполнения документа методом подбора
Работа с Журналами документов
Контекст работы с журналами документов
Атрибуты контекста Модуля формы журнала документов
ТекущийДокумент
Методы контекста Модуля формы журнала документов
ВидыОтбора
ЗакладкиОтбора
УстановитьОтбор
ПолучитьОтбор
УстановитьИнтервал
НачалоИнтервала
КонецИнтервала
ПодчинениеДокументу
Предопределенные процедуры Модуля формы журнала документов
ПриУстановкеОтбора
ПриУстановкеИнтервала
Работа с Регистрами оперативного учета
Контекст работы с регистрами
Атрибуты регистров
Приход
Расход
<Измерение>
<Ресурс>
<Реквизит>
Методы оборотных регистров
ИспользоватьПериод
Итог
Итоги
СводныйИтог
СводныеИтоги
ИтогиПолучить
Методы регистров остатков
Остаток
СводныйОстаток
Остатки
СводныеОстатки
ОстаткиПолучить
Выбрать ДвиженияСОстатками
Общие методы регистров
Вид
ПредставлениеВида
НазначитьТип
УстановитьАтрибут
ПолучитьАтрибут
ВыбратьДвижения
ВыбратьДвиженияДокумента
ОбратныйПорядок
ПолучитьДвижение
ТекущийДокумент
НомерСтроки
ВыбратьИтоги
ПолучитьИтог
ВыгрузитьИтоги
ВременныйРасчет
УстановитьФильтр
УстановитьЗначениеФильтра
Регистры — это специфический инструмент системы 1С:Предприятие, средство накопления сводной информации. Регистры являются внутренним инструментом конфигурации, к которым нет непосредственного доступа через интерфейс пользователя. Информация о результатах хозяйственных операций, которая появляется при оформлении документов, накапливается в регистрах при «проведении» документов, а отображение информации, содержащейся в регистрах, осуществляется при помощи формирования отчетов. Информация из регистров используется для анализа хозяйственной деятельности за прошедший период.
При создании регистра определяется, как будет обрабатываться, группироваться и сохраняться сводная информация. Регистры могут быть двух видов: оборотные регистры и регистры остатков.
Регистр остатков — это объект, предназначенный для ведения остатков «ресурсов» на момент времени с привязкой к некоторому набору «измерений».
Оборотный регистр — это объект, предназначенный для подсчета оборота «ресурсов» за заданный интервал времени с привязкой к некоторому набору «измерений».
Ресурсами регистра могут являться любые категории учета, которые могут быть представлены в числовом виде, такие как: «количество товара», «долг клиента», «сумма наличных» и т. п. Измерения регистра — это оси координат, на пересечении которых регистр хранит конкретные значения ресурсов. Кроме того, при записи движения регистра можно задавать «реквизиты» регистра. Значения реквизитов регистра просто сопровождают запись о движении регистра (подобно комментарию) для возможности в дальнейшем производить фильтрацию движений при выборке.
в конфигураторе создан регистр остатков
Пример:
* Предположим, что в конфигураторе создан регистр остатков «Товарные_Запасы», который должен содержать сведения об остатке каждого товара на каждом складе, за каждым материально ответственным лицом. В дальнейшем предполагается получать информацию такого типа: «остаток конкретного товара на конкретном складе», «остаток конкретного товара всего» и т. п. В идеологии системы 1С:Предприятие такой регистр представляет собой прямоугольную систему координат, измерениями этого регистра являются: «Товар», «Склад», «МОЛ». Регистр имеет один ресурс — «Количество». Содержание данного регистра можно представить в виде следующей таблицы, где по каждому конкретному товару на конкретном складе за конкретным МОЛ числится определенное Количество.
Товар |
Склад |
МОЛ |
Количество |
Стол |
Первый |
Иванов |
10 |
Стол |
Первый |
Петров |
20 |
Стол |
Второй |
Иванов |
5 |
Шкаф |
Первый |
Петров |
7 |
Шкаф |
Второй |
Иванов |
2 |
Шкаф |
Второй |
Петров |
8 |
Шкаф |
Третий |
Петров |
10 |
Структура каждого конкретного вида регистра определяется при его создании в конфигураторе. Измерения, ресурсы и реквизиты регистров определяются в конфигураторе конкретно для каждого создаваемого вида регистра.
В отличие от документов и справочников, которые представлены конкретными объектами в информационной базе, регистр является механизмом для работы с итогами. Вследствие этого атрибуты регистра не являются свойствами некоторого объекта, а используются лишь как служебные переменные для манипуляции измерениями, ресурсами и реквизитами регистра при помощи соответствующих методов. Для каждого метода определяется, каким образом он использует атрибуты регистров. Следует обратить внимание, что ресурсы регистров принимают различное смысловое значение в зависимости от конкретной операции, выполняемой с регистром. Например, при записи движения регистра при помощи методов: ДвижениеПриходВыполнить, Движение РасходВыполнить и т. п. в ресурс регистра следует записывать приращение, которое будет изменять содержимое регистра, а при считывании итогов регистра (Остатки, ОстаткиПолучить и т. п.) ресурсы регистра содержат остаток (итоговые значения) содержимого регистров.
ресурса для регистра остатков следует
Под термином «остаток» ресурса для регистра остатков следует понимать числовое значение, которое имеет ресурс на какой-то момент времени. Именно здесь и проявляется понятие Точки Актуальности (далее ТА). ТА — это тот момент времени (дата+время), на который все необоротные регистры содержат текущие значения своих ресурсов. Другими словами, если просто запросить у регистра остатков значение какого-либо ресурса, то он выдаст его именно на момент ТА. Если необходимо узнать значение ресурса на какой-либо прошедший момент времени, то надо либо сдвинуть в прошлое ТА (для этого используется интерактивная операция «Управления итогами»), либо при помощи средств встроенного языка следует запустить «временный расчет» регистра. При «временном расчете» регистра остатков можно задать момент времени, на который необходимо получить значение ресурса. В этом случае значение ресурса рассчитывается, что требует несколько большего времени процессора, чем если получать ресурс на ТА. Однако, «временный расчет» рассчитывается не с начала всех времен, а от начала месяца. Регистры остатков хранят промежуточные значения ресурсов на начало каждого месяца (именно с этим связана процедура «переход на новый период»). Таким образом, если при «временном расчете» указать момент времени в начале месяца, то, в общем случае, расчет будет выполнен быстрее, чем если указать конец месяца.
Кроме хранения остатка или оборота ресурсов, регистры хранят все «приращения» (приход со знаком «+», расход со знаком «-»), произведенные документами (это обозначается термином «движения регистра»). Причем, эти «при-оащения» регистров хранятся со ссылками на те документы, которые их вызвали. Поэтому, во встроенном языке системы 1С:Предприятие есть методы, чтобы получить из регистра все его движения (с привязкой к документам), указав интервал времени, за который они нужны.
Документы, как объекты прикладной задачи, тесно связаны с регистрами. Именно документы, и только они могут изменять значения ресурсов в регистрах (этот алгоритм прописывается в предопределенной процедуре ОбработкаПроведения для каждого вида документа). Никаким другим способом, кроме как через проведение документов на содержимое регистров повлиять нельзя. Например, нельзя создать отчет, который бы изменял значения, хранящиеся в регистрах. Движения (приращения) регистров выполняются в момент «проведения» документа. С другой стороны, документы не порождают в регистрах необратимых действий. Что это значит? Если ранее проведенный документ удалить или сделать его непроведенным, то удалятся и все движения регистров, порожденные им. Если отредактировать (изменить) ранее проведенный документ, то после перепроведения документа все движения регистров, порожденные ранее, удалятся и заменятся новыми.
Замечание: Формирование движений документов по регистрам доступно только в Модуле документа в системной предопределенной процедуре ОбработкаПроведения.
Методы контекста Модуля
Методы контекста Модуля документа
ПривязыватьСтроку
ДвижениеПриход
ДвижениеРасход
ДвижениеПриходВыполнить
ДвижениеРасходВыполнить
Движение
ДвижениеВыполнить
Системные процедуры работы с регистрами
РассчитатьРегистрыНа
РассчитатьРегистрыПо
Вспомогательный объект Регистры
Атрибуты объекта Регистры
<ИдентификаторРегистра>
Методы объекта Регистры
ПолучитьАтрибут
РассчитатьРегистрыНа
РассчитатьРегистрыПо
Актуальность
Служебные типы данных компоненты «Бухгалтерский учет»
Тип данных «ПланСчетов»
Методы типа данных «ПланСчетов»
Выбран
ПорядковыйНомер
Идентификатор
Атрибут глобального контекста «ПланыСчетов»
ПланыСчетов
Методы глобального атрибута «ПланыСчетов»
КоличествоЗначений
ЗначениеПоНомеру
ЗначениеПоИдентификатору
Тип данных «ВидСубконто»
Методы типа данных «ВидСубконто»
Выбран
ПорядковыйНомер
ТипСубконто
Идентификатор
Атрибут глобального контекста «ВидыСубконто»
ВидыСубконто
Методы глобального атрибута «ВидыСубконто»
КоличествоЗначений
ЗначениеПоНомеру
ЗначениеПоИдентификатору
работа с бухгалтерскими счетами
Контекст работы с бухгалтерскими счетами
Атрибуты объекта «Счет»
Код
Наименование
Валютный
Количественный
Забалансовый
Активный
<Реквизит>
Методы объекта «Счет»
ВыбратьСчета
ПолучитьСчет
УстановитьАтрибут
ПолучитьАтрибут
Выбрать
НайтиПоКоду
НайтиСчет
Выбран
ЗаданВКонфигурации
Вид
ПредставлениеВида
ПланСчетов
ЭтоГруппа
Уровень
ТекущийСчет
ПометкаУдаления
ВыборГруппы
ПринадлежитГруппе
КоличествоСубконто
ВидСубконто
ТолькоОбороты
УчетПоСумме
УчетПоВалютнойСумме
УчетПоКоличеству
ИспользоватьДату
ИспользоватьПланСчетов
Родитель
ИспользоватьРодителя
КодСубсчета
Блокировка
Новый
НазначитьТип
Записать
Удалить
СнятьПометкуУдаления
Методы контекста Модуля формы списка счетов
ИспользоватьДату
ИспользоватьПланСчетов
ИспользоватьРодителя
ИспользоватьКорСчет
ИерархическийСписок
РедактироватьВДиалоге
ВыборГруппы
Предопределенные процедуры модуля формы списка счетов
ПриВводеСтроки
ПриРедактированииНовойСтроки
ПриНачалеРедактированияСтроки
ПриВыбореРодителя
ПриЗаписи
Предопределенные процедуры модуля формы счета
ВводНового
ПриЗаписи
Счета — это агрегатный тип данных для доступа к объектам данных — бухгалтерским счетам. Бухгалтерские счета используются компонентой «Бухгалтерский учет» системы 1С:Предприятие для идентификации разрезов синтетического учета наличия и движения средств. В общем виде смысл типа данных «Счет» вполне соответвует общепринятому понятию «Счет» в бухгалтерском учете. Подробно об основных свойствах типа данных «Счет» можно ознакомиться в руководстве по конфигурированию системы 1С:Предприятие.
В конфигурации системы может быть создано несколько планов счетов. План счетов является фактически видом для значения типа «Счет». Например, реквизит диалога типа «Счет» может иметь конкретный вид (относиться к конкретному плану счетов) или быть неопределенного вида — то есть принимать значение различных планов счетов.
Структура данных для объектов типа «Счет» задается в конфигураторе и является одинаковой для всех планов счетов. Счета имеют стандартные реквизиты (код, наименование и т. д.), для которых в конфигурации настраиваются только их свойства (например, длина наименования). Кроме того, для счетов в конфигурации могут быть заданы дополнительные реквизиты. Дополнительные реквизиты могут быть периодическими, то есть иметь разные значения на разные даты.
Список счетов (план счетов) может быть многоуровневым. При этом каждый объект типа «Счет» вне зависимости от реального наличия подчиненных счетов всегда является либо конкретным счетом, либо группой. Это свойство конкретного счета задается при его создании и не изменяется в дальнейшем. При этом счета-группы не могут участвовать в проводках.
Заметим, что бухгалтерские счета внесенные в конфигураторе в метаданные не могут изменять свои основные реквизиты (код, наименование, настройки аналитического, валютного и количественного учета).
Работа с операциями и проводками
Контекст работы с операциями и проводками
Атрибуты объекта «Операция»
ДатаОперации
Содержание
СуммаОперации
<РеквизитОперации>
Документ
Сумма
Валюта
ВалСумма
Количество
<РеквизитПроводки>
Дебет
Кредит
Атрибуты объектов «Дебет» и «Кредит»
Счет
<Субконто>
Методы объектов «Дебет» и «Кредит»
Субконто
ПредставлениеСубконто
Для отражения в бухгалтерском учете информации о движении средств в системе 1С:Предприятие используются Операции и Проводки. Эти объекты поддерживаются компонентой «Бухгалтерский учет». Настройка свойств операций и проводок производится соответвующими объектами метаданных в конфигурации. В руководстве по конфигурированию можно подробно ознакомиться с основными принципами и свойствами операций и проводок.
Методы объекта
Методы объекта «Операция»
ВыбратьОперации
ВыбратьОперацииСПроводками
ИспользоватьСубконто
ИспользоватьКорСубконто
ВыбратьПоЗначению
ПолучитьОперацию
НайтиОперацию
Выбрана
УстановитьАтрибут
ПолучитьАтрибут
ВыбратьПроводки
ПолучитьПроводку
ПроводкаВыбрана
КоличествоПроводок
ПолучитьПроводкуПоНомеру
Пров
НомерПроводки
ПланСчетов
НомерКорреспонденции
СложнаяПроводка
НомерСтрокиДокумента
ПредставлениеПроводки
ПредставлениеСубконто
НазначитьТип
Новая
ЗаписатьПроводки
Записать
Удалить
ПометкаУдаления
СнятьПометкуУдаления
ПолучитьВремя
УстановитьВремя
ПолучитьДокумент
ВключитьПроводки
НоваяПроводка
НоваяКорреспонденция
ПроверитьПроводку
УдалитьПроводку
Атрибуты контекста модуля формы
Атрибуты контекста модуля формы операции
БИ
Методы контекста модуля формы операции
ПоТиповойОперации
ИспользоватьВалюту
ИспользоватьКорСчет
ИспользоватьСубконто
ИзменениеПорядкаСтрок
Предопределенные процедуры модуля формы операции
ВводНового
ВводНаОсновании
ПриЗаписи
ПриНачалеРедактированияСтроки
ПриВводеСтроки
ПриРедактированииНовойСтроки
ПриУдаленииСтроки
ПриИзмененииПорядкаСтрок
Работа с Журналами операций
Контекст работы с журналами операций
Методы контекста Модуля формы журнала операций
ВидыОтбора
ЗакладкиОтбора
УстановитьОтбор
ПолучитьОтбор
УстановитьИнтервал
НачалоИнтервала
КонецИнтервала
Предопределенные процедуры модуля формы журнала операций
ПриУстановкеОтбора
ПриУстановкеИнтервала
Работа с Журналами проводок
Контекст работы с журналами проводок
Методы контекста Модуля формы журнала проводок
ВидыОтбора
ЗакладкиОтбора
УстановитьОтбор
ПолучитьОтбор
УстановитьИнтервал
НачалоИнтервала
КонецИнтервала
Предопределенные процедуры модуля формы журнала проводок
ПриУстановкеОтбора
ПриУстановкеИнтервала
ПриПоказеПроводокПоДокументу
Работа с бухгалтерскими итогами
Контекст работы с бухгалтерскими итогами
Общие свойства
ИспользоватьПланСчетов
ИспользоватьРазделительУчета
Работа с основными итогами
Остатки и обороты по счетам
СНД, СНК, СКД, СКК, ДО, КО
Обороты между счетами
ОБ
Развернутое сальдо по субсчетам
СНДР, СНКР, СКДР, СККР
Развернутое сальдо по субконто
СНДРС, СНКРС, СКДРС, СККРС
Установка периода итогов
ПериодД
ПериодКВ
ПериодКВН
ПериодМ
ПериодМНК
ПериодМНГ
НачПериода
КонПериода
ОсновныеИтоги
Работа с временными итогами
Рассчитать
Актуальность
Работа в режиме запроса
ВыполнитьЗапрос
ВключатьСубсчета
Опции
ИспользоватьСубконто
ИспользоватьКорСубконто
При наличии в системе 1С:Предприятие компоненты «Бухгалтерский учет» система автоматически реализует специальный механизм работы с бухгалтерскими итогами. Данный механизм обеспечивает хранение, динамический пересчет бухгалтерских итогов и их извлечение средствами встроенного языка.
Система хранения бухгалтерских итогов поддерживается системой 1С:Предприятие автоматически на основе существующих планов счетов. При редактировании планов счетов — в конфигураторе или при работе с системой 1С:Предприятие — для счета могут быть установлены ряд свойств, которые влияют на организацию хранения бухгалтерских итогов: это признаки ведения валютного и количственного учета, а также включение аналитического учета по субконто.
Изменение бухгалтерских итогов может производиться только проводками бухгалтерских операций.
Объект встроенного языка «БухгалтерскиеИтоги» предназначен для организации доступа к итогам в различных разрезах, за различные периоды и с разной степенью детализации.
с результатами запроса
Работа с результатами запроса
Методы выборки результатов запроса
ВыбратьСчета
ПолучитьСчет
ВыбратьКорСчета
ПолучитьКорСчет
ВыбратьВалюты
ПолучитьВалюту
ВыбратьПериоды
ПолучитьПериод
ВыбратьСубконто
ПолучитьСубконто
ВыбратьКорСубконто
ПолучитьКорСубконто
Атрибуты для обращения к результатам запроса
Счет
КорСчет
Валюта
НачДата
КонДата
Операция
Методы обращения к результатам запроса
Субконто
КорСубконто
ПредставлениеСубконто
ПредставлениеКорСубконто
ЭтоГруппа
СНД, СНК, СКД, СКК, ДО, КО
СНДРС, СНКРС, СКДРС, СККРС
КорДО, КорКО
ВыбранаПоДт, ВыбранаПоКт
Работа с Корректными проводками
Контекст работы с объектом «КорректныеПроводки»
Атрибуты объекта «КорректныеПроводки»
Комментарий
СчетДт
СчетКт
Методы объекта «КорректныеПроводки»
Выбрана
ВыбратьКорректныеПроводки
ВыбратьКорректныеПроводкиПоСчету
ПолучитьКорректнуюПроводку
Новая
Записать
Удалить
Для работы с корректными проводками в системе используется специальный тип данных «КорректныеПроводки».
Работа с Журналами расчетов
Контекст работы с журналом расчета
Контекст работы с записями журнала расчетов
Контекст работы с периодом журнала расчетов
Атрибуты периода журнала расчетов
ДатаНачала
ДатаОкончания
ОписательПериода
Методы периода журнала расчетов
ПрибавитьПериод
Атрибуты журнала расчетов
Документ
РодительскийДокумент
Объект
ВидРасч
ДатаНачала
ДатаОкончания
ПериодДействия
ПериодРегистрации
Сторно
Рассчитана
Исправлена
Фиксирована
Перерасчет
ПервичнаяЗапись
Результат
<Реквизит>
Журнал расчетов — это средство для просмотра и редактирования результатов расчета. Каждая строка журнала отражает единичное событие расчета для того или иного объекта. Такие события называются «расчетами» и характеризуются следующими данными:
объект, для которого произведен расчет;
вид (т. е. способ) расчета;
документ, на основании которого введен этот расчет;
результат расчета;
время действия (т. е. расчет имеет дату начала и дату окончания). период регистрации, во время которого расчет введен в журнал (это понятие не совпадает с понятием времени действия, так как время действия акта расчета и период регистрации, во время которого он введен в систему, могут не совпадать)
Справочник объектов расчета. Одним из самых важных свойств журнала расчетов является ссылка на справочник, элементы которого являются объектами расчета. Справочник объектов расчета может быть как простым, так и иерархическим. Не обязательно все элементы этого справочника должны рассчитываться конкретным журналом расчетов, но, в свою очередь, все строки журнала расчетов должны соответствовать тому или иному элементу справочника объектов расчета. Как правило, журнал расчетов содержит несколько записей по одному объекту расчета, но одна запись журнала расчетов не может соответствовать сразу нескольким объектам.
Расчетный период. Журнал расчетов имеет определенную периодичность, т. е. все расчеты в нем выполняются в пределах определенного временного интервала. Каждая запись журнала расчетов, соответствующая одному акту расчета, также имеет временное протяжение (т. е. имеет дату начала и дату окончания).
Важно! Временной интервал каждой отдельной записи журнала не может лежать в разных расчетных периодах журнала.Записи, лежащие в текущем расчетном периоде, могут, тем не менее, иметь период действия, не принадлежащий текущему расчетному периоду. Это значит, что даты начала и окончания конкретной записи могут «выпадать» из текущего периода расчета и относиться к одному из прошлых или будущих периодов. Самым очевидным примером здесь может служить перерасчет зарплаты сотрудника за прошлый период или начисления будущего периода.
Примеры. Журнал расчета заработной платы сотрудников предприятия (каждый сотрудник — объект расчета), при этом выполняется расчет тех или иных начислений и удержаний (виды расчета), имеющих определенную продолжительность и результат. Другой пример — журнал расчета амортизации основных средств, где справочником объектов расчета является справочник основных средств предприятия, а видами расчета —алгоритм расчета амортизации, списания, переоценки и т. д. Третий пример — журнал расчета дивидендов для акционеров АО, где объекты расчета — список акционеров предприятия, а виды расчета — способы начислений дивидендов на акции разных типов.
Методы журнала
Методы журнала расчетов
НачалоТекущегоПериода
КонецТекущегоПериода
НачалоПериодаПоДате
КонецПериодаПоДате
ПериодПоДате
УстановитьТекущийПериод
ТекущийПериод
ПолучитьЗапись
ВыполнитьРасчет
ОписательПериода
ТекущаяЗапись
НайтиЗапись
ФиксироватьЗапись
ОсвободитьЗапись
ВвестиПерерасчет
ВвестиПерерасчетНаОсновании
Вид
ПредставлениеВида
НазначитьТип
УстановитьРеквизит
ВвестиРасчет
ВвестиРасчетНаОсновании
ЗаписатьРасчет
ЗаписатьРасчетНаОсновании
Рассчитать
ВыбратьЗаписи
ВыбратьПериод
ВыбратьЗаписиПоОбъекту
ВыбратьЗаписиПоДокументу
ВыбратьПериодПоОбъекту
ВыбратьПоЗначению
Новая
Записать
УдалитьЗапись
Исправить
ОтменитьИсправление
Методы контекста Модуля формы журнала
Методы контекста Модуля формы журнала расчетов
ВидыОтбора
УстановитьОтбор
ПолучитьОтбор
ЗакладкиОтбора
ГраницаПросмотра
УстановитьПредставление
ПолучитьПредставление
РассчитыватьПриОтменеИсправления
Предопределенные процедуры Модуля формы журнала расчетов
ПриИсправленииРезультата
ПриОтменеИсправления
ПриРасчете
ПриВыбореВладельца
ПриУстановкеОтбора
ПриУстановкеГраницыПросмотра
ПриУстановкеПредставления
Работа с Видами и Группами расчетов
Контекст работы с видами расчетов и группами расчетов
Атрибуты видов расчета и групп видов расчета
Код
Наименование
Атрибуты видов расчета
Очередность
ПриоритетВытеснения
Методы видов расчета
ПолучитьАтрибут
ВходитВГруппу
Выбран
ВытесняетВидРасчета
ВытесняетсяВидомРасчета
Методы групп видов расчета
СодержитВидРасчета
Количество
ПолучитьРасчет
Работа с Правилами перерасчета
Контекст работы с правилами перерасчета
Атрибуты правил перерасчета
Тип
КоличествоПериодов
Методы правил перерасчета
КоличествоВедущих
ИмеетВедущий
ПолучитьВедущий
ДобавитьКакВедущий
УдалитьВсеВедущие
КоличествоПодчиненных
ИмеетПодчиненный
ПолучитьПодчиненный
ДобавитьКакПодчиненный
УдалитьВсеПодчиненные
Применять
«Правила перерасчета» являются вспомогательными объектами метаданных компоненты «Расчет». Они предназначены для автоматического отслеживания актуальности результатов проведенных расчетов при вводе новых записей журнала расчетов.
При создании правила перерасчета в конфигураторе определяются виды расчетов, при редактировании которых правило перерасчета «срабатывает», и виды расчетов, которые должны быть перерасчитаны при срабатывании данного правила.
Список видов расчета, на основании которых срабатывает правило перерасчета условно называется «ведущие виды расчета». Список видов расчета, которые должны быть перерасчитаны при срабатывании данного правила условно называется «зависимые виды расчета».
Для организации правильного перерасчета доплат следует в качестве ведущих видов расчета указать те, на основании которых считаются доплаты (например: оклад, тариф, сдельная оплата), а в качестве зависимых видов расчета следует указать собственно перерасчитываемые доплаты.
После ввода в систему такого правила перерасчетов журнал расчетов будет вести себя описанным ниже образом. При этом сначала рассмотрим случай для взаимосвязи видов расчета в одном периоде.
Итак, если в журнале расчетов появится новая (в результате проведения документа), исчезнет (при отмене проведения) или будет исправлена существующая запись с одним из «ведущих» видов расчета (в нашем примере оклад, тариф, сдельная оплата), то будет снят признак «Рассчитана» со всех записей, соответствующих доплатам, если найдутся таковые с тем же периодом действия, что и введенная, удаленная или исправленная запись.
Если при этом вводится запись с периодом действия не в текущем расчетном периоде, а в одном из прошлых (например, расчет оклада задним числом за прошлый месяц), то система введет записи-перерасчеты для всех доплат соответствующего прошлого периода.
Правило перерасчета может быть двух типов: перерасчет «по текущему периоду» или «по будущим периодам».
В первом случае перерасчитываются заданные виды расчетов с тем же периодом действия, что и новая введенная запись. Во втором — перерасчитываются записи одного или нескольких будущих расчетных периодов.
Работа с Календарями и Праздниками
Контекст работы с календарями
Контекст работы с праздниками
Атрибуты и методы объекта Календари
<ИмяКалендаря>
ПолучитьАтрибут
Атрибуты календарей и праздников
Дата
Значение
Общие методы календарей и праздников
ПолучитьАтрибут
УстановитьАтрибут
Методы календарей
Выбран
ВыбратьДаты
СледующаяДата
Дней
Часов
Автозаполнение
УчитыватьПраздники
ПолучитьДату
Методы праздников
Новый
Удалить
ВыбратьДаты
СледующаяДата
Объект Календарь в системе 1С:Предприятие предназначен для вычисления временных интервалов на основании произвольных временных графиков. Этот объект может использоваться, например, для учета графика работы предприятия, графика работы внешних организаций, графика учета рабочего времени тех или иных работников предприятия и пр.
Календарь представляет собой объект, который устанавливает для каждой календарной даты некоторое числовое значение, которое может интерпретироваться при работе программы тем или иным образом. Например, в календаре, представляющем собой график работы организации или предприятия, каждому рабочему дню может соответствовать единица, а каждому выходному — ноль. В календаре учета рабочего времени сотрудников предприятия, каждой дате календаря может соответствовать число — продолжительность рабочего дня в часах и т. д.
В глобальном контексте программы 1С:Предприятие есть атрибут "Календари". Этот объект в качестве своих атрибутов имеет значения объектов конкретных видов календарей, заданных в конфигурации. Кроме того, этот объект имеет метод ПолучитьАтрибут, который позволяет получить доступ к объекту календаря конкретного вида по его имени. Т.е. допустимы следующие синтаксические конструкции:
Календари.Служащие.Дней(ТекДата, ТекДата + 5);
Календари.ПолучитьАтрибут("Служащие").Дней(ТекДата, ТекДата + 5);
Праздники в системе 1С:Предприятие представляет собой объект похожий на календарь, но он заполняется выборочно (не все даты подряд) и в нем могут вводиться и удаляться строки для определенных дат. Данный объект используются как набор исключений при заполнении календарей (см. метод календаря УчитыватьПраздники).
Работа с последовательностями документов
Контекст работы с последовательностями
Методы последовательностей
ПолучитьПозицию
Получить
ПолучитьДокумент
ПолучитьДату
ПолучитьВремя
Установить
Сравнить
ПринадлежитПоследовательности
Проверить
«Последовательности документов» являются вспомогательными объектами метаданных для компонент «Оперативный учет» и «Бухгалтерский учет». Они предназначены для обеспечения проведения определенных документов в непрерывной хронологической последовательности.
При создании последовательности определяется, какие виды документов входят в данную последовательность, а также виды движений, влияющих на последовательность. Виды движений определяют, какие из изменений итогов будут влиять на необходимость перепроведения документов данной последовательности, то есть итоги каких механизмов учета используются документами данной последовательности при проведении.
Например, для организации правильного списания товаров следует в качестве движения, влияющего на последовательность указать регистр оперативного учета, на котором ведется стоимостной учет товаров или, если учет ведется на бухгалтерских счетах, указать счет, на котором ведется учет товаров. В качестве документов, на проведение которых будет влиять данная последовательность, следует указать те виды документов, которые будут анализировать при проведении указанный регистр или остатки по указанному счету. Например, такими документами могут быть расходные накладные, накладные на передачу на реализацию и т. п.
Подробнее о последовательностях документов следует читать в книге «Руководство по конфигурированию и администрированию».
Работа с объектом Периодический
Контекст работы с объектом Периодический
Атрибуты объекта Периодический
Значение
ДатаЗнач
Методы объекта Периодический
ИспользоватьОбъект
НазначитьТип
ЗначениеНаДату
НайтиЗначение
ВыбратьЗначения
ВыбратьПоДокументу
ПолучитьЗначение
ОбратныйПорядок
ТекущийДокумент
ТекущийОбъект
ТекущийРеквизит
НомерСтроки
Записать
Удалить
Для работы с периодическими реквизитами справочников и периодическими константами в системе используется специальный агрегатный тип данных — «Периодический». Объекты данного типа предназначены для возможности записи, редактирования и удаления значений периодических реквизитов справочников и периодических констант непосредственно из программного модуля, без необходимости прибегать к интерактивным операциям.
Работа со Списком Значений
Контекст работы со Списком Значений
Методы объекта Список Значений
ДобавитьЗначение
ВставитьЗначение
РазмерСписка
НайтиЗначение
ПолучитьЗначение
УстановитьЗначение
Получить
Установить
УдалитьЗначение
УдалитьВсе
Сортировать
СортироватьПоПредставлению
СдвинутьЗначение
Принадлежит
ВыбратьЗначение
ОтметитьЗначения
Пометка
ТекущаяСтрока
ИзСтрокиСРазделителями
ВСтрокуСРазделителями
Выгрузить
При формировании пользовательского интерфейса прикладной задачи довольно часто возникают ситуации, когда для удобства работы пользователя необходимо дать ему возможность выбирать какое-либо значение из заранее подготовленного списка. Возможности работы со справочниками, журналами и перечислениями предоставляют достаточно мощные средства выбора этих объектов. Однако, существует также необходимость в выборе значений из списков, сформированных и отсортированных нестандарнным образом, которые невозможно или неудобно получать непосредственно при работе со стандартными визуальными представлениями журналов, справочников или перечислений. Для этого в системе 1С:Предприятие используется специальный агрегатный тип данных — «СписокЗначений» и специальные элементы форм диалога: «Список» и «Поле со списком».
Объект типа «СписокЗначений» — это средство языка (не сохраняемый в БД объект), которое позволяет строить «динамические массивы» и манипулировать ими (добавлять, редактировать, удалять элементы, сортировать). Список значений может быть наполнен значениями любого типа, т. е. в одном списке типы хранимых значений могут быть разными. Одним из примеров использования данного объекта может служить организация выбора конкретного документа из списка возможных документов, сформированного по сложному алгоритму.
Работа с Таблицей Значений
Контекст работы с Таблицей Значений
Атрибуты Таблицы Значений
НомерСтроки
<ИдентификаторКолонки>
Методы объекта Таблица Значений
КоличествоКолонок
НоваяКолонка
ВставитьКолонку
УдалитьКолонку
УстановитьПараметрыКолонки
ПолучитьПараметрыКолонки
КоличествоСтрок
НоваяСтрока
УдалитьСтроку
УдалитьСтроки
ВыбратьСтроки
ПолучитьСтроку
ВыбратьСтроку
ПолучитьСтрокуПоНомеру
СдвинутьСтроку
УстановитьЗначение
ПолучитьЗначение
НайтиЗначение
Сортировать
Очистить
Итог
Заполнить
Свернуть
Выгрузить
Загрузить
ВидимостьКолонки
ТекущаяСтрока
ТекущаяКолонка
Фиксировать
ВыводитьПиктограммы
Пример использования объекта Таблица Значений
Объект типа «ТаблицаЗначений» ~ это средство языка (не сохраняемый в информационной базе объект), которое позволяет строить «динамические массивы» и манипулировать ими (добавлять, редактировать, удалять элементы, сортировать). Таблица значений может быть наполнена значениями любого типа, т. е. в одной таблице типы хранимых значений могут быть разными. Таблица значений может использоваться и как простой двумерный массив (матрица) значений и как таблица строк определенной структуры, когда колонки типизованы и имеют идентификаторы.
Специальный элемент формы диалога «ТаблицаЗначений» является интерфейсным средством отображения и манипулирования этим объектом в формах диалогов. При формировании пользовательского интерфейса прикладной задачи довольно часто возникают ситуации, когда для удобства работы пользователя необходимо дать ему возможность выбирать какое-либо значение из заранее подготовленной таблицы значений. Возможности работы со справочниками, журналами и перечислениями предоставляют достаточно мощные средства выбора этих объектов. Однако, существует также необходимость в выборе значений из таблиц, сформированных и отсортированных нестандартным образом, которые невозможно или неудобно получать непосредственно при работе со стандартными визуальными представлениями журналов, справочников или перечислений.
Одним из примеров использования данного объекта может служить организация выбора конкретного товара из таблицы возможных товаров, сформированной по сложному алгоритму.
При работе с таблицей значений следует различать два понятия текущей строки таблицы. Во-первых, существует текущая строка объекта «ТаблицаЗначений», которая устанавливается при помощи методов ПолучитьСтрокуПоНомеру, ВыбратьСтроки, ПолучитьСтроку, эта текущая строка меняется программно и служит для обращения к значениям колонок с помощью идентификаторов уже без указания строки. Во-вторых, существует текущая строка элемента формы диалога «ТаблицаЗначений», которая является активной строкой (на ней установлен курсор) в диалоге. Текущая строка элемента диалога возвращается и устанавливается исключительно только при помощи метода ТекущаяСтрока. Например, если программно сменить текущую строку объекта, курсор в визуальном представлении диалога сам собой не передвинется, это можно выполнить только при помощи метода ТекущаяСтрока. Однако, при вызове из формы процедуры обработки, текущая строка объекта будет совпадать с текущей строкой визуального представления.
Атрибуты и методы контекста Модуля формы
Атрибуты контекста Модуля формы
СтрокаДействийФормы
Форма
Атрибуты объекта Форма
Закладки
<ЭлементДиалога>
Параметр
Методы объекта Форма
ТолькоПросмотр
Обновить
ИспользоватьЗакладки
ИспользоватьСлой
Заголовок
ПанельИнструментов
КнопкаПоУмолчанию
ОбработкаВыбораСтроки
ВыполнитьВыбор
РежимВыбора
МодальныйРежим
ПолучитьАтрибут
АктивныйЭлемент
ТекущаяКолонка
Закрыть
Методы элементов диалога
Видимость
Доступность
Редактирование
Цвет
Маска
ВыборГруппы
ВыполнятьФормулуТолькоПриИзменении
Заголовок
УстановитьТип
НазначитьТип
НеИзменятьВид
Методы контекста Модуля формы
ОткрытьПодбор
УстановитьЗначениеВПодборе
ПолучитьЗначениеИзПодбора
Активизировать
АктивизироватьОбъект
Предопределенные процедуры Модуля формы
ПриОткрытии
ПриПовторномОткрытии
ПриЗакрытии
ПриВыбореЗакладки
ПриНачалеВыбораЗначения
ОбработкаПодбора
ОбработкаВыбораЗначения
ПриВыбореСтроки
Атрибуты и методы контекста Модуля формы отчета (обработки)
Таблица
<ИмяОбласти>
РасположениеФайла
Предопределенные процедуры модуля формы отчета (обработки)
ВводНового
ПриОткрытии
Описанные в данной главе атрибуты и методы доступны только в контексте Модуля формы (см. «Виды программных модулей»). К Модулям форм относятся практически все программные модули (исключение составляют Глобальный модуль, Модуль документа, Модуль вида расчета).
Работа с Таблицами
Контекст работы с таблицами
Атрибуты таблиц
ТекущийОбъект
Методы таблиц
ИсходнаяТаблица
ИспользоватьФормат
Открыть
Вывести
ПолучитьСекцию
ВывестиСекцию
ПрисоединитьСекцию
НоваяСтраница
НоваяКолонка
ЩиринаТаблицы
ВысотаТаблицы
ШиринаСекции
ВысотаСекции
ТолькоПросмотр
Очистить
Показать
Защита
Записать
ЗначениеТекущейЯчейки
Область
ПовторятьПриПечатиСтроки
ПовторятьПриПечатиСтолбцы
Опции
ОбластьПечати
ПараметрыСтраницы
КоличествоЭкземпляров
ЭкземпляровНаСтранице
Напечатать
Для работы с табличными документами в системе используется специальный агрегатный тип данных «Таблица». Основным назначением табличного документа в системе 1С:Предприятие является создание печатных форм отчетов и первичных документов.
Печатные формы формируются при помощи встроенного языка с использованием агрегатного объекта «Таблица», создаваемого функцией СоздатьОбъект. Наиболее типичным способом заполнения табличного документа является включение в него секций. Для этого используется исходный табличный документ, который может располагаться в той же форме, в тексте программного модуля которого создан агрегатный объект «Таблица». Кроме того, исходная таблица может располагаться и в общих таблицах конфигурации и во внешнем файле. Назначение исходного табличного документа выполняется методом объекта «Таблица» — ИсходнаяТаблица.
Исходная таблица является заготовкой, содержащей текстовые фрагменты отчета, рамки, рисунки и т. д. Исходная таблица может быть включена в создаваемый отчет целиком. Однако часто необходимо включать в отчет отдельные фрагменты заготовки в определенной последовательности. Например, при печати накладной, нужно один раз вывести шапку и много раз вывести строку документа. Для этого части исходной таблицы выделяются в виде фрагментов-секций. Метод ВывестиСекцию позволяет включить выделенный фрагмент исходной таблицы в формируемый табличный документ.
В ячейках исходной таблицы может размещаться обычный текст или выражение встроенного языка 1С:Предприятия. При включении в табличный документ секции исходной таблицы автоматически происходит вычисление всех выражений и в табличный документ уже включается секция, содержащая результаты этих вычислений. Таким образом, происходит заполнение включаемых секций конкретными данными. Описанный способ, с одной стороны, позволяет наиболее наглядным образом визуально в исходной таблице спроектировать внешний вид и содержание отчета, а с другой, позволяет достаточно просто включать подготовленные фрагменты в заполняемый табличный документ.
Приведем пример формирования таким способом печатной формы документа.
Пример:
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("ПечатьСчета");
Таб.ВывестиСекцию("Шапка");
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Таб.ВывестиСекцию("Строка");
КонецЦикла;
Таб.Показать();
В приведенном примере в ячейках секций "Шапка" и "Строка" исходной таблицы располагаются выражения выдающие различные реквизиты документа.
Существует другой способ заполнения данными включаемых секций. Этот способ отличается от описанного тем, что в секциях ячеек не задаются выражения. Заполнение секции данными описывается прямо в алгоритме программного модуля. Для этого секция сначала выбирается из исходной таблицы, затем в ней заполняются значениями ячейки, в которых должны выводиться данные, а затем секция включается в табличный документ. Для получения секции из исходной таблицы используется метод ПолучитьСекцию. Полученная секция запоминается в переменной как специальный объект типа «СекцияТаблицы». Для того, чтобы в этом объекте можно было заполнять отдельные ячейки им нужно предварительно задать имена в исходной таблице. У объекта «СекцияТаблицы» отдельные именованные ячейки являются атрибутами, имеющими тип «ОбластьТаблицы» (область может содержать и несколько ячеек). Заполнение ячеек выполняется присвоением атрибуту "Текст" объекта «ОбластьТаблицы» необходимых значений.
Приведем пример формирования табличного документа этим способом.
Пример:
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("ПечатьСчета");
Шапка = Таб.ПолучитьСекцию("Шапка");
Шапка.Клиент.Текст = Контрагент;
Шапка = Таб.ВывестиСекцию(Шапка);
......
ВыбратьСтроки();
Пока ПолучитьСтроку () = 1 Цикл
Строка = Таб.ПолучитьСекцию("Строка");
Строка.Товар.Текст = Товар;
......
Строка = Таб.ВывестиСекцию(Строка);
КонецЦикла;
Таб.Показать();
Этот способ может применяться в отдельных случаях для ускорения заполнения табличного документа, если для заполнения данными используются достаточно сложные выражения. Кроме того, этот способ позволяет манипулировать при включении секций различными свойствами ячеек. Например, можно для отдельных ячеек устанавливать жирный шрифт.
Кроме описанных способов существует способ заполнения табличного документа путем непосредственного обращения к ячейкам таблицы без использования в качестве заготовки исходной таблицы. Для этого используется метод Область, позволяющий по координатам строки и столбца исходной таблицы получить объект типа «ОбластьТаблицы». Атрибуты и методы этого объекта позволяют задать содержимое и элементы оформления ячеек (текст, цвета, рамки и т. д.).
Приведем фрагмент примера печати документа этим способом.
Пример:
Таб = СоздатьОбъект("Таблица");
Таб.Область(2, 3).Текст = Контрагент;
......
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Таб.Область(НомерСтроки + 3, 3).Текст = Товар;
......
КонецЦикла;
Таб.Показать();
Этот способ используется в основном для создания универсальных отчетов, для которых невозможно определить заранее их внешний вид. Заметим, что такой способ является наиболее трудоемким с точки зрения написания алгоритма.
Во всех описанных способах основным содержанием ячеек таблицы является текст. При заполнении ячеек все данные преобразуются к текстовому виду. Кроме того, у ячейки может заполняться значение расшифровки. Это дополнительная возможность, которая никак не влияет на внешний вид таблицы при просмотре и печати, а используется для создания связанных отчетов и открытия различных объектов, отображаемых в отчете. При просмотре сформированного отчета в режиме «только просмотр», при подведении курсора к ячейке, у которой заполнено значение расшифровки, курсор принимает форму крестика с лупой и при двойном щелчке мышью или нажатии клавиши <Enter> выполняется отработка значения расшифровки.
Стандартный механизм расшифровки позволяет открыть объект (документ, элемент справочника, счет). Кроме того, использование специальной предопределенной процедуры позволяет определить в модуле формы специальные действия по отработки расшифровки, например построение детализирующего отчета.
Заполнение значения расшифровки при включении секций из исходной таблицы выполняется автоматическим вычислением значения выражения указанного в поле «Расшифровка» закладки «Текст» свойств ячейки. При использовании двух других описанных способов значение расшифровки может быть заполнено с помощью метода Расшифровка объекта типа «ОбластьТаблицы».
Заметим, что указанием "#" в поле «Расшифровка» закладки «Текст» или параметра метода Расшифровка можно включить режим, при котором расшифровка будет действовать на всю строку таблицы, что позволит избежать Дублирования значений для нескольких ячеек и, тем самым, избежать излиш-иих затрат времени при формировании отчета на вычисление выражений расшифровки.
Описанный выше способ заполнения табличного документа созданного функцией СоздатьОбъект открывает табличный документ в отдельном окне при использовании метода Показать. Кроме того, при настройке формы отчета (обработки), существует возможность табличный документ разместить непосредственно в форме. Для этого в диалоге, вызываемом пунктом «Свойства формы» меню «Действия» в параметре «Использовать таблицу» выбирается вариант «Пустую». В этом случае при открытии формы непосредственно в ней размещается табличный документ. Он может заполняться так же, как и табличный документ, созданный функцией СоздатьОбъект. Для доступа к такой таблице используется атрибут контекста формы отчета (обработки) Таблица.
Кроме описанного использования табличного документа для вывода сформированных печатных форм, существует возможность использования табличного документа в специальном режиме для ввода данных. Этот режим доступен только в формах отчета (обработки). Данный режим использования табличного документа включается через свойства формы (вызов свойств формы выполняется из меню «Действия» пунктом «Свойства формы» в параметре «Использовать таблицу» выбирается вариант «Для ввода данных»).
Режим ввода данных позволяет совместить в одной форме отчета (обработки) диалог формы вместе с табличным документом или вовсе заменить диалог табличным документом. Этот режим предполагает обязательное наличие созданной в форме отчета (обработки) таблицы, которая выбирается в свойствах формы, как используемая для ввода данных. В этом режиме в свойствах ячеек табличного документа появляется дополнительная закладка, на которой определяется тип данных хранимых ячейкой, аналогично элементу диалога формы. Для ячеек, в которых предполагается вводить данные, в закладке «Текст» выключается признак «Защита». При открытии формы с установленным свойством использование таблицы для ввода данных, указанная таблица размещается в окне формы и пользователю предоставляется возможность интерактивно вводить значения ячеек, предназначенных для ввода, аналогично вводу в поля диалога.
Работа в режиме ввода данных имеет ряд особенностей с точки зрения обращения к таблице средствами встроенного языка. Прежде всего, доступ к используемой для ввода данных таблице в модуле формы отчета (обработки) осуществляется с помощью ключевого слова "Таблица". Кроме того, в модуле формы возможно непосредственное обращение к значениям именованных ячеек таблицы по их именам. При обращении к области таблицы, используемой в режиме ввода данных, кроме обычных атрибутов используется атрибут "Значение", также предоставляющий доступ к значению ячейки. При этом тип значения определяется типом, выбранным в закладке свойств ячейки «Данные».
Для таблицы, используемой для ввода, в свойствах ячеек данных задаются-формулы. Для ячеек, предназначенных для ввода, формула выполняется после ввода значений, как у реквизитов диалога и используется обычно для вызова процедуры заполнения других ячеек. У ячеек имеющих признак «Защита» формула является выражением и вычисляет собственно значение ячейки как у элементов диалога типа «Текст».
Применение табличного документа для ввода данных используется в специальных случаях, например, когда необходимо ввести большое количество данных или необходимо, чтобы форма ввода была оформлена с использованием разнообразных шрифтов, рамок, картинок и т. п.
Работа с Таблицами
Атрибуты и методы объекта «СекцияТаблицы»
<ИмяОбласти>
Область
Атрибуты и методы объекта «ОбластьТаблицы»
Текст
Расшифровка
Объединить
Шрифт
РазмерШрифта
Полужирный
Курсив
Подчеркнутый
ВертикальноеПоложение
ГоризонтальноеПоложение
Контроль
РамкаСверху
РамкаСнизу
РамкаСлева
РамкаСправа
Рамка
РамкаОбвести
ЦветФона
ЦветРамки
ЦветТекста
ВысотаСтроки
ШиринаСтолбца
Атрибуты и методы таблицы в режиме ввода данных
<ИмяОбласти>
АктивнаяОбласть
Выгрузить
Загрузить
Атрибуты и методы области таблицы в режиме ввода данных
Значение
Формат
УстановитьТип
НазначитьТип
Доступность
Редактирование
Системные предопределенные процедуры работы с таблицами
ОбработкаЯчейкиТаблицы
ПриВыбореЯчейкиТаблицы
Работа с Текстом
Контекст работы с текстом
Методы текста
КоличествоСтрок
ПолучитьСтроку
Открыть
Шаблон
ФиксШаблон
ВставитьСтроку
ДобавитьСтроку
ЗаменитьСтроку
УдалитьСтроку
ТолькоПросмотр
Показать
Очистить
КодоваяСтраница
Записать
Для работы с текстами в системе используется специальный агрегатный тип данных — «Текст». Механизм работы с текстами предназначен для формирования отчетов в текстовом виде, а также для обмена информацией с другими программами посредством текстовых файлов. Средства языка имеют возможность не только вывода строк в текстовые файлы, но и считывания имеющихся файлов с последующим разбором его по строкам.