Получить субсчета счета 1с
Счета — это агрегатный тип данных для доступа к объектам данных — бухгалтерским счетам. Бухгалтерские счета используются компонентой «Бухгалтерский учет» системы 1С:Предприятие для идентификации разрезов синтетического учета наличия и движения средств. В общем виде смысл типа данных «Счет» вполне соответвует общепринятому понятию «Счет» в бухгалтерском учете. Подробно об основных свойствах типа данных «Счет» можно ознакомиться в руководстве по конфигурированию системы 1С:Предприятие.
В конфигурации системы может быть создано несколько планов счетов. План счетов является фактически видом для значения типа «Счет». Например, реквизит диалога типа «Счет» может иметь конкретный вид (относиться к конкретному плану счетов) или быть неопределенного вида — то есть принимать значение различных планов счетов.
Структура данных для объектов типа «Счет» задается в конфигураторе и является одинаковой для всех планов счетов. Счета имеют стандартные реквизиты (код, наименование и т. д.), для которых в конфигурации настраиваются только их свойства (например, длина наименования). Кроме того, для счетов в конфигурации могут быть заданы дополнительные реквизиты. Дополнительные реквизиты могут быть периодическими, то есть иметь разные значения на разные даты.
Список счетов (план счетов) может быть многоуровневым. При этом каждый объект типа «Счет» вне зависимости от реального наличия подчиненных счетов всегда является либо конкретным счетом, либо группой. Это свойство конкретного счета задается при его создании и не изменяется в дальнейшем. При этом счета-группы не могут участвовать в проводках.
Заметим, что бухгалтерские счета внесенные в конфигураторе в метаданные не могут изменять свои основные реквизиты (код, наименование, настройки аналитического, валютного и количественного учета).
Контекст работы с бухгалтерскими счетами
В синтаксисе языка доступ к атрибутам, а также вызов методов счетов зависит от контекста выполнения программного модуля.
Если счет входит (согласно локальному контексту) в набор непосредственно Доступных модулю значений агрегатных типов данных (см. «Виды программ-йьгх модулей»), то доступ к атрибутам и вызов метода для этого счета — просто имя этого атрибута или метода с указанием необходимых параметров.
* Модуль формы счета выполняется в контексте «Счет». Поэтому в модуп возможен непосредственный доступ к текущему счету. Например, для пои сваивания счету наименования запишем:
Наименование = "Основные средства";
Значение счета может быть получено из других источников, например, как реквизит документа. В этом случае обращение к атрибутам и методам такого документа представляет собой сложное выражение, где имена реквизитов разделяются точкой.
* Например, в структуре документа «ПриходныйОрдер» существует реквизит «КоррСчет» типа «Счет». Тогда получить наименование счета, указанного в этом реквизите, можно следующим образом
В других случаях, доступ к атрибутам, вызов методов конкретного счета происходит при помощи переменной со ссылкой на объект типа «Счет». Объект создается функцией СоздатьОбъект , ссылка на который присваивается переменной. Чтобы вызвать атрибут или метод объекта, имя этого атрибута или метода (с указанием необходимых параметров) пишется через точку после имени ссылки.
При создании ссылки на объект типа «Счет» при помощи функции СоздатьОбъект в качестве типа объекта указывается слово "Счет" и может быть через точку указан вид — идентификатор плана счетов.
Полное имя типа счет записывается следующим образом:
где < ВидСчета >— идентификатор плана счетов.
Применение ключевого слова " Счет " (без вида счета) используется для организации доступа ко всем планам счетов.
Англоязычный синоним ключевого слова Счет — Account .
Замечание: Следует обратить особое внимание, что переменная типа «Счет», созданная функцией СоздатьОбъект — это ссылка на список счетов, в отличие от переменных, содержащих само значение объекта (например, переменной может быть присвоено значение некоторого реквизита документа, который имеет тип «Счет»). Использование ссылки на список счетов, созданной при помощи функции СоздатьОбъект , существенно отличается от работы со значением типа «Счет». Только при работе со объектом-ссылкой на список счетов разрешено изменять позицию (найти-выбрать. ) текущего счета в списке (т. е. осуществлять позиционирование по списку счетов), создавать новые, изменять и удалять существующие счета, С другой стороны, ссылка на список счетов не содержит собственно значения конкретного счета, которое можно присвоить чему-либо. Однако. его всегда можно получить, используя функцию ТекущийСчет .
Замечание. Объект, созданный при помощи функции СоздатьОбъект , изначально не определен, т. е. не содержит никакого значения. Чтобы начать с ним работать, его предварительно надо позиционировать (установить на конкретный счет) при помощи процедур НайтиСчет , ПолучитьСчет и т. п.
Форум
При наличии в системе 1С:Предприятие компоненты «Бухгалтерский учет» система автоматически реализует специальный механизм работы с бухгалтерскими итогами. Данный механизм обеспечивает хранение, динамический пересчет бухгалтерских итогов и их извлечение средствами встроенного языка.
Изменение бухгалтерских итогов может производиться только проводками бухгалтерских операций.
Хранение итогов поддерживается системой с детализацией до месяца. В итогах хранятся остатки и обороты по счетам с детализацией по субконто и обороты между счетами (без детализации по субконто).
Обращение к бухгалтерским итогам выполняется при помощи агрегатного объекта типа «БухгалтерскиеИтоги». Объект может работать в трех режимах:
- работа с основными итогами,
- работа с временными итогами,
- работа в режиме запроса.
Объект типа «БухгалтерскиеИтоги» при создании функцией «СоздатьОбъект()» работает в первом режиме. Переключение в другие режимы производится функциями «Рассчитать()» и «ВыполнитьЗапрос()».
Функции «ИспользоватьПланСчетов()» и «ИспользоватьРазделитель Учета()» позволяют назначить план счетов и разделитель учета по которым будут выдаваться итоги.
В пункте меню «Управление бухгалтерскими итогами» в системе «1С:Предприятие» устанавливается последний рассчитанный период. В режиме работы с основными итогами осуществляется доступ только к итогам по рассчитанный месяц включительно.
Функции работы с итогами:
Параметры: – счет, = 1 – сумма, 2 – валютная сумма, 3 – количество, – значение типа “Справочник.Валюты”, – значение первого субконто счета, – значение второго субконто счета и т.д.
Для получения остатков и оборотов по счетам, имеющим субсчета, используются аналогичные функции: СНДР(), СКДР(), СКДР(), СККР().
Чтобы получить итоги на любую дату нужно выполнять временный расчет (временный, потому что он хранится только во время существования переменной типа «БухгалтерскиеИтоги») с помощью функции
В параметре можно задать в виде строки список счетов, разделенных запятой или точкой с запятой, по которым будет делаться расчет. Если параметр = 1, то расчет будет делаться только по счетам, иначе по счетам и субконто.
Для получения большего количества итогов (обороты и остатки по разным видам группировок) используется режим запроса.
Перед выполнением запроса устанавливаются различные фильтры:
Затем выполняется сам запрос функцией ВыполнитьЗапрос( ,,,, ,,,), которая возвращает 1, если запрос выполнился успешно.
Параметр принимает следующие значения: 1 – остатки и обороты по счетам, 2 – обороты между счетами, 3 – и то и другое.
Работа с бухгалтерскими счетами очень похожа на работу с иерархическим справочником. Существует список счетов, имеющих стандартные атрибуты (Код, Наименование и др), и дополнительные реквизиты, задаваемые разработчиком. Реквизиты могут быть периодическими, т.е. хранить значение на определенную дату. Счета могут объединяться в группы, тогда счета, входящие в группу, называются субсчетами. Каждый счет обязательно принадлежит определенному плану счетов. В конфигурации может быть произвольное количество планов счетов, один из которых является основным.
Перебор счетов
Атрибуты счета
Счет имеет следующие атрибуты:
Код . Полный код счета. Например, "10.1" или "62.5.1".
Наименование . Название счета. Например, "Материалы" или "Расч. с бюдж. по НДС".
Валютный . Признак ведения валютного учета. 1 - валютный учет ведется, 0 - не ведется.
Количественный . Признак ведения количественного учета. 1 - количественный учет ведется, 0 - не ведется.
Забалансовый . Признак забалансового счета. 1 - счет забалансовый, 0 - балансовый.
Активный . Тип остатка по счету. 1 - счет активный, 2 - счет пассивный, 3 - счет активно-пассивный.
. Кроме стандартных вышеперечисленных реквизитов, разработчик может задать произвольное количество дополнительных реквизитов. Реквизиты могут быть периодическими, т.е. хранить значение на определенную дату. Например, может быть создан периодический реквизит "Ответственный" типа "Справочник.Сотрудники". Он будет показывать сотрудника, ответственного за ведение данного счета.
Работа с периодическими реквизитам счета не отличается от работы с периодическими реквизитами справочника.
Пример, прочитать и установить ответственного за ведение счета:
Можно установить дату выборки периодических реквизитов, тогда ниже уже нельзя применять методы Установить и Получить
Счета и субсчета
Счета могут объединяться в группы. Счет, который является группой, называется "синтетический счет". Счет, который входит в группу, называется "субсчет". Для работы с такими счетами применяются следующие методы:
Определяет, является ли данный счет группой (может иметь субсчета) или нет.
Возвращает: 1 - счет является группой; 0 - счет не является группой.
Пример, вывести все синтетические счета:
Устанавливает / выдает значение родителя (счета вышестоящего уровня), используемого для выборки счетов. Возвращает: значение типа ''Счет'' - текущее значение используемого родителя на момент до исполнения метода.
Пример, вывести все субсчета счета "10 Материалы":
Возвращает уровень вложенности текущего счета. (возвращает 1 - для счета верхнего уровня)
Пример, вывести все счета в виде дерева:
Определяет, является ли текущий счет субсчетом для счета, указанного в качестве параметра метода. Проверка выполняется по всем вышестоящим уровням счета. Возвращает: 1 - текущий счет является субсчетом для счета, указанного в качестве параметра; 0 - не является.
Возвращает счет вышестоящего уровня для данного счета. - число, которое определяет, какого уровня вышестоящий счет должен быть выдан. Если параметр не указан - выдается непосредственный родитель.
Например, для счета "10.5" этот метод вернет счет с кодом "10".
Выдает код счета без кодов счетов вышестоящих уровней.
Возвращает: строковое значение - код счета без кодов счетов вышестоящих уровней.
Например, для счета "10.5" этот метод вернет строковое значение "5".
Этот метод утанавливает режим выборки групп. Данный метод может применяться как для позиционируемых объектов, созданных функцией ''СоздатьОбъект'', так и для элементов диалога типа ''Счет''. По умолчанию выбор группы разрешен, за исключением счетов дебета и кредита в проводках операции.
Виды субконто
Для ведения аналитического учета в 1С используется термин "субконто". Субконто в системе 1С:Предприятие называется объект аналитического учета. Термином «субконто» могут быть обозначены любые объекты аналитического учета: основные средства, нематериальные активы, материалы, организации, подотчетные лица, договоры, бюджеты. Видом субконто, в свою очередь, называется множество однотипных объектов аналитического учета. Например, вид субконто "Контрагенты" типа Справочник.Контрагенты, субконто - "Магазин Красная Заря".
В 1С у счета может быть до 5 прикрепленных видов субконто. Максимальное количество видов субконто задается в Конфигураторе, но не может превышать 5.
Пример, вывести все виды субконто, прикрепленные к заданному счету:
Создание, удаление и корректировка счетов
Обычно счета создаются вручную в режиме Конфигуратор или Предприятие. Но иногда может потребоваться программная корректировка списка счетов.
Пример, изменить наименование счета:
Пример, пометить на удаление все счета, введенные пользователем в режиме "Предприятие". Оставить только счета, заданные разработчиком в Конфигураторе.
Пример, отменить все пометки на удаление:
Другие полезные методы
Некоторые методы уже применялись в примерах, а теперь сведем их в таблицу:
НайтиПоКоду(код)
Этот метод выполняет поиск счета в плане счетов по коду счета, который передается методу в качестве параметра. Если счет найден, метод возвращает 1 и позиционирует объект на выбранном счете.
НайтиСчет()
Этот метод выполняет поиск счета по значению, заданному параметром , и позиционирует объект на выбранном счете.
Выбран()
Этот метод возвращает число со значением 1 — если счет выбран (спозиционирован) или значение не пустое, 0 — если не выбран или значение пустое.
Выбрать()
Этот метод вызывает на экран диалог, содержащий план счетов. Пользователь должен интерактивно выбрать требуемый счет. Если счет выбран, метод возвращает 1 и позиционирует объект на выбранном счете. Данный метод может использоваться только для объектов, созданных функцией СоздатьОбъект.
СчетПоКоду(код[,плансчетов])
Глобальная системная функция. Возвращает счет по коду. Если план счетов не указан, тогда поиск осуществляется в основном плане счетов, заданном в Конфигураторе.
Счета могут объединяться в группы. Счет, который является группой, называется “синтетический счет” . Счет, который входит в группу, называется “субсчет” . Для работы с такими счетами применяются следующие методы:
ЭтоГруппа () – Определяет, является ли данный счет группой (может иметь субсчета) или нет.
Возвращает: 1 – счет является группой; 0 – счет не является группой.
Счета = СоздатьОбъект (“Счет.ОснПлан”);
Счета . ВыбратьСчета ();
Пока Счета . ПолучитьСчет () = 1 Цикл
. Если Счета . ЭтоГруппа () = 1 Тогда
. Сообщить ( Счета . Код + “ “ + Счета . Наименование );
. КонецЕсли ;
КонецЦикла ;
ИспользоватьРодителя (< Счет >) – Устанавливает / выдает значение родителя (счета вышестоящего уровня), используемого для выборки счетов. Возвращает: значение типа ‘‘Счет’‘ – текущее значение используемого родителя на момент до исполнения метода.
Счета = СоздатьОбъект (“Счет.ОснПлан”);
Сч10 = СчетПоКоду (10);
Счета . ИспользоватьРодителя ( Сч10 );
Счета . ВыбратьСчета ();
Пока Счета . ПолучитьСчет ()=1 Цикл
. Сообщить ( Счета . Код + “ “ + Счета . Наименование );
КонецЦикла ;
Уровень () – Возвращает уровень вложенности текущего счета. (возвращает 1 – для счета верхнего уровня)
Счета = СоздатьОбъект (“Счет.ОснПлан”);
Счета . ВыбратьСчета ();
Пока Счета . ПолучитьСчет () = 1 Цикл
отступ = “”;
Для ном = 1 По Счета . Уровень () Цикл
. отступ = отступ + “ “;
КонецЦикла ;
Сообщить ( отступ + Счета . Код + “ “ + Счета . Наименование );
КонецЦикла ;
ПринадлежитГруппе (< Счет >) – Определяет, является ли текущий счет субсчетом для счета, указанного в качестве параметра метода. Проверка выполняется по всем вышестоящим уровням счета. Возвращает: 1 – текущий счет является субсчетом для счета, указанного в качестве параметра; 0 – не является.
Сч10 = СчетПоКоду (“10”);
СубСч10 = СчетПоКоду (“10.5.1”);
Сообщить ( СубСч10 . ПринадлежитГруппе ( Сч10 )); //метод вернет 1
Родитель (< НомерУровня >) – Возвращает счет вышестоящего уровня для данного счета. < НомерУровня >– число, которое определяет, какого уровня вышестоящий счет должен быть выдан. Если параметр не указан – выдается непосредственный родитель.
Например, для счета “10.5” этот метод вернет счет с кодом “10”.
КодСубсчета () – Выдает код счета без кодов счетов вышестоящих уровней.
Возвращает: строковое значение – код счета без кодов счетов вышестоящих уровней.
Например, для счета “10.5” этот метод вернет строковое значение “5”.
ВыборГруппы (< флаг >) – Этот метод устанавливает режим выборки групп. Данный метод может применяться как для позиционируемых объектов, созданных функцией ‘‘СоздатьОбъект’‘ , так и для элементов диалога типа ‘‘Счет’‘ . По умолчанию выбор группы разрешен, за исключением счетов дебета и кредита в проводках операции.
ВыбрСчет . ВыборГруппы (1); //разрешить выбор группы
ВыбрСчет . ВыборГруппы (0); //запретить выбор группы
Немногие бухгалтеры (особенно начинающие) знают и пользуются всеми возможностями бухгалтерских отчётов в 1С.
В этой статье на сквозном примере разберём работу с "Анализом счёта" в 1С:Бухгалтерии 8.3 (редакция 3.0).
Внимание, это урок - повторяйте все мои действия в своей базе (у вас только организация и период будут другими).
Заходим в раздел "Отчёты" и выбираем пункт "Анализ счёта" ( у вас другое меню? ):
В открывшемся отчёте указываем период (у меня это будет весь 2013 год), счёт (будем исследовать 10 счёт "Материалы") и организацию (у меня это будет Конфетпром), жмём кнопку "Сформировать":
К примеру, какао порошок поступил в количестве 3 000 кг на сумму 221 195, 83 рублей, а был списан в количестве 200 кг на сумму 14 746, 39 рублей:
Раскрываем поставщиков и статьи затрат
А давайте выясним от каких поставщиков он поступил и на какие статьи затрат был списан.
Для этого зайдём в настройки отчёта (кнопка "Показать настройки"):
Перейдём на закладку "Группировка по кор. счету" и нажмём кнопку "Добавить":
Добавим два счёта 60 и 20 и укажем у них субконто как на рисунке:
Нажмём кнопку "Сформировать" и увидим, что какао порошок нам поставили два контрагента "Divuar Cacao company" и "Таможня Брест-литовск". А 200 кг были списаны на "Материальные расходы основного производства":
Делаем отбор по какао порошку
Теперь сделаем так, чтобы в отчёте остался только какао-порошок, раз уж мы работаем именно с ним.
Снова заходим в настройки отчёта, вкладка "Отбор". Ставим галку "Номенклатура" и в поле "Значение" выбираем "Какао порошок":
Переформируем отчёт, готово:
Оставляем только количество
А теперь было бы здорово оставить в отчёте только количество порошка, убрать суммовой эквивалент.
Для этого перейдём на вкладку "Показатели" в настройках отчёта и снимем галку "БУ (данные бухгалтерского учета)", при это оставим галку "Количество":
Нажмём кнопку "Сформировать" и вуаля:
Выводим единицы измерения
А что если прямо в отчёте рядом с материалом выводить единицу его измерения?
Давайте перейдём на закладку "Дополнительные поля" и нажмём кнопку "Добавить":
Выберем поле "Номенклатура"->"Единица":
И увидим желанные "кг":
Другие возможности
Я не буду повторяться про возможности общие с остальными бухгалтерскими отчётами (оформление, сдача в архив, отправка по почте и другие). О них вы сможете прочитать в уроке про использование оборотно-сальдовой ведомости.
На этом всё, на очереди уроки по другим видам бухгалтерских отчётов и не только
Подписывайтесь на новые уроки
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Читайте также: