Опубликован: 06.12.2011 | Уровень: специалист | Доступ: платный
Лекция 2:

Разработка бухгалтерской подсистемы

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >

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

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
  Для каждого Проводка из Движения.Хозрасчетный Цикл
    Проводка.Период = Дата;
  КонецЦикла;
КонецПроцедуры

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

Лучший выход – возможность произвольного включения и отключения активности проводок. Однако, в табличном поле редактирование поля Активность по умолчанию недоступно. Попытка отключить активность отдельной проводки в документе приводит к ошибке при его записи. Можно включить редактирование этого поля (переместив реквизит Активность со вкладки Реквизиты на вкладку Элементы), но при необходимости отключения активности проводок, придется вручную редактировать это свойство для каждой из них, что не очень удобно. Для того чтобы проводки в документе можно было бы "отключать", не удаляя их, можно доработать форму документа таким образом, чтобы можно было по нажатию одной кнопки включать или отключать активность всех проводок.

В конструкторе форм добавим новую команду, назовем ее Активность, создадим ее обработчик, перетащим эту команду на командную панель формы, где она, по умолчанию, будет представлена в виде кнопки. Обработчик команды будет объявлен с директивой компиляции &НаКлиенте, для работы с коллекцией движений объекта нам понадобится серверная процедура или функция. В итоге мы приходим к такому коду:

&НаКлиенте
Процедура Активность(Команда)
  ПереключитьАктивностьПроводок();
КонецПроцедуры

&НаСервере
Процедура ПереключитьАктивностьПроводок()
  Записи = Объект.Движения.Хозрасчетный;
  Если Записи.Количество()>0 Тогда
    Для каждого Запись из Записи Цикл
      Запись.Активность=НЕ Запись.Активность;
    Конеццикла;  
  КонецЕсли;
 КонецПроцедуры

Здесь мы получаем в переменную Записи набор записей по регистру Хозрасчетный, после чего, в цикле обхода записей, инвертируем их признак Активность. То есть, если до нажатия на кнопку Активность флаг Активность установлен, мы его сбрасываем, если сброшен – устанавливаем.

Для того, чтобы пользователь мог видеть, активны ли проводки, перетащим поле Активность с вкладки Реквизиты на вкладку Элементы в состав реквизитов табличного поля и установим для этого поля свойство Только просмотр.

Вот как, в итоге, выглядит форма нашего доработанного документа в режиме 1С:Предприятие ( рис. 2.4) после того, как мы ввели в него некоторые данные и однократно нажали на кнопку Активность в панели управления табличного поля. По умолчанию флаг Активность установлен, нажатие привело к сбрасыванию этого флага.

 Форма документа Бухгалтерская операция, активность проводок отключена

увеличить изображение
Рис. 2.4. Форма документа Бухгалтерская операция, активность проводок отключена

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

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

Капитал: 103000 руб.
Расчеты с поставщиками: 20000 руб. (ООО "Полет")
Касса: 29000 руб.
Расчеты с покупателями: 82000 руб. (ООО "Покупатель")
Материалы для производства: 
    УФ-гель (Петров П.П. (Парикмахерская)), 
    Сумма – 12000, 
    количество – 10 упаковок.

Несложно заметить, что сумма остатков по пассивным счетам (Капитал и Поставщики) равняется сумме остатков по активным (Касса, Покупатели, Материалы). Такие остатки принято вводить в корреспонденции со счетом 00. Такого счета среди предопределенных счетов нет. Но пользователь может вводить собственные счета в планы счетов, не используя конфигуратор. Поэтому введем новый счет в наш план счетов Хозрасчетный. Для этого откроем форму списка плана счетов, добавим новый счет командой Добавить. Введем в реквизит Код значение 00, в НаименованиеСлужебный. Другие реквизиты оставим в значениях по умолчанию ( рис. 2.5)

 Создание нового счета в плане счетов Хозрасчетный

Рис. 2.5. Создание нового счета в плане счетов Хозрасчетный

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

Создадим в пользовательском режиме новый документ Бухгалтерская операция. Установим дату – 31.12.2010, время – 23:59:59. Начальные остатки обычно вводят именно такой датой. Заполним табличное поле документа в соответствии с вышеприведенными данными.

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

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >
Константин Павлов
Константин Павлов

Почему в лекции 1 "Основы организации бухгалтерской подсистемы" курса "Разработка прикладных решений для платформы 1С:Предприятие 8.2 в режиме "Управляемое приложение"" совершенно нет информации о том что нужно на вкладке данные в табличной части создать табличную часть "ВидыСубконто" и также нет информации о том какие нужно добавить реквизиты и какие у этих реквизитов должен быть тип? Считаю лекцию 1 в данном вопросе недоработанной.

Надежда Федулкина
Надежда Федулкина
Олег Некрасов
Олег Некрасов
Россия
Алексей Васильев
Алексей Васильев
Россия, Новосибирск