Тип: Булево. Содержит признак того, что поле является полем счета. Данная информация используется при расчете по полям бухгалтерского остатка. Истина - поле является полем счета.
Полное описание, параметры и ограничения
РольПоляНабораДанныхКомпоновкиДанных.Счет (DataCompositionDataSetFieldRole.Account)
РольПоляНабораДанныхКомпоновкиДанных (DataCompositionDataSetFieldRole)
Счет (Account)
Доступен, начиная с версии 8.1.
Использование:
Чтение и запись.
Описание:
Тип: Булево.
Содержит признак того, что поле является полем счета. Данная информация используется при расчете по полям бухгалтерского остатка.
Истина - поле является полем счета.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Настроить четыре поля бухгалтерского остатка
Одна собственная строка учебного активного счёта: начальный дебет 10, конечный дебет 13, кредитные значения 0. Рецепт показывает контракт схемы, не бухгалтерские проводки.
Где и как запускать
Полный серверный общий модуль собственной учебной базы; настройка схемы не является проведением документов.
Подготовка
В своей отдельной учебной базе 8.5.1.1343 создайте серверный общий модуль УчебныеРолиПолейСКД. Вставьте полный текст одного урока: процедуру и две функции ниже неё.
Вызовите УчебныеРолиПолейСКД.ВыполнитьПример() из серверной команды собственной обработки. Схема и таблицы остаются на сервере, на клиент выводятся только сообщения.
Товары, даты, остатки и номер 50 заданы собственными константами. Код не читает и не изменяет регистры, план счетов, документы или файлы.
Схема описывается явно: АвтоЗаполнениеДоступныхПолей выключено, каждое поле добавляется через коллекцию Поля. Роль получается из настоящего поля, отдельного конструктора роли нет.
В первом уроке выполняется СКД. Уроки остатков, измерений, периодов и бухгалтерских ролей отдельно проверяют настройку схемы и её исходные строки; это не доказательство корректных итогов рабочего отчёта.
Процедура ВыполнитьПример() Экспорт
Схема = СоздатьУчебнуюСхему("ВЫБРАТЬ ""50"" КАК Счет, 10 КАК НачальныйДебет,
| 0 КАК НачальныйКредит, 13 КАК КонечныйДебет,
| 0 КАК КонечныйКредит");
Набор = Схема.НаборыДанных.Получить(0);
Счет = ДобавитьУчебноеПоле(Набор, "Счет", "Строка");
Счет.Роль.Счет = Истина;
Проверено = 0;
Для Каждого ИмяПоля Из СтрРазделить("НачальныйДебет,НачальныйКредит,КонечныйДебет,КонечныйКредит", ",") Цикл
ПолеОстатка = ДобавитьУчебноеПоле(Набор, ИмяПоля, "Число");
РольОстатка = ПолеОстатка.Роль;
РольОстатка.Остаток = Истина;
РольОстатка.ГруппаОстатка = "Сумма";
РольОстатка.ПолеСчета = Счет.ПутьКДанным;
РольОстатка.ВыражениеВидаСчета = "0";
Если СтрНачинаетсяС(ИмяПоля, "Начальный") Тогда
РольОстатка.ТипОстатка = ТипОстаткаКомпоновкиДанных.НачальныйОстаток;
Иначе
РольОстатка.ТипОстатка = ТипОстаткаКомпоновкиДанных.КонечныйОстаток;
КонецЕсли;
Если СтрЗаканчиваетсяНа(ИмяПоля, "Дебет") Тогда
РольОстатка.ТипБухгалтерскогоОстатка = ТипБухгалтерскогоОстаткаКомпоновкиДанных.Дебет;
Иначе
РольОстатка.ТипБухгалтерскогоОстатка = ТипБухгалтерскогоОстаткаКомпоновкиДанных.Кредит;
КонецЕсли;
Сообщить(Набор.Поля.Найти(РольОстатка.ПолеСчета) = Счет);
Сообщить(РольОстатка.ВыражениеВидаСчета = "0");
Проверено = Проверено + 1;
КонецЦикла;
Сообщить(Счет.Роль.Счет);
Сообщить(Проверено = 4);
Сообщить(Набор.Поля.Найти("НачальныйДебет").Роль.ТипБухгалтерскогоОстатка = ТипБухгалтерскогоОстаткаКомпоновкиДанных.Дебет);
Сообщить(Набор.Поля.Найти("КонечныйКредит").Роль.ТипБухгалтерскогоОстатка = ТипБухгалтерскогоОстаткаКомпоновкиДанных.Кредит);
Запрос = Новый Запрос(Набор.Запрос);
Строки = Запрос.Выполнить().Выгрузить();
Сообщить(Строки.Количество() = 1);
СтрокаСчета = Строки.Найти("50", "Счет");
Сообщить(СтрокаСчета.НачальныйДебет - СтрокаСчета.НачальныйКредит = 10);
Сообщить(СтрокаСчета.КонечныйДебет - СтрокаСчета.КонечныйКредит = 13);
КонецПроцедуры
Функция СоздатьУчебнуюСхему(ТекстЗапроса)
Схема = Новый СхемаКомпоновкиДанных;
Источник = Схема.ИсточникиДанных.Добавить();
Источник.Имя = "УчебныйИсточник";
Источник.ТипИсточникаДанных = "Local";
Набор = Схема.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
Набор.Имя = "УчебныеДанные";
Набор.ИсточникДанных = Источник.Имя;
Набор.АвтоЗаполнениеДоступныхПолей = Ложь;
Набор.Запрос = ТекстЗапроса;
Возврат Схема;
КонецФункции
Функция ДобавитьУчебноеПоле(Набор, ИмяПоля, ТипПоля)
Поле = Набор.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле.Поле = ИмяПоля;
Поле.ПутьКДанным = ИмяПоля;
Поле.Заголовок = ИмяПоля;
Поле.ТипЗначения = Новый ОписаниеТипов(ТипПоля);
Возврат Поле;
КонецФункцииРазбор по шагам
Создать собственное строковое поле Счет и отметить роль Счет. Номер 50 здесь вымышленная метка, не чтение плана счетов базы.
Добавить четыре поля пары начального/конечного дебета/кредита. Всем назначить общую группу Сумма и ПолеСчета, содержащее путь Счет.
ВыражениеВидаСчета = "0" — выражение СКД, возвращающее число 0: активный счёт. Это строка выражения, не число, присвоенное свойству.
ТипОстатка определяет начало/конец, ТипБухгалтерскогоОстатка — дебет/кредит. Это две разные характеристики одного поля.
Проверить связь четырёх ролей с полем счёта и значения собственного запроса. Компоновщик бухгалтерских итогов и запись проводок здесь не вызываются.
Как проверить результат
Пятнадцать булевых проверок дают Истина: восемь внутри цикла и семь после него.
В Строки одна строка, начальный учебный нетто-остаток 10, конечный 13. Этот пример не является оборотно-сальдовой ведомостью.
Ожидаемый результат
Полный воспроизводимый рецепт описания четырёх бухгалтерских ролей на собственных данных.
На что обратить внимание
Числа результата выражения вида счёта: 0 активный, 1 пассивный, 2 активно-пассивный. Строка "50" не является видом счёта.
В рабочем отчёте подставляются настоящее поле счёта и выражение его вида; нельзя назначать всем счетам активный вид по этому учебному примеру.
Развёрнутое сальдо и итоговые группировки требуют отдельной проверки на реальных правилах учёта в копии базы.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.