1с 7 создать журнал как таблица значений

Обновлено: 05.07.2024

Создает объект агрегатного типа данных и возвращает ссылку на него.

Англоязычный синоним:

Строковое выражение, значение которого содержит имя агрегатного типа данных, объявленного в конфигураторе.

Возвращаемое значение:

Ссылка на созданный объект агрегатного типа данных.

Функция СоздатьОбъект создает объект агрегатного типа данных и возвращает ссылку на него. Данная функция обычно используется одновременно с неявным определением переменной и присвоением ей ссылки на объект агрегатного типа данных.

Замечание. Объекты, такие как документ и справочник, созданные при помощи функции СоздатьОбъект , изначально не определены, т. е. не содержат никакого значения. Чтобы начать с ними работать, их предварительно надо позиционировать (установить на конкретный документ или элемент справочника). Для документов позиционирование выполняется при помощи методов НайтиДокумент , НайтиПоНомеру , ПолучитьДокумент . Для справочников позиционирование выполняется при помощи методов НайтиЭлемент , НайтиПоКоду , ПолучитьЭлемент .

СтатусВозврата

Установить/определить статуса возврата предопределенной процедуры.

Англоязычный синоним:

Необязательный параметр. Числовое выражение. Если задано значение 1, то устанавливается статус возврата — Выполнить Действие. Если задано значение 0, то устанавливается статус возврата — Отменить Действие. Если параметр опущен, то статус возврата предопределенной процедуры не меняется.

Возвращаемое значение:

Число 1 — если статус возврата — Выполнить Действие;

Число 0 — если статус возврата — Отменить Действие.

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

Значение статуса возврата предопределенной процедуры используется системой при завершении отработки любой предопределенной процедуры, чтобы определить, выполнять ли системно событие, которое вызвало данную предопределенную процедуру.

Замечание: Начальное значение статуса возврата предопределенной процедуры равно 1 (Выполнить Действие), которое устанавливается системой при вызове предопределенной процедуры.

В тексте программного модуля возможно использование данного оператора как процедуры или как функции. При использовании в качестве функции, возвращаемое значение соответствует текущему статусу возврата предопределенной процедуры, которое было до вызова данной функции. В данном случае параметр < Статус > можно опускать.

Если параметр < Статус > задан явно, то после выполнения данной функции статус возврата установится в заданное значение. Пример:

* Если в предопределенной процедуре ПриЗаписи установить статус возврата — 0 (например, если неверно заполнены реквизиты), то документ не будет записываться.

Если Клиент.Выбран() = 0 Тогда

Предупреждение("Запись отменена! Не задан клиент!");

* Если в предопределенной процедуре ВводНаОсновании установить статус возврата — 0, то ввод нового документа будет отменен и форма нового документа не откроется.

Если (ДокВид = "Счет") ИЛИ (ДокВид = "Счет_фактура")

ИЛИ (ДокВид = "РасходнаяКредит") ИЛИ (ДокВид = РасходнаяРеализ") Тогда

Основание = ДокВид + " № " + ДокОснование.НомерДок;

Предупреждение("Недопустимый вид документа основания!");

См. также: «Системные предопределенные процедуры»

ОткрытьФорму

Выполняет открытие формы из'встроенного языка.

ОткрытьФорму (<Параметр1>, <КонтекстФормы>, < Параметр 3>. )

Англоязычный синоним:

В зависимости от типа открываемой формы используется различные значения данного параметра.

Необязательный параметр. Имя переменной, куда можно задать значение любого типа для передачи в открываемую форму. Данное значение будет доступно в открытой форме как атрибут Форма.Параметр.

После исполнения данного метода система вернет в данную переменную контекст открытой формы (см. Передача контекста в качестве параметра). С помощью значения этого контекста можно затем произвольно манипулировать открытой формой, пока она открыта. Пока форма открыта, тип значения данного параметра равен 100 (см. ТипЗначения), если закрыта — 0.

В зависимости от типа открываемой формы используется различный состав и значения остальных параметров.

Возвращаемое значение:

Число 1 — если действие выполнено;

Число 0 — если действие не выполнено.

Функция ОткрытьФорму позволяет открыть форму документа, справочника, журнала документов, и других форм используемых в системе 1С:Предприятие.

Замечание. Метод ОткрытьФорму нельзя вызывать в «теле» глобального модуля (части глобального модуля, расположенной после последней процедуры). Для его вызова при старте программы следует размещать его в процедуре ПриНачалеРаботыСистемы .

Для открытия разных форм следует использовать разный синтаксис вызова данной функции:

Открытие формы существующего документа.

ОткрытьФорму(<Документ>, <КонтекстФормы>, <РежимПросмотра>)

Значение типа «Документ».

Необязательный параметр. Числовое выражение: 1 — открыть форму в режиме только просмотра; 0 — открыть форму в режиме редактирования. -1 (минус единица) в этом случае используется вариант предусмотренный текущим значением параметра «Режим открытия объектов» установленного пользователем. По умолчанию — 0.

Открытие формы нового документа

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>, <ДокументОснование>)

"Документ.ХХХХХ", где ХХХХХ — идентификатор вида документа;

Необязательный параметр. Выражение типа «документ», задающий документ-основание для открытия формы ввода нового документа в режиме ввода на основании.

Открытие формы журнала документов.

"Журнал . ХХХХХ. YYYYY", где ХХХХХ — идентификатор журнала документов; YYYYY — идентификатор формы журнала документов;

Кроме того, в качестве идентификатора журнала можно указывать идентификатор конкретного вида документа, тогда откроется журнал просмотра документов именно указанного вида, например:

Открытие формы журнала подчиненных документов.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>, <Документ>)

Строковое выражение. "Журнал.Подчиненные";

Значение типа «документ», задающее документ, для которого будут выводиться подчиненные документы.

Открытие формы существующего элемента справочника.

ОткрытьФорму(<Элемент>, <КонтекстФормы>, <РежимПросмотра>)

Значение типа «Справочник».

Необязательный параметр. Числовое выражение: 1 — открыть форму в режиме только просмотра; 0 — открыть форму в режиме редактирования. -1 (минус единица) в этом случае используется вариант предусмотренный текущим значением параметра «Режим открытия объектов» установленного пользователем. По умолчанию — 0.

Открытие формы нового элемента справочника.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы> , <ГруппаРодитель>,

"Элемент. ХХХХХ", где ХХХХХ — вид справочника;

Необязательный параметр. Выражение типа «справочник», задающий родительскую группу для открытия формы ввода нового элемента (группы) справочника.

Необязательный параметр. Числовое выражение, задающее форму ввода нового элемента (группы) справочника: 1 — ввод новой группы, 0 — ввод нового элемента. По умолчанию — 0.

Необязательный параметр. Выражение типа «справочник», задающий элемент справочника-владельца для открытия формы ввода нового элемента (группы) подчиненного справочника.

Открытие формы списка справочника.

"Справочник.ХХХХХ.YYYYY", где ХХХХХ — вид справочника, YYYYY — имя выбранной формы списка справочника;

Открытие формы отчета.

Строковое выражение. "Отчет. ХХХХХ" , где ХХХХХ — вид отчета;

Открытие формы обработки.

Строковое выражение. "Обработка.ХХХХХ", где ХХХХХ — вид обработки;

Открытие формы внешнего отчета.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>, <ИмяФайла>)

Строковое выражение. "Отчет";

Строковое выражение — полное имя файла внешнего отчета.

Открытие формы журнала расчетов.

"ЖурналРасчетов. ХХХХХ", где ХХХХХ — вид журнала расчетов;

Открытие формы существующего счета.

ОткрытьФорму(<Счет>, <КонтекстФормы>, <РежимПросмотра>)

Значение типа «Счет».

Необязательный параметр. Числовое выражение: 1 — открыть форму в режиме только просмотра; 0 — открыть форму в режиме редактирования. -1 (минус единица) в этом случае используется вариант предусмотренный текущим значением параметра «Режим открытия объектов» установленного пользователем. По умолчанию — 0.

Открытие формы нового счета.

"Счет. ХХХХХ" , где ХХХХХ — идентификатор плана счетов;

Открытие формы списка счетов (плана счетов).

"ПланСчетов.ХХХХ.YYYY", где ХХХХХ — идентификатор плана счетов; YYYYY — идентификатор формы плана счетов.

Открытие формы существующей операции.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>, <Документ>, <Проводка>,

Строковое выражение. "Операция".

Значение типа «документ», операция которого будет открываться.

Необязательный параметр. Числовое выражение — номер проводки, на которую нужно позиционировать курсор при открытии операции.

Необязательный параметр. Числовое выражение — номер корреспонденции указанной проводки, на которую нужно позиционировать курсор при открытии операции.

Необязательный параметр. Числовое выражение: 1 — открыть форму в режиме только просмотра; 0 — открыть форму в режиме редактирования. -1 (минус единица) в этом случае используется вариант предусмотренный текущим значением параметра «Режим открытия объектов» установленного пользователем. По умолчанию — 0.

Открытие формы ввода новой операции.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>, <ТиповаяОперация>)

Строковое выражение. "Операция".

Необязательный параметр. Строковое выражение — наименование типовой операции, которую следует использовать при вводе новой операции. Если значение не задано или пустое, то ввод операции выполняется без использования типовой.

Открытие формы журнала операций.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>, <Документ>, <Пров>, <Корр>)

"ЖурналОпераций.YYYYY", где YYYYY — идентификатор формы журнала операций;

Значение типа «документ», операция которого будет использована для первоначального позиционирования.

Номер проводки, которая будет использована для первоначального позиционирования курсора, если в журнале операций используется режим показа проводок.

Номер корреспонденции, которая будет использована для первоначального позиционирования курсора, если в журнале операций используется режим показа проводок.

Открытие формы журнала проводок.

ОткрытьФорму(<ОписательОбъекта>, <КонтекстФормы>, <Документ>, <Проводка>,

"ЖурналПроводок.YYYYY", где YYYYY — идентификатор формы журнала проводок;

Значение типа «документ», операция которого будет использована для первоначального позиционирования.

Необязательный параметр. Числовое выражение — номер проводки операции, на которую нужно в начале позиционироваться.

Необязательный параметр. Числовое выражение — номер корреспонденции указанной проводки, на которую нужно в начале позиционироваться.

Открытие окна истории значений периодических констант, реквизитов справочников и счетов.

ОткрытьФорму("История.Счет", , <Счет>, <УстНаДату>)

Идентификатор периодической константы, как он задан в конфигураторе.

Идентификатор справочника, как он задан в конфигураторе.

Идентификатор периодического реквизита справочника, как он задан в конфигураторе.

Элемент справочника, для периодического реквизита которого открывается окно истории значений.

Счет, для которого открывается окно истории значений.

Необязательный параметр. Дата, на которую нужно установить курсор при открытии окна.

ОткрытьФормуМодально

Выполняет открытие модальной формы из встроенного языка.

ОткрытьФормуМодально(<Параметр1>, <КонтекстФормы>, <ПараметрЗ>. )

Англоязычный синоним:

Параметры: см. параметры метода ОткрытьФорму

Возвращаемое значение: см. метод ОткрытьФорму .

Функция ОткрытьФормуМодально позволяет открыть модальную форму документа, справочника, журнала документов, и других форм используемых в системе 1С:Предприятие. Синтаксис и описание см. метод ОткрытьФорму .

См. также: ОткрытьФорму

ТипЗначения

Получить тип значения данных.

Англоязычный синоним:

< 3начение > Выражение, тип данных значения которого надо определить.

Возвращаемое значение:

Функция возвращает числовое значение:

0 — неопределенный тип данных;

1 — числовой тип данных;

2 — строковый тип данных;

3 — тип данных — дата;

10 — агрегатный тип данных «Перечисление»;

11 — агрегатный тип данных «Справочник»;

12 — агрегатный тип данных «Документ»;

13 — агрегатный тип данных «Календарь»;

14 — агрегатный тип данных «ВидРасчета»;

15 — агрегатный тип данных «Счет»;

16 — агрегатный тип данных «ВидСубконто»;

17 — агрегатный тип данных «ПланСчетов»;

100 — так называемый внешний объект. В этот класс попадают все агрегатные объекты, не вошедшие в вышеперечисленный список, такие как «Текст», «Таблица», «Запрос», «ЖурналРасчетов» и т. п.

Функция ТипЗначения определяет, к какому типу данных принадлежит переданный параметр < 3начение > и возвращает числовой результат:

Если ТипЗначения(Код)<>1 Тогда

Предупреждение("Код имеет не числовой тип . ");

ТипЗначенияСтр

Получить строковое обозначение типа данных.

Англоязычный синоним:

< 3начение > Выражение, тип данных значения которого надо определить.

Возвращаемое значение:

Функция возвращает строковое значение в русскоязычном или в англоязычном написании — в зависимости от текущей установки основного языка конфигурации:

Смотрю, "полку нашего прибыло" - стали публиковаться семерочные обработки по выводу таблицы значений на экран, когда поместить таблицу значений на форму или ВыбратьСтроку() по каким-то причинам не удовлетворяет.
Это - описание глобальной процедуры, которая выводит любую таблицу значений в табличный документ, с которым уже можно работать дальше.

1C v7.7: Вывод на экран произвольной переменной типа "Таблица значений"

Процедура предназначена для облегчения отладки прикладных решений (конфигураций).
Выводит на экран в удобночитаемом виде содержимое произвольной переменной типа "ТаблицаЗначений".
Может быть использована с любой конфигурацией 1С: Предприятие V 7.7.

1. Тип "ТаблицаЗначений", переменная, содержимое которой мы хотим посмотреть.
2. Тип "Строка", заголовок окна, которое будет выведено на экран, необязательный параметр.

Предусмотрена дуракозащищенность: корректно отрабатывает, даже если в качестве первого входного параметра подсунуть переменную другого типа - а, точнее, сруганется и выведет на экран наименование типа этого параметра.

Результат работы:
Формирование и вывод на экран печатной формы (объекта типа "Таблица").
Выглядит как обычная таблица - с шапкой (заголовком), разной шириной колонок (ширина определяется автоматически по содержимому)

История создания

Отлаживая осенью 2001 года одну конфигурацию, я захотел посмотреть, а что такое собственно у меня находится в переменной. Переменная эта была типа "ТаблицаЗначений" и посмотреть ее с помощью встроенных в отладчик средств можно было лишь частями. Мало того, - еще и переход от просмотра одной части к просмотру другой был делом муторным.

Да и, вообще, просмотр сложных структур данных неудобен в большинстве отладчиков большинства систем программирования, а не только 1С: Предприятие V 7.7. Мне давненько это не нравилось.

И напала на меня мысль, что в языке программирования 1С: Предприятие V 7.7 есть все необходимые средства для реализации универсального алгоритма просмотра "ТаблицыЗначений".

Отбится от этой мысли не удалось. И первый (насколько я помню даже еще нерабочий) вариант был сделан в тот же день. И через небольшой промежуток времени алгоритм был доведен до ума.
В течение 2001, 2002, 2003 годов алгоритм совершенстовался по мелочам. Основная же идея созрела еще в самый первый день.

Оказалось, что отлаживать многие вещи, видя, что варится в мозгу прикладного решения (конфигурации), намного удобнее, потому уже с 2001 года я вставляю это процедуру во все глобальные модули прикладных решений (конфигураций) с которым работаю. Чтобы можно было воспользоваться ею в любой момент. Чего и вам желаю.

Исходный текст

Врезается в глобальный модуль прикладного решения (конфигурации) и вызывается откуда угодно. Если не хочется врезать в глобальный модуль, то слово "Экспорт" в объявлении процедуры смысла не имеет ;)

Строки и колонки имеют последовательную целочисленную нумерацию. Кроме этого, колонкам можно присваивать строковые идентификаторы, удовлетворяющие требованиям, выдвигаемым к идентификаторам языка. Пересечения строк и колонок образуют ячейки, в которых содержатся значения. Тип значения определяется типом колонки. Если тип не задан, в ячейке можно хранить значения произвольного типа.

Таблица значений является полностью динамическим объектом, т.к. Вы можете манипулировать не только строками таблицы, добавляя и\или удаляя их, но и колонками.

Таблица значений используется в двух случаях:

  1. При работе с формами: при размещении на форме элемент управления типа ТаблицаЗначений , он автоматически связывается с одноименным объектом встроенного языка ТаблицаЗначений ;
  2. При работе с кодом: для хранения каких-либо многострочных списочных данных вы создаете нужное количество объектов типа ТаблицаЗначений ;

Создание таблицы значений

Как и все объекты агрегатного типа, таблица значений создается с помощью функции СоздатьОбъект() встроенного языка:

Инициализация таблицы значений

Инициализация объекта выполняется в три этапа:

  1. Добавление колонок
  2. Добавление строки
  3. Установка значений ячеек

Итак, прежде, чем начать работать с объектом ТаблицаЗначений , необходимо настроить колонки (задать имя и тип). Делается это с помощью метода НоваяКолонка() следующим образом:

Как Вы успели заметить, вместе с названием колонки задается и тип значений.

После того, как Вы добавили колонки, можно добавлять строки. Делается это с помощью метода НоваяСтрока():

Теперь переменная тз спозиционирована на добавленную строку и мы можем приступить к заполнению ячеек:

Как видите, имена ячеек текущей строки имеют то же название, что и колонки. Это делает использование объекта элементарным: достаточно указать через точку после имени объекта имя колонки.

Манипуляция значениями строк таблицы

Для получения значений, содержащихся в строках, необходимо перво-наперво спозиционировать объект на интересующей Вас строке. Для этого используются такие методы как: ПолучитьСтрокуПоНомеру() и ПолучитьСтроку():

Перебор строк таблицы значений

Для последовательного перебора (обхода) всех строк таблицы значений обычно используются методы ВыбратьСтроки() и ПолучитьСтроку() объекта:

Также можно организовать перебор с помощью оператора цикла Для, где в качестве ограничителя цикла используется количество строк таблицы, возвращаемое методом КоличествоСтрок():

Атрибуты объекта ТаблицаЗначений

НомерСтроки атрибут содержит номер текущей строки таблицы
<ИдентификаторКолонки> атрибут содержит значение текущей ячейки таблицы

Методы объекта ТаблицаЗначений

Хочется отметить, что объекты типа ТаблицаЗначений не хранятся в информационной базе.

Список значений используется в двух случаях:

  1. При работе с формами: при размещении на форме элементов управления типа Список и ПолеСоСписком , они автоматически связываются с объектом типа СписокЗначений ;
  2. При работе с кодом: для хранения каких-либо расширяемых списочных данных вы создаете нужное количество объектов типа СписокЗначений ;

Хочется отметить, что объекты типа СписокЗначений не хранятся в информационной базе.

Создание списка значений

Как и все объекты агрегатного типа, список значений создается с помощью специальной функции СоздатьОбъект() встроенного языка:

Инициализация элементов списка значений

Каждый элемент списка значений характеризуется следующими свойствами:

По умолчанию, список значений создается пустым. Для добавления нового элемента списка значений, используется метод ДобавитьЗначение() объекта:

Обратите внимание, что вместе со значением Вы можете указать его строковое представление.

Манипуляция элементами списка

Над элементами списка значений возможны различные действия, включая вставку новых элементов, сортировку, изменение и удаление существующих.

Вставка новых значений возможна в произвольное место списка. Для этого используется метод ВставитьЗначение():

Для получения значения элемента списка по номеру используется метод ПолучитьЗначение() объекта:

Удаление элементов списка производится с помощью метода УдалитьЗначение():

Интерактивные функции

Объект СписокЗначений имеет несколько методов, позволяющих взаимодействовать с пользователем. Например, с помощью метода ВыбратьЗначение() можно предложить пользователю выбрать одно из значений:

Также, можно предложить пользователю отметить одно или несколько элементов списка. Для этого используется метод ОтметитьЗначения(), который выводит список с пометками (checkboxes):

Найти все отмеченные пользователем значения можно, используя перебор элементов в цикле, и метод Пометка(), который возвращает статус пометки элемента:

Перебор элементов списка значений

Для перебора (обхода) всех элементов списка значений обычно используется оператор цикла Для:

Читайте также: