ПросмотрИстории
Установить список периодических реквизитов, просмотр истории которых допускается.
Синтаксис:
ПросмотрИстории(<СписокРеквизитов>)
Англоязычный синоним:
ViewHistory
Параметры:
<СписокРеквизитов> |
Строка со списком идентификаторов (через запятую) тех реквизитов, просмотр истории которых допускается. |
Возвращаемое значение:
Текущий (на момент до вызова метода) список реквизитов, просмотр истории которых допускается просмор истории.
Описание:
Метод ПросмотрИстории позволяет установить список реквизитов для которых допускается просмор истории .
Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.
Пример:
Процедура ПриОткрытии()
ПросмотрИстории("Оклад, Тариф, Подразделение");
КонецПроцедуры
Пров
Обращение к данным проводки по номеру.
Синтаксис:
Пров(<НомерПроводки>, <НомерКорреспонденции>)
Англоязычный синоним:
Entry
Параметры:
<НомерПроводки> |
Необязатальный параметр. Число — номер проводки в операции. Если параметр не задан, то используется текущая проводка. |
<НомерКорреспонденции> |
Необязатальный параметр. Число — номер корреспонденции в проводке. Параметр имеет смысл, если указан параметр <НомерКорреспонденции>. |
Возвращаемое значение:
Ссылка на указанную проводку.
Описание:
Метод Пров является специальным методом, позволяющим обратиться непосредственно к данным проводки операции по номеру, без установки текущей проводки. Возвращаемое методом значение является ссылкой на проводку. Оно не может использоваться как значение, а предназначено только для доступа к атрибутам проводки. В основном метод Пров имеет смысл применять в формулах типовых операций.
Метод Пров позволяет обратится к атрибутам проводки Сумма, СуммаВал, Количество, Валюта, Дебет, Кредит, <Реквизит>.
Пример:
Опер = СоздатьОбъект("Операция");
Опер.НайтиОперацию(ВыбрДокумент);
Сообщить(Пров(2, 3).Дебет.Счет);
Проведен
Возвратить флаг проводки документа.
Синтаксис:
Проведен()
Англоязычный синоним:
IsTransacted
Возвращаемое значение:
Числовое значение: 1 — если документ проведен, 0 — если документ не проведен.
Описание:
Метод Проведен позволяет проверить сам факт проведения документа.
Пример:
Процедура ПолучитьПроведенные()
Док = СоздатьОбъект("Документ");
// Откроем выборку документов
Док.ВыбратьДокументы(ДатаНачала, ДатаКонца);
// Цикл выбора документов
Пока Док.ПолучитьДокумент() > 0 Цикл
Если Док.Проведен() > 0 Тогда
// для проведенных документов выведем сообщение
Сообщить(Строка(Док.Вид())+" № "+Док.НомерДок+" от "+Док.ДатаДок);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Проверить
Проверяет, является ли последовательность непрерывной от ГП до заданного документа.
Синтаксис:
Проверить(<Докум>)
Англоязычный синоним:
Validate
Параметры:
<Докум> |
Выражение типа «дата», «документ» или «позиция документа», от которой проверяется непрерывность последовательности. |
Возвращаемое значение:
Число: 1 если последовательность непрерывна; 0 если есть проведенные документы между ГП и документом.
Описание:
Метод Проверить проверяет, есть ли между ГП и данной точкой проведенные документы входящие в даную последовательность (т. е. является ли последовательность непрерывной от ГП до этой точки).
Пример:
Если Последовательность.УправленческийУчет.Проверить(Док) = 1 Тогда
Последовательность.УправленческийУчет.Установить(Док);
КонецЕсли;
This site is hosted for FREE on VirtualAve -- yours can be, too! Click here for more information.
ПроверитьПроводку
Проверить проводку на соответствие корректным проводкам.
Синтаксис:
ПроверитьПроводку()
Англоязычный синоним:
CheckEntry
Возвращаемое значение:
Число: 1 — проводка соответствует корректным проводкам; 0 — не соответствует.
Описание:
Метод ПроверитьПроводку проверяет проводку на соответствие корректным проводкам.
Пример:
Опер = СоздатьОбъект("Операция");
Опер.НайтиОперацию(ВыбрДок);
Пока Опер.КоличествоПроводок() > 0 Цикл
Опер.ПолучитьПроводкуПоНомеру(1);
Если Опер.ПроверитьПроводку() = 0 Тогда
Опер.УдалитьПроводку();
КонецЕсли;
КонецЦикла;
Опер.Записать();
Провести
Выполнить проведение документа.
Синтаксис:
Провести(<Режим>, <3нач>)
Англоязычный синоним:
MakeActions
Параметры:
<Режим> |
Необязательный параметр. Числовое выражение: 0 — проводить документ без сдвига ТА; 1 — проводить непроведенный документ реальным временем (со сдвигом ТА); 2 — перепроводить проведенный документ реальным временем (со сдвигом ТА); 3 —проводить любой (непроведенный, проведенный) документ реальным временем (со сдвигом ТА). Значение по умолчанию — 0. Данный параметр устанавливает режим проведения документа после ТА. Этот метод относится к случаю проведения документа в пределах даты, в которой находится ТА. Дело в том, что при записи документа, документ кроме даты получает еще и время документа. В многопользовательском режиме часто возникает ситуация, когда в момент проведения документа, он уже оказывается не последним в потоке проводимых документов (провели документ с другого рабочего места), в этом случае система 1С:Предприятие дает на выбор два варианта проведения: провести документ тем временем, каким он был записан, т. е. фактически задним временем (до ТА); изменить время документа в рамках текущей даты, чтобы документ стал самым последним и проводился в потоке, т. е. в ТА. |
<3нач> |
Необязательный параметр. Выражение произвольного типа. Значение данного параметра будет передано системой в качестве параметра при запуске предопределенной процедуры ОбработкаПроведения. Использовать данное значение можно, например, для того, чтобы в процедуре ОбработкаПроведения правильно отработать режим проведения, т. к. это программный, а не интерактивный и не групповой (см. ГрупповаяОбработка) способ проведения. По умолчанию передается пустое значение. |
Возвращаемое значение:
Число: 1 — проведение документа завершено успешно; 0 — проведение документа не выполнено.
Описание:
Метод Провести запускает процедуру проведения документа. Возвращаемое значение можно использовать, например, в качестве условия принятия решения при завершении обработки транзакции.
Замечание. Данный метод нельзя использовать в теле предопределенной процедуры ОбработкаПроведения.
Замечание. Если этот метод применяется в Модуле формы документа непосредственно к документу локального контекста, то данный метод отрабатывает те же действия, как интерактивное нажатие пользователем кнопки с формулой "#Провести". В этом случае, если параметр <Режим> опущен, то документ проводится в режиме, соответствующем установкам системы меню «Сервис» - «Параметры».
Пример:
Док.СоздатьОбъект("Документ.Заказ");
Док.АвтоВремяТекущее();
Док.Новый();
Док.УстановитьНовыйНомер("Прг-");
Док.Клиент = Константа.ОсновнойКлиент;
Док.Количество = 5;
Док.Записать();
Док.Провести(1, "Программно");
См. также: ОбработкаПроведения, ГруппроваяОбработка
ПроводитьПослеТА
Установить режим проведения документа после ТА.
Синтаксис:
ПроводитьПослеТА(<ФлагДляНеПровДокумента>, <ФлагДляПровДокумента>)
Англоязычный синоним:
PostingAfterTA
Параметры:
<ФлагДляНеПровДокумента> |
Режим проведения документа после ТА. Число: -1 (минус единица) — проводить документ всегда задним числом; 0 — при проведении запрашивать режим проведения документа; 1 — проводить документ в реальном потоке времени, т. е. при проведении время документа автоматически устанавливается на время после ТА. |
<ФлагДляПровДокумента> |
Режим перепроведения документа после ТА. Числовое выражение: -1 (минус единица) — проводить документ всегда задним числом; 1 — проводить документ в потоке. |
Возвращаемое значение:
Текущее значение режим перепроведения документа в зависимости от про-веденности.
Описание:
Метод ПроводитьПослеТА устанавливает режим проведения документа после ТА. Этот метод относится к случаю проведения документа в пределах даты, в которой находится ТА. Дело в том, что при записи документа, документ кроме даты получает еще и время документа. В многопользовательском режиме часто возникает ситуация, когда в момент проведения документа, он уже оказывается не последним в потоке проводимых документов (провели документ с другого рабочего места), в этом случае система ЮПредприятие дает на выбор три варианта проведения:
провести документ тем временем, каким он был записан, т. е. фактически задним временем (до ТА);
изменить время документа (в рамках текущей даты), чтобы документ стал самым последним и проводился в потоке, т. е. после ТА;
запросить у пользователя, в каком режиме провести документ.
Данный метод доступен только в контексте Модуле формы документа (см. «Виды программных модулей»). Действие данного метода относится только к текущему документу, который доступен в локальном контексте Модуля формы документа.
Пример:
Процедура ПриОткрытии()
ПроводитьПослеТА(1, 1);
КонецПроцедуры
ПроводкаВыбрана
Определяет выбрана ли проводка операции.
Синтаксис:
ПроводкаВыбрана()
Англоязычный синоним:
EntrySelected
Возвращаемое значение:
Число: 1 — проводка выбрана; 0 — проводка не выбрана.
Описание:
Метод ПроводкаВыбрана позволяет определить, спозиционирована ли в настоящий момент некоторая проводка в операции или нет, то есть можно ли обращаться к атрибутам и методам проводки.
Пример:
Опер = СоздатьОбъект("Операция");
Опер.НайтиОперацию(ВыбрДокумент);
Опер.ВыбратьПроводки();
Опер.ПолучитьПроводку();
Если Опер.ПроводкаВыбрана() = 0 Тогда
Сообщить("Нет проводок в операции");
КонецЕсли;
ПустаяСтрока
Проверить строку на наличие значащих символов.
Синтаксис:
ПустаяСтрока(<Строка>)
Англоязычный синоним:
IsBlankString
Параметры:
<Строка> |
Строковое выражение. |
Возвращаемое значение:
Числовое значение. 1 — пустая строка или только пробелы. 0 — не пустая строка.
Описание:
Функция ПустаяСтрока проверяет переданный параметр <Строка> на наличие значащих символов (любых кроме пробелов) и возвращает число 1, если строка пустая или содержит только пробелы, 0 , если строка не пустая.
Пример:
Если ПустаяСтрока(Буфер) = 1 Тогда
// если Буфер содержит только пробелы, то его удаляем
Буфер = "";
КонецЕсли;
ПустоеЗначение
Проверить значение любого типа.
Синтаксис:
ПустоеЗначение(<3начение>)
Англоязычный синоним:
Empty Value
Параметры:
<3начение> Выражение любого типа данных, значение которого проверяется на «пустое».
Возвращаемое значение:
Функция возвращает числовое значение: 1 — значение пустое; 0 — значение не пустое.
Описание:
Функция ПустоеЗначение определяет, является ли пустым переданное в параметре значение. При этом применяется следующее правило:
- значение неопределенного типа — всегда пустое;
- значение типа «строка» проверяется как в методе ПустаяСтрока;
- значение типа «число» проверяется на равенство нулю;
- значение типа «дата» проверяется на пустое значение;
- значения следующих типов: «справочник», «перечисление», «документ», «счет», «вид субконто», «план счетов», «календарь» проверяются как в методах Выбран для соответствующего типа объекта.
Пример:
Если ПустоеЗначение(Код) = 1 Тогда
Предупреждение("Задайте непустое значение Кода !!!");
КонецЕсли;
РабочаяДата
Установить/получить текущую рабочую дату.
Синтаксис:
РабочаяДата(<Дата>, <РежимСменыРабДаты>)
Англоязычный синоним:
WorkingDate
Параметры:
<Дата> |
Необязательный параметр. Выражение типа «дата». |
<РежимСменыРабДаты> |
Необязательный параметр. Режим автоматической смены рабочей даты в полночь: 0 — не менять; 1 — менять с предупреждением; 2 — менять автоматически без предупреждения. Если параметр не указан, то режим не меняется и действует установка, выбранная в параметрах системы. |
Возвращаемое значение:
Значение текущей рабочей даты (на момент до выполнения функции).
Описание:
При помощи функции РабочаяДата можно установить/получить значение рабочей даты, выбранной в текущем сеансе работы программы (которая может изменяться при помощи главного меню Сервис-Параметры-Общие-РабочаяДата).
Пример:
// оклад сотрудника на текущую рабочую дату
Сотрудник.Оклад.Получить(РабочаяДата());
Работа с индексными файлами
Следует иметь в виду, что одновременно XBase-объект может быть связан не более, чем с одним индексным файлом. Все изменения в базе данных, сделанные в сеансе работы с одним индексным файлом, никак не отражаются на остальных. Поэтому не рекомендуется иметь более одного индексного файла для БД. В противном случае, после каждого открытия БД с индексным файлом, отличным от открытого в предыдущем сеансе работы с базой, следует производить переиндексацию (обновление содержимого индексного файла).
Работа с основными итогами
Основными итогами называются остатки и обороты по счетам и объектам аналитического учета, а также обороты между счетами за любой рассчитанный период с детализацией до месяца.
В пункте меню «Управление бухгалтерскими итогами» устанавливается последний рассчитанный период. В режиме работы с основными итогами обращение может выполняться только к итогам по рассчитанный период включительно.
В этом режиме работают два вида методов — получение остатков и оборотов, а также установка периода за который выдаются итоги.
По умолчанию используется период, выбранный пользователем интерактивно через меню «Сервис»-«Параметры»- «Бухгалтерские итоги».
Работа с результатами запроса
Атрибуты и методы, описанные в этом разделе, могут использоваться для обработки результатов работы метода ВыполнитьЗапрос.
Работа с временными итогами
Для переключения в режим работы с временными итогами следует выполнить метод Рассчитать. После этого объект позволяет получать остатки и обороты по счетам за произвольный период, заданный при вызове метода Рассчитать.
Для получения временных итогов используются теже методы, что и для получения основных итогов (СНД, СНК , СКД , СКК, ДО, КО, ОБ и другие). Параметры метода Рассчитать определяют итоги, которые будут доступны для получения этими методами.
Работа системы 1С:Предприятие в качестве DDE сервера
Другим способом обращения к данным 1С:Предприятие а из внешних программ является режим DDE. Основное преимущество данного режима является динамическое обновление получаемых из 1С:Предприятие данных.
Система 1С:Предприятие является DDE сервером и предоставляет свой сервис в получении данных и уведомлении DDE клиента об их изменении.
В качестве DDE сервера 1С:Предприятие может возвращать значение некоторого выражения, записанного на встроенном языке 1С:Предприятие. Возвращаемое значение является строкой. Для того, чтобы рассматривать результат выражения в качестве числа или даты, например в ячейке MS Excel, может потребоваться задание формата значения.
Для доступа к 1С:Предприятие посредством DDE следует использовать DDE-объект с именем 1CV7|DDE.
Пример:
* Ниже приведены примеры размещения в ячейках MS Excel DDE связей с программой 1С:Предприятие. Первое выражение в примере обращается к стандартной функции встроенного языка 1С:Предприятие. Второе выражение в примере обращается к функции, записанной в глобальном модуле конфигурации программы 1С:Предприятие.
='1CV7'|DDE!'РабочаяДата()'
='1CV7'|DDE!'СуммаПоНарядам()'
Замечание 1: Для правильной интерпретации значения выражения в качестве числа или даты в MS Excel, нужно в операционной системе установить соответствующий формат представления даты и числа, как он принят в 1С:Предприятие.
Замечание 2: Не рекомендуется обращаться посредством DDE к функциям 1С:Предприятие, которые могут выполняться продолжительное время. Это связано с тем, что обращение к данной функции будет выполняться достаточно часто при обновлениях DDE связей.
This site is hosted for FREE on VirtualAve -- yours can be, too! Click here for more information.
Работа системы 1С:Предприятие в качестве OLE Automation сервера
Система 1С:Предприятие может быть запущена внешним приложением в качестве OLE Automation сервера и предоставляет доступ ко всем атрибутам и методам своего глобального контекста (см. «Контекст выполнения программного модуля»). Кроме того, OLE-сервер 1С:Предприятие имеет дополнительные методы, с помощью которых можно выполнить последовательность операторов или вычислить выражение, заданное на встроенном языке 1С:Предприятие.
Для запуска системы 1С:Предприятие в качестве OLE Automation сервера из внешнего приложения, выполняется следующая последовательность действий:
создается объект с OLE идентификатором:
o V1СEnterprise.Application — версия независимый ключ;
o V77.Application — версия зависимый ключ;
o V77S.Application — версия зависимый ключ, SQL версия;
o V77L.Application — версия зависимый ключ, локальная версия;
o V77M.Application — версия зависимый ключ, сетевая версия.
выполняется инициализация системы 1С:Предприятие методом Initialize.
вызываются атрибуты и методы системы 1С:Предприятие как OLE Automation сервера
Замечание 1: Поскольку программа 1С:Предприятие является одновременно OLE Automation сервером и OLE Automation клиентом, то возможно из 1С:Предприятие обращаться к другой копии 1С:Предприятие (например, к другой конфигурации) для обмена данными. В основном все современные программные продукты поддерживают механизм OLE Automation, это касается в частности MS Office, MS FoxPro и приложений на них написанных, DAO и т. п., поэтому программа 1С:Предприятие может полностью интегрироваться с ними.
Не локализованные версии внешних программ,
Замечание 2: Не локализованные версии внешних программ, обращающихся к программе 1С:Предприятие посредством OLE Automation, могут неправильно интерпретировать русские идентификаторы объектов агрегатных типов данных, например, реквизитов справочников. Данное замечание не относится к продуктам MS Office и к программам, использующим в качестве языка обращения к OLE объектам Microsoft Visual Basic. Рекомендуется использовать локализованные версии программных продуктов, либо в конфигурации использовать идентификаторы без символов кириллицы. Для обращения к атрибутам и методам агрегатных типов данных системы 1С:Предприятие из внешних приложений рекомендуется использовать их англоязычные синонимы.
Замечание 3: Все созданные объекты OLE Automation существуют до тех пор, пока существует переменная, которая содержит значение данного объекта. Следовательно, сама программа 1С:Предприятие, выступающая в качестве объекта OLE Automation в другой программе, будет находиться в памяти компьютера до удаления или изменения значения переменной, содержащей ее в качестве объекта.
Работа в режиме запроса
Для получения большого количества итогов в различных разрезах объект «Бухгалтерские Итоги» переключается в режим работы с запросом. Для переключения в этот режим вызывается метод ВыполнитьЗапрос в параметрах которого, а также дополнительными методами устанавливается состав итогов, которые будут получены запросом. Выполнение данного метода осуществляет выборку данных и их предварительную обработку.
После выполнения запроса с помощью специального набора методов объекта «Бухгалтерские Итоги» осуществляется получение итогов, полученных данным запросом. К этим методам относятся методы обхода итогов в различных разрезах (сформированных запросом) и методы для получения собственно итогов. Кроме того специальный набор атрибутов объекта «Бухгалтерские Итоги» позволяет обращаться процессе обхода результатов запроса к значениям полученных группировок.
Рамка
Установить рамки всех ячеек области.
Синтаксис:
Рамка(<РамкаСлева>, <РамкаСверху>, <РамкаСправа>, <РамкаСнизу>)
Англоязычный синоним:
Border
Параметры:
<РамкаСлева> <РамкаСверху> <РамкаСправа> <РамкаСнизу> |
Необязательные параметры. Число: 0 — нет; 1 — очень тонкая; 2 — тонкая точечная; 3 — тонкая сплошная; 4 — средняя сплошная; 5 — толстая сплошная; 6 — двойная; 7 — тонкая средний пунктир; 8 — тонкая длинный пунктир; 9 — толстая пунктир. Если какой либо параметр опущен, то соответствующая рамка ячеек области не изменяется. |
Описание:
Метод Рамка устанавливает рамки всех ячеек области.
Пример:
Таб = СоздатьОбъект("Таблица");
Таб.Открыть("tabl_l.mxl");
ВыбОбласть = Таб.Область("R8C4");
ВыбОбласть.Шрифт("Arial");
ВыбОбласть.РазмерШрифта(10 );
ВыбОбласть.Подчеркнутый(1);
ВыбОбласть.ГоризонтальноеПоложение(3);
ВыбОбласть.Контроль(4);
ВыбОбласть.Рамка(0, 3, 3, 3);
РамкаОбвести
Установить рамки по краям области.
Синтаксис:
РамкаОбвести(<Рамка Слева>, <РамкаСверху>, <РамкаСправа>, <РамкаСнизу>)
днглоязычный синоним:
BorderOutline
Параметры:
<РамкаСлева> <РамкаСверху> <РамкаСправа> <РамкаСнизу> |
Необязательные параметры. Число: 0 — нет; 1 — очень тонкая; 2 — тонкая точечная; 3 — тонкая сплошная; 4 — средняя сплошная; 5 — толстая сплошная; 6 — двойная; 7 — тонкая средний пунктир; 8 — тонкая длинный пунктир; 9 — толстая пунктир. Если какой либо параметр опущен, то соответствующая рамка ячеек области не изменяется. |
Описание:
Метод РамкаОбвести устанавливает рамки по краям области.
Пример:
Таб = СоздатьОбъект("Таблица");
Таб.Открыть("tabl_l.mxl");
ВыбОбласть = Таб.Область("R8C4");
ВыбОбласть.Шрифт("Arial");
ВыбОбласть.РазмерШрифта(10);
ВыбОбласть.Подчеркнутый(1);
ВыбОбласть.ГоризонтальноеПоложение(3);
ВыбОбласть.Контроль(4);
ВыбОбласть.РамкаОбвести(0, 3, 3, 3);
РамкаСлева
Получить/установить рамку слева области.
Синтаксис:
РамкаСлева(<Рамка>)
Англоязычный синоним:
LeftBorder
Параметры:
<Рамка> |
Необязательный параметр. Число: 0 — нет; 1 — очень тонкая; 2 — тонкая точечная; 3 — тонкая сплошная; 4 — средняя сплошная; 5 — толстая сплошная; 6 — двойная; 7 — тонкая средний пунктир; 8 — тонкая длинный пунктир; 9 — толстая пунктир. Если параметр опущен, то рамка слева области не изменяется. |
Возвращаемое значение:
Рамка слева до исполнения метода.
Описание:
Метод РамкаСлева устанавливает рамку слева области.
Пример:
Таб = СоздатьОбъект("Таблица");
Таб.Открыть("tabl_l.mxl");
ВыбОбласть = Таб.Область("R8C4");
ВыбОбласть.Шрифт("Arial");
ВыбОбласть.РазмерШрифта(10);
ВыбОбласть.Подчеркнутый(1);
ВыбОбласть.ГоризонтальноеПоложение(3);
ВыбОбласть.Контроль(4);
ВыбОбласть.РамкаСлева(3);
РамкаСнизу
Получить/установить рамку снизу области.
Синтаксис:
РамкаСнизу(<Рамка>)
Англоязычный синоним:
BottomBorder
Параметры:
<Рамка> |
Необязательный параметр. Число: 0 — нет; 1 — очень тонкая; 2 — тонкая точечная; 3 — тонкая сплошная; 4 — средняя сплошная; 5 — толстая сплошная; 6 — двойная; 7 — тонкая средний пунктир; 8 — тонкая длинный пунктир; 9 — толстая пунктир. Если параметр опущен, то рамка снизу области не изменяется. |
Возвращаемое значение:
Рамка снизу до исполнения метода.
Описание:
Метод РамкаСнизу устанавливает рамку снизу области.
Пример:
Таб = СоздатьОбъект("Таблица");
Таб.Открыть("tabl_l.mxl");
ВыбОбласть = Таб.Область("R8C4");
ВыбОбласть.Шрифт("Arial");
ВыбОбласть.РазмерШрифта(10);
ВыбОбласть.Подчеркнутый(1);
ВыбОбласть.ГоризонтальноеПоложение(3);
ВыбОбласть.Контроль(4);
ВыбОбласть.РамкаСнизу(3 );
РамкаСправа
Получить/установить рамку справа области.
Синтаксис:
РамкаСправа(<Рамка>)
Англоязычный синоним:
RightBorder
Параметры:
<Рамка> |
Необязательный параметр. Число: 0 — нет; 1 — очень тонкая; 2 — тонкая точечная; 3 — тонкая сплошная; 4 — средняя сплошная; 5 — толстая сплошная; 6 — двойная; 7 — тонкая средний пунктир; 8 — тонкая длинный пунктир; 9 — толстая пунктир. Если параметр опущен, то рамка справа области не изменяется. |
Возвращаемое значение:
Рамка справа до исполнения метода.
Описание:
Метод РамкаСправа устанавливает рамку справа области.
Пример:
Таб = СоздатьОбъект("Таблица");
Таб.Открыть("tabl_l.mxl");
ВыбОбласть = Таб.Область("R8C4");
ВыбОбласть.Шрифт("Arial");
ВыбОбласть.РазмерШрифта(10);
ВыбОбласть.Подчеркнутый(1);
ВыбОбласть.ГоризонтальноеПоложение(3);
ВыбОбласть.Контроль(4);
ВыбОбласть.РамкаСправа(3);
РамкаСверху
Получить/установить рамку сверху области.
Синтаксис:
РамкаСверху(<Рамка>)
Англоязычный синоним:
TopBorder
Параметры:
<Рамка> |
Необязательный параметр. Число: 0 — нет; 1 — очень тонкая; 2 — тонкая точечная; 3 — тонкая сплошная; 4 — средняя сплошная; 5 — толстая сплошная; 6 — двойная; 7 — тонкая средний пунктир; 8 — тонкая длинный пунктир; 9 — толстая пунктир. Если параметр опущен, то рамка сверху области не изменяется. |
Возвращаемое значение:
Рамка сверху до исполнения метода.
Описание:
Метод РамкаС верху устанавливает рамку сверху области.
Пример:
Таб = СоздатьОбъект("Таблица");
Таб.Открыть("tabl_l.mxl");
ВыбОбласть = Таб.Область("R8C4");
ВыбОбласть.Шрифт("Arial");
ВыбОбласть.РазмерШрифта(10);
ВыбОбласть.Подчеркнутый(1);
ВыбОбласть.ГоризонтальноеПоложение(3);
ВыбОбласть.Контроль(4);
ВыбОбласть.РамкаСверху(3);
Расход
Флаг движения регистра «расход».
Синтаксис:
Расход
Англоязычный синоним:
Outcome
Описание:
Атрибут Расход содержит значение флага записи движения регистра и используется только при обращении к существующим записям движений регистров. Данный атрибут только для чтения. Атрибут Расход может принимать числовое значение 1 — если текущее движение регистра расход, 0 — если нет.
Данный атрибут не имеет смысла для оборотных регистров.
Пример:
Рег1 = СоздатьОбъект("Регистр.Взаиморасчеты");
Если Режим = "Подробно" Тогда
Рег1.УстановитьФильтр(Клиент);
Рег1.ВыбратьДвижения(ДатаНачало, );
Пока Рег1.ПолучитьДвижение() > 0 Цикл
Если Число(Рег1.Клиент.Код) <> Число(Запрос.Клиент.Код) Тогда
Продолжить;
КонецЕсли;
Док = Рег1.ТекущийДокумент();
Дв_Баз_Сум = Рег1.СуммаБазовая;
Дв_Вал_Сум = Рег1.СуммаВалютная;
Если Рег1.Расход = 1 Тогда
Таб.ВывестиСекцию("Расход");
Иначе
Таб.ВывестиСекцию("Приход");
КонецЕсли;
КонецЦикла;
КонецЕсли;
РасположениеФайла
Определить, где располагается данный внешний отчет.
Синтаксис:
РасположениеФайла(<Путь>, <Имя>)
Англоязычный синоним:
FilePath
Параметры:
<Путь> |
Идентификатор переменной, куда метод возвращает путь к файлу, где располагается данный внешний отчет. |
<Имя> |
Идентификатор переменной, куда метод возвращает имя файла, где располагается данный внешний отчет. |
Возвращаемое значение:
Строковое значение полного имени (вместе с путем) файла, где располагается данный внешний отчет.
Описание:
Метод РасположениеФайла позволяет узнать, где располагается данный внешний отчет.
Замечание. Данный метод следует использовать только в модуле формы внешнего отчета.
Пример:
Имя = "";
Путь = "";
ПолноеИмя = РасположениеФайла(Путь, Имя);
Рассчитана
Признак того, что запись рассчитана.
Синтаксис:
Рассчитана
Англоязычный синоним:
Calculated
Описание:
Атрибут типа «число», принимает два значения: 1 — для рассчитанных записей журнала расчетов и 0 — для нерассчитанных записей.
Запись журнала расчетов становится рассчитанной в результате удачного выполнения одной из соответствующих команд меню «Действия» или при выполнении методов журнала расчетов Рассчитать, ВыпролнитьРасчет.
Атрибут Рассчитана предназначен только для чтения.
Пример:
// Перед выводом отчета проверим, все ли записи рассчитаны
ЖрнЗарплата = СоздатьОбъект("ЖурналРасчетов.Зарплата");
ЖрнЗарплата.ВыбратьПериодПоОбъекту(Сотрудник, ДатаОтчета);
// признак нерассчитанности
ПлохоДело=0;
Пока ЖрнЗарплата.ПолучитьЗапись() = 1 Цикл
Если ЖрнЗарплата.Рассчитана = 0 Тогда
ПолохоДело = 1;
Прервать;
КонецЕсли;
КонецЦикла;
Если ПлохоДело = 1 Тогда
Предупреждение("Не проведен полный расчет сотрудника!
| Формирование отчета невозможно");
Возврат;
КонецЕсли;
// продолжим формирование документа
См. также: Исправлена, Фиксирована
Рассчитать
Расчет временных итогов.
Синтаксис:
Рассчитать(<НачалоПериода>, <КонецПериода> , <ФильтрПоСчетам>, <ТолькоСинтетика> , <ПланСчетов>, <РазделительУчета>)
Англоязычный синоним:
Calculate
Параметры:
<НачалоПериода> Необязательный параметр. Выражение типа дата, документ или позиция документа начала периода расчета временных итогов. Если этот параметр не указан, будут вычисляться конечные сальдо на момент, указанный в параметре <КонецПериода>.
<КонецПериода> Необязательный параметр. Выражение типа дата, документ или позиция документа конца периода расчета временных итогов. Если этот параметр не указан, будут вычисляться начальные сальдо на момент, указанный в параметре <НачалоПериода>.
<ФильтрП, рСчетам> Необязательный параметр. Счета, для которых
будет выполняться временный расчет итогов. Задается значением типа «Счет» или объектом типа «СписокЗначений», содержащим значения типа «Счет», либо строкой содержащей список кодов счетов, разделенных символом ", " или ";".
<ТолькоСинтетика> Необязательный параметр:
1 — рассчитывать сальдо только по счетам;
0 — или не указан — рассчитывать сальдо по счетам и по субконто.
<ПланСчетов> Необязательный параметр. Значение типа «План Счетов». Ограничение расчета одним планом счетов.
<РазделительУчета> Необязательный параметр. Значение разделителя учета. Ограничение расчета одним значением разделителя учета.
Возвращаемое значение:
Число: 1 — расчет выполнен; 0 — расчет не выполнен.
Описание:
Метод Рассчитать выполняет расчет итогов за период, задаваемый параметрами <НачалоПериода> и <КонецПериода>. Метод задает период, за который будут возвращать остатки и обороты по счетам функции СНД, СКД, снк, скк, до, ко, ОБ и другие.
Если из двух параметров периода задан только параметр начала периода, метод Рассчитать вычислит начальные остатки — без оборотов. Наоборот, если задан параметр конца периода, будут вычисленные конечные остатки.
Параметр <ФильтрПоСчетам> позволяет рассчитать итоги только для конкретного счета или для группы счетов.
Установка параметра <ТолькоСинтетика> в 1 задает выполнение расчета итогов только по счетам, без субконто. В этом случае функции для получения развернутого сальдо по субконто СНДРС, СКДРС, СНКРС, СККРС для счетов, по которым ведется аналитический учет по субконто будут возвращать 0, даже если реально в информационной базе есть остатки по этим счетам.
Если параметр <ТолькоСинтетика> не указан или равен 0, временный расчет итогов будет выполнен и по счетам, и по субконто.
При использовании методов ВыполнитьЗапрос и Рассчитать возможно указание только одной границы интервала. В этом случае будут рассчитываться только остатки на эту границу.
Пример:
БухИтоги.Рассчитать(ДатаНач, ДатаКон);
Рассчитать
Провести расчет текущей записи.
Синтаксис:
Рассчитать()
Англоязычный синоним:
Calculate
Описание:
Выполняет расчет текущей строки журнала расчетов. Фактически, выполняет модуль вида расчета текущей строки журнала расчетов, точнее — предопределенную процедуру этого модуля ПровестиРасчет. Как правило, применяется в цикле, выполняющем перебор записей журнала расчетов при помощи метода ПолучитьЗапись. Расчет записей прошлых расчетных периодов не производится.
При расчете фиксированных записей текущего расчетного периода, модуль вида расчета выполняется, но изменение результата расчета не производится.
Метод работает только для переменных, созданных функцией СоздатьОбъект.
Пример:
// Рассчитаем все основные средства категории определенного типа
ЖР = СоздатьОбъект("ЖурналРасчетов.Амортизация");
ЖР.ВыбратьПериод(ЖР.НачалоТекущегоПериода());
Пока ЖР.ПолучитьЗапись() > 0 Цикл
Если ЖР.Объект.Тип = Тип;
ЖР.Рассчитать();
КонецЕсли;
КонецЦикла;
См. также: ВыполнитьРасчет
РассчитатьРегистрыНа
Рассчитать все временные регистры на начало события.
Синтаксис:
РассчитатьРегистрыНа(<ГраницаРасчета>, <ГрафаОтбора>)
Англоязычный синоним:
CalcRegsOnBeg
Параметры:
<ГраницаРасчета> |
Выражение со значением типа дата, документ или позиция документа. |
<ГpaфaOтбopa> |
Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора. "*" — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора. |
Описание:
Процедура РассчитатьРегистрыНа рассчитывает все регистры, у которых установлен флаг участия во временном расчете (см. ВременныйРасчет), на момент начала события. Если при вызове метода в параметре передана дата, то расчет временных регистров производится на начало указанной даты. Если при вызове метода в параметре передан документ, то расчет временных регистров производится на момент до проведения данного документа.
Применение данной процедур в тексте любого программного модуля непосредственное, т. е. просто имя процедуры с параметрами (без предварительной ссылки на объект).
Пример:
// если итоги не актуальны, то стоимости берем из временного расчета
// регистра УчетРеализации
Рег = СоздатьОбъект("Регистр.УчетРеализации");
Рег.ВременныйРасчет();
РассчитатьРегистрыНа(ТекущийДокумент());
Рег.Товар = Товар;
Рег.Клиент = Клиент;
Рег.ОстаткиПолучить();
ТекОстаток = Рег.ОстатокТовара;
ТекСтоимость = Рег.Стоимость;
ТекПродСтоимость = Рег.ПродСтоимость;
РассчитатьРегистрыНа
Рассчитать все временные регистры на начало события.
Синтаксис:
РассчитатьРегистрыНа(<ГраницаРасчета>, <ГрафаОтбора>)
Англоязычный синоним:
CalcRegsOnBeg
Параметры:
<ГраницаРасчета> |
Выражение со значением типа дата, документ или позиция документа. |
<ГрафаОтбора> |
Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора. "*" — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора. |
Описание:
Процедура РассчитатьРегистрыНа рассчитывает для объекта типа «Регистры» все регистры, у которых установлен флаг участия во временном расчете (см. ВременныйРасчет), на момент начала события. Если при вызове метода в параметре передана дата, то расчет временных регистров производится на начало указанной даты. Если при вызове метода в параметре передан документ, то расчет временных регистров производится на момент до проведения данного документа.
Пример:
// если итоги не актуальны, то стоимости берем из временного расчета
// регистра УчетРеализации
СпецРег = СоздатьОбъект("Регистры");
Рег = СпецРег.УчетРеализации;
Рег.ВременныйРасчет();
СпецРег.РассчитатьРегистрыНа(ТекущийДокумент());
Рег.Товар = Товар;
Рег.Клиент = Клиент;
Рег.ОстаткиПолучить();
ТекОстаток = Рег.ОстатокТовара;
ТекСтоимость = Рег.Стоимость;
ТекПродСтоимость = Рег.ПродСтоимость;
РассчитатьРегистрыПо
Рассчитать все регистры на конец события.
Синтаксис:
РассчитатьРегистрыПо(<ГраницаРасчета>, <ГрафаОтбора>)
Англоязычный синоним:
CalcRegsOnEnd
Параметры:
<ГраницаРасчета> |
Выражение со значением типа дата, документ или позиция документа. |
<ГрафаОтбора> |
Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора. "*" — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора. |
Описание:
Процедура РассчитатьРегистрыПо рассчитывает все регистры, у которых установлен флаг участия во временном расчете (см. ВременныйРасчет), на момент окончания события. Если при вызове метода в параметре передана дата, то расчет временных регистров производится на конец указанной даты. Если при вызове метода в параметре передан документ, то расчет временных регистров производится на момент после проведения данного документа.
Применение данной процедуры в тексте любого программного модуля непосредственное, т. е. просто имя процедуры с параметрами (без предварительной ссылки на объект).
Пример:
// если итоги не актуальны, то стоимости берем из временного расчета
// регистра УчетРеализации
Рег = СоздатьОбъект("Регистр.УчетРеализации");
Рег.ВременныйРасчет();
РассчитатьРегистрыПо(ТекущийДокумент());
Рег.Товар = Товар;
Рег.Клиент = Клиент;
Рег.ОстаткиПолучить();
ТекОстаток = Рег.ОстатокТовара;
ТекСтоимость = Рег.Стоимость;
ТекПродСтоимость = Рег.ПродСтоимость;
РассчитатьРегистрыПо
Рассчитать все регистры на конец события.
Синтаксис:
РассчитатьРегистрыПо(<ГраницаРасчета>, <ГрафаОтбора>)
Англоязычный синоним:
CalcRegsOnEnd
Параметры:
<ГраницаРасчета> |
Выражение со значением типа дата, документ или позиция документа. |
<ГрафаОтбора> |
Необязательный параметр. Строковое выражение — идентификатор графы отбора, как он задан в конфигураторе. Данный параметр устанавливает режим использования определенной графы отбора "*" — автоматический выбор графы отбора. Пустая строка — не использовать графу отбора. По умолчанию устанавливается автоматический выбор графы отбора. |
Описание:
Процедура РассчитатьРегистрыПо рассчитывает для объекта типа «Регистры» все регистры, у которых установлен флаг участия во временном расчете (см. ВременныйРасчет), на момент окончания события. Если при вызове метода в параметре передана дата, то расчет временных регистров производится на конец указанной даты. Если при вызове метода в параметре передан документ, то расчет временных регистров производится на момент после проведения данного документа.
Пример:
// если итоги не актуальны, то стоимости берем из временного расчета
// регистра УчетРеализации
СпецРег = СоздатьОбъект("Регистры");
Рег = СпецРег.УчетРеализации;
Рег.ВременныйРасчет();
СпецРег.РассчитатьРегистрыПо(ТекущийДокумент());
Рег.Товар = Товар;
Рег.Клиент = Клиент;
Рег.ОстаткиПолучить();
ТекОстаток = Рег.ОстатокТовара;
ТекСтоимость = Рег.Стоимость;
ТекПродСтоимость = Рег.ПродСтоимость;
РассчитыватьПриОтменеИсправления
Устанавливает значение флага автоматического расчета записи журнала расчетов при интерактивной отмене ее исправления.
Синтаксис:
РассчитыватьПриОтменеИсправления(<Флаг>)
Англоязычный синоним:
CalculateOnEditCancel
Параметры:
<Флаг> |
Необязательный параметр. Число: 1 — автоматически рассчитывать записи журнала расчетов при интерактивной отмене ее исправления; 0 — не рассчитывать автоматически. |
Возвращаемое значение:
Текущее числовое значение флага (до испольнения метода).
Описание:
Метод РассчитыватьПриОтменеИсправления устанавливает значение флага автоматического расчета записи журнала расчетов при интерактивной отмене ее исправления. По умолчанию форма журнала расчетов всегда открывается со значением флага 0 (не рассчитывать записи журнала расчетов автоматически).
Данный метод доступен только в контексте Модуля формы журнала расчетов (см. «Виды программных модулей»).
Пример:
РассчитыватьПриОтменеИсправления(1);
Расшифровка
Установить расшифровку области.
Синтаксис:
Расшифровка(<Значение>, <ФлагДляВсейСтроки>)
Англоязычный синоним:
Details
Параметры:
<Значение> |
Значение расшифровки области. |
<ФлагДляВсейСтроки> |
Необязательный параметр. Число: 0 — обычный режим; 1 — установить данную расшифровку для всей строки; 2 — не вызывать расшифровку для данной ячейки. Значение по умолчанию — 0. |
Описание:
Метод Расшифровка записывает расшифровку области.
Пример:
Таб = СоздатьОбъект("Таблица");
Таб.Открыть("tabl_l.mxl");
ВыбОбласть = Таб.Область("R8C4");
ВыбОбласть.Расшифровка(ВыбДокумент, 1);
РазделительСтраниц
Содержит строковое значение перевода страницы текста.
Синтаксис:
РазделительСтраниц
Англоязычный синоним:
PageBreak
Описание:
Системная константа РазделительСтраниц содержит строковое значение перевода страницы текста. Данная системная константа применяется для вставки или поиска в тексте строкового значения перевода страницы текста.
Пример:
Выв=СоздатьОбъект("Текст");
Выв.ДобавитьСтроку("Страница 1");
Выв.ДобавитьСтроку(РазделительСтраниц);
Выв.ДобавитьСтроку("Страница 2");
Выв.Показать();
РазделительСтрок
Содержит строковое значение перевода строки текста.
Синтаксис:
РазделительСтрок
Англоязычный синоним:
LineBreak
Описание:
Системная константа РазделительСтрок содержит строковое значение перевода строки текста. Данная системная константа применяется для вставки или поиска в тексте строкового значения перевода строки текста
Пример:
Выв=СоздатьОбъект("Текст");
Выв.ДобавитьСтроку("Страница 1");
Выв.ДобавитьСтроку(РазделительСтрок);
Выв.ДобавитьСтроку("Страница 2");
Выв.Показать();
Разм
Определить размерность массива.
Синтаксис:
Разм(<Имя_массива>)
Англоязычный синоним:
Dim
Параметры:
<Имя_массива> |
Идентификатор массива. |
Возвращаемое значение:
Числовое значение размерности массива.
Описание:
Функция Разм возвращает числовое значение размерности массива переданного в качестве параметра.
Пример:
Перем Массив_для_хранения[10];
Размер = Разм(Массив_для_хранения);
РазмерШрифта
Получить/установить размер шрифта области.
Синтаксис:
РазмерШрифта(<Размер>)
Англоязычный синоним:
FontSize
Параметры:
<Размер> |
Необязательный параметр. Числовое выражение, задающее размер шрифта. Если параметр опущен, то размер шрифта области не изменяется. |
Возвращаемое значение:
Размер шрифта до исполнения метода.
Описание:
Метод РазмерШрифта устанавливает размер шрифта области.
Пример:
Таб = СоздатьОбъект("Таблица");
Таб.Открыть("tabl_l.mxl");
ВыбОбласть = Таб.Область("R8C4");
ВыбОбласть.Шрифт("Arial");
ВыбОбласть.РазмерШрифта(10);
РазмерСписка
Определить размер списка.
Синтаксис:
РазмерСписка()
Англоязычный синоним:
GetListSize
Возвращаемое значение:
Числовое значение — количество элементов в списке.
Описание:
Метод РазмерСписка позволяет определить общее количество элементов в списке.
Пример:
Разм = Список.РазмерСписка();
РазобратьПозициюДокумента
Раскладывает позицию документа на составляющие и возвращает строковое представление позиции документа
Синтаксис:
РазобратьПозициюДокумента(<Позиция>, <Дата>, <Час>, <Мин> , <Сек>, <Документ>)
Англоязычный синоним:
SplitDocPosition
Параметры:
<Позиция> |
Строковое значение позиции документа. |
<Дата> |
Необязательный параметр. Имя переменной, куда система вернет значение даты позиции документа. |
<Час> |
Необязательный параметр. Имя переменной, куда система вернет числовое значение часа позиции документа. |
<Мин> |
Необязательный параметр. Имя переменной, куда система вернет числовое значение минуты позиции документа. |
<Сек> |
Необязательный параметр. Имя переменной, куда система вернет числовое значение секунды позиции документа. |
<Документ> |
Необязательный параметр. Имя переменной, куда система вернет значение документа данной позиции документа. |
Возвращаемое значение:
Представление позиции документа в строковом виде, например: «12.07.98 12:57:14 ПрихНакл 24»
Описание:
Функция РазобратьПозициюДокумента раскладывает позицию документа на составляющие и возвращает строковое представление позиции документа.
Пример:
Позиция = РазобратьПозициюДокумента(ВыбДокумент.ПозицияДокумента());
Разработка вложенных отчетов
Средства программы 1С:Предприятие по работе с Таблицами позволяют создавать эффектные отчеты, причем на экране монитора отображается не просто мертвая картинка предварительного просмотра печати, а живой отчет, который можно редактировать или непосредственно из него вызывать дополнительную поясняющую информацию.
Поскольку каждая ячейка Таблицы может содержать значение, записанное в нее (см. Конфигуратор, редактор таблиц — Свойства ячейки — Текст — поле: Значение), то в программном модуле формы отчета возможно обрабатывать это значение. Обработка значения ячейки Таблицы вызывается системой по клавише <Enter> или по двойному щелчку мышью на какой-либо ячейке (если режим «только просмотр»). Стандартными действиями системы на обработку такого события являются: для документа — открытие документа, для элемента справочника — открытие формы редактирования элемента справочника. Другими словами, стандартные действия системы зависят от типа данных содержащегося в ячейке значения. Однако, это событие возможно перехватить и обработать нестандарным способом. Для этого предназначена предопределенная процедура встроенного языка ОбработкаЯчейкиТаблицы.
Примером нестандартной обработки значения ячейки таблицы может быть, например, вызов на формирование другого отчета. Таким образом, мы можем создавать как бы вложенные отчеты, которые вызываются один из другого, выдавая с каждым разом более детальную информацию. Допустим отчет «Взаиморасчеты» при формировании всегда выводится в кратком виде, когда виден только сводный баланс по контрагенту. Для того, чтобы получить детальный отчет по данному контрагенту, достаточно встать курсором в готовой форме отчета на этого контрагента и нажать клавишу <Enter>. Тогда сработает процедура ОбработкаЯчейкиТаблицы, в которой можно записать вызов формирования детального отчета. А если, кроме того, завести флаг режима отображения, то можно вместо этого показывать карточку этого контрагента из справочника.
Рассмотрим построение вложенных отчетов на примере. Допустим, у вас есть отчет «ПродажиТоваров», в котором отображается перечень товаров, количество и сумма проданных за некоторый период товаров. Программный модуль формирования такого отчета приведен ниже.
в запросе, то выход из
Пример:
Процедура ПродВсего()
Перем Запрос, ТекстЗапроса, Таб;
ДатаКон = ДатаКонца;
Если ДатаКон >= ПолучитьДатуТА() Тогда
ДатаКон = Дата(0);
КонецЕсли;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "//{{ЗАПРОС(ПродВсего)
|Период с ДатаНачала по ДатаКон;
|ТОВАР = Документ.РасхНакл.Товар;
|Сумма_Прод = Документ.РасхНакл.СуммаРуб;
|КОЛВО_Прод = Документ.РасхНакл.Количество;
|Группировка ТОВАР;
|Функция Продано = Сумма(КОЛВО_Прод);
|Функция СуммаПродано = Сумма(Сумма_Прод);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("ТабВсего");
Таб.ВывестиСекцию("Отчет");
Пока Запрос.Группировка("Товар") = 1 Цикл
ПродСумма = Запрос.СуммаПродано;
Если Запрос.Товар.ЭтоГруппа() = 1 Тогда
Таб.ВывестиСекцию("Группа");
Иначе
Таб.ВывестиСекцию("Товар");
КонецЕсли;
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Опции(0, 0, 4, 0);
Таб.Показать("Продажа товаров ", "");
КонецПроцедуры
В режие исполнения у нас получится такой отчет:
Далее, допустим, мы хотим получить более подробный отчет по конкретному товару, так, чтобы указав на товар в отчете, и дважды нажав кнопку мыши, мы получали отчет по продажам именно этого товара с точностью до каждого клиента. Для этого откроем в Конфигураторе редактор таблицы нашего отчета и в свойствах ячейки (Свойства ячейки — Текст — поле: Значение), отображающей наименование товара, проставим значение ячейки. («Запрос.Товар»)
Далее, в программном модуле напишем процедуру формирования дополнительного отчета.
Продолжение примера:
//*********************************
// Процедура дополнительного отчета
в запросе, то выход из
Процедура ПродТовар(ВТовар)
Перем Запрос, ТекстЗапроса, Таб;
ДатаКон = ДатаКонца;
Если ДатаКон >= ПолучитьДатуТА() Тогда
ДатаКон = Дата(0);
КонецЕсли;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "//{{ЗАПРОС(ПродТовар)
|Период с ДатаНачала по ДатаКон;
|КЛИЕНТ = Документ.РасхНакл.Клиент;
|ТОВАР = Документ.РасхНакл.Товар;
|СУММ = Документ.РасхНакл.СуммаВал;
|КОЛВО = Документ.РасхНакл.Количество;
|Группировка КЛИЕНТ Упорядочить По КЛИЕНТ.Наименование;
|Группировка ТОВАР Упорядочить По ТОВАР.Наименование;
|Функция Продано = Сумма(КОЛВО);
|Функция ПродСум = Сумма(СУММ);
|"//}}ЗАПРОС
;
Если ВТовар.Выбран() = 1 Тогда
Если ВТовар.ЭтоГруппа() = 1 Тогда
ТекстЗапроса = ТекстЗапроса +
"Условие(Товар.ПринадлежитГруппе(ВТовар) = 1);";
Иначе
ТекстЗапроса = ТекстЗапроса + "Условие (Товар = ВТовар);";
ФОдинТовар = 1;
КонецЕсли;
КонецЕсли;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм
Таб = СоздатьОбъект("Таблица");
Таб.ВывестиСекцию("Отчет");
Пока Запрос.Группировка("Клиент") = 1 Цикл
Таб.ВывестиСекцию("Клиент");
Пока Запрос.Группировка("Товар") = 1 Цикл
Если ФОдинТовар = 0 Тогда
Таб.ВывестиСекцию("Товар");
КонецЕсли;
КонецЦикла;
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Опции(0, 4, 0, 0);
Таб.Показать("Продажа товара", "");
КонецПроцедуры
Теперь нам осталось написать предопределенную процедуру, которая возьмет на себя обработку события «двойной щелчок мышью на выбранной ячейке таблицы». Главная задача этой процедуры — определить, что выбрана ячейка, где указано значение товара и вызвать на исполнение процедуру формирования дополнительного отчета, написанную ранее.
Продолжение примера:
//-------------------------
Процедура ОбработкаЯчейкиТаблицы(ЗначЯч, ФлагСтандартнойОбработки)
Если ТипЗначения(ЗначЯч) = 2 Тогда
ФлагСтандартнойОбработки = 1;
Возврат;
КонецЕсли;
ПродТовар(ЗначЯч);
КонецПроцедуры
Теперь, в режиме исполнения, если в отчете «Продажи товаров» мы укажем курсором на товар, например, «Сапоги женские» и дважды щелкнем на нем мышью, то сформируется дополнительный подробный отчет «Продажа товара».
Развернутое сальдо по субконто
Для расчета развернутого сальдо по счетам, имеющим субконто, во встроенном языке существует группа функций со сходным синтаксисом и набором параметров.
Развернутое сальдо по субсчетам
Для получения развернутого сальдо по счетам, имеющим субсчета, существует группа функций со сходным синтаксисом и набором параметров.
Редактирование
Определяет возможность редактирования значения элемента диалога.
Синтаксис:
Редактирование(<Флаг>)
Англоязычный синоним:
EnableEdit
Параметры:
<Флаг> |
Число: 1 — значение элемента редактируется как обычно; 0 — значение не редактируется но может выбираться кнопкой выбора. Отличие от метода Доступность в том, что Доступность отключает и кнопку выбора. |
Описание:
Метод Редактирование определяет возможность редактирования значения непосредственно в элементе диалога для полей ввода типа Число, Строка, Дата, Счет.
Доступ к данному методу возможен только в контексте Модуля формы.
Пример:
Форма.КолонкаЦены.Редактирование(1);
Редактирование
Определяет возможность редактирования значения области таблицы.
Синтаксис:
Редактирование(<Флаг>)
Англоязычный синоним:
EnableEdit
Параметры:
<Флаг> |
Число: 1 — значения ячеек области таблицы редактируются как обычно; 0 — значения не редактируется но могут выбираться кнопкой выбора. Отличие от метода Доступность в том, что Доступность отключает и кнопку выбора. |
Описание:
Метод Редактирование определяет возможность редактирования значения непосредственно в ячейках области таблицы для полей ввода типа «Число», «Строка», «Дата», «Счет».
Пример:
ВыбОбласть.Редактирование(1);
РедактироватьВДиалоге
Установить способ редактирования элементов справочника.
Синтаксис:
РедактироватьВДиалоге(<Способ>, <Разрешение>)
Англоязычный синоним:
EditInForm
Параметры:
<Способ> |
Необязательный параметр. Способ редактирования элемента справочника: 1 — в диалоге; 0 — в строке. |
<Разрешение> |
Необязательный параметр. Флаг разрешения пользователю менять способ редактирования: 1 — разрешить; 0 — запретить. |
Возвращаемое значение:
Значение установленного на данный момент способа редактирования элементов справочника (до применения метода).
Описание:
Метод РедактироватьВДиалоге устанавливает способ редактирования элементов справочника.
Данный метод доступен в контексте Модуля формы списка справочника (см. «Виды программных модулей»). Действие данного метода относится ко всему текущему списку справочника, который доступен в локальном контексте Модуля формы списка справочника.
Пример:
ТекСп = РедактироватьВДиалоге();
// какой сейчас способ?
РедактироватьВДиалоге(1);
// установить редактирование в диалоге
РедактироватьВДиалоге(1, 0);
// установить редактирование в диалоге
// и запретить его менять