Учебные материалы по бухучету | Методичка по 1с бухгалтерии | Buhu5
ВУЗы по бухучету Готовые работы по бухучету Как писать работы по бухучету Примеры решения задач Решить задачу online

Методичка по 1с бухгалтерии


Объектно — ориентированное программирование

Методическая разработка

для проведения практических занятий

2006

Безуглов Д. А. Объектно- ориентированное программирование. Методическая разработка для проведения практических занятий РИС ЮРГУЭС 2003 92 с.

На примере программы «1С:Бухгалтерии 7.7» рассматриваются основные приемы объектно- ориентированного программирования. Последовательность материала в книге построена следующим образом. Вначале описывается процесс настройки структуры учета: изменение плана счетов, создание новых разрезов аналитического учета, настройка аналитического учета для счетов. Далее описывается про­цесс создания новых видов документов, создание для них печатной формы, описание алгоритма автоматического формирования проводок по документу. Рассматриваются важные аспекты изменения существующей конфигурации, как-то: изменение структуры счета в плане счетов и последующее изменение документа, формирующего проводки по этому счету. В последней части книги описывается процесс создания новых отчетов.

Пособие предназначено для студентов очного и заочного отделения.

Введение

Порядок работы с программой определяется ее конфигура­цией. Конфигурация представляет собой набор спра­вочников, документов, отчетов, бухгалтерских счетов, других объектов, которые в совокупности «знают», как вводить информацию в программу, как она хранится, как ее извлечь, чтобы представить в нужном для пользователя виде, а также многое другое.

Работа пользователя непосредственно с программой «1С: Бухгалтерия» (ввод данных, получение отчетов) ведется на осно­вании структуры данных и правил их обработки, заданных в конфигу­рации.

Все описываемые в данной книге действия выполняются в типовой конфигурации «Бухгалтерский учет».

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

Данные, вводимые пользователем, хранятся в информационной базе. Информационная база и конфигурация тесно связаны между собой: информационная база создается под конкретную конфигурацию, и из­менения, которые вносятся в конфигурацию, приводят к изменениям в информационной базе.

Рабочая информационная база непосредственно предназначена для ведения учета. Всю информацию в эту базу должен внести пользова­тель, за исключением некоторого объема нормативно-справочной ин­формации, которая необходима для правильного функционирования программы и вносится в информационную базу автоматически при первом запуске программы.

«1С:Бухгалтерия 7.7» может работать в двух принципиально раз­ных режимах.

Режим запуска «Конфигуратор» предназначен для внесения каких-либо изменений в конфигурацию: от самых простейших, — например, редактирования шаблона печатной формы какого-либо документа, — до существенных, — например, создания нового документа. Как прави­ло, изменения в Конфигураторе вносит опытный пользователь, кото­рый представляет себе работу конфигурации в целом.

Режим запуска «1С: Предприятие» — рабочий режим программы, который предназначен непосредственно для работы по ведению учета. В этом режиме никакие изменения в конфигурацию программы внести нельзя.

Запуск программы в том или ином режиме выполняется через ме­ню «Пуск» («Start») операционной системы. В процессе изложения мы подробно остановимся на запуске программы.

Глава 1. План счетов

В программе «1С: Бухгалтерия 7.7» основным понятием бухгалтерского учета является счет. Счет представляет собой объект группировки информации об имуществе и обязательствах организации. Каждый счет аккумулирует информацию о конкретном виде имущества или обязательств. Совокупность счетов называется планом счетов, и в этом качестве план счетов 1С: Бухгалтерии 7.7 наиболее близок к «бухгал­терскому» понятию плана счетов.

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

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

Тем, кто только что приступил к работе с типовой конфигурацией «1С:Бухгалтерии 7.7», мы рекомендуем придерживаться того плана счетов, который включен в типовую конфигурацию. Сделать это не­сложно на этапе внедрения программы, когда вводятся начальные ос­татки: просто нужно вводить остатки по тем счетам, которые сущест­вуют в «1С:Бухгалтерии 7.7», «проецируя» на них остатки из вашей главной книги.

Существует несколько весомых причин применения плана счетов именно типовой конфигурации «1С:Бухгалтерии 7.7».

План счетов, который поставляется в типовой конфигурации, мак­симально соответствует «Плану счетов бухгалтерского учета финансо­во-хозяйственной деятельности предприятий…», утвержденного соот­ветствующим приказом Минфина. Причем, это касается не только присутствия необходимых счетов и субсчетов, но и настроек аналити­ческого, валютного, количественного и налгового учета. Эти настройки позволя­ют вести аналитический учет в требуемых разрезах, а также валютный учет в тех случаях, когда это предусмотрено инструкцией по примене­нию Плана счетов. Настройка количественного учета соответствует сложившейся практике.

Многие документы типовой конфигурации «1С:Бухгалтерии 7.7» умеют автоматически формировать бухгалтерские проводки: после за­полнения документа и его записи в журнал документов, при проведе­нии документ формирует бухгалтерскую операцию с необходимыми проводками. Алгоритмы формирования проводок создаются в Конфи­гураторе на основе свойств счетов, заданных в плане счетов типовой конфигурации.

Мы также не рекомендуем удалять те счета и субсчета из плана счетов, которые вам кажутся «ненужными». Причины здесь — те же, о которых мы говорили чуть выше, когда рекомендовали придерживать­ся существующего плана счетов. Кроме того, не редка ситуация, когда удаленные «за ненадобностью» счета из плана счетов вновь окажутся необходимыми.

Несмотря на то, что план счетов «1С:Бухгалтерии 7.7» включает все необходимые счета и субсчета, определенные Планом счетов, необхо­димость в той или иной корректировке плана счетов все же возникает. Как правило, чаще всего вводятся новые субсчета к уже существую­щим счетам. Потребность в новых счетах возникает, как правило, зна­чительно реже, и происходит при изменении плана счетов на законо­дательном уровне.

Программа «1С:Бухгалтерия 7.7» позволяет вводить счета и субсчета в план счетов и в режиме запуска «Конфигуратор», и в режиме запус­ка «1С:Предприятие». При этом следует иметь в виду, что изменения, сделанные в Конфигураторе, вносятся именно в конфигурацию про­граммы (хотя влияют определенным образом на информационную ба­зу), а изменения, вносимые в режиме запуска «1С: Предприятие», из­меняют только информационную базу.

С точки зрения ведения учета, между счетами, введенными в Кон­фигураторе, и счетами, введенными в режиме «1С:Предприятие», нет никакой разницы. И те, и другие счета одинаково используются при вводе бухгалтерских операций, по ним одинаково группируются бух­галтерские итоги, по счетам обоих типов одинаковым образом можно формировать бухгалтерские отчеты. Различия появляются только при редактировании планов счетов и изменении свойств самих счетов.

Прежде всего, счета, введенные в план счетов в Конфигураторе, нельзя удалить в режиме работы «1С: Предприятие».

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

Для счетов, введенных в план счетов в Конфигураторе, нельзя из­менять свойства счета, кроме дополнительных реквизитов, в режиме запуска «1С: Предприятие». Также для счетов, введенных в Конфигу­раторе, нельзя отменить ведение аналитического учета или изменить настройки такого учета. В то же время, все эти изменения можно вы­полнить, запустив «1С: Бухгалтерию» в режиме «Конфигуратор».

Например, в типовой конфигурации для счета 10 указано ведение аналитического учета в разрезе материалов и мест хранения, и отка­заться от этого при работе в режиме «1С:Предприятие» нельзя. Можно только добавить, например, еще одно измерение. В то же время, в уп­рощенной конфигурации свойства счета 10 заданы в режиме запуска «1С:Предприятие», поэтому их можно изменить непосредственно в сеансе работы пользователя-бухгалтера. Такой подход в упрощенной конфигурации выбран потому, что в ней нет документов и отчетов, алгоритмы которых жестко привязаны к свойствам конкретных счетов.

Таким образом, в данной главе мы рассмотрели особенности орга­низации плана счетов в «1С:Бухгалтерии». Далее на конкретных при­мерах мы разберем различные способы внесения изменений в план счетов.

Глава 2. Ввод в план счетов нового субсчета

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

План счетов в «1C:Бухгалтерии 7.7» рассчитан на наиболее общее применение и, естественно, в нем не могут быть учтены специфиче­ские особенности ведения учета. Характерным примером может слу­жить ведение учета на счете 74. В плане счетов типовой конфигурации к счету 74 открыты три субсчета, каждый из которых является груп­пой, то есть не может участвовать в проводках. Правила ведения учета на счете 74 требуют открытия к субсчетам первого уровня субсчетов второго уровня, индивидуальных для каждой организации. Например, для ведения учета договоров простого товарищества предназначен суб­счет 74.1. При заключении договора простого товарищества к субсчету 74.1 открывается субсчет следующего (второго) уровня и на этом суб­счете ведется учет в разрезе контрагентов. Аналогично ведется учет на субсчетах 74.2 и 74.3.

Таким образом, чтобы отражать расчеты по договорам простого то­варищества в «1С:Бухгалтерии 7.7», пользователю потребуется самому вводить необходимые субсчета к субсчету 74.1, который уже задан в плане счетов программы как группа.

Сначала хотелось бы напомнить, что в программе «1С: Бухгалтерия 7.7» счета и субсчета можно вводить как в режиме «1С:Предприятие» (когда с программой работает конечный пользователь), так и в режиме «Конфигуратор». Поскольку открытие новых субсчетов к субсчету 74.1 происходит в процессе ведения учета и не затрагивает структуры ве­дения учета, выполнять открытие этих субсчетов мы будем в режиме запуска «1С:Предприятие».

Для запуска «1С:Бухгалтерии» можно воспользо­ваться меню Пуск (Start).

Нажмите кнопку Пуск (Start) и последова­тельно выберите пункты Програм­мы (Programs) — 1C Предприятие — 1C Предприятие Монопольно из появляющихся меню.

После этого на экране появляется диалог запуска 1С: Предприятия. В появившемся диалоге установите курсор в списке информационных баз на ту базу, с которой вы хотите работать. Выделим в списке ин­формационных баз строку «1С:Бухгалтерия. Типовая конфигурация (демо)» и нажмем кнопку «ОК».

Если до этого вами или кем-либо еще для данной конфигурации был заведен список пользователей, то при запуске программы будет выдан диалог авторизации, в котором нужно выбрать свое имя из спи­ска пользователей и ввести пароль, если он для вас установлен. Если список пользователей не создавался, то вход в программу выполняется сразу.

Для ускорения запуска программы можно создать на рабочем столе Win­dows ярлык, в поле «Объект» которого указать все параметры, необходи­мые для запуска программы: режим запуска, путь к информационной базе и имя пользователя, если необходимо.

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

Откройте план счетов. Сейчас мы находимся в режиме запуска «1С:Предприятие». Чтобы открыть план счетов, необходимо открыть меню «Операции» главного меню программы и вы­брать пункт «План счетов».

Часто одно и то же действие в программе можно выполнить нескольки­ми разными способами:

•при помощи главного меню программы

•используя кнопки панелей инструментов

•при помощи контекстного меню (которое вызывается нажатием пра­вой кнопки мыши);

•нажав комбинацию «горячих клавиш».

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

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

Если вы уже знакомились с программой, то обратили внимание, что большинство пунктов главного меню программы и контекстных ме­ню имеют пиктограммы слева от названия. Это значит, что на ка­кой-либо панели инструментов программы существует кнопка, анало­гичная по назначению выбранному пункту меню. Рисунок на кнопке совпадает с пиктограммой около пункта меню, и такое соответствие по­зволяет легко запомнить назначение кнопок панелей инструментов.

Кроме этого, в правой части того или иного пункта меню выдается также комбинация «горячих клавиш», нажатие на которые равносильно выбору этого пункта меню или нажатию кнопки панели инструментов.

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

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

Колонка «Код» содержит полный код счета (субсчета). Для счета перво­го уровня это будет код счета; для субсчетов код будет состоять из кода счета и кода субсчета, разделенных точкой.

Колонка «Наименование» содержит наименование счета (субсчета). На­именования счетов, входящих в типовую конфигурацию 1С: Бухгалтерии 7.7, соответствуют «Плану счетов бухгалтерского учета,..».

В колонке «Вал» указывается признак того, ведется ли валютный учет по счету (субсчету). Если по счету ведется валютный учет, то в этой колон­ке ставится «+».

В колонке «Кол.» указывается признак того, ведется ли количественный учет по счету (субсчету). Если по счету ведется количественный учет, то в этой колонке ставится «+».

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

В колонке «Заб.» указывается признак забалансового счета. Если счет является забалансовым, то в графе «Заб.» ставится «+».

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

Для ввода в план счетов нового субсчета в колонке «Акт.» указывается признак «активности» счета. Этот при­знак определяет, каким образом будет отображаться остаток по счету.

В отличие от других характеристик счета, этот признак может прини­мать одно из 3-х возможных значений: счет (или субсчет) может быть по­мечен как «активный» («А»), «пассивный» («П») или «актив­но-пассивный» («АП»).

У счета, помеченного как «активный», не будет кредитового остатка. Дебетовый остаток на счете будет выводиться (например, в оборот-но-сальдовой ведомости) со знаком «+»; если остаток будет кредитовым, то он все равно будет показываться как дебетовый, но со знаком «-».

Например, в плане счетов «1С:Бухгалтерии 7.7» счет 50 «Касса» обо­значен как «активный». Если в процессе отражения операций по этому счету остаток по какой-либо причине станет кредитовым (например, «зад­ним числом» сначала ввели все выдачи денег из кассы, а затем — все по­ступления), то в оборотно-сальдовой ведомости появится отрицательное число в колонке «Сальдо на конец периода — Дебет» по строке 50 счета.

У счета, помеченного как «пассивный», наоборот, не будет дебетового остатка. Кредитовый остаток на счете будет выводиться со знаком «+», а если остаток будет дебетовым, то он все равно будет показываться как кре­дитовый, но со знаком «-». Дебетового остатка у пассивного счета не будет.

Активно-пассивный счет может иметь как дебетовый, так и кредитовый остаток. Для такого счета соответствующий остаток всегда будет выдавать­ся со знаком «+».

В колонках «Субконто1»…«СубконтоЗ» указываются виды субконто счета. Значения колонок определяют ведение аналитического учета по дан­ному счету по указанным видам субконто. Например, указание в колонке «Субконто1» вида субконто «Материалы» будет определять ведение учета по данному счету в разрезе материалов.

Самая левая колонка плана счетов является служебной. В ней особыми значками, похожими на стилизованную букву «Т», обозначается состояние счета.

Прежде всего, значки отличаются цветом буквы «Т». Желтый цвет бук­вы «Т» означает, что счет является счетом-группой. Такой счет не может использоваться при вводе проводок — проводки можно вводить только по субсчетам этого счета. Обычно, счетами-группами являются счета, для ко­торых требуется знать развернутое сальдо по субсчетам. «Т» голубого пвета обозначает, что этот счет является собственно сче­том и может участвовать как корреспондирующий счет при формировании проводок. «Галочка» красного цвета означает, что данный счет или субсчет введен в Конфигураторе, и не может редактироваться в режиме запуска «1С:Предприятие».

Счета и субсчета, введенные в план счетов в режиме запуска «1С:Предприятие», можно помечать на удаление. При пометке на удаление счета или субсчета значок перечеркивается.

В «1С:Предприятии» имеется возможность показа плана счетов в виде иерар­хического списка. Включение (и выключение) этого режима осуществляется выбором пункта «Иерархический список» из меню «Действия» главного меню программы.

План счетов, отображаемый в виде иерархического списка, содержит только счета первого уровня, без подчиненных им субсчетов. Для просмотра субсчетов какого — либо счета надо дважды щелкнуть мышкой по значку в виде двух «букв Т» — Т. Чтобы увидеть субсчета, например, 10 счета, следует дважды щелк­нуть мышью значок Т в крайней левой колонке плана счетов.

В «1С: Предприятии» можно также установить режим редактирования пла­на счетов в диалоге. В этом режиме для ввода нового счета (субсчета) будет открываться специальный диалог. Включение (и выключение) этого режи­ма осуществляется выбором пункта «Редактировать в диалоге» из меню «Действия» главного меню программы.

Для ввода нового субсчета в план счетов сначала следует ввести новую строку. Для этого выберем пункт «Новый» из меню «Действия» главного меню программы и начнем вводить новый субсчет в по­следней строке таблицы плана счетов. Введите код и наименование субсчета. Сначала необходимо указать код и наименование создаваемого субсчета.

В плане счетов 1С:Бухгалтерии 7.7 (как и в «Плане счетов финансово-хозяйственной деятельно­сти предприятий…») код субсчета может состоять из 3-х частей: кода счета первого уровня и кода счета второго уровня. Поэтому сначала нам необходимо указать код счета верхнего уровня «74», затем нажать «.» и ввести код субсчета «1», сно­ва нажать «.» и ввести код нового субсчета, например, «1». Нажмем клавишу Enter, чтобы завершить ввод кода субсчета, при этом курсор перейдет в следующее поле, предназначенное для ввода наименования субсчета.

Введем наименование нового субсчета, например, «Договор номер 1» и опять нажмем Enter. Курсор переместится в следующую колонку таблицы. Далее будем нажимать клавишу Enter, это позволит нам пе­ремещаться по колонкам таблицы, не изменяя их. В последней колон­ке, содержащей полное название субсчета можно ввести текст, напри­мер, «Расчеты по договору № 1 простого товарищества».

После нажатия Enter в последней колонке плана счетов, введенный нами субсчет занимает свое место в плане счетов в соответствии с за­данным кодом, унаследовав свойства счета 74. Рассмотрим свойства созданного нами субсчета.

Свойствами субсчета (как и счета, конечно), по­мимо уже указанных кода и наименования, в «1С:Бухгалтерии 7.7» являются:

• признак ведения валютного учета;

• признак ведения количественного учета;

• признак забалансового счета;

• признак «активный-пассивный».

В большинстве случаев свойства определяются соответствующими установками, заданными для счета в целом: если для счета задано ведение количественного учета (как, например, это сделано для счета 10 «Материа­лы»), то у всех субсчетов этого счета признак ведения количественного учета будет поставлен автоматически. Однако, если признак для счета в целом не указан, то для субсчетов признак ведения количественного учета может устанавливаться индивидуально и независимо: например, можно указать признак ведения количественного учета только для некоторых суб­счетов счета (хотя сложно придумать какое-либо логичное объяснение для такой настройки субсчетов).

Все, сказанное выше, справедливо и для признака ведения на счете ва­лютного учета: если такой признак установлен для счета в целом, он будет автоматически проставлен при вводе нового субсчета к этому счету; если для счета этот признак отсутствует, его можно установить индивидуально для субсчета.

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

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

Для нового счета этот признак может принимать любое из 3-х значений: «Активный», «Пассивный» или «Активно-пассивный». Конкретное значе­ние признака определяется исключительно потребностями учета. Однако если открывается новый субсчет к уже существующему счету, этот признак определенным образом «наследуется» от счета — это зависит от установки признака у счета.

Так, если для счета в целом выбран признак «Активно-пассивный» («АП»), то для субсчетов этого счета признак можно устанав­ливать индивидуально и независимо друг от друга.

Напротив, если для счета в целом установлен признак «Актив­ный» («А») или «Пассивный» («П»), то для субсчетов этого счета будет автоматически поставлено то же значение признака, которое стоит у счета в целом.

Итак, новый субсчет в плане счетов занял следующую строку после строки субсчета 74.1. Мы видим, что субсчету 74.1.1 уже установлен определенный набор свойств — это те же свойства, которые установ­лены субсчету 74.1 и счету 74. Свойства субсчета можно изменить, для этого надо щелкнуть мышкой в колонке, и с помощью кнопки выбора изменить значение, записанное в колонке.

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

В колонке «Кол.» плана счетов для счета ставится признак ведения количественного учета. Если этот признак включен, то при вводе про­водок можно будет указывать не только сумму, но и количество. Обычно количественный учет применяется на счетах учета товар­но-материальных ценностей, поэтому здесь мы также не будем вклю­чать признак количественного учета.

В колонке «Заб» для счета указывается признак того, что счет яв­ляется «забалансовым». Программа не позволяет корреспондировать такие счета в проводках с балансовыми счетами. Но когда вводится субсчет к уже существующему счету, этот признак будет «наследован» от счета, — то есть для субсчета будет автоматически установлено та­кое же значение этого признака, которое существует у счета.

Теперь следует указать признак «активности» создаваемого субсче­та. Мы ввели новый субсчет для существующего субсчета 74.1, для которого этот признак установлен в «АП» («Активно-пассивный»). Поэтому мы оставим субсчету 74.1.1 назначенный признак «АП». Это полностью отражает суть субсчетов счета 74, остатки на субсчетах могут быть как дебетовыми, так и кредитовыми.

Строго говоря, установка этого признака требует, скажем так, неко­торого навыка, особенно если программу используете не только вы: не всякий бухгалтер сразу правильно воспримет появление числа со зна­ком «-» в колонке оборотно-сальдовой ведомости «Сальдо на конец периода — Дебет» для какого-либо счета. Тем не менее, правильная установка признака «Активно-пассивный» является, своего рода, средством дополнительного контроля за правильностью ведения учета.

Помимо этих свойств, для нового субсчета в типовой конфигурации установлен также признак ведения аналитического учета «Субконто» по виду субконто «Контрагенты». Изменить эту настройку невозмож­но, так как она унаследована от счета 74, то есть если щелкнуть мыш­кой в колонке «Субконто», то никаких действий выполнено не будет.

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

Однако для нового субсчета можно добавить еще одно измерение аналитики, для этого надо указать наименование вида субконто в ко­лонке «Субконто2» плана счетов. Но для этого только что созданного субсчета это не нужно, и мы просто откажемся от редактирования ана­литики.

Теперь при работе с типовой конфигурацией «1С:Бухгалтерии» вы можете вводить проводки, используя новый субсчет; этот субсчет бу­дет фигурировать во всех стандартных отчетах, то есть, он будет вести себя, как и любой другой счет в плане счетов.

Глава 3. Создание нового счета в Конфигураторе

Как вы уже знаете, счета, вводимые в план счетов в Конфигураторе, отличаются от тех, которые вводятся в режиме «1С:Предприятие» тем, что их нельзя удалить в режиме «1С:Предприятие»; кроме того, они имеют ограниченные возможности редактирования.

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

Запустите конфигуратор. Перед запуском Конфигуратора не обязательно вы­ходить из 1С:Бухгалтерии, это можно будет сделать позже, перед записью изменений, сделанных в кон­фигурации.

Нажмите кнопку Пуск (Start) и последовательно выберите пункты Программы — 1C Предприятие — Конфигуратор. После этого на экра­не появляется диалог запуска «1С:Предприятия».

В появившемся диалоге установите курсор в списке информацион­ных баз на ту базу, с которой вы хотите работать. Если до этого вами или кем-либо еще для данной конфигурации был заведен список пользователей, то, так же, как и при запуске самой «1C:Бухгалтерии 7.7», при запуске Конфигуратора будет выдан диалог авторизации, в котором нужно выбрать свое имя из списка пользова­телей и ввести пароль, если он для вас установлен.

Для каждого пользователя в «1C Предприятии» задается набор прав, в котором указывается, какие действия данному пользователю доступны, а в кие — нет. При запуске Конфигуратора проверяются права на администрирование системы, и если у вас нет таких прав, Конфигуратор запущен будет.

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

Откройте окно "Конфигурация". Режим Конфигуратора используется не только для изменения конфигурации, но и, например, для создания архивной копии информационной базы. Однако, для решения нашей задачи нам нужно именно изменять конфигурацию, поэтому нам нужно войти в режим редактирования конфигурации. Для этого нужно выбрать пункт «Открыть конфигурацию» из меню «Конфигурация» главного меню Конфигуратора.

Любые изменения в конфигурации «1C: Бухгалтерии 7.7» выполняются в окне «Конфигурация». Для его открытия выберите пункт «Открыть конфигурацию» из меню «Конфигурация».

Окно имеет три закладки, но нас в данный момент интересует пер­вая закладка — «Метаданные», которая и становится активной при открытии окна.

Откройте план счетов "Основной". В дереве метаданных планы счетов располагаются на ветви «Планы Счетов». Чтобы получить доступ к планам счетов, необходимо открыть эту ветвь для этого щелкните мышью знак «+» слева от фразы «Планы Счетов». Чтобы открыть план счетов для редактирования, следует дважды щелкнута мышью слово «Основной».

Введите в план счетов новую строку. Как мы уже отмечали, план счетов «1С:Бухгалтерии 7.7» содержит все необходимые счета и субсчета, Определенные Планом счетов бухгалтерского учета и добавлять новый счет про­сто нет смысла. Поэтому процедуру создания но­вого счета мы будем демонстрировать на условном примере.

Для начала ввода нового счета в плащ счетов сначала следует вве­сти новую строку. Выполняется это просто: нажмите клавишу Ins — новая строка появится в самом конце плна счетов, а ячейка в колонке «Код» будет переключена в режим редактирования.

Введите код и наименование счета. Как и при создании нового субсчета, прежде всего следует ввести код счета. Используем какой нибудь условный код счета, например, 100. Введи те этот код и нажмите Enter.

Теперь курсор находится в колонке для вводг наименования счета. Введите наименование счета, например, «Расче­ты», и опять нажать клавишу Enter.

Конфигуратор выдаст запрос: «Счет будет иметь субсчета?». Пред­положим, что новый счет не имеет субсчетов, поэтому ответим «Нет».

Этот запрос выдается после ввода наименования нового счета. Если вы не уверены, потребуется ли открывать субсчета к новому счету, — выберите «Нет».

Задайте свойства счета. Задание свойств для счета выполняется так же как и для субсчета (об этом мы говорили выше).

Поэтому, для простоты оставим для счета те свойства, которые автоматически проставил Koнфигуратор, тем более что эти свойства примерно соответствуют смыслу созданного счета.

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

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

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

В первую очередь будет выдано предупреждение «При сохранении метаданных…». Данное предупреждение выдается в том случае, когда конфигура­ция изменена серьезно, то есть, изменена структура данных, а не про­сто отредактированы формы документов. В нашем случае мы создали новый объект метаданных — счет. Создание нового счета влечет за со­бой существенные изменения в конфигурации, зачастую незаметные для пользователя, например, для нового счета «резервируется» место в системе хранения бухгалтерских итогов, и каждый раз при вводе про­водок по новому счету система хранения итогов пересчитывает эти итоги. А для пользователя этот процесс проявляется только при обра­щении к остаткам и оборотам счета в стандартных отчетах или при помощи встроенного языка.

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

Если вы не уверены в сделанных изменениях, можно нажать кноп­ку «Нет», но мы все изменения сделали осмысленно и выбираем кноп­ку «Да».

Если вы все еще не закрыли 1С:Бухгалтерию, будет выдано преду­преждение «Ошибка блокировки метаданных…». Это означает, что с той информационной базой, в которую нам необходимо внести изме­нения, уже работает какая-то другая программа, в нашем случае —1С:Бухгалтерия. Поэтому вам необходимо закрыть 1С:Бухгалтерию, опять вернувшись в Конфигуратор, нажать кнопку «Повтор», чтобы продолжить процесс сохранения.

Некоторое время происходит процесс изменения конфигурации. О его ходе в строке состояния Конфигуратора выдаются различные сообщения. После окончания процесса на экран выдается окно «Реорганизации информации»:

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

Диалог «Реорганизация информации» (содержащий описания всех изменений, произведенных в конфигурации), является последним моментом, когда вы еще можете отказаться от сделанных изменений (нажав кнопку «Отмена»). При этом изменения конфигурации не буду сохранены, но и не будут потеряны — конфигурация в Конфигуратор все равно будет содержать все сделанные вами изменения. Вы сможете их посмотреть, сделать другие изменения и еще раз выполнит сохранение конфигурации. Однако вы можете закрыть конфигурацию без сохранения, — тогда все сделанные вами изменения пропадут. Если нажать кнопку «Принять», то все сделанные изменения будут отражены в информационной базе и их уже нельзя будет отменить. Так как сделанные нами изменения нас устраивают, мы можем нажать кнопку «Принять».

После того, как принятие изменений будет закончено, на экран бу­дет выдано сообщение «Реорганизация информации закончена».

Глава 4. Организация аналитического учета

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

В «1C:Бухгалтерии 7.7» аналитический учет организован при помощи субконто. Термином «субконто обозначаются любые объекты аналитического учета, как материальные, так и нематериальные: основные средства, материалы, МБП, нематериальнь активы, товары, сотрудники. Объектами аналитического учета, а, следовательно, и субконто, могут быть, например, бюджеты разных уровней.

Видом субконто, в свою очередь, называется совокупность однотипных объектов аналитического учета. Все основные средства образуют вид субконто «Основные средства», все материалы — соответственно, «Материалы», и так далее.

Для ведения аналитического учета на каком-либо счете бухгалтерского учета в требуемом разрезе, к этому счету «прикрепляется» соответствующий вид субконто. Например, для ведения аналитического учета по основным средствам на счете 01 к этому счету прикреплен вид субконто «Основные средства». Этот вид субконто представляет собой справочник основны средств организации.

В плане счетов, который входит в программу «1С:Бухгалтерия 7.7», уже проведена настройка аналитического учета в соответствии с инст­рукцией по использованию Плана счетов. Мы рекомендуем использо­вать эту настройку аналитического учета, во-первых, потому что она соответствует нормативным документам, во-вторых, потому что эту настройку используют при генерации проводок документы, сущест­вующие в типовой конфигурации; в-третьих, это нужно для правиль­ной работы форм отчетности.

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

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

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

В типовой конфигурации уже имеется вид субконто «Статьи за­трат», который используется для ведения аналитического учета по статьям затрат основного производства. Этот вид субконто имеет тип справочника «Статьи затрат». Мы все же создадим новый вид субкон­то для ведения аналитического учета на счете 23. Этот вид субконто будет иметь тип справочника, в котором мы будем хранить статьи затрат вспомогательного производства.

Процесс организации аналитического учета можно разделить на последовательных шага:

•создание нового вида субконто;

•организация аналитического учета по созданному виду суб­конто.

В нашем примере для создания нового вида субконто требует создать новый справочник. В «1С:Бухгалтерии 7.7» добавить в конфигу рацию новый вид субконто можно в процессе создания нового справочника, так же как и новый справочник можно создать в процессов создания нового вида субконто. Но, поскольку справочник может использоваться не только для ведения аналитического учета, но и для других целей, то есть является более широким понятием в конфигура­ции, чем вид субконто, мы будем считать приоритетной задачей создание справочника, а вид субконто образуется в процессе создания справочника.

Запустите Конфигуратор, откройте окно «Конфигурация» и перейдите к ветви "Виды Субконто". В отличие от редактирования плана счетов, которое можно выполнять и в Конфигураторе, и в режиме запуска «1С:Предприятие» создание нового вида субконто и нового справочника выполнятся только в Конфигураторе.

Создайте новый справочник. Новый справочник и новый вид субконто мы будем создавать с помощью Конструктора Справочника. Для вызова Конструктора справочника не обязательно открывать окно метаданных текущей конфигурации. Достаточно сразу после запуска Конфигуратора выбрать в главном меню пункт «Конструкторы», а него — пункт «Новый Справочник».

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

Вводимый идентификатор не может содержать пробелов и различ­ных специальных символов. Если в нем нужно отразить характеристи­ку создаваемого справочника двумя словами, то они пишутся в одно слово без пробела. Так как мы создаем справочник для ведения учета затрат дадим ему идентификатор «Затраты».

Кроме идентификатора, можно (но необязательно) также задать синоним и комментарий. Синоним предназначен для отображения названия справочника в Режиме запуска «1С:Предприятие». Комментарий содержит некий по­ясняющий текст. В качестве синонимов и комментариев можно ис­пользовать произвольный текст, поэтому советуем обязательно использовать синонимы, особенно в тех случаях, когда требуется да справочнику название, состоящее из двух и более слов.

Создаваемому нами справочнику дадим синоним «Статьи затрат вспом. производства». В качестве комментария можно ввести, например, строку «Список статей затрат — аналитика на счете 23».

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

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

Следующий диалог Конструктора позволяет включить вызов спра­вочника в меню «1С:Бухгалтерии». Включим флажок «Вставить ко­манду в пользовательское меню», одновременно флажок установится на названии интерфейса «Бухгалтер», единственного в типовой кон­фигурации.

Завершающий диалог Конструктора справочника позволяет нам настроить параметры субконто – задать синоним и коментарий. Мы введем для них те же значения, что и для справочника. Теперь можно нажать кнопку "Готово".

По завершении работы Конструктора справочника открывается диалог редактирования справочника. Изменим в этом диалоге только дин параметр — установим параметру «Серии кодов» значение «Во всем справочнике» — и закроем диалог.

Итак, мы создали одноуровневый справочник «Статьи затрат вспом. производства», в котором будут храниться наименования статей затрат. Одновременно мы создали вид субконто с тем же наименова­нием и имеющий тип нового справочника. Чтобы сохранить выпол­ненные нами изменения и просмотреть результаты, запустим програм­му в режиме «1С:Предприятие», предварительно подтвердив сохранение изменений в конфигурации.

В режиме запуска «1С:Предприятие» выберите из главного меню пункт «Справочники». В открывшемся подменю вы видите добавленный пункт «Статьи затрат вспом. производства», который вызывает диалог редактирования нового справочника.

«Прикрепите» субконто к счету. Создав вид субконто, мы еще не организовали аналитический учет: мы пока только определили, что у нас будет список объектов аналитического учета, и что будут представлять собой элементы этого списка — в нашем случае это будут элемен­ты справочника «Статьи затрат вспом. производства». Чтобы органи­зовать аналитический учет на счете 23 по субконто «Статьи затрат вспом. производства», необходимо прикрепить к этому счету создан­ный вид субконто.

Редактирование настроек аналитического учета выполняется в пла­не счетов, поэтому перейдите к окну «Конфигурация» и откройте окно «Плана счетов Основной» и найдите в нем счет 23.

Дважды щелкните мышью в колонке «Субконто1» — откроется список видов субконто, в котором нужно выбрать нужный нам вид субконто «Затраты». Выделите в списке строку «Статьи затрат вспом. производст­ва» и нажмите кнопку «ОК», чтобы перенести название выбранного вида субконто в ячейку плана счетов.

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

Вообще говоря, добавление вида субконто к таким счетам технически не представляет никакой сложности и выполняется так же, как эт мы уже рассказывали выше: при помощи Конструктора создается новый вид субконто; в процессе работы Конструктора, если это необходимо и вы это указали, будет создан новый справочник или новое перечисление; после создания новый вид субконто прикрепляется к счету.

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

В первую очередь, это касается документов, у которых алгоритм генерации проводок используют счета, для которых вы изменили настройки аналитического учета (если документы не используют изме­ненные счета, то их корректировать не требуется).

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

Также должен быть изменен алгоритм генерации проводок: в него следует добавить команды для записи этого нового объекта аналитики. В принципе, эти изменения сами по себе не сложны, но весьма кро­потливы: здесь важно ничего не пропустить.

Глава 5. Новые виды документов

В «1C: Бухгалтерии 7.7» новые виды документов создаются обычно в двух случаях:

•если появляется необходимость ввода и печати некоторого первичного документа, например, накладная, счет, требова­ние, заявка и др.;

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

Документы в «1С:Бухгалтерии 7.7» могут использоваться для ре­шения обеих названных задач, причем, зачастую имеют место оба этих мотива. В этом случае документ будет выполнять сразу две функции.

В типовой конфигурации «1C:Бухгалтерии 7.7» уже содержится боль­шое количество видов документов, разработанных специалистами фир­мы «1C». Они позволят автоматизировать создание бумажных первич­ных документов и формировать бухгалтерские проводки для наиболее часто встречающихся хозяйственных ситуаций.

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

Когда же документ создается в конкретной организации, он рассчи­тан, как правило, на автоматизацию какой-то одной хозяйственной операции или нескольких операций одного типа.

Кроме того, при создании нового документа нет необходимости сразу учитывать все особенности его использования — возможности конфигурирования «1C:Бухгалтерии 7.7» позволяют наращивать функциональность созданного документа по мере необходимости.

Рассмотрим пример создания документа, обеспечивающего отражение в бухгалтерском учете факта отпуска териалов для вспомогательного производства. Хотя в типовой конфигурации уже есть универсальный документ, обеспечивающий списа материалов на заданный счет, работать с новым документом будет несколько удобнее, поскольку в нем уже будет известен корреспондирующий счет (23 «Вспомогательные производства»). Кроме того, специализированный документ в дальнейшем позволит легко отразить особенности данной хозяйственной операции.

Задуманный нами документ будет использоваться как средство гистрации в системе самого факта списания материалов во вспомогательное производство (то есть для ввода информации, которая в дальнейшем будет всегда доступна, и для печати бумажной формы документа на принтере), а также для формирования бухгалтерских проводок, отражающих такой способ списания материалов в бухгалтерском учете. Так как в «1C:Бухгалтерии» мы можем постепенно развивать создаваемые нами объекты конфигурации, то мы разобьем цесс создания документа на три этапа:

•описание структуры документа и создание формы ввода;

•создание шаблона печатной формы и алгоритма ее построе­ния;

•создание алгоритма генерации проводок.

Глава 6. Описание структуры документа и создание формы ввода

Запустите Конфигуратор. Весь процесс конфигурирования выполняется в режиме запуска «Конфигуратор».

Для создания нового вида документа воспользуемся Конструктором Документа — выберите пункт «Конструктор документа» из меню «Конструкторы» главного меню Конфигуратора. Прежде всего, для нового вида документов Конструктор запрашивает идентификатор, синоним и комментарий.

Идентификатором вида документа является некоторое ключевое слово (наименование), которое будет его характеризовать, и которое должно отличаться от наименований всех других видов документов.

Вводимый идентификатор не может содержать пробелов и различных специальных символов, кроме подчеркивания; он также не должен начи­наться с цифры. Если в идентификаторе нужно отразить вид создавае­мого документа двумя словами, то они пишутся в одно слово без пробе­ла, при этом можно использовать сокращения. Длина идентификатора не должна превышать 128 символов.

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

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

Создаваемый документ мы назовем «СписаниеМатериалов». В отличие от идентификатора, на синоним и комментарий не кладывается никаких ограничений. Синоним — это представление документа в режиме запуска «1С:Предприятие», пусть в нашем случае будет строка «Списание материалов». В комментарии обычно писывают текст, поясняющий назначение создаваемого документа, например, мы можем ввести комментарий «Отпуск материалов вспомогательного производства».

Задав эти параметры, нажмем кнопку «Далее» и перейдем к дующему диалогу Конструктора Документов.

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

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

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

Диалог описания проводки позволяет ввести счета дебета и кредита, выбрав их из плана счетов. Нам нужно формировать проводки по ту счета 23 и кредиту счета 10.1 «Сырье и материалы».

Учитывая свойства счетов формируемых проводок, Конструктор Документов формирует список возможных реквизитов документа.

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

Счет 23 имеет субконто «Статьи затрат вспомогательного произ­водства», тип которого — справочник с идентификатором «Затраты», то есть первый реквизит из нашего списка.

Счет 10.1 имеет субконто «Материалы» и «Места хранения», это следующие реквизиты из нашего списка.

Кроме того, счету 10.1 в плане счетов установлен признак ведения количественного учета. Поэтому для формирования проводки потре­буется ввести количество.

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

Следующий диалог Конструктора документов позволяет для каждого реквизита определить его принадлежность к шапке или табличной части. В документе также может присутствовать табличная часть, в кото­рую можно будет ввести несколько строк. Реквизиты табличной части будут вводиться, соответственно, для каждой строки документа.

Первоначально все реквизиты отнесены Конструктором к шапке документа. Мы должны определить, будет ли наш документ иметь таб­личную часть.

Обычно, определить, будет ли реквизит относиться к шапке или к таб­личной (многострочной) части, достаточно просто. Если у вас есть бланк документа (накладной, счета), то из него видно, какие реквизиты будут относиться к табличной части, то есть являться колонками в много­строчной части документа. Если бланка под рукой нет, то можно мыс­ленно выделить группу реквизитов, которая будет иметь в документе единственное значение, и группу реквизитов, значения которых будут заполняться для каждой строки.

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

Например, списание материалов можно оформлять одним докумен­том на каждый материал — тогда в таком документе, очевидно, не будет табличной части. Однако все-таки целесообразнее оформлять одним до­кументом списание нескольких материалов — тогда в таком документе должна быть табличная часть для ввода наименований и других сведе­ний о материалах.

Поскольку нам желательно иметь возможность одним документом списывать в производство несколько видов материалов, а не вводить для каждого вида материала новый документ, следовательно, в доку­менте обязательно должна присутствовать табличная (многострочная часть). Следовательно, реквизит «Материалы» должен принадлежать табличной части. Установим на него курсор и нажмем на кнопку «->». Теперь реквизит «Материалы» принадлежит табличной части.

Каждый материал характеризуется количеством, которое будет спи­сано в производство, и суммой, определяющей стоимость списываемых материалов. Эти параметры индивидуальны для каждого материала, поэтому их следует перенести в табличную часть документа тем же способом, что и реквизит «Материалы».

Реквизит «Места Хранения» обозначает склад хранения отпускаемых материалов. Очевидно, что одним документом целесообразно оформлять материалы с одного склада, поэтому оставим этот реквизит в шапке документа. Такое решение продиктовано и соображениями единообразия: во всех документах типовой конфигурации, предназначенных для работы с материально-производственными запасами (МПЗ), склад является реквизитом шапки, то есть общим для всех МПЗ, обрабатываемых документом.

Реквизит «Затраты» также стоит оставить в шапке документа, так как одним документом имеет смысл списывать материалы по одной статье затрат. Следующий этап позволяет определить, в каком журнале будет регистрироваться данный документ. Здесь возможно создать для документа новый журнал или выбрать уже существующий журнал. Включим флажок «Документ будет принадлежать журналу» и выберем режим «Создать новый журнал». Поскольку будет создан объект мета данных, нам надо задать для него идентификатор. Введем строку « Вспомогательные Производства».

Далее включим вызов документа в пользовательское меню. Это де­лается так же, как и при создании нового справочника, установкой флажка «Вставить команду в пользовательское меню» в следующем диалоге Конструктора. После этого нам необходимо задать параметры нового журнала и также включить его в пользовательское меню.

Указав синоним и комментарий для нового журнала и включив ко­манду для его вызова в пользовательское меню, нажмем кнопку «Готово».

Теперь у нас, помимо окна конфигурации, появились окно модуля документа и окно реадактирования параметров документа.

Сначала в окне редактирования документа рассмотрим различные параметры документа, установленные системой при его создании и изменим те из них, которые нас не устраивают. (Напоминание: как и в других окнах с полями ввода, в данном окне можно перемещаться с помощью мышки или клавиш Tab и Shift+Tab).

Каждый документ имеет набор параметров, определяющих способ его нумерации. В окне редактирования документа эти параметры объ­единены рамкой с названием «Номер». Большинство из этих парамет­ров уже имеют значения, подходящие для созданного нами документа.

Параметром, значение которого мы изменим, будет признак перио­дичности номеров. Данный параметр определяет, через какой период система начнет автоматически нумерацию документов данного вида с единицы. При создании нового вида документов в данном поле стоит значение «По всем данного вида». Это значит, что номера документов данного вида будут все время возрастать. Щелкнув мышкой в поле выбора «Периодичность», мы выберем вариант «В пределах года». Те­перь, документы, введенные в новом году, система автоматически нач­нет нумеровать с единицы.

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

Флажок «Бухгалтерский учет» был установлен Конструктором для создаваемого нами документа только потому, что в процессе работы с Конструктором нами был установлен флажок «Разработать структуру документа «от проводки». Если бы мы не установили этот флажок, задавать принадлежность документа к бухгалтерскому учету нам при­шлось бы вручную.

Обратим также ваше внимание на параметр «Создавать Операцию по документу», расположенный в нижней части окна редактирования документа. Редактирование этого параметра возможно, только если включен флажок «Бухгалтерский учет». Для простых документов ре­комендуется оставить предложенное значение «Всегда». В этом случае документы данного вида всегда будут включаться в журнал операций.

Другие значения признака «Создавать операцию» позволяют регулиро­вать создание бухгалтерской операции по документу. Например, если установить значение «Только при проведении», бухгалтерская операция будет записываться по документу только в процессе проведения доку­мента. Эти возможности используются при большом количестве доку­ментов и в сложных конфигурациях.

Итак, мы определили основные свойства документа и состав инфор­мации, которая будет вводиться в документ. Напомним, что мы находимся в Конфигураторе системы «1С:Предприятия», и работаем с новым документом, который мы назвали «СписаниеМатериалов». Теперь познакомимся со свойствами реквизитов нашего документа. Начнем с реквизитов шапки.

Говоря кратко, реквизит — это некое хранилище информации опреде­ленного типа: например, дата и номер документа — реквизиты, создавае­мые автоматически. Каждый введенный нами реквизит позволит вво­дить в документы вида «СписаниеМатериалов» некоторые значения.

Начальный состав реквизитов будет создан Конструктором Докумен­тов, если вы укажете корреспонденцию проводок, которые будет форми­ровать создаваемый документ (это так называемый способ создания до­кумента «от хозяйственной операции»). Если вы отказались от задания корреспонденции проводок в процессе работы с Конструктором Доку­ментов, то вам придется ввести реквизиты самостоятельно, учитывая особенности хозяйственной операции, формируемой документом.

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

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

Рассмотрим и изменим свойства реквизитов. Установим курсор на реквизит «Затраты» и нажмем кнопку «Изменить». Свойства рекви­зита отображаются в окне, которое в системе «1С:Предпрятие» называется палитрой свойств.

Основное отличие этого окна от прочих окон программы заключается в том, что в нем редактируется информация о свойствах объекта, выбранного в ка­ком-либо другом окне. Например, сейчас палитра свойств отображает свойства реквизита «Затраты» шапки документа.

При работе с палитрой свойств полезно знать одну особенность этого окна. Если нажать кнопку («Прикрепить»), палитра свойств постоян­но будет присутствовать на экране, однако состав информации в ней будет изменяться, в зависимости от того, какой объект выбран.

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

Палитру свойств можно открыть, если щелкнуть правой кнопкой мыши на выбранном объекте и выбрать пункт «Свойства» из открывшегося контекстного меню. Для некоторых объектов палитра свойств мо­жет быть вызвана также двойным щелчком мыши на объекте.

Палитра свойств состоит обычно из нескольких закладок. Для реквизита документа используются закладки «Общие» и «Дополнитель­ные».

На закладке «Общие» мы видим идентификатор реквизита «Затраты» и его тип — справочник «Затраты». Поля «Синоним» и «Комментарий» пусты, их заполнение, как несущественное для нашего рассказа, мы оставляем на ваше усмотрение. Если вы решите заполнить эти поля, то для сохранения введенных значений не забудьте нажать кнопку «Обновить».

Для данного реквизита Конструктором Документов задан тип спра­вочника «Затраты». Это значит, что при заполнении документа будет открываться для выбора справочник «Затраты», выбранный в спра­вочнике элемент будет записываться в документе, а название выбран­ного элемента будет отображаться в форме документа. Закладка «Дополнительные» для реквизита, имеющего тип «Спра­вочник», пуста. Аналогично, для реквизита «МестаХранения» задан идентификатор и тип (справочник «МестаХранения»).

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

Установим курсор на реквизит « Материалы» табличной части. Этот реквизит имеет тип справочника «Материалы». При заполнении доку­мента в этом реквизите будет записываться наименование выбранного материала.

Реквизит «Количество» — это число. Для числовых реквизитов палитре свойств указывается длина и точность (количество дробных знаков). Обратите внимание, что длина числового реквизита указывается с учетом и целой части, и дробной, и десятичной точки.

Укажем для реквизита «Количество» длину 10 и точность 3. Это значит, что максимальное число, которое можно будет ввести в реквизит количество, составит 999999.999 , то есть, в целой части количества мы сможем вводить 10-3-1=6 разрядов. При выборе длины и точности вы можете ориентироваться на текущие потребности, оценив, какие примерно максимальные значения количества и с какой точностью встречаются в данных хозяйственных операциях. В дальнейшее вы сможете легко увеличить и длину, и точность для любого реквизит та. Уменьшение длины и точности может привести к потере существующих значений в уже введенных документах, но программа предупредит вас об этом.

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

• «Разделять триады» — разделение триад при выводе длинных чисел, чтобы их было удобнее читать; для чисел, обозначаю­щих количество, это необязательно.

• «Неотрицательный» — если этот флажок включен, то нельзя будет ввести отрицательное число — очевидно, что количест­во должно быть неотрицательным, включим этот флажок.

• «Итог по колонке» — признак подсчета итога по колонке; поскольку по строкам таблицы будут записываться различ­ные материалы, количество которых измеряется в разных единицах, то, в данном случае, подсчет по колонке не имеет смысла.

Включив флажок «Неотрицательный», нажмем кнопку «Обновить», и установим курсор на реквизит «Сумма».

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

Если вы хотите снова вернуться к редактированию свойств реквизи­та документа, то следует опять перейти в окно редактирования докумен­та и дважды щелкнуть мышью требуемый реквизит.

На закладке «Общие» реквизита «Сумма» мы видим, что этот рек­визит также имеет числовой тип длиной 14 знаков и точностью 2 зна­ка после десятичной точки. Перейдем к закладке «Дополнительные».

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

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

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

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

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

Теперь нам нужно задать тип нового реквизита. Как видите, новому реквизиту автоматически присваивается тип «строка» длиной 10 сим­волов. Проанализируем, подойдет ли нам такой тип реквизита.

С одной стороны, название единицы измерения — это текст, и это нас устраивает. Но, с другой стороны, нам каждый раз при вводе в до­кумент новой строки придется вводить название единицы измерения вручную. Это нерационально, поскольку в типовой конфигурации имеется справочник «Единицы измерений», в который уже внесены все основные единицы измерения.

Поэтому, чтобы при заполнении формы документа вводить назва­ние единицы измерения из справочника, установим реквизиту «ЕдИзм» тип справочника «Единицы измерений». Для этого нам нуж­но в списке типов найти строку «Справочник. Единицы Измерений», а затем щелкнуть ее мышью. Редактирование свойств нового реквизита закончим нажатием клавиши «ОК».

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

Нажмем кнопку «Новый» и в палитре свойств нового реквизита, введем следующие значения: идентификатор — «Цена», тип реквизита, очевидно, числовой, длину и точность зададим, как и для «Суммы», 14 и 2, а также включим флажок «Неотрицательный». Флажок «Итог по колонке» включать не будем, так как суммировать цены различных материалов не имеет смысла.

Итак, мы ввели все необходимые (во всяком случае, для начала) реквизиты в структуру документа. Далее нам надо будет настроить форму ввода документа. Но, прежде чем переходить к редактированию диалога, сохраним результаты изменения конфигурации. Это полезно сделать, например, по соображениям безопасности. В данном случае мы запоминаем промежуточные результаты создания нового документа, чтобы не потерять их в случае сбоя в работе компьютера. Для со­хранения конфигурации выберите пункт «Сохранить» из меню «Файл» главного меню программы.

Отредактируйте форму документа. Теперь, для завершения организации ввсу документа нам нужно настроить форму ввода документа. Наша задача — расположить данной форме реквизиты документа, так, чт бы с диалогом было удобно работать. Нажмем кнопку «форма» в окне редактирования документа. После нажатия этой кнопки будет открыто окно редактора форм.

Редактор форм в системе «1C:Предприятие» представляет собой совокупность 3-х редакторов:

• редактора диалогов (представлен в окне редактора форм «листом» с именем «Диалог»);

• редактора текстов («лист называется «Модуль», так как в редактор форм редактор текстов используется для редактирования модулей);

• табличного редактора («Таблица»).

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

Редактор форм автоматически открывается на закладке "Диалог"- в редакторе диалогов. Дальнейшие наши действия будут связаны с выполнением различных операций над элементами диалога.

Редактирование формы, в основном, выполняется мышью. Основным приемом работы является «перетаскивание». При перетаскивании щел­кают левой кнопкой мыши в элемент, который нужно перетащить и, не отпуская левую кнопку, ведут указатель мыши к тому месту, куда пере­таскивается элемент, а затем кнопка мыши отпускается.

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

Вы видите, что в форму уже помещены все реквизиты документа, которые были созданы в сеансе работв с Конструктором Документов. Но созданные нами позднее реквизиты табличной части "ЕдИзм" и "Цена" в форме отсутствют, поэтому мы введем их вручну.

Выберем пункт "Реквизиты" из меню "Вставить" главного меню конфигуратора. Отрывшийся по этой команде диалог предназначен для ввода в форму реквизитов документа.

В верхней части диалога указаны реквизиты шапки, и в нижней – реквизиты табличной части. Уже вставленные реквизиты отмечены галочкой и выделены серым цветом (для выбора они не доступны). Реквизиты, которые в форме документа отсутствуют, галочкой не отмечены, а их названия написаны черным цветом.

В нашем случае, в документ не вставлены реквизиты "ЕдИзм" и "Цена". Давайте отметим их (щелкнем мышью) и затем нажмем кнопку "Вставить", ставшую доступной после того, как мы отметили реквизиты для вставки. Теперь вы видите эти реквизиты в табличной части формы документа.

Далее мы будем настраивать табличную часть диалога документа. Во-первых, колонки таблицы следует расположить в общепринятом порядке: номер, название материала, единица изменения, количество, цена, сумма. Изменить положение колонки в таблице очень просто: «подцепим» мышью, например, заголовок колонки «Единица измере­ния», «перетащим» его на место колонки «Количество» и отпустим. Аналогично можно поставить колонку «Цена» перед колонкой «Сум­ма».

Во-вторых, название колонки «Единица измерения» в заголовке таблицы слишком длинное, поскольку обозначения единиц измерения, как правило, занимают не более трех позиций. Давайте дадим этой ко­лонке более короткое название.

Щелкнем мышкой в заголовке колонки. Колонка при этом окажет­ся выделенной (инверсным цветом). Затем двойным щелчком мыши откроем палитру свойств реквизита и будем с ней работать.

Сейчас мы выполним только одно действие: на закладке «Общие» изменим название заголовка «Единица измерения» на «Ед. изм» и на­жмем кнопку «ОК».

И нам осталось выровнять ширину колонок по ширине заголовков. Изменение ширины колонок возможно только в том случае, если в таблице отключен режим «Автонастройка ширины колонок». Установим курсор на таблицу (но не на заголовок или вертикальную линию!) и дважды щелкнем мышкой, тем самым мы откроем окно палитры свойств таблицы.

В палитре свойств на закладке «Общие» расположен флажок «Автонастройка ширины колонок», который, как вы видите, отключен при создании документа Конструктором Документов. Значит, мы может изменить ширину колонок таблицы вручную. Закрыв палитру свойств таблицы кнопкой «Отмена», перейдем к настройке ширины колонок.

Если все колонки не помещаются в видимой области табличной части то для «прокрутки» колонок по горизонтали следует щелкать мышью левую и правую стрелку горизонтальной полосы прокрутки у ниж границы табличной части.

Сейчас все колонки табличной части имеют примерно одинаковую ширину. Однако, например, колонку «N», в которой будет вывод номер строки, можно сделать уже — так, чтобы в ней размещалось 3 цифры (вряд ли в документе будет больше 100 строк). А колонку «Ма­териал» — расширить. Также можно изменить ширину колонок для ввода единицы изменения, количества и сумм, чтобы они соответ­ствовали размерности вводимых величин.

Установим курсор в таблице на вертикальную линию-разделитель колонок. Как только курсор примет специальный вид, нажмем левую кнопку мыши и передвинем границу колонок влево или вправо, так, чтобы заголовки уместились в колонки полностью, и се колонки были вид­ны в таблице.

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

Например, реквизиты «НомерДок» и «ДатаДок», обязательные для каждого документа, вставлены вместе с поясняющим их текстом: «Номер» перед реквизитом «НомерДок» и «Дата» перед реквизитом «ДатаДок». Аналогично перед реквизитами «Затраты» и «Места Хранения» вставлены одноименные текстовые реквизиты.

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

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

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

Аналогично подпись «Затраты» заменяем на «Статья затрат". Сделав это, мы видим, что новый текст не помещается в текущем элементе диалога, следовательно, нам надо увеличить его размеры, Например, «растянуть» реквизит диалога по ширине.

Элемент диалога «Статья затрат» сейчас является текущим, или выделенным, то есть он обведен пунктирным прямоугольником с маркерами на сторонах. Подведем курсор к правому маркеру элемент диалога, и как только курсор примет вид горизонтальной двунаправленной стрелки, нажмем левую кнопку мыши и потянем вправо. Когда элемент достигнет требуемой ширины, кнопку мыши можно будет опустить. Растянем элемент таким образом, чтобы в нем поместился новый заголовок «Статья затрат».

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

Мы выберем для элементов «Статья затрат» и «Склад» значение «Прижать вправо». Как вы видите, для этих элементов также установ­лено значение «Центр по вертикали».

Следующий шаг — сделать текстовые реквизиты одной ширины. В «1С:Предприятии» для этого следует выделить группу объектов (эле­ментов диалога) и применить к ним действие «Одинаковый размер по ширине». Прежде чем выполнять эту операцию, следует решить, какой элемент принять за образец, по которому будут выравниваться все ос­тальные выделенные элементы. Элемент-образец выделяется в послед­нюю очередь.

Возьмем за образец элемент «Статьи затрат». Итак, щелкаем мыш­кой по элементу «Склад», нажимаем клавишу Shift и, не отпуская ее, щелкаем мышью по элементу «Статьи затрат». Вы видите, что оба элемента обведены пунктирной линией. Из меню «Диалог» выберем пункт «Одинаковый размер по ширине». Операция приведения элементов к одинаковой ширине завершена.

Выделять элементы диалога можно также, просто "обводя" их мышью – границу выделяемой области будет показывать тонкая пунктирная ли­ния. Но таким образом можно выделять только расположенные рядом элементы.

Выделять и перетаскивать можно не только элементы диалога, рас­положенные рядом, по и «разбросанные» по диалогу. Для выделения такой группы элементов нужно щелкать их мышью при нажатой клави­ше Shift.

Далее мы изменим размещение реквизитов в диалоге. Сначала группу элементов «Статьи затрат», «Затраты», «Склад» и «МестаХранения» мы сдвинем немного вниз. Для этого выделим указан­ные элементы в произволь­ном порядке, подведем к вы­деленной группе курсор, и, как только он примет специальный вид, нажмем левую кнопку мыши и передвинем группу элемен­та в нужном направлении.

Нам осталось оформить так называемый заголовок документа, то есть вставить название документа и разместить номер и дату документа так, как это принято в диалогах типовой конфигурации.

Для начала мы передвинем реквизиты «НомерДок», «Дата» и «ДатаДок» к правой границе диалога и немного вниз. Действия при этом аналогичны тем, которые мы выполняли при перемещении группы реквизитов вниз.

Текстовый реквизит диалога «Номер» мы переделаем в заголовок документа. Для этого двойным щелчком мыши откроем палитру; свойств этого элемента и выполним ряд действий, Во-первых, введем название документа. Для этого на закладке «Об­щие» вместо заголовка «Номер» напишем «Списание материалов №». Во-вторых на закладке "Дополнительно" установим признак "Прижать вправо". В-третьих, настроим шрифт заголовка. Выбор свойств шрифта обычно не ограничен какими-то жесткими рамками. Можно принять во внимание стиль оформления других элементов конфигурации, общие требования к оформлению элементов интерфейса, но чаще всего основную роль играют «художественные пристрастия» специалиста, создающего диалог, и требования пользова­теля, для которого этот диалог создается.

Мы поступим неориги­нально: оставим начертание шрифта тем, которое было выбрано редактором диало­гов, просто увеличим раз­мер шрифта до 10 пунктов, и включим «жирность». Однако прежде чем вносить эти изменения, следует снять флажок «Шрифт по умолчанию» — то­гда управляющие элементы станут доступными.

Флажок «Шрифт по умолчанию» имеет большое значение: если он установлен, то свойства шрифта будут определяться установками опе­рационной системы. Для большинства диалогов конфигурации этот флажок установлен, и сами диалоги разработаны с расчетом на уста­новки интерфейса операционной системы, предлагаемые по умолча­нию. В этом случае изменения системного шрифта, сделанные при по­мощи «Панели управления» (пункт «Экран») окажут влияние на все элементы диалогов, для которых стоит флажок «Шрифт по умолча­нию» — у всех у них изменить шрифт и, возможно, что диалоги станут нечитаемыми. Вам следует иметь это в виду и ожидать подобного эф­фекта, если вы или ваши подопечные пользователи любят настраивать оформление «рабочего стола» операционной системы.

Выполнив описанные выше действия в палитре свойств, нажмем кнопку «ОК», чтобы сохранить сделанные изменения.

Поскольку в заголовок реквизита мы ввели более длинный текст, да еще и увеличили его размер, размер текстового реквизита нас пере­стал устраивать. Увеличим его ширину, чтобы весь заголовок помес­тился (и лучше, чтобы с небольшим запасом) и придвинем заголовок к полю ввода номера документа.

Так же отредактируем текстовый реквизит «Дата»: заголовок «Да­та» заменим на «от», поставим положение «Центр по горизонтали» и изменим шрифт (10, «Жирный»).

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

Эти кнопки соответствуют активизации в меню «Диалог» действий по размещению элементов в диалоге: выравниванию элементов, их цен­трированию и равномерному распределению, а также установкой размеа элементов по образцу. Указанные действия возможны, если активизирован редактор диалога, а в редактируемом диалоге выделен хотя бы один элемент.

Тогда, вместо того, чтобы из меню «Диалог» выбирать подменю, а из подменю — действие, можно просто нажать на кнопку в панели инструментов. Например, для выравнивания группы выделенных элементов по левому краю следует нажать кнопку.

Разобраться, какому действию соответствует та или иная кнопка, достаточно просто. Во-первых, кнопки отображены в меню «Диалог», их, видно при выборе соответствующего действия. А во-вторых, достаточно подвести курсор к интересующей кнопке, и на экране появится подсказка, что именно эта кнопка делает.

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

Затем нам нужно выровнять элементы заголовка документа (при перемещении по горизонтали мы могли незначительно сдвинуть и их по вертикали; поэтому их необходимо «подровнять»). Возьмем за образец реквизит «ДатаДок» (его будем выделять последним), выдел все реквизиты заголовка документа и нажмем кнопку «Выровнять верху».

И, наконец, сделаем между реквизитами заголовка документа одинаковый интервал. Для этого к выделенной группе элементов применим действие «Равномерно распределить по горизонтали».

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

Проверьте созданный документ. Теперь, очевидно, пора ознакомиться с первыми результатами конфигурирования. Для этого нужно сохранить конфигурацию и запустить «1С:Бухгалтерию».

В «1С:Бухгалтерии» легко проверить работу созданного документа. Как вы помните, в процессе с помощью Конструк­тора мы установили флажок «Включить в меню документов». Поэтому сейчас в меню «Документы» мы видим пункт «Списание материалов» (в конце списка документов). Выберем его.

Документу будет присвоен номер 1, так как это самый первый до­кумент вида «Списание материалов». Мы видим, что не все реквизиты табличной части поместились в форме ввода. Чтобы увидеть реквизит «Сумма», например, необходимо воспользоваться линейкой горизонтальной прокрутки таблицы.

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

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

При нажатии кнопки "ОК", после записи документа, также ответим "Да" на предположение "Провести документ", и проверим правильность проводки сгенерированной документом. Как вы помните, процедура проведения документа была сформирована Конструктором Документов в процессе создания документа "Списание Материалов".

Для просмотра результата работы документа, откроем журнал, ко­торый мы при создании документа назначили для регистрации документов «СписаниеМатериалов». Этот журнал в меню «Журналы» главного меню «1С:Бухгалтерии» должен называться «Вспомогатель­ные производства». Как видите, в последней строке меню «Журналы» действительно появилась строка «Вспомогательные производства» Выбрав ее, мы видим на экране журнал, в котором записан только что введенный нами документ «Списание материалов».

Итак, мы видим, что первые результаты получились вполне удовлетворительными: документ создан и вставлен в меню «Документы», создан специальный журнал для регистрации документов данного ви­да, вызов журнала включен в меню «Журналы», документ позволяй вводить информацию и корректно формирует проводки.

При этом очевидно и неудобство работы с новым документом — всю информацию в табличную часть нам пришлось вводить вручную. Поэтому мы сейчас закроем сеанс работы в режиме «1С:Предприятие» и вернемся в Конфигуратор, чтобы настроить табличную часть формы таким образом, чтобы в нее приходилось вводить вручную минимум информации.

В Конфигураторе сначала посмотрим состав реквизитов справочни­ка «Материалы». Для этого в окне «Конфигурация» найдем в дереве метаданных ветвь «Справочники» и раскроем ее, щелкнув мышью на «+» слева от наименования ветви. В открывшемся списке справочни­ков найдем справочник «Материалы» и также щелкнем мышью на «+» слева от названия справочника.

Мы видим, что в справочнике для каждого материала хранится единица измерения и цена. Это значит, что, выбрав призаполнении формы документа материал определенного вида, мы можем из справочника узнать единицу измерения и цену этого материала и подставить их в документ. А, зная цену материала и его количество, мы смо­жем рассчитать общую сумму отпускаемых материалов данного вида.

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

Здесь мы впервые в процессе изучения приемов конфигурирования подошли к необходимости написания команд на встроенном языке 1С:Предприятия — до этого мы обходились исключительно визуаль­ными средствами.

Откроем форму документа «СписаниеМатериалов» (если вы ее ра­нее закрыли) и перейдем в режим редактирования диалога. Откроем палитру свойств реквизита диалога «Материал» (заголов­ка колонки таблицы). Для этого следует сделать текущим элементом диалога таблицу, то есть щелкнуть по ней мышкой, а затем дважды щелкнуть по заголовку колонки «Материал». Поскольку нам понадо­бится вводить формулы и для других реквизитов документа, закрепим палитру свойств на экране.

Чтобы реквизит «ЕдИзм» заполнялся из справочника «Материа­лы», в поле «Формула» следует записать:

ЕдИзм=Материалы. Единица измерения;

В левой части оператора присваивания записано наименование рекви­зита документа. В правой части записано выражение, которое вам по­казывает, как получить значение реквизита из справочника. «Материалы» — в данном контексте это наименование реквизита документа; этот реквизит имеет тип справочника «Материалы». Далее через точку записано название одного из реквизитов справочника «Материалы» — «ЕдиницаИзмерения». Таким образом, мы получаем значение нужного нам реквизита справочника.

Аналогично мы выберем значение реквизита «Цена» из справочни­ка «Материалы» и подставим его в реквизит «Цена» документа. Для этого в поле «Формула» допишем строку:

Цена=Материалы. Цена;

Как это принято в документах типовой конфигурации, при выборе материала установим реквизиту «Количество» значение 1. Для этого в поле «Формула» к записанным выше операторам присваивания доба­вим еще один:

Количество=1;

И, наконец, вычислим значение реквизита «Сумма»:

Сумма=Цена *Количество;

Обратите внимание, все эти операторы присваивания записываются в поле «Формула» реквизита «Материалы» последовательно, строго в указанном порядке. Закончив ввод перечисленных формул, нажмем кнопку «Обновить».

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

Реквизит «ЕдИзм» автоматически вводится из справочника «Мате­риалы» и несет, в основном, справочную информацию, которая не влияет на вычисление других реквизитов, поэтому поле «Формула» для этого реквизита мы оставим пустым. Поскольку в эту колонку таблицы ввод данных осуществляется автоматически, установим на закладке «Дополнительно» флажок «Пропускать при вводе» и нажмем кнопку «Обновить». Теперь после ввода реквизита «Материал» курса будет автоматически устанавливаться в колонку «Количество».

Установим курсор на реквизит «Количество» и отредактируем его свойства.

Ранее мы определили, что при выборе материала реквизиту «Количество» автоматически устанавливается значение «1». В таблицу можем вводить любое значение количества, но при этом нам нужно, чтобы после ввода количества автоматически пересчитывалась сумма. В поле «Формула» для этого реквизита запишем оператор присваивания, в левой части которого указан реквизит «Сумма», а в правой произведение значений реквизитов «Цена» и «Количество»:

Сумма=Цена*Количество;

Записав это выражение, нажмем кнопку «Обновить» и перейдем к реквизиту «Цена».

Как мы определили выше, значение реквизита «Цена» подставляется из справочника «Материалы». Однако бывают ситуации, когда требуется скорректировать цену того или иного материала. Поэтому оставим возможность ручного ввода цены и обеспечим пересчет обе суммы при изменении цены материала. Для этого в поле «Формула» запишем хорошо знакомое выражение вычисления суммы, исходя цены и количества:

Сумма=Цена*Количество;

Редактирование реквизита заканчиваем нажатием кнопки «Обновить».

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

Проверим работу документа после выполненных изменений. Для этого снова запустим программу в режиме «1С:Предприятие», откроем документ «СписаниеМатериалов» и, чтобы убедиться в правильности работы документа, введем в табличную часть две –три строки. Вы видите, что после ввода в табличную часть наимеь материала остальные реквизиты заполняются автоматически, а после ввода количества автоматически пересчитывается сумма.

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

Глава 7. Настройка журнала документов

В процессе создания документа «СписаниеМатериалов» для реги­страции документов данного вида мы создали журнал «Вспомогатель­ные производства». Новым журналом мы уже неоднократно пользова­лись, когда проверяли работу документа «СписаниеМатериалов».

Рассмотрим внешний вид журнала «Вспомогательные производст­ва». Если вы последовательно изучаете нашу книгу и одновременно выполняете описываемые в ней действия, то сейчас перед вами открыт именно этот журнал. Если это не так, запустите программу в режиме «1С:Предприятие» и из меню «Журналы» выберите пункт «Вспомога­тельные производства».

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

При создании журнала документов системой «1С:Предприятие» в нем автоматически создаются 4 колонки: «Дата» — дата документа, «Время» — время документа, «Документ» — краткое наименование вида документа и «Номер» — номер документа. Вы видите, что в но­вом журнале присутствуют только эти колонки.

Разумеется, информативность такого журнала недостаточна. В сис­теме программ «1С:Предприятие» журнал может содержать произ­вольное число дополнительных колонок, называемых графами, для вывода в них любых других реквизитов документов, хранящихся в журнале. Мы покажем, как добавить в журнал новые колонки и как можно изменить внешний вид журнала.

Вывод документа в журнале документов также настраивается в Конфигураторе. Поэтому вернитесь в Конфигуратор, предварительно закрыв «1С:Предприятие».

Настройка отражения документа в журнале документов выполняется путем редактирования свойств журнала документов. Поэтому нам потребуется опять перейти в окно "Конфигурация" и на ветви "Журналы документов" найти идентификатор журнала "Вспомогательные производства".

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

В поле «Документы» содержится список документов, отображае­мых в данном журнале. Вспомним, что принадлежность документа то­му или иному журналу определяется при создании документа и может быть изменена только при редактировании свойств самого документа. Сейчас в этом поле представлен только один документ «СписаниеМатериалов», но, например, если вы создадите новые документы для от­ражения учета вспомогательных производств, можно будет их записы­вать в этот журнал.

В поле «Графы» представлены дополнительные графы журнала. В нашем журнале пока нет ни одной дополнительной графы.

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

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

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

В окне «Возможные значения» в виде дерева выдается список до­кументов, для регистрации которых назначен редактируемый журнал. Единственным документом в этом списке является созданный нами документ «СписаниеМатериалов».

В поле «Документы» содержится список документов, отображае­мых в данном журнале. Вспомним, что принадлежность документа то­му или иному журналу определяется при создании документа и может быть изменена только при редактировании свойств самого документа. Сейчас в этом поле представлен только один документ «СписаниеМатериалов», но, например, если вы создадите новые документы для от­ражения учета вспомогательных производств, можно будет их записы­вать в этот журнал.

В поле «Графы» представлены дополнительные графы журнала. В нашем журнале пока нет ни одной дополнительной графы.

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

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

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

В окне «Возможные значения» в виде дерева выдается список до­кументов, для регистрации которых назначен редактируемый журнал. Единственным документом в этом списке является созданный нами документ «СписаниеМатериалов».

Знак «+» слева от идентификатора документа говорит о том, можно получить более детальную информацию о документе. Если щелкнуть мышью этот знак, а потом раскрыть ветви «Шапка» и «Таблица», мы можем увидеть идентификаторы реквизитов документа, которые можно использовать для отображения в редактируемой графе: можно использовать в качестве граф журнала присутствуют все реквизиты шапки и только единственный реквизит табличной части — «Сумма». Это объясняетсятем, что в качестве графы журнала могут быть использованы только реквизиты характеризующие документ в целом. Вспомним, что реквизиту «Сумма» табличной части документа «Списание Матерйалов» мы назначили свойство формирований итоговой суммы по строкам таблицы, то есть установили флажок «Итог по колонке».

Только те реквизиты табличной части документа, для которых указано это свойство, могут быть выбраны для показа в графе журнал документов. Так как в нашем документе «СписаниеМатериалов» по колонке подсчитывается только для реквизита «Сумма», другие реквизиты табличной части в окне «Возможные значения» отсутству­ют.

Очевидно, что в качестве новой графы журнала мы будем исполь­зовать реквизит «Сумма».

Окно «Выбранные Значения» содержит список реквизитов доку­ментов, назначенных для отображения в данной графе при работе с редактируемым журналом. Для добавления реквизита в это окно сле­дует выбрать нужный реквизит в окне «Возможные значения» и на­жать кнопку (перенести влево) или дважды щелкнуть по нему мышкой. Выполним эти действия с реквизитом «Сумма».

Результатом этих действия будет то, что полное наименование рек­визита в конфигурации «Документ. СписаниеМатериалов. Сумма» бу­дет помещено в окно «Выбранные значения», а сам реквизит будет помечен галочкой.

Теперь можно закрыть окно редактирования грифы журнала, нажав кнопку "ОК".

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

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

Нажмем кнопку "Формы" -> "Форма списка". Поскольку редактированием формы данного журнала мы еще не занимались, откроется диалог вставки граф журнала в форму журнала. С подобным диалогом (помните диалог вставки реквизитов в форму диалога документа) мы уже работали.

Нажав кнопку «Вставить», получим форму журнала. В журналах типовой конфигурации, содержащих документы опре­деленного вида, время создания документа, как правило, не указывает­ся. Поэтому, выдерживая стиль конфигурации, мы тоже исключим графу «Время» из формы журнала. Для этого надо щелкнуть мышкой заголовок графы и из меню действия выбрать пункт «Удалить».

Графа «Документ» также оказывается лишней, поскольку в журна­ле «Вспомогательные производства» записываются документы одного вида — «СписаниеМатериалов». Поступайте по своему усмотрению: вы можете удалить ее так же, как удалили графу «Время», или оста­вить на тот случай, если решите добавить в журнал новые документы.

Далее мы должны сделать ширину колонок таблицы журнала про­порциональной выводимой в ней информации. Это мы уже умеем, так как настраивали внешний вид табличной части в форме документа. Устанавливая курсор на разделительные линии колонок, сделаем их такой ширины, чтобы все они были видны.

Глава 8. Редактирование меню конфигурации

Использование Конструкторов для создания новых объектов метадан­ных позволило нам автоматически включить эти объекты в меню кон­фигурации. Все, что от нас потребовалось, это установить флажок «Включить в меню…», и при запуске программы в режиме «1С:Предприятие» мы увидели, что каждый из созданных объектов расположен в том меню, в котором и должен находиться. Поэтому у нас не возникло ни малейшего неудобства при поиске и открытии соз­данных нами справочника, документа и журнала.

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

В программе такие колонки главного меню, как «Справочники», «Документы», «Журналы», «Отчеты» полностью соз­даны в конфигурации. Помимо них, вы можете ввести дополнительные колонки главного меню. Все эти колонки в системе 1C: Предприятие называются пользовательским меню. Кроме того, в меню присутствуют колонки от системного меню, которое формируется самой программой.

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

Далее следует запустить Конфигуратор (или активизировать его, если он уже запущен). В Конфигураторе необходимо открыть окно "Конфигурация".

Если раньше мы работали с закладкой "Метаданные", то теперб нам нужно будет перейти к закладке "Интерфейсы", для этого достаточно просто щелкнуть мышкой по этой закладке. На экране появится список пользовательских интерфейсов.

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

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

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

Для вызова редактора меню необходимо:

• щелкнуть правой кнопкой мыши на строке с наименованием интерфейса, который требуется отредактировать (у нас в конфигурации этот интерфейс — единственный);

• из контекстного меню выбрать строку «Редактировать ме­ню…».

В результате этих действий будет открыто новое окно — «Редактор меню». В нем меню пользовательского интерфейса выводится не в том виде, в котором мы с ним работаем в «1C:Бухгалтерии», то есть не в виде колонок, а в виде дерева, при этом ветви верхнего уровня соответствуют колонкам.

Создайте новый пункт меню. Будем редактировать колонку "Документы". Для этого нужно раскрыть соответствующую ветвь в редакторе меню, щелкнув мышью в знак «+» слева от слова «Документы». При этом раскрывается большой список документов в этой ветке.

Новый пункт меню, созданный для документа «Списание Материалов» находится в конце списка пунктов колонки «Документы». Двой­ной щелчок мышки на этом элементе открывает нам палитру свойств пункта меню.

Нам сейчас важно рассмотреть свойства закладки «Общие». В поле «Название» мы видим название пункта меню, как око отображается при работе в режиме «1С:Предприятие».

В поле тип можно установить тип пункта меню: команда, раздели­тель или подменю. Данный пункт меню — это, конечно, команда.

В поле «Объект» устанавливается объект метаданных, который вы­зывается в пункте меню. В нашем случае это документ «Списание Материалов». При создании пункта меню вручную выбор объекта наибо­лее важен, поскольку он задает прочие свойства пункта меню. Для выбора объекта нужно щелкнуть мышью в поле «Объект», и, используя полосу прокрутки, пролистать окно до требуемой строки в списв метаданных.

В поле «Команда» указана строка «Документ. СписаниеМатериалов. Ввести», поскольку с помощью этого пункта мы вводим документ.

Состав команд меняется в зависимости от того, какого вида объект выбран в поле «Объект». Например, для констант, справочников, журналов документов, отчетов доступна только команда «Открыть». Вы можете сами посмотреть набор команд, доступный для объектов разных видов.

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

Нажмем кнопку «ОК» для сохранения сделанных изменений. Теперь обратим внимание, как расположен новый пункт в меню «Документы». Перед пунктом «Списание материалов» расположены вызовы ручного ввода операций и ввода типовых операций, которые разработчиками типовой конфигурации были размещены в самом конце меню «Документы» и отделены от вызова документов разделителем. Чтобы не нарушать логики создания меню, нам надо отделить вызов нового документа разделителем и передвинуть его выше пунктов вызова ввода операций.

Разделитель, то есть горизонтальная линия в колонках меню, это такой же пункт меню, как и вызов объекта метаданных. Добавление в ветку «Документы» нового пункта меню выполняется двойным щелч­ком мышкой в элемент <Новый>, который располагается в самом ни­зу ветки (если вся ветка не умещается в окне, следует воспользоваться вертикальной полосой прокрутки, чтобы увидеть этот элемент).

После двойного щелчка мышью на элементе <Новый> появляется палитра свойств, в которой будут редактироваться свойства нового пункта меню.

В палитре свойств элемента «Новый» в поле «Тип» выберем «Раз­делитель» и нажмем кнопку «ОК». В нижней части ветви «Докумен­ты» вы видите новый разделитель.

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

Те действия, которые мы выполнили для изменения ветви «Документы», вы теперь можете проделать самостоятельно, подправив ветви «Справочники» и «Журналы».

Чтобы посмотреть получившееся меню в работе, не обязательно запускать 1С:Бухгалтерию.

Для проверки созданного меню можно вос­пользоваться кнопкой «Проверить меню» в панели инструментов окна редактора меню. При этом на экран выводится окно, имитирующее ра­боту главного меню «1С:Бухгалтерии», но только той части, которая на­строена в данном интерфейсе.

Мы можем посмотреть в тестовом окне расположение пунктов ме­ню. Закрыть окно можно мышью (как любое окно) или клавишей «Esc». Также можно закрыть окно редактора меню.

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

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

Глава 9. Создание печатной формы документа

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

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

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

Строго говоря, в Конфигураторе создается не сама печатная форма, а только «заготовка» для ее построения, состоящая из 2-х частей: шаблона печатной формы и ал­горитма, описывающего порядок построения формы. Непосредственно сама печатная форма документа создается при работе документа в ре­жиме «1С:Предприятие».

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

Вообще говоря, в «1С:Предприятии 7.7» имеется Конструктор Пе­чати, позволяющий создавать шаблоны печатных формы и алгоритмы печати, и мы могли бы им воспользоваться. Но, в данном случае, мы считаем, что полезнее будет познакомиться с созданием печатной фор­мы и алгоритма «с чистого листа».

Начнем с оформления внешнего вида печатной формы. Для этого в 1С:Предприятии используется табличный документ.

В окне формы у нас имеется три закладки «Диалог», «Модуль» и «Таблица». Табличный документ располагается в закладке «Таблица». Для активизации закладки нужно по ней щелкнуть мышкой.

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

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

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

Для ввода заголовка щелкните мышью в ячей­ку в верхней части, отступив, например 1 ячейку вниз от верхнего края и 1 ячейку вправо — от левого. Теперь наберем на клавиатуре название документа «Списание материалов» и нажмем клавишу Enter, чтобы подтвердить введенный текст. Заголо­вок документа введен.

Содержимое ячейки может быть различным образом оформлено: мы можем изменять начертание и размер текста, обрамление ячейки, цвет фона и текста. Все эти изменения выполняются при помощи па­литры свойств ячейки. Для вызова палитры свойств для ячейки выбе­рите пункт «Свойства» меню «Действия» главного меню Конфигура­тора.

Чтобы наш документ выглядел, как настоящий, сразу будем оформлять вводимый текст. Так как введенный текст — заголовок до­кумента, давайте увеличим его шрифт и сделаем его начертание жир­ным. Это выполняется при помощи закладки «Текст» палитры свойств. Для перехода к этой закладке щелкните мышью ее заголовок.

На этой закладке расположены управляющие элементы для выбора гарнитуры (начертания) шрифта, установки размера и цвета шрифта, а также для включения дополнительных атрибутов. Мы установим раз­мер шрифта 12 и включим атрибут «жирности». Теперь необходимо нажать кнопку «ОК», чтобы подтвердить изменения в ячейке таблич­ного документа.

Теперь нам нужно расположить дату документа. Мы будем распо­лагать ее в ячейке ниже заголовка. Щелкнем в нее мышкой, чтобы курсор установился на нужную ячейку.

Если заголовок документа был просто текстом, то дата документа зависит от конкретного документа, то есть она будет меняться. Для отражения данных документа в ячейку должно быть внесено выраже­ние. Для этого нужно открыть палитру свойств данной ячейки.

В появившейся палитре свойств нам нужно изменить значение по­ля «Тип». Щелкнем в него мышкой и выберем строку «Выражение». Теперь мы указали, что в данной ячейке будет располагаться не обыч­ный текст, а выражение на встроенном языке. Результат этого выра­жения при построении печатной формы документа будет выводиться в ячейке вместо самого выражения.

Теперь мы можем ввести в основное поле (оно не имеет названия) само выражение. Для того чтобы получить дату документа, введем од­но слово «ДатаДок»: это специальный атрибут документа, который всегда содержит дату документа.

Как мы уже отмечали, у документа есть два предопределенных реквизита –"Дата" и "Номер", которое мы не вводим при создании вида документа, но они всегда существуют. Они автоматически были внесены в диалог формы ввода документа.

Для использования в выражениях для этих реквизитов существуют специальные идентификаторы ДатаДок и НомерДок. Для обращения к тем реквизитам, которые мы создали сами при создании документа (например, "Места Хранения"), используются те идентификаторы, которые мы для них указали.

Также изменим атрибуты текста ячейки, как мы это уже делали, когда вводили заголовок документа. После этого можно нажать и в палитре кнопку "ОК" для подтверждения ввода ячейки.

Можем заметить, что слово ДатаДок в ячейке выводится в угловых скобках: так система отмечает выражения, чтобы отличить их от обычного текста ячейках.

Теперь необходимо разместить в шаблоне печной формы реквизиты шапки документа. Сначала вставим реквизит «Затраты». В отличие от даты, которая не требует пояснений в форме, для реквизитов шапки следует заполнять две ячейки: поясняющий текст и выражение для вывода значения реквизита.

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

Теперь активизируем ячейку правее и введем в нее выражение, так же, как мы вводили выражение для даты документа, то есть, вызвав палитру свойств. В качестве выражения мы введем слово «Затраты», которое в данном случае является идентификатором реквизита (этот реквизит мы создавали, когда разрабатывали структуру документа «СписаниеМатериалов») и не может быть другим. Закроем палитру кнопкой «ОК».

Аналогично на следующей строке заполним ячейкт для вывода реквизита "Склад. В левой ячейке будет текст "Склад", а в правой – выражение "Места Хранения"

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

Итак, мы закончили размещение в печатной форме документа реквизитов шапки. Теперь перейдем к реквизитам табличной части.

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

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

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

Отступим от слова «Склад» одну строку вниз и в крайней левой ячейке введем

поясняющий текст «№ п/п».

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

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

Вызовите палитру свойств для ячейки с текстом «№ п/п» для этого щелкните по ячейке правой кнопкой мыши и выберите из контекстного меню пункт «Свойства».

Выберем закладку «Положение». Управляющие элементы этой закладки позволяют задавать вертикальное и горизонтальное выравнивание текста в ячейке. Зададим положение текста в середине ячейки, для этого щелкним мышью слово "Центр" в группах "По горизонтали" и "По вертикали".

Давайте также изменим размер и атрибуты текста ячейки. Для эт го мы будем использовать закладку «Шрифт». Установим в заклг размер шрифта 10 и включим атрибут «жирности». Подобное мы выполняли, когда создавали в табличном документе выражения вывода наименования поставщика и названия склада.

Теперь перейдем к закладке «Рамка». Управляющие элементы этой закладки предназначены для создания рамки вокруг ячейки или группы ячеек.

На этой закладке выберем стиль рамки, щелкнув мы­шью нужный образец в груп­пе «Стиль», — пусть это бу­дет тонкая сплошная линия.

В группе «Рамка» выберем вид рамки, точнее, вдоль ка­ких границ ячейки будет идти рамка. Здесь мы щелкнем мышью «Обвести»: рамка будет идти вокруг ячейки.

На этом мы закончим установку свойств ячейки. Теперь, чтобы сде­ланные нами изменения нашли отражение в табличном документе, необходимо их подтвердить: если вы обратили внимание, до сих пор вид ячейки, с которой мы работаем, никак не изменился. Раньше для этого мы использовали кнопку «ОК» в палитре инструментов. Но су­ществуют и другие способы.

Например, «отразить» в ячейке изменения, которые были сделаны в палитре свойств, можно, нажав кнопку «Обновить». Обычно, этой кнопкой удобно пользоваться, когда необходимо увидеть промежуточ­ной результат изменений: что-то изменили в палитре свойств — нажа­ли кнопку «Обновить» — посмотрели результат изменений — опять что-то поменяли — и так далее.

Мы же воспользуемся более простым способом: просто щелкнем мышью ячейку ниже ячейки с текстом «№ п/п». Как вы видите, внеш­ний вид ячейки изменился, а в палитре свойств — она осталась на эк­ране — теперь отражаются свойства новой выбранной ячейки.

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

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

После всех изменений щелкните мышью ячейку справа от ячейки и текстом «№ п/п».

Далее мы будем располагать реквизиты табличной части. При этом в строке, в которой мы расположили текст «№ п/п», мы будем ввод заголовки колонок табличной части, а в строке, в которой мы расположили выражение «Номер Строки», будем вводить выражения, содержащие идентификаторы реквизитов табличной части документов.

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

Материал

Ед. изм

Кол.

Цена

Сумма

Материал

Единица Измерения

Количество

Цена

Сумма

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

•для выражений устанавливать тип ячейки «Выражение»;

•для ячеек, содержащих наименования граф, устанавливать вертикальное положение по центру;

•для ячеек с выражениями устанавливать вертикальное поло­жение — по верху; горизонтальное положение: для текста — по левой границе, для чисел — по правой;

•обводить рамку вокруг ячеек;

•устанавливать размер шрифта 10;

•для шрифта заголовков устанавливать атрибут «Жирн.».

Также мы рекомендуем «украсить» и ранее введенные ячейки для статьи затрат и склада, выровняв их по правой границе ячейки.

Те действия, которые мы выполняли, можно производить значительно быстрее, овладев некоторыми приемами работы в табличном докумен­те — такими, как копирование, групповое изменение свойств ячеек. Од­нако, пока для краткости мы показываем наиболее простой способ работы, а о более эффективных приемах будет рассказано позже.

Все заполненные нами колонки имеют одинаковую ширину. Одна­ко, чаще ширина колонок табличной части определяется той инфор­мацией, для которой эта колонка предназначена: очевидно, что для названия материала нужно предусмотреть больше места, чем, напри­мер, для количества, а, например, колонки «Цена», «Сумма» и «НДС» можно сделать шире, но одинаковой ширины.

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

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

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

Поэтому удобнее всего было бы расположить номер прямо в ячейке с названием после слов «Списание материалов». Для таких случаев существует специальный тип ячейки «Шаблон».

Щелкнем мышью в ячейку, в которой мы ввели название документа, чтобы сделать ее активной. Палитра свойств (которая присутствует у нас на экране) показывает свойства этой ячейки. В поле «Тип» вместо типа «Текст» Выберем тип «Шаблон». Этот тип позволяет совместить в одной ячейке и обычный текст, и одно или несколько выражений. Для того чтобы выделить выражения в тексте ячейки, нужно просто заключать их в квадратные скобки.

Для обозначения номера документа пользуется идентификатор «НомерДок». Отредактируем текст «Осание материалов», добавив в его конец текст «[НомерДок]» и отделив его пробелом от слова «материалов». Итак, у нас получился «Списание материалов № [НомерДок]».

Чтобы дата документа выда прописью, дополним ее форматной строкой «#ДДММММГГГГ». Эту строку следует добавить в конец текста ДатаДок в соответствующей ячейке. Эта строка означает, что будет выведена дата в виде: число, месяц, пропьсью и год — четырьмя цифрами. Для ячейки, содержащей дату документа, менять тип не надо, так как текст ячейки является выражением.

Теперь мы можем закрыть палитру свойств кнопкой «ОК».

Очень важно, чтобы реальное содержимое ячейки таблицы соответство­вало тому типу, который установлен для ячейки в соответствующем по­ле «Палитры свойств»: текст, выражение, шаблон. Несоответствие может вызывать различные неприятные эффекты.

Например, если для ячейки с выражением установлен тип «Текст», то при построении печатной формы выражение будет выведено в форму, как обычный текст. То есть, вместо ожидаемых цифр в форме мы уви­дим какой-то непонятный текст.

И наоборот: если для обычной ячейки установлен тип «Выражение», то при построении печатной формы программа совершенно логично бу­дет считать текст в такой ячейке выражением, и попытается его вычис­лить. Результатом такого «вычисления» будет, скорее всего, сообщение об ошибке.

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

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

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

Теперь нам нужно выбрать из меню «Таблица» пункт «Включить секцию». Появится диалог, в котором нужно указать имя секции. Положенное имя "Секция1", на имя "Заголовок" и нажмем кнопку "ОК".

В левой части окна мы увидим обозначение выделенной нами секции. Теперь мы аналогичным образом выделим как отдельную секцию одну строку — ту, в которой мы вводили наименования граф таблич­ной части документа («№ п/п», «Материал» и другие). При выделении одной строки не нужно вести курсор, а достаточно щелкнуть мышью в номер этой строки. Эту секцию мы назовем «Шапка». Выделение шап­ки таблицы в отдельную секцию связано с тем, что при печати табли­цы на нескольких страницах принято в начале второй и последующих страниц печатать шапку таблицы, потому что иначе таблицу будет очень неудобно читать.

Далее мы выделим как отдельную секцию ту строку, в которой мы вводили выражения для реквизитов табличной части (НомерСтроки, Материал и др.). Этой секции мы присвоим имя «Строка»

Фактически, мы разделили наш бланк на три части — заголовок, шапку и строку. Именно это и позволит нам выводить данные обо всех строках документа, не описывая их в печатной форме. Как это будет происходить, мы посмотрим позже, когда будем создавать алгоритм печати.

Глава 10. Описание алгоритма печати документа

Для написания алгоритма в форме предусмотрена закладка «Модуль». Для ее активизации щелкнем в нее мышкой. Будет открыто окно текстового редактора.

В этом окне мы будем писать текст алгоритма, который будет выполнять печать документа. В модуле формы документа «СписаииеМатериалов» уже присутст­вует процедура, сформированная Конструктором Документов. Это предопределенная процедура ПриОткрытии(), которая выполняется каждый раз при открытии документа.

Итак, для создания процедуры нам нужно написать две строки — строку начала процедуры и строку конца. Мы можем написать их са­ми, введя символы с клавиатуры, можем скопировать их из процедуры ПриОткрытии(), а можем воспользоваться Ситпакс-Помощником.

Синтакс-Помощник — это очень удобный инструмент, который ис­пользуется для написания алгоритмов на встроенном языке. Он помо­гает найти нужные конструкции языка, получить по ним поясне­ния, и автоматически вставить их в текст модуля.

Для вызова Синтакс-помощника мы воспользуемся меню "Сервис" главного меню Конфигуратора. Выберите в нем пункт "Синтаксис-Помощник". Как вы видете, в правой части экрана появилось вертикальное окно – окно Синтакс-Помощника.

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

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

Для вставки в модуль процедуры мы воспользуемся шаблоном «Процедура». Этот шаблон был создан при разработке типовой конфи­гурации «1С:Бухгалетерии 7.7».

Однако перед тем как вызвать шаблон, нужно поместить текстовый курсор в модуле в то место, куда мы будем вставлять новую процедуру. Перейдем к шаблону «Процедура», для этого нужно щелкнуть мышкой в знак «+» слева от слова «Шаблоны», затем щелкнуть мышкой в знак «+» слева от слова «Управление», а затем установить курсор (щелк­нуть мышкой) на строке «Процедура (Проц)».

Для вызова шаблона вос­пользуемся контекстным меню. Оно открывается нажатием правой кнопки мы­ши. В появившемся меню нужно щелкнуть мышью пункт «Выбрать», при этом шаблон начнет выполняться.

Часто шаблоны перед вставкой в текст фрагмента алгоритма выдают некоторые запросы. Шаблон «Процедура (Проц)» выдает запрос "Имя". В этом запросе нужно вести имя, которое мы хотим присвоить создаваемой процедуре. Введем слово "Печать" и нажмем кнопку "ОК".

После этого в окно модуля будут вставлены строки:

Процедура Печать ( )

КонецПроцедуры // Печать

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

Одним из отличительных свойств встроенного языка «1С:Предприятия» является так называемая объектная техника. Это значит, что большая часть его средств сгруппирована в несколько так называемых объектов встроенного языка, каждый имеет набор методов. Методом объекта является некоторое действие, которое имеет четко определенное название и назначение.

Для манипулирования табличным документом в языке существует объект "Таблица". Им мы и будем пользоваться.

Как и для создания процедуроы, для работы с объектом "Таблица" мы воспользуемся шаблоном. Напомним, что перед тем как вызвать шаблон, нужно поместить текстовый курсор в процедуре в то место, куда мы будем вставлять фрагменты алгоритма. В данном случае клавишами управления курсором или мышью следует поставить курсор перед строкой "Конец Процедуры //Печать".

Послде этого следует выбрать шаблон "Таблица" из ветки "Прочие", так же, как мы выбрали шаблон "Процедура". Шаблон "Таблица" не выдает никаких запросов. Посмотрите, как после вставки шаблона будет выглядеть текст модуля (новые строки будем выделять жирным шрифтом):

Процедура Печать ()

Таб=Создать Объект ("Таблица");

Таб. Исходная Таблица ("");

Таб. Вывести Секцию ("Отчет");

Таб. Только Просмотр (1);

Таб. Опции (0,0,0,0);

Таб. Показать ("");

Конец Процедуры

Шаблон вставил наиболее часто использующие конструкции при работе с табличным документом. Дадим пояснения вставленным строкам.

Таб=Создать Объект ("Таблица");

создает в модуле объект языка типа "Таблица". Он обязательно должен быть присвоен некоторой переменной, которая в дальнейшем и будет использована для управления этим объектом.

Переменная является произвольно названным нами временным значением. В отличие от реквизита документа, переменные не хранятся в информационной базе, а «живут» до окончания процедуры. Использование объекта через создание переменной с некоторым именем позволяет использовать в одном модуле несколько однотипных объектов.

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

Опишем те действия, которые производятся с переменной Таб.

Таб. Исходная таблица ("");

В этой строке вызывается метод ИсходнаяТаблица(), который назначает исходный табличный документ. Данную строку мы оставили без изменений.

Мы уже упоминали, что в форме может быть несколько табличных документов. Например, в документе "Счет" могут быть 2 печатные формы: для печати рублевого счета и для печати валютного счета. Метод ИсходнаяТаблица позволяет выбрать, какую печатную форму мы будем использовать в данной процедуре. Так как у нас таблица одна, то мы можем не указывать ее имя и оставить пустую строку.

Таб. Вывести Секцию ("Отчет");

Эта строка выполняет включение в печатную форму подготовленной нами секции. Мы выделили в нашем табличном документе три секции: "Заголовок", "Шапка" "Строка", разумеется, будет выводиться заголовок, поэтомы мы должны исправить в этой строке слово "Отчет" на слово "Заголовок". Для этого нужно подвести курсор к слову "Отчет", удалить его и набрать слово "Заголовок".

Таб. ТолькоПросмотр (1);

Таб. Опции (0,0,0,0);

Таб. Показать ("");

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

Метод ТолькоПросмотр() определяет, что печатная форма будет использоваться только для просмотра и печати, а не для редактирования.

Метод Опции() отключает в готовом документе показ сетки ячеек и заголовков строк и столбцов, так как они не нужны при работе с го­товой формой.

Метод Показать() открывает сформированную форму печатного документа, чтобы ее можно было посмотреть и вывести на принтер.

Если этот метод не вызывать, то мы при работе с данным документом так и не увидим печатной формы.

Более подробно с назначением этих и других методов объекта «Таблица» можно ознакомиться, раскрыв в Синтаксис-Помощнике ветку «Встроен­ный язык», а в ней — ветку «Таблица». Для просмотра краткого описа­ния метода в нижней части окна Синтакс-Помощника нужно дважды щелкнуть мышкой по названию метода в дереве. Разумеется, наиболее подробная информация приведена в документации.

Теперь у нас есть алгоритм, который выведет в печатную форму секцию «Заголовок»:

Процедура Печать ()

Таб=Создать Объект ("Таблица");

Таб. Исходная Таблица ("");

Таб. Вывести Секцию ("Заголовок");

Таб. Только Просмотр (1);

Таб. Опции (0,0,0,0);

Таб. Показать ("");

Конец Процедуры

Кроме секции заголовок, нам нужно вывести секцию "Шапка":

Процедура Печать()

Таб=Создать Объект ("Таблица");

Таб. ИсходнаяТаблица ("");

Таб. Вывести Секцию ("Заголовок");

Таб. Вывести Секцию ("Шапка");

Таб. Только Просмотр (1);

Таб. Опции (0,0,0,0);

Таб. Показать ("");

Конец процедуры

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

Мы не можем просто вызвать метод для вывода секции «Строка", так как строк в документе может быть много, а выведется информация только об одной. Следовательно, нам нужно написать алгоритм обработки всех строк документа.

Прежде всего, определим место, в которое нужно вставлять обработку строк документа.

Вывод строк, определенно, должен быть после вывода шапки, но до вызова метода Показать(). Очевидно, что для этого лучше всего подойдет пустая строка между выводом секции «Шапка» и установв режима «ТолькоПросмотр».

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

Выбрать строки();

При вводе этой строки следует не забыть ввести скобки и символ «;», обозначающий конец команды.

Процедура Печать()

Таб=Создать Объект ("Таблица");

Таб. ИсходнаяТаблица ("");

Таб. Вывести Секцию ("Заголовок");

Таб. Вывести Секцию ("Шапка");

Выбрать строки ();

Таб. Только Просмотр (1);

Таб. Опции (0,0,0,0);

Таб. Показать ("");

Конец процедуры

Для выбора этого метода мы тоже могли воспользоваться Синтакс-Помощником, выбрав его из ветки «Встроенный язык — Документы — Методы».

Теперь нужно организовать обход всех строк документа. Для орга­низации циклической обработки строк используется команда встроен­ного языка Пока..Цикл. Ее мы будем вставлять также с использовани­ем Синтакс-Помощника.

Установите курсор в начало строки между строками «ВыбратьСтроки()» и «Таб. ТолькоПросмотр()».

Теперь раскройте в Синтакс-Помощнике ветку «Встроенный язык», в ней — ветку «Операторы», а в ней — ветку «Структурные». Выбери­те элемент «Пока Цикл», аналогично тому, как мы выбирали шаблоны «Процедура» и «Таблица».

При этом в модуль будут вставлены новые строки:

Процедура Печать( )

Таб=Создать Объект ("Таблица");

Таб. ИсходнаяТаблица ("");

Таб. Вывести Секцию ("Заголовок");

Таб. Вывести Секцию ("Шапка");

Пока цикл

Конец цикла;

Таб. Только Просмотр (1);

Таб. Опции (0,0,0,0);

Таб. Показать ("");

Конец процедуры

Эта конструкция встроенного языка позволяет выполнять часть агоритма несколько раз.

Однако, это только заготовка для цикла. Для работы цикла нужно указать условие выполнения цикла, то естьвыражение, которое будет определять, когда цикл должен быть закончен. Данное выражение должно располагаться между словами «Пока» и «Цикл».

Для обхода строк документа нужно написать условие ПолучитьСтроку()=1. Это вызов специального метода ПолучитьСтроку(), который выбирает очередную строку и возвращает 1, если следующая строка есть, и 0, если больше строк нет. Условие «=1» проверяет, что метод ПолучитьСтроку() вернул 1. При вводе этого условия нужно отделять его от слов «Пока» и «Цикл» пробелами.

Итак, у нас получится следующие строки:

Процедура Печать( )

Таб=Создать Объект ("Таблица");

Таб. ИсходнаяТаблица ("");

Таб. Вывести Секцию ("Заголовок");

Таб. Вывести Секцию ("Шапка");

Пока Получить Строку ( ) = 1 Цикл

Конец цикла;

Таб. Только Просмотр (1);

Таб. Опции (0,0,0,0);

Таб. Показать ("");

Конец процедуры

И нам осталось только поместить между строками «Пока…» и «КонецЦикла» те действия, которые должны выполняться для каждой строки.

Так как мы организуем обработку строк для печати всех строк до­кумента, нам нужно внутри цикла вызвать вывод секции «Строка» табличного документа, которую мы специально выделили отдельно. Следовательно, нам нужно написать в пустой строке между «Пока…» и «Конец Цикла» и строку:

Таб. Вывести секцию ("Строка");

Теперь у нас метод ВывестиСекцию(«Строка») будет вызываться для каждой строки документа. В результате у вас должен получиться следующий текст модуля:

Процедура Печать( )

Таб=Создать Объект ("Таблица");

Таб. ИсходнаяТаблица ("");

Таб. Вывести Секцию ("Заголовок");

Таб. Вывести Секцию ("Шапка");

Пока получить строку ( ) =1 Цикл

Таб. Вывести Секцию ("Строка");

Таб. Только Просмотр (1);

Таб. Опции (0,0,0,0);

Таб. Показать ("");

Конец процедуры

В процессе написания модуля у нас могло нарушиться красивое расположение строк с правильными отступами. Хорошим стилем является писать строки одну под другой, делая клавишей Tab отступы для находящихся внутри процедур и внутри циклов. Чтобы «привести модуль в порядок», можно воспользоваться следующим приемом: выбрать из меню «Действия» пункт «Выделить из меню, «Текст» выбрать подменю «Блок» и далее пункт «Выделить все». В результате все строки модуля будут выровнены в принятым стандартом.

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

В системе программ «1С:Предприятие» то есть возможность при переходе на новую страницу повторять при печати строки таблицы заданных номеров. Для этого используется метод таблиц «ПовторятьПриПечатиСтроки», которому надо указать интервал номеров строк таблицы «с номера по номер». Шапка таблицы занимает единственную строку с номером 8. Тогда, чтобы при переходе на новую страницу печаталась эта строка таблицы, в процедуре «Печать» должна присутствовать строка:

Таб. ПовторятьПриПечатиСтроки(8,8);

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

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

Таб. Исходная таблица ("");

Нажмем клавишу Enter и напечатаем строку:

Таб. ПовторятьПриПечатиСтроки (8,8);

Итак, процедура печати документа будет следующей:

Процедура Печать()

Таб=Создать Объект ("Таблица");

Таб. ИсходнаяТаблица ("");

Таб. Повторять При Печати Строки (8,8);

Таб. Вывести Секцию ("Заголовок");

Таб. Вывести Секцию ("Шапка");

Выбрать строки ()

Пока ПолучитьСтроку() = 1 Цикл

Таб. Вывести секцию ("Строка");

Конец цикла;

Таб. ТолькоПросмотр (1);

Таб. Опции (0,0,0,0);

Таб. Показать ("");

Конец процедуры

Обратите внимание, в методе «ПовторятьПриПечатиСтроки» номера строк таблицы заданы в явном виде. Мы сознательно так поступили, чтобы проще было понять принцип работы метода.

Теперь для окончания процесса создания формы печати нам осталось только организовать вызов созданной процедуры «Печать». Очевидно, что мы должны предусмотреть возможность печати при работе в форме документа.

Такие процедуры, как процедура печати, обыч­но вызываются с помощью кнопки, расположенной в диалоге формы. Активизируем режим редактирования диалога, щелкнув мышью в за­кладку «Диалог».

В данный момент в форме присутствуют две кнопки: «ОК» и «За­крыть». Каждая из их имеет свое назначение и не подходит для вызова процедуры печати. Следовательно, нам нужно создать новую кнопку.

Для создания кнопки нужно выбрать из меню «Вставить» пункт «Кнопка». При выборе этого пункта система переходит в режим встав­ки кнопки. Этот режим работает так же, как и вставка прочих элемен­тов диалога, которую мы уже выполняли при создании формы доку­мента: нужно подвести курсор к левому верхнему углу того места, где вы хотите вставить кнопку; нажать левую кнопку мыши и, не отпуская ее, передвинуть указатель мыши ниже и правее так, чтобы очертить прямоугольник того размера, которого будет кнопка; отпустить кнопку мыши.

На экране появилась кнопка. Теперь нужно придать кнопке необ­ходимые свойства, для этого вызовем палитру свойств двойным щелч­ком по кнопке. В появившейся палитре свойств изменим поле «Заго­ловок». Этот тот текст, который будет располагаться на кнопке. Хотя в заголовке кнопки может быть любой текст, логичнее, чтобы он отра­жал назначение кнопки или характер выполняемых по нажатию этой кнопки действий.

Так как создаваемая кнопка предназначена для печати документа, введем в поле «Заголовок» текст «Печать». Мы определили внешний вид кнопки, и теперь нам нужно определить вызываемые ею действия. Для этого нам нужно переключиться в закладку «Дополнительные».

В ней нужно заполнить поле «Формула». Оно имеет такой смысл, как и такое же поле в палитре свойств реквизита документа, только формула реквизита документа вызывается после ввода его чения, а формула кнопки будет отработана при нажатии кнопки. Соб­ственно, именно вызов формулы и является основным назначением кнопки. В поле «Формула» мы можем написать любую команду на встроенном языке.

В данном случае нам нужно выполнить созданную нами процедуру, для этого нужно написать имя процедуры с круглыми скобками в кон­це «Печать()». Теперь можно закрыть палитру свойств, нажав кнопку «ОК»

Мы можем запустить 1С:Предприятие, чтобы проверить созданный нами механизм печати. Для этого нужно открыть существующий новый документ «Списание материалов» и в нем кнопку «Печать». Разумеется, мы сразу же заметим, что печатная форма документа нуждается в более тщательном оформлении. Однако основные действия мы сделали. Дальше можно совершенствовать и оформление печатной и алгоритм процедуры «Печать», используя различные возможности конфигурирования.

Прежде всего, мы разместим по центру заго­ловок документа. Сначала выделите область в строке, в которой расположен заголовок, на­чиная с его левой ячейки и до ячейки, распо­ложенной над самой правой колонкой таблич­ной части — «Сумма». Для этого мы должны щелкнуть в левую ячейку, нажать левую кнопку мыши и, не отпуская ее, провести курсор мыши к правой ячейке выделяемой области, после чего отпустить кнопку мыши. Выделенная область закрашивается ин­версным цветом.

Теперь мы вызовем палитру свойств из меню «Действия» («Свойства»). В ней мы активизируем закладку «Положение» и в нем мышью в поле «Центр» группы «По горизонтали», чтобы установить режим центрирования по горизонтали.

При расположении текста в пределах нескольких ячеек, объединяемых командой «Объединить», необходимо, чтобы текст размещался в край­ней левой ячейке из группы объединяемых ячеек.

Если это не так, то при выполнении команды «Объединить» текст «пропадет». Увидеть «пропавший» текст можно, если вызвать палитру свойств для ячейки, в которой находится этот текст.

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

Щелкнем мышкой в ячейке таблицы, где записано выражение «Ма­териал». Затем откроем палитру свойств этой ячейки, выбрав пункт «Свойства» из меню «Действия» или контекстного меню, открываемо­го правой кнопкой мыши.

В палитре свойств на закладке «Текст» в поле «Контроль» выберем значение «Переносить» и закроем палитру свойств нажатием кнопки «ОК». Теперь при выводе в эту ячейку длинного наименования теку­щая строка таблицы будет раздвинута по высоте так, чтобы наимено­вание материала полностью поместилось в ячейку. Ширина колонки, а, стало быть, и всей таблицы при этом не изменится.

Теперь мы добавим в нижнюю часть печатной формы документа область печати итогов по колонке «Сумма».

Сначала мы введем поясняющий текст «ИТОГО» в ячейке ниже выражения «Цена». Д. этого текста в палитре свойств установим шрифт размером 10 и включим атрибут «Жирн.».

После этого мы введем выражение в ячейку ниже выражения «Сумма». При этом надо, как и раньше, вызвать палитру свойств выбрать тип ячейки «Выражение».

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

При печати числовых выражений удобнее, чтобы они были выровнены по правому краю. Для этого мы активизируем закладку «Положение» и щелкнем мышью в поле «Право» группы «По горизонтали». Теперь нажмем кнопку «ОК».

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

Для создания новой секции отметим в заголовках строк таблицы (серая колонка с номер срок слева) строку с текстом «Итого». При этом можно отметить заод­но и несколько следующих пустых строк на случай, если в нижней части документа в последующем потребуется разместить, например, место для подписей. Теперь выберем пункт «Включить в секцию» из меню «Таблица» и введем имя секции «Подвал».

Чтобы новая секция выводилась в печатной форме документа, нужно внести некоторые изменения созданный нами модуль. Перейди­те к закладке «Модуль».

В процедуре Печать необходимо добавить строку для вывода сек­ции «Подвал». Очевидно, что эта строка должна располагаться после команд, выводящих строки документа — после строки «КонецЦикла».

После строки «КонецЦикла» впишите строку:

Таб. ВывестиСекцию("Подвал");

Если у вас после строки «КонецЦикла» нет пустой строки, добавьте ее. Для этого можно поставить курсор справа от символа «;» в строке «КонецЦикла» и нажать клавишу Enter, чтобы начать ввод новой строки, а затем набрать на клавиатуре указанный текст.

Окончательный, после всех добавлений, текст модуля должен быть таким:

Процедура Печать()

Таб. ИсходнаяТаблица ("");

Таб. ПовторятьПриПечатиСтроки (8,8);

Таб. ВывестиСекцию("Заголовок");

Таб. ВывестиСекцию("Шапка");

ВыбратьСтроки()

Пока ПолучитьСтроку() = 1 Цикл

Таб. Вывести секцию("Строка");

КонецЦикла;

Таб. ВывестиСекцию("Подвал");

Таб. ТолькоПросмотр (1);

Таб. Опции (0,0,0,0);

Таб. Показать ("");

Конец процедуры

Теперь можно запустить 1C: Предприятие и посмотреть на «обновленную» печатную форму документа.

Глава 11. Открытие субсчета к счету

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

В главе 4 мы вводили аналитический учет на счете 23 «Вспомогательные производства» в разрезе статей затрат вспомога­тельного производства. По правилам ведения учета на этом счете, для каждого вида деятельности, относящегося к вспомогательному произ­водству, должен быть открыт отдельный субсчет. Настраивая первона­чально счет 23, мы исходили из того, что на нашем предприятии име­ется единственное вспомогательное производство. Предположим теперь, что мы открыли еще один вид вспомогательного производства, пусть это будет, например, «Ремонт основных средств».

Откроем субсчет к счету 23. Для этого в Конфигураторе откроем окно «Конфигурация» на закладке «Метаданные», откроем ветвь «Планы счетов» и дважды щелкнем мышкой на плане счетов «Основ­ной».

В окне плана счетов нажмем клавишу Ins и введем новый код счета счет 23.1 и наименование «Ремонт основных средств». На запрос «Счет будет иметь субсчета?» ответим отрицательно.

Выполнив эти действия, мы видим, что счет 23 в плане счетов претерпел следующие изменения:

•счет 23 стал группой (пиктограмма желтого цвета);

•к счету 23 открыт субсчет 23.0, свойства которого (Субконто1 — «Затраты»), совпадают с теми, которые мы ранее зада­вали счету 23;

•появился субсчет 23.1, который мы только что создали.

До того, как мы открыли субсчет к счету 23, этот счет не был группой, так как с помощью документа «СписаниеМатериалов» мы ввод ли проводки по счету 23. При открытии субсчета к счету, не имевшея субсчетов, счет преобразовался в группу, так как только счет-групп может содержать субсчета.

Но, поскольку счет 23 ранее не имел субсчетов, по этому счету информационной базе могли храниться проводки (именно так у наСа было). Поэтому для сохранения проводок по счету 23 системой создан субсчет с кодом 23.0, заменивший собой прежний счет 23. Далее мы увидим, что проводки по счету 23 в информационной базе действительно сохранились.)

Настроим счет 23 для ведения аналитического учета в разрезе за­трат вспомогательного производства. Для этого щелкнем мышью в ко­лонке «Субконто1» и из списка субконто выберем «Затраты». После этого у субсчета 23.1 в колонке «Субконто1» также появляется значе­ние «Затраты». Настройка аналитического учета для субсчета 23.0 не изменилась, так как этот субсчет, созданный системой, унаследовал настройку аналитического учета от «прежнего» счета 23.

Выполнив эти изменения, запустим программу в режиме «1C:Предприятие», предварительно сохранив изменения в конфигура­ции.

Открыв журнал «Вспомогательные производства», установим в нем курсор на строку с введенным ранее документом «СписаниеМатериа­лов» и нажмем в панели инструментов журнала кнопку «Д/К» для просмотра проводок документа.

Мы видим, что в сделанных ранее проводках по счету 23 код счета «23» заменен кодом «23.0». Таким образом, введенная ранее информа­ция по счету 23 сохранилась.

Вернемся в Конфигуратор, чтобы внести еще некоторые изменения «косметического» характера. Поскольку в плане счетов не встречается субсчетов с кодом «0», мы, из общих правил обозначения субсчетов, переименуем субсчет 23.0 в 23.2 и изменим его наименование «Вспо­могательные производства», унаследованное от счета 23, на то назва­ние вида деятельности, которое первоначально существовало на нашем предприятии как вспомогательное производство. Пусть это будет «Транспортное обслуживание». Обратите внимание, сразу после изменения кода «23.0» на «23.2» субсчет занял свое место в плане счетов после субсчета 23.1.

Далее нам следует внести изменения в другие метаданные, которые так или иначе используют счет 23. До того, как мы начали вносить изменения в типовую конфигурацию, счет 23 в других объектах метаданных в явном виде не использовался. Мы же создали документ «СписаниеМатериалов», который генерирует проводки по счету 23, поэтому следующая глава будет полностью посвящена изменению документа «СписаниеМатериалов».

Глава 12. Корректировка документа «Списание материалов»

Ранее мы создали документ «СписаниеМатериалов», который при проведении формирует проводки по счету 23. Поскольку структура счета 23 существенно изменилась — счет преобразован в группу и к нему открыты субсчета — нам необходимо внести, во-первых, коррек­тивы в процедуру проведения документа, что, скорее всего, повлечет за собой изменение как формы диалога, так и структуры документа.

Алгоритм формирования проводок документом «Списание мате­риалов» был создан Конструктором Документов. Мы убедились в пра­вильности формирования проводок этим документом, а сейчас рас­смотрим сам алгоритм и внесем в него необходимые изменения.

Документы в «1С:Предприятии» могут формировать проводки только в процессе проведения. Алгоритм проведения описывается в специальном модуле, называемом модулем документа. До этого мы редактировали модуль формы документа. Теперь окно формы доку­мента можно закрыть. Закроем сеанс работы в режиме запуска «1С:Предприятие» и вер­немся в Конфигуратор. Закроем окно плана счетов, найдем в дереве метаданных документ «СписаниеМатериалов» и откроем окно редак­тирования документа. Для этого, установив курсор на названии доку­мента, дважды щелкнем мышкой. В окне редактирования документа нажмем на кнопку «Модуль документа».

Будет открыто окно для редактирования модуля документа. Это окно — не что иное, как текстовый редактор, такой же, как мы исполь­зовали при создании модуля печатной формы документа. Поэтому, надеемся, вам уже знакомы приемы работы с ним.

Итак, в окне текстового редактора появится следующий текст:

Процедура ОбработкаПроведения()

//{{ ФОРМИРОВАНИЕ_ОПЕРАЦИИ

//Данный фрагмент построен конструктором.

//Приповторном использовании конструктора,

//внесенные вручную изменения бюудут потеряны!!!

Выбрать Строки();

Пока ПолучитьСтроку() = 1 Цикл

Операция. НоваяПроводка();

Операция. Дебет. Счет=СчетПоКоду("23",ПланыСчетов. Основной);

Операция. Дебет. Затраты=Затраты;

Операция. Кредит. Счет=СчетПоКоду("10.1",Планы Счетов. Основной);

Операция. Кредит. Материалы=Материалы;

Операция. Кредит. МестаХранения =МестаХранения;

Операция. Кредит. Количество=Количество;

Операция. Кредит. Сумма=Сумма;

КонецЦикла;

Операция. СуммаОперации=Итог("Сумма");

Операция. Записать ();

//}} ФОРМИРОВАНИЕ_ОПЕРАЦИИ

КонецПроцедуры

В модуле документа процедура ОбработкаПроведения была сформирована Конструктором документов, о чем сообщают коммента­рии, следующие непосредственно за текстом заголовка процедуры.

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

Для тех, кто уже хорошо владеет приемами редактирования текстов: в дальнейшем при необходимости организации цикла по строкам доку­мента, можно будет скопировать этот фрагмент текста из модуля доку­мента и, удалив в нем лишние строки, оставить только цикл обхода строк документа:

ВыбратьСтроки();

Пока ПолучитьСтроку() = 1 Цикл

……….

КонецЦикла;

Теперь рассмотрим собственно алгоритм формирования проводок. Как мы уже говорили, во встроенном языке «IС:Предприятия» многие возможности сгруппированы в объекты различных типов. Для форми­рования проводок в модуле документа существует специальный объект типа «Операция». Он имеет имя «Операция». В отличие от уже зна­комого нам объекта «Таблица», которых у одного документа может быть несколько, бухгалтерская операция у документа всегда только одна. Поэтому такой объект не надо создавать функцией СоздатьОбъект() , и имя этого объекта четко определено.

Алгоритм записи проводок размещен внутри цикла обработки строй (между строками «Пока…» и «КонецЦикла»), так как он должен вы подняться для каждой строки документа.

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

Операция. НоваяПроводка();

Теперь мы должны заполнить различные данные проводки. У многих объектов, кроме методов, существуют еще и атрибуты. Атрибут отличается от метода тем, что его можно не только вызывать, но еще ему можно присваивать значение, так же, как и реквизиту документа и переменной. При обращении к атрибуту не пишутся круглые скобки и не используются параметры.

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

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

Операция. Дебет. Счет=СчетПоКоду ("23",ПланыСчетов. Основной);

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

Операция. Дебет. Счет=СчетПоКоду("23");

Использование функции СчетПоКоду()является необходимым из-за того, что строка «23», не является собственно счетом, а содержит только его код. К такой записи нужно привыкнуть и использовать ее для обращения к счету.

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

Сч 23=СчетПоКоду("23");

Операция. Дебет. Счет=Сч23;

Теперь рассмотрим, как заполняется значение субконто дебета про­водки. В большинстве случаев, для дебета и кредита проводки должны заполняться все субконто, которые определены для данного счета в плане счетов (план счетов можно посмотреть и в 1С:Бухгалтерии, и в дереве метаданных Конфигуратора — на ветви «Планы счетов — Ос­новной»).

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

Открыв план счетов, мы увидим, что нам нужно заполнить для сче­та «23» субконто «Затраты». Для заполнения субконто дебета также используется атрибут Дебет, а для уточнения через точку указывается вид субконто, так как в дебете проводки (как, впрочем, и в кредите) могут одновременно быть значения субконто разных видов. Следующая строка заполняет значение субконто дебета:

Операция. Дебет. Затраты=Затраты;

В левой части конструкция Операция. Дебет. Затраты обозначает субконто вида «Затраты» дебета проводки.

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

Операция. Кредит. Счет=СчетПоКоду ("10.1", ПланыСчетов. Основной);

В кредит проводки записывается субсчет 10.1 «Сырье материалы». Указание плана счетов в данном сучае можно опустить, так как в типовой конфигурации имеется только один план счетов. Далее заполняются субконто кредита:

Операция. Кредит. Материалы=Материалы;

Операция. Кредит. МестаХранения=МестаХранения;

В левой части конструкция Операция. Дебет. Материалы обозначает субконто вида «Материалы» дебета проводки.

В правой части оператора присваивания размещается слово «Материалы», которое является идентификатором реквизита документа. То есть данное значение будет заполнено в проводке из реквизита «Материал» текущей строки документа.

Аналогично формируется и строка для заполнения субконто МестаХранения.

Операция. Дебет. Места Хранения=МестаХранения;

Обратите внимание, что в качестве вида субконто мы указали слово МестаХранения в левой части оператора присваивания, поскольку именно так называется вид субконто, назначенный для счета 10.1, а правой части мы написали «МестаХранения», поскольку именно та идентификатор мы присвоили реквизиту документа.

Как вы помните, для реквизита «МестаХранения» мы выбрали тип «Справочник. МестаХранения». Однако то, что вид субконто называется «МестаХранения», также не является основанием для правомерности присвоения ему значения реквизита «МестаХранения» — необходимо, чтобы тип вида субконто и тип реквизита документа совпадали.

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

На этом мы закончили описание заполнения дебета и кредита про­водки, и теперь рассмотрим заполнение значения суммы и количества:

Операция. Количество=Количество;

Операция. Сумма=Сумма;

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

Операция. Количество=Количество;

Так как один из счетов данной проводки (а именно счет 10.1) имеет в плане счетов признак количественного учета, необходимо заполнить атрибут проводки «Количество». Разумеется, он заполняется из рекви­зита документа «Количество».

Кроме вышеперечисленных атрибутов, в проводке может быть ука­зано ее содержание и номер журнала (это атрибуты «СодержаниеПроводки» и «НомерЖурнала»).

Атрибут «СодержаниеПроводки» предназначен для записи поясне­ния к проводке.

Использование атрибута «НомерЖурнала» позволяет разделить все многообразие проводок на группы, в зависимости от их принадлежно­сти — проводки, относящиеся к только расчету заработной платы, проводки, относящиеся к учету основных средств, и т. д.

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

Добавим эти строки в процедуру:

ПроцедураОбработкаПроведения ()

//{{ФОРМИРОВАНИЕ — ОПЕРАЦИИ

//Данный Фрагмент построен конструктором.

//При повторном использовании конструктора,

//внесенные вручную изменения будут потеряны!!!

Выбрать Строки( );

ПокаПолучитьСтроку()=1 Цикл

Операция. НоваяПроводка();

Операция. Дебет. Счет=СчетПоКоду("23");

Операция. Дебет. Затраты=Затраты;

Операция. Кредит. Счет=СчетПоКоду("10.1");

Операция. Кредит. Материалы=Материалы;

Операция. Кредит. МестаХранения =МестаХранения;

Операция. Количество=Количество;

Операция. Сумма=Сумма;

Операция. СодержаниеПроводки="Списание материалов";

Операция. НомерЖурнала="МТ";

КонецЦикла;

Операция. СуммаОперации=Итог("Сумма");

Операция. Записать();

//}} ФОРМИРОВАНИЕ_ОПЕРАЦИИ

КонецПроцедуры

Для заполнения дополнительных реквизитов «СодержаниеПроводки» и «НомерЖурнала» мы указываем непосредственно строковые значения в двойных кавычках.

Некоторые атрибуты объекта «Операция», которые мы использовали, имеют фиксированное название, то есть они всегда будут именно такими («Счет», «Сумма», «Количество»), а другие атрибуты имеют имена, соответствующие идентификаторам введенных метаданных. К ним относятся названия (идентификаторы) видов субконто («Материалы», «Места Хранения», «Затраты») и названия дополнительных реквизтов проводки («СодержаниеПроводки», «НомерЖурнала»).

При заполнении дополнительных реквизитов следует соблюсти тип. Тип реквизитов проводки можно посмотреть, обратившись к ветке «Проводка» метаданных. В ней можно двойным щелчком мыши открыть свойства конкретного реквизита. Так, например, реквизит «НомерЖурнала» имеет тип «Строка» и длину 2 символа. Это значит, что в него не имеет смысла вносить строку, состоящую более чем из двух символов.

На этом формирование проводки по строке документа (то есть указанному в этой строке материалу) окончено. Если при обработке строки документа одной проводки недостаточно, следует в этом же цикле снова вызвать метод НоваяПроводка() объекта «Операция» и заполнить атрибуты этой новой проводки.

В завершение формирования операции мы заполняем реквизиты, относящиеся к операции в целом, а затем выполняем сохранение (за­пись) только что созданной операции:

Операция. Сумма. Операции =Итог("Сумма");

Операция. Записать();

Реквизит «СуммаОперации» не отражается в бухгалтерских итогах, а служит, скорее, дополнительной справочной информацией. Напри­мер, по этой сумме будет удобно искать документ в журнале операций (см. главу «Настройка журнала операций»). Поэтому перед записью операции Конструктор сформировал строку заполнения этого рекви­зита итоговой суммой документа.

Мы уже говорили, что в правой части оператора присваивания мо­жет указываться выражение. То, что в предыдущих проводках мы ука­зывали просто реквизит документа, было простейшим случаем выра­жения: выражения из одного реквизита. В данном случае для заполнения суммы операции использован метод Итог объекта «Доку­мент», позволяющий просуммировать значения реквизита «Сумма» по всем строкам табличной части документа.

Для записи сформированной операции вызван метод Записать(); объекта «Операция»:

Операция. Записать();

Данный метод нужно вызывать в самом конце — после формирова­ния всех проводок. То есть, его необходимо размещать после строк, формирующих проводку но, разумеется, до строки «КонецПроцедуры».

Счет 23 теперь стал группой, поэтому в дебете проводки должен присутствовать не сам счет, а его субсчета (23.1 «Ремонт ос­новных средств» или 23.2 «Транспортное обслуживание»).

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

В окне редактирования документа введем новый реквизит шапки документа, нажав кнопку "Новый".

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

Откроем окно редактирования диалога документа. Для этого щелкнем мышью "Форма". Перед нами открылся уже знакомый нам диалог формы.

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

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

После выбора вставляемого реквизита нужно мышью очертить от­веденное для него место в диалоге. После отпускания кнопки мыши новый реквизит появится в диалоге. Текст «КоррСчет» желательно заменить на «Вид производства».

Диалог будет иметь аккуратный вид, если новые реквизиты сделать одной высоты с реквизитом «Затраты» выровнять по его верху. Предлагаем вам сделать это самостоятельно.

Редактирование диалога на этом можно считать законченным, давайте посмотрим на результат наших последних изменений, запустив программу в режиме «1С:Предприятие».

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

Мы уже добились положительного результата, потому что имеем возможность выбрать требуемый субсчет счета 23. Но если документ будет вводить кто-либо незнакомый с работой документа «СписаниеМатериалов», он может выбрать другой счет, и это приведет к форми­рованию неправильных проводок.

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

Давайте закроем программу, запущенную в режиме «1С:Предприятие», и продолжим редактирование документа в Конфи­гураторе.

Нам нужно после ввода счета в реквизит «КоррСчет» проверять, является ли введенный счет субсчетом счета 23, и если нет, будем вы­давать предупреждение, что следует ввести субсчет счета 23. Эти дей­ствия мы опишем в процедуре, которую будем вызывать при вводе информации в реквизит «КоррСчет».

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

Двойным щелчком мыши на реквизите «КоррСчет» откроем палит­ру свойств этого реквизита, выберем закладку «Дополнительно» и в поле «Формула» запишем вызов процедуры:

ПриВыбореСчета();

Этой процедуры пока еще нет, но мы создадим ее в модуле формы документа. Нажмем кнопку «ОК» в палитре свойств реквизита «Кор­рСчет», чтобы сохранить изменения, и перейдем к созданию процеду­ры.

В окне редактирования формы документа щелкнем мышкой по за­кладке «Модуль», в окне текстового редактора вы видите модуль фор­мы документа. В этом модуле сейчас есть две процедуры: ПриОткрытии() и Печать().

Вставим пустую строку перед процедурой «Печать». Затем в ветви «Шаблоны» Синтакс-Помощника откроем ветвь «Управление», а в ней установим курсор на объекте «Процедура (Проц)», щелкнем правой кнопкой мышки и в контекстном меню выберем пункт «Выбрать».

В диалоге запроса имени процедуры наберем ПриВыбореСчета и нажмем кнопку ОК. В модуле формы получим следующую «заготов­ку» для новой процедуры:

Процедура ПриВыбореСчета( )

Конец Процедуры //ПриВыбореСчета

Установите курсор в пустой строке в теле новой процедуры. Далее нам нужно проверить условие «Выбранный счет являетеся субсчетом счета 23?» и, если нет, вывести на экран предупреждение. То есть в теле процедуры должен присутствовать условный оператор. Выберем из ветви «Шаблоны» Синтакс-Помощника объект «Еесли Тогда») и вставим его в текст, не задавая пока условия. Теперь наша процедура будет выглядеть так:

Процедура ПриВыбореСчета()

Если Тогда

Конец Если;

Конец Процедуры //ПриВыбореСчета

Курсор поставим между словами Если и Тогда. Следующий шаг — записать условие, является ли выбранный счет субсчетом счета 23, другими словами, принадлежит ли выбранный счет группе счетов с кодом 23. В «1С:Предприятии» для работы существует метод ПринадлежитГруппе(), позволяющий определить принадлежность субсчета группе счетов. Это один из методов работы с объектами типа «Счет». Давайте найдем его в Синтакс-Помощнике. Для этого откроем ветвь «Встроенный язык», в ней — «Счета», далее ветвь «Методы», в которой примерно в середине списка объектов находится метод ПринадлежитГруппе. Так же, как мы вставляли конструкции языка ранее, вставим и этот объект в текст модуля. Он должен быть записан в строке между словами «Если» и «Тогда»:

Процедура ПриВыбореСчета( )

Если ПринадлежитГруппе() Тогда

КонецЕсли;

Конец Процедуры // ПриВыбореСчета

Выбранный нами метод применяется к объекту метаданных типа «Счет», а его параметром должен быть счет-группа. Метод ПринадлежитГруппе возвращает значение «1», если счет принадле­жит указанной группе, и «0», если нет. Все это вы можете прочесть в Синтакс-Помощнике, если дважды щелкнете мышкой по объекту ПринадлежитГруппе.

В документе для ввода счета предназначен реквизит «КоррСчет», имеющий тип счет, поэтому метод ПринадлежитГруппе будем применять к нему. То есть, в строке условия «Если» непосредсственно перед названием метода напишем:

КоррСчет. ПринадлежитГруппе()

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

СчетПоКоду("23")

Итак, теперь у нас получилось:

Процедура ПриВыбореСчета()

Если КоррСчет. ПринадлежитГруппе(СчетПоКоду("23")) Тогда

КонецЕсли;

Конец Процедуры //ПриВыбореСчета

Если выбранный нами счет является субсчетом счета 23, то счет выбран правильно, и делать нам ничего не нужно. Но если это не так, мы должны предупредить о том, что выбирать счет следует из субсче­тов счета 23. Поэтому дальнейшие действия в процедуре будут воз­можны, если метод ПринадлежитГруппе возвращает значение «0», это мы и запишем, после чего строка условия будет такой:

Если КоррСчет. ПринадлежитГруппе(СчетПоКоду("23")=0 Тогда

Во встроенном языке «1С:Предприятия» имеется системная процедура «Предупреждение», которой в качестве параметра мы передадим текст «Выберите субсчет счета 23!». Вызов этой процедуры следует записать в теле условного оператора. Окончательно процедура будет выглядеть так:

Процедура ПриВыбореСчета()

Если КоррСчет. ПринадлежитГруппе(СчетПоКоду("23")=0 Тогда

Предупреждение ("Выберите субсчет счета 23!")

КонецЕсли;

Конец Процедуры //ПриВыбореСчета

Ошибок вводе счета будет меньше, если при вводе нового документа реквизиту «КоррСчет» будет заранее присвоено допустимое значение. Покажем, как это можно сделать.

В системе «1С:Предприятие» имеется набор предопределена процедур, которые выполняются при тех или иных условиях работы системы. С одной из них мы познакомились, это процедура ПриОткрытии, которая помещена в модуль формы документа Конструктором Документов и выполняется каждый раз, как только откроется существующий документ.

Откроем ветвь «Шаблоны» в Синтакс-Помощнике, затем ветвь «Предопределенные процедуры» и выберем в ней oбъект «ВводНового()». Это именно та процедура, которую мы вставим в модуль формы. (Только сначала вставьте пустую строку перед процедурой ПриОткрытии и поставьте в нее курсор.)

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

Итак, вставим процедуру ВводНового в модуль формы:

Процедура ВводНового (Копирование)//предопределенная

Если Копирование = 1 Тогда

Возврат;

Конец Если;

Конец Прооцедуры / ВводНового

В этой процедуре сделана обработка режима копирования документа, мы не будем углубляться в разбор данного кода. Обратите внимание, курсор уже установлен именно в той строке, в которой мы зададим начальное значение реквизиту «КоррСчет»:

КоррСчет=СчетПоКоду("23.1");

То есть вся процедура будет выглядеть так:

Процедура ВводНового (Копирование)//предопределенная

Если Копирование=1 Тогда

Возврат;

Конец Если;

КоррСчет=Счет По Коду ("23");

Конец Процедуры //ВводНового

Теперь при вводе новогго документа реквизиту "КоррСчет" будет присвоено правильное значение, а если потребуется задать другой субсчет, то план счетов будет открыт для выбора как раз на списке субсчетов счета 23. Редактирование модуля формы закончено. Теперь завершим редактирование модуля документа.

Сейчас наша задача – подправить алгоритм формирования проводок, чтобы в дебет проводки записывался счет, введенный в реквизите "КоррСчет". Счет в дебете проводки определялся строкой:

Операция. Дебет. Счет=СчетПоКоду("23");

В правой части этой строки выражение СчетПоКоду(«23») заменим идентификатором реквизита КоррСчет:

Операция. Дебет. Счет = КоррСчет;

Тогда процедура ОбработкаПроведения будет следующей:

Процедура ОбработкиПроведения()

//{{ ФОРМИРОВАНИЕ_ОПЕРАЦИИ

//Данный фрагмент построен конструктором.

//При повторном использовании конструктора,

//внесенные вручную изменения бюудут потеряны!!!

ВыбратьСтроки();

Пока ПолучитьСтроку() = 1 Цикл

Операция. НоваяПроводка();

Операция. Дебет. Счет=КоррСчет;

Операция. Дебет. Затраты=Затраты;

Операция. Кредит. Счет=СчетПоКоду("10.1");

Операция. Кредит. Материалы=Материалы;

Операция. Кредит. МестаХранения =МестаХранения;

Операция. Количество=Количество;

Операция. Сумма=Сумма;

КонецЦикла;

Операция. СуммаОперации=Итог("Сумма");

Операция. Записать();

//}} ФОРМИРОВАНИЕ_ОПЕРАЦИИ

Конец Процедуры

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

Глава 13. Создание документа без использования режима

Конструктора «от проводки»

Будем создавать документ, отражающий в бухгалтерском учете поступление товаров от поставщика.

Первый шаг — определим проводки, формируемые документом. Поступление товаров от поставщиков отражается проводками по дебету счета 41 и кредиту счета 60. Кроме того, из общей суммы поступивших товаров следует выделить сумму налога на добавленную стой (НДС) и отнести ее на счет 19.

То есть, при поступлении товаров должны быть сформированы проводки:

Д 41 — К 60

Д 19 — К 60

Это описание проводок в самом общем виде. Далее мы перейдем в окно запуска программы в «1С:Предприятие» и откроем план счетов, чтобы уточнить схему проводок. Выбранные нами счета являются группами, следовательно, для проводок мы должны выбрать из этих групп субсчета. В группе счетов 19 найдем субсчет «НДС по товарам». Это субсчет с кодом 19.6. Из группы 41 «Товары» мы возьмем субсчет 41.1 «Товары на скла­дах». И, наконец, в группе счетов с кодом 60 «Расчеты с поставщиками и подрядчиками» выберем субсчет 60.1 «Расчеты с поставщиками в руб­лях».

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

Д 41.1 — К 60.1

Д 19 .6 — К 60.1

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

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

Счет 19.6 предназначен для отражения суммы НДС. Этот счет не имеет субконто, а также признаков ведения валютного или количественного учета. Следовательно, единственное, что может понадобиться для выполнения проводки по этому счету, эта сумма НДС. Не углубляясь в методику вычисления суммы НДС, будем считать НДС реквизитом документа.

Счет 41.1 «Товары на складах» имеет признак ведения количественного учета и субконто «Номенклатура» (то есть вид товара), отсюда мы получаем еще два реквизита: «Количество» и «Товар». Кр того, проводка по счету 41.1 делается на сумму поступившего товара (без учета НДС). Но, как правило, при поступлении товара указывается его сумма, включающая НДС. Введем параметр «Сумма» — общая сумма товара — это еще один реквизит документа.

Далее, счет 60.1 имеет субконто «Контрагенты». Поскольку в приведенной схеме проводок счет 60.1 проходит по кредиту, а счета 19.6 и 41.1 по дебету проводок, а суммы проводок мы уже «определили», как единственный реквизит документа, который нам «добавит» счет 60.1 будет наименование контрагента, от которого поступил товар, назовем этот реквизит «Поставщик».

Итак, перечислим реквизиты, которые мы определили как необходимые для формирования проводок Д 41.1 — К 60.1, Д 19 .6 — К 60.1:

• «Сумма» — сумма товара с учетом НДС;

• «Количество» — количество поступившего товара;

• «Товар» — поступивший товар;

• «НДС» — сумма НДС;

• «Поставщик» — контрагент, от которого поступил товар.

Теперь, когда список необходимых реквизитов нами составлен, должны определить тип каждого реквизита.

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

С реквизитом, обозначающим количество, нам также приходилось работать, обычно для этого параметра выбирается тип «Число» длиной 10 знаков и 3 знака дробной части. Сложнее определить тип реквизитов, взятых из субконто. Так, реквизит, который мы обозначили как «Товар», это вид суб­конто «Номенклатура», а реквизит «Поставщик» соответствует виду субконто «Контрагенты». Определить, какой тип имеют данные рекви­зиты, можно только в Конфигураторе, найдя соответствующий вид субконто в дереве метаданных.

Перейдите в окно Конфигуратора. Откройте конфигурацию и уста­новите курсор на ветви «Виды субконто».

Можно найти требуемый вид субконто, просматривая список видов субконто в дереве метаданных. Для этого раскройте ветвь «Виды суб­конто», щелкнув мышкой по знаку «+» слева от названия этой ветви дерева метаданных, и ищите название, например, «Номенклатура» или «Контрагенты» или какое-либо другое.

Более эффективно искать субконто с помощью средств поиска, пре­доставляемых системой «1С:Предприятие». Установив курсор на заго­ловок ветви «Виды субконто», выберите из меню «Действия» пункт «Поиск» —«Искать…».

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

Двойным щелчком мыши откроем палитру свойств вида субконто "Номенклатура». Данный вид субконто, а, следовательно, и реквизит «Товар», имеет тип справочника «Номенклатура».

Далее определим тип реквизита «Поставщик», соответствующего виду субконто «Контрагенты». Установим курсор на ветвь «Виды субконто» и выполним поиск вида субконто «Контрагенты», затем в палитре свойств найдем тип его значения — это справочник «Контрагенты».

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

— «Сумма» — число 14 (2);

— «Количество» — число 10 (3);

— «Товар» — справочник «Номенклатура»;

— «НДС» — число 14 (2);

—  «Поставщик» — справочник «Контрагенты».

Далее будем создавать документ с помощью конструктора. В качестве идентификатора нового докумег укажем строку «ПоступлениеТоваров» и зададим синоним «Поступление товаров».

Включим флажки «Документ будет проводится» и «При записи документ должен перепроводиться», а флажок «Разработать структуру документа «от проводки» отключим.

Укажем идентификатор нового журнала «УчетТоваров», вставим пользовательское меню вызовы документа и журнала.

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

Далее нам надо ввести в документ реквизиты (их состав, а также тип мы определили ранее), а также установить в окне редактирования документа важные параметры, о которых необходимо помнить при соз­дании документов, формирующих проводки.

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

И, наконец, рекомендуем вам установить периодичность нумерации документов «В пределах года». Далее мы должны ввести в документ необходимые реквизиты, и, возможно, добавить к ним другие реквизиты.

Определим, какие реквизиты мы отнесем к шапке документа, а какие введем в табличную часть. (Разделение реквизитов документа принадлежности к шапке или табличной части мы выполняли, ког создавали документ «СписаниеМатериалов»).

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

Приемы ввода реквизитов в документ мы освоили, создавая документ «СписаниеМатериалов», поэтому не будем объяснять, как это сделать, но для удобства ввода приведем тип каждого реквизита:

• «Сумма» — число: длина 14, точность 2;

• «Количество» — число: длина 10 точность 3;

• «Товар» — Справочник. Номенклатура;

• «НДС» — число: длина 14 точность 2;

• «Поставщик» — Справочник. Контрагенты.

Также напомним, что реквизитам, имеющим тип «число», на закладке «Дополнительные» следует установить флажок «Неотрицательный», а для реквизитов «Сумма» и «НДС» включить «Итог по колонке».

Можно переходить к редактированию формы документа. Отметим только, что сумму НДС для каждого товара можно вы­считать по значению реквизита «СтавкаНДС» справочника «Номенк­латура». Формулу вычисления суммы НДС в этом случае надо будет ввести на закладке «Дополнительно» реквизита «Сумма» табличной части диалога документа. При этом вы можете оставить возможность корректирования суммы НДС вручную.

Далее мы вернемся в окно редактирования документа и нажмем кнопку «Модуль Документа».

Глава 14. Создание алгоритма формирования проводок

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

Модуль документа представляет собой заготовку для процедуры Обработка Проведения. Текст этой процедуры, то есть алгоритм формирования проводок документа мы должны написать самостоя­тельно.

Счет 41.1 имеет субконто «Номенклатура», то есть, в терминах на­шего документа, «Товар», а, поскольку в документе товары записыва­ются в табличную часть, проводка Д 41.1 — К 60.1 должна быть сфор­мирована для каждого вида товара, представленного в документе, другими словами, для каждой строки табличной части документа.

Счет 19.6 не имеет субконто, следовательно, можно не формировать для каждой строки документа проводку на сумму НДС, а просумми­ровать НДС по всем строкам таблицы и сделать одну проводку на об­щую сумму НДС.

Итак, документ должен сформировать столько проводок Д 41.1 — К 60.1, сколько заполнено строк в табличной части документа, а также одну проводку Д 19 .6 — К 60.1 на общую сумму НДС всех поступив­ших товаров.

Можно переходить к оформлению алгоритма. При первом откры­тии модуля документа мы видим текст процедуры ОбработкаПроведения:

Процедура Обработки Проведения ()

//Здесь следует написать алгоритм проведения документа

Конец Процедуры

Пока нам не приходилось создавать алгоритм «с нуля», но мы уже познакомились с алгоритмом формирования проводок, созданным Конструктором, и теперь воспользуемся полученными знаниями. Ускорить написание текста можно, используя шаблоны Синтаксис-Помощника.

Итак, поскольку документ ПоступлениеТоваров содержит табличную часть, мы должны выбрать строки документа и организовать цикл обработки этих строк. В шаблонах Синтакс-Помощника в ветви «Фрагменты» хранится фрагмент «Обход строк документа», который мы вставим в текст процедуры вместо комментария:

Процедура ОбработкаПроведения ( )

ВыбратьСтроки();

Пока ПолучитьСтроку() = 1 Цикл

Конец Цикла;

Конец Процедуры

В цикле мы должны записать алгоритм обработки строки документа. Во-первых, мы олжны создать новую проводку:

Процедура ОбработкаПроведения()

ВыбратьСтроки();

Пока ПолучитьСтроку() =1 Цикл

Операция. НоваяПроводка();

КонецЦикла;

КонецПроцедуры

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

Д 41.1-К 60.1:

Процедура ОбработкаПроведения()

ВыбратьСтроки();

Пока ПолучитьСтроку() =1 Цикл

Операция. НоваяПроводка();

Операция ДебетСчет=СчетПоКоду("41.1");

Операция. Кредит. Счет=СчетПоКоду("60.1");

Конец Цикла;

Конец Процедуры

В проводке также должны быть указаны субконто дебета и кредита. Счет 41.1 содержит единственное субконто «Номенклатура», кото­рому в документе соответствует реквизит "Товар". Заполнить субконто дебета можно двумя способами:

Операция. Дебет. Номенклатура =Товар;

или

Операция. Дебет. Субконто (1,Товар);

Первый способ нам уже знаком, в нем обращение к субконто дебета проводки выполняется по наименованию (идентификатору вида) суб­конто.

Второй способ использует метод «Субконто» дебета проводки. При­веденная запись означает заполнение первого субконто дебета значением реквизита «Товар». Обе эти записи, в данном случае, равно­значны. Однако, заполнение субконто с помощью метода «Субконто» можно использовать и в том случае, когда наименование субконто за­ранее неизвестно.

Субконто кредита — это субконто счета 60.1 «Контрагенты». Суб­конто «Контрагенты» счета 60.1 соответствует реквизит документа «Поставщик». Заполнение субконто кредита можно также записать двумя способами:

Операция. Кредит. Контрагенты=Поставщик;

Или

Операция. Кредит. Субконто. (1, Поставщик);

Будем использовать новый для нас способ заполнения субконто:

Процедура ОбработкаПроведения()

ВыбратьСтроки();

Пока ПолучитьСтроку() =1 Цикл

Операция. НоваяПроводка();

Операция. Дебет. Счет=СчетПоКоду("41.1");

Операция. ДебетСубконто(1,Товар);

Операция. Кредит. Счет = СчетПоКоду("60.1");

Операция. Кредит. Субконто(1, Поставщик);

КонецЦикла;

КонецПроцедуры

Далее заполним сумму и количество проводки. Поскольку на счете 41.1 должна быть отражена сумма без НДС, вычтем сумму НДС из общей суммы товара. Параметру "Количество" проводки соответствует реквизит "Количество" документа.

Процедура ОбработкаПроведения()

ВыбратьСтроки();

Пока ПолучитьСтроку() =1 Цикл

Операция. НоваяПроводка();

Операция. Дебет. Счет=СчетПоКоду("41.1");

Операция. Дебет. Субконто(1,Товар);

Операция. Кредит. Счет = СчетПоКоду("60.1");

Операция. Кредит. Субконто(1,Поставщик);

Операция. Количество=Количество;

Операция. Сумма=Сумма-НДС;

Конец Цикла;

Конец Процедуры

Все необходимые реквищзиты проводки заполлнены. Но, кроме того, в проводке также принято указывать дополнительные реквизиты – комментарий (содержание проводки) и номер журнала.

Содержанием проводки будет строка "Поступление товара", а в качестве номера журнала запишем "ТЦ" (товарные ценности):

Процедура ОбработкаПроведения()

ВыбратьСтроки();

Пока ПолучитьСтроку()=1 Цикл

Операция. НоваяПроводка();

Операция. Дебет. Счет=СчетПоКоду("41.1");

Операция. Дебет. Субконто(1,Товар);

Операция. Кредит. Счет =СчетПоКоду("60.1");

Операция. Кредит. Субконто(1,Поставщик);

Операция. Количество=Количество;

Операция. Сумма=Сумма-НДС;

Операция. СодержаниеПроводки="Поступление Товара";

Операция. Номер Журнала= "ТЦ"

Конец Цикла;

Конец Процедуры

Алгоритм формирования проводок по строкам документа мы написали. Теперь мы должны сформировать проводку по выделению НДС.

Объявим новую проводку и зададим в ней корреспонденцию счетов:

Процедура ОбработкаПроведения()

ВыбратьСтроки();

Пока ПолучитьСтроку()=1 Цикл

Операция. НоваяПроводка();

Операция. Дебет. Счет=СчетПоКоду("41.1");

Операция. Дебет. Субконто(1,Товар);

Операция. Кредит. Счет = Счет По Коду ("60.1");

Операция. Кредит. Субконто (1, Поставщик);

Операция. Количество=Количество;

Операция. Сумма=Сумма-НДС;

Операция. Содержание Проводки="Поступление Товара";

Операция. Номер Журнала= "ТЦ"

КонецЦикла;

Операция. НоваяПроводка();

Операция. Дебет. Счет=СчетПоКоду("19.6");

Операция. Кредит. Счет=СчетПоКоду("60.1");

КонецПроцедуры.

Далее заполним субконто дебета и кредита. Счет дебета проводки субконто не имеет, следовательно, дебет проводки заполнять не нужно, а строку заполнения кредита проводкит для счета 60.1 мы записывали ранее:

Процедура ОбработкаПроведения()

ВыбратьСтроки();

Пока ПолучитьСтроку()=1 Цикл

Операция. НоваяПроводка();

Операция. Дебет. Счет=СчетПоКоду("41.1");

Операция. Дебет. Субконто(1,Товар);

Операция. Кредит. Счет=СчетПоКоду("60.1");

Операция. Кредит. Субконто(1,Поставщик);

Операция. Количество=Количество;

Операция. Сумма=Сумма-НДС;

Операция. Содержание Проводки="Поступление Товара";

Операция. НомерЖурнала= "ТЦ"

КонецЦикла;

Операция. НоваяПроводка();

Операция. Дебет. Счет=СчетПоКоду("19.6");

Операция. Кредит. Счет =СчетПоКоду("60.1");

Операция. Кредит. Субконто(1, Поставщик);

КонецПроцедуры.

Для записи суммы проводки нам надо получить итоговую сумма по строкам таблицы для реквизита "НДС":

Операция. Сумма=Итог ("НДС");

Кроме того, запишем содержание проводки и номер журнала:

Процедура ОбработкаПроведения()

ВыбратьСтроки();

Пока ПолучитьСтроку() =1 Цикл

Операция. НоваяПроводка();

Операция. Дебет. Счет=СчетПоКоду("41.1");

Операция. Дебет. Субконто(1,Товар);

Операция. Кредит. Счет=СчетПоКоду("60.1");

Операция. Кредит. Субконто(1,Поставщик);

Операция. Количество=Количество;

Операция. Сумма=Сумма-НДС;

Операция. СодержаниеПроводки="Поступление Товара";

Операция. НомерЖурнала= "ТЦ"

КонецЦикла;

Операция. НоваяПроводка();

Операция. Дебет. Счет=СчетПоКоду("19.6");

Операция. Кредит. Счет=СчетПоКоду("60.1");

Операция. Кредит. Субконто(1,Поставщик);

Операция. Сумма=Сумма-НДС;

Операция. СодержаниеПроводки="Выделен НДС";

Операция. НомерЖурнала="ТЦ";

Конец Процедуры.

Собственно формирование проводок операции завершено. Нам осталось заполнить оставшиеся параметры операции и записать операцию. Сформируем сумму операции как общую сумму поступивших товаров с учетом суммы НДС:

Операция. СуммаОперации=Итого("Сумма")+Итог ("НДС");

Операция. Кредит. Субконто(1,Поставщик);

Операция. Сумма=Сумма-НДС;

Заполним содержание операции:

Операция. Содержание="Поступление товаров";

И, наконец, запишем сформированную операцию:

Операция. Записать():

Окончательный текст модуля документа вы видете ниже:

Процедура ОбработкаПроведения()

ВыбратьСтроки();

Пока ПолучитьСтроку()=1 Цикл

Операция. НоваяПроводка();

Операция. Дебет. Счет=СчетПоКоду ("41.1");

Операция. Дебет. Субконто(1,Товар);

Операция. Кредит. Счет=СчетПоКоду("60.1");

Операция. Кредит. Субконто(1,Поставщик);

Операция. Количество=Количество;

Операция. Сумма=Сумма-НДС;

Операция. СодержаниеПроводки="Поступление Товара";

Операция. НомерЖурнала= "ТЦ"

КонецЦикла;

Операция. НоваяПроводка();

Операция. Дебет. Счет=Счет По Коду ("19.6");

Операция. Кредит. Счет = Счет По Коду ("60.1");

Операция. Кредит. Субконто (1, Поставщик);

Операция. Сумма=Итог("НДС");

Операция. Содержание Проводки="Выделен НДС";

Операция. Номер. Журнала= "ТЦ";

Операция. СуммаОперации=Итог("Сумма")+Итог ("НДС");

Операция. Содержание="Поступление товаров";

Операция. Записать();

Конец Процедуры.

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

Глава 15. Создание отчета

Завершающим этапом любой учетной деятельности, очевидно, являет­ся получение отчетной информации. «1С:Бухгалтерия 7.7» содержит большое количество разнообразных отчетов, которые позволяют получать всю необходимую информацию в различных разрезах.

Все отчеты делятся на 3 типа:

стандартные;

регламентированные;

•специализированные.

Стандартные отчеты созданы таким образом, что могут использо­ваться практически в любых организациях и для любых разделов уче­та. В основном они выдают остатки и обороты в различных разрезах для любых счетов, видов субконто, валют — в сумме и количестве. От­четы, в названии которых есть слово «карточка», по­зволяют полу­чить бухгалтер­ские проводки, отобранные по указанным ус­ловиям: по оп­ределенному счету или кор­респонденции счетов, по опре­деленному объ­екту (или объектам) аналитического учета.

К стандартным отчетам относятся «Оборотно-сальдовая ведомость», «Шахматка», «Анализ счета», «Карточка сче­та» и другие. Все стандартные отчеты занимают верхнюю часть меню «Отчеты» главного меню.

Регламентированными отчетами называются отчеты, предназначенные для передачи различным контролирующим инстанциям: налоговой инспекции, внебюджетным фондам, орган. статистики. Внешний вид и содержание этих отчетов определяют различными государственными органами. Регламентированные отчеты для России разрабатываются фирмой 1C и ежеквартально обновляют­ся—в соответствии с изменениями в законодательстве.

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

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

До этого момента мы продемонстрировали настройку бухгалтерского учета и формирование бухгалтерских проводок. Теперь настал черед продемонстрировать возможности по созданию отчетов.

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

Глава 16. Как получать итоги по счетам

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

Предположим, что ежедневно требуется подавать руководству справку об основных показателях, характеризующих состояние пред­приятия сервиса. Будем считать такими показателями остатки на расчетных счетах и в кассе; задолженность покупателей; нашу задолженность по­ставщикам (60 счет), перед бюджетом (68 счет) и прочую задолжен­ность — пусть это будет 76 счет. Подобную информацию любой бух­галтер может получить и из оборотно-сальдовой ведомости — ведь это не что иное, как остатки по соответствующим счетам бухгалтерского учета. Но, чтобы представить справку так, чтобы ее мог понять и не­специалист в бухгалтерском учете, нам придется создать собственный отчет.

Система «1С:Предприятие» версии 7.7 содержит Конструктор Бух­галтерского Отчета, позволяющий за минимально короткое время строить сложные отчеты в различных разрезах аналитического учета. В результате работы с этим Конструктором вы можете получить отчет, полностью готовый для использования. Диалог, печатная форма и ал­горитм формирования отчета создаются автоматически.

Однако мы считаем, что полезнее сначала познакомиться с основа­ми построения отчетов: как получать итоговые данные по счетам и объектам аналитического учета, как строить печатные формы и как создавать алгоритмы заполнения этой формы данными бухгалтерского учета, что называется «с нуля». Тогда, если вам потребуется модифи­цировать отчет, сформированный Конструктором, например, подпра­вить печатную форму, диалог или алгоритм формирования отчета, вы легко сможете сделать это.

Запустите Конфигуратор. В Конфигураторе откройте окно «Конфигурация» и перейдите к закладке «Метаданные». Вся работа с отчетами выполняется в дереве метаданных на ветви «Отчеты». Перейдите к этой ветви и установите курсор на слово «Отчеты» — для этого достаточно щелкнуть слово «Отчеты» мышью. Существующий в конфигурации набор отчетов мы можем посмотреть, щелкнув мышью в символ «+» слева от слова «Отчеты».

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

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

Если все обработки будут сосредоточены именно на ветви «Обра­ботки», проще будет закрыть конкретной категории пользователей дос­туп сразу ко всей ветви, чем индивидуально устанавливать права на использование конкретной обработки.

Для создания нового отчета следует выделить в дереве метаданных слово «Отчеты» или любо отчет на этой ветви и выбрать пункт «Новый элемент» из меню «Действия» главного меню Конфигуратора.

Эти действия равносильны выбору пункта «Новый Отчет» их меню «Конструкторы» — откроется диалог Koнструктора Отчетов (в новой конфигурации так установлены параметры Конструктора):

Если отключить флажок «Использовать конструкторы для создания новых объектов», то тогда при создании нового элемента «Отчеты» дерева метаданных на ветви «Отчеты» будет создан новый отчет с условным идентификатором «новый1», и будет вызвана палит­ра свойств этого отчета.

Мы все же воспользуемся Конструктором, но только для задания имени нового отчета, а также для вставки его в меню «Отчеты», чтобы нам было проще работать с новым отчетом в режиме «1С:Предприятие».

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

Новому отчету, так же как и любому другому объекту метаданных, должен быть присвоен идентификатор. Назовем новый отчет «Справка к Руководству». В качестве синонима можно будет написать то же самое, только в естественном виде — «Справка руководству».

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

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

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

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

Диалог отчета обычно используется для ввода каких-либо параметров, влияющих на формирование отчета. Если в «1С:Бухгалтерии» (в режиме запуска «1С:Предприятие») открыть любой стандарной отчет, можно увидеть, что, как правило, диалог отчета требует задавать достаточно большое число параметров. Такое обилие параметров объясняется тем, что стандартные отчеты способны выдавать информацию при любой организации бухгалтерского учета. Специализированные отчеты, в свою очередь, требуют указывать значительно меньше параметров, так как их назначение, форма и состав выдаваемой информации строго определенны и не допускают каких-либо модификаций.

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

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

Итак, сейчас мы работаем с закладкой «Диалог» редактора форм. При создании нового отчета Конфигуратор кое-что делает самостоятельно: в диалог авто­матически вставлены две кнопки. Кнопка «Сформировать» вызывает процедуру Сформировать, кнопка «За­крыть» — вызывает системную процедуру Закрыть, которая закрывает окно отчета.

В принципе, никаких изменений в диалоге можно не делать: того, что есть, уже вполне достаточно для выполнения необходимых дейст­вий. Можно только посоветовать «украсить» сам диалог.

Например, можно указать заголовок окна диалога. Для этого нужно дважды щелкнуть мышью в любой пустое место окна диалога, чтобы вызвать палитру свойств, ввести в поле «Заголовок» название отчета «Справка руководству» и нажать кнопку "ОК", чтобы изменения были внесены в диалог.

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

Перейдите к закладке «Модуль» редактор форм. Как и в диалоге, в модуль отчета Конфигуратор внес некотор изменения: вставлена «заготовка» будущей процедуры формирован отчета. Пока это только ключевые слова Процедура…Конец Процедуры, но в процессе создания отчета мы пишем и сам алгоритм.

Для работы с остатками и оборотами по счетам бухгалтерского та в языке системы 1С:Предприятие служит специальный oбъект «Бухгалтерские Итоги». Для работы с этим объектом создадим введя между строками «Процедура…» и «КонецПроцедуры» следующую строку:

БИ=СоздатьОбъект("БухгалтерскиеИтоги");

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

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

«1С:Бухгалтерия» хранит бухгалтерские итоги (остатки и обороты за любой рассчитанный период. Это нужно для того, чтобы можно было при построении отчетов быстро получить необходимые данные. Только постоянно хранятся не всевозможные итоги, а только основные, то есть те, к которым наиболее часто обращаются. Это остатки обороты по счетам с учетом аналитики, а также обороты между счетами, но без учета аналитики.

Чтобы определить, за какой период итоги в информационной базе рассчитаны, следует запустить программу в режиме «1С:Предприятие» и из меню операции выбрать пункт «Управление бухгалтерскими итогами». Открывшийся диалог позволяет выбрать период расчета итогов и пересчитать итоги:

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

Чтобы рассчитать итоги за следующий квартал, надо нажать кнопку «Установить расчет», а затем кнопку «Полный пересчет итогов». По­сле нажатия на кнопку «Установить расчет» период, указанный в окне выбора периодов справа от кнопки перемещается в верхнюю строку, а в этом окне отображается следующий период (квартал). Кнопкой «Полный пересчет итогов» можно пользоваться независимо от кноп­ки «Установить расчет».

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

Перейдем к закладке «Таблица» и создадим шаблон печатной мы. Мы будем использовать те же приемы, которые применяли при создании печатной формы документа.

Сначала введем заголовок отчета. Щелкнем мышью крайнюю левую ячейку во второй строке сверху и введем текст «Справка».

Финансовое состояние предприятия будем отображать в виде остатков по 50, 51, 60, 62, 68 и 76 счетам. То есть в отчете нам необходимо выводить эти остатки.

Отступим еще одну строку вниз от заголовка отчета и введем строки, описывающие остатки по приведенным выше счетам.

«Остаток на расчетном счете»

«Остаток в кассе»

«Задолженность покупателей»

«Задолженность перед поставщиками»

«Задолженность перед бюджетом»

«Прочая задолженность»

Теперь нам необходимо записать в шаблоне печатной формы выра­жения для выдачи остатков по счетам. Как вы помните, в модуле отчета, в процедуре Сформировать() мы ввели строку, которая создает объект типа «Бухгалтерские Итоги» и присваивает его некоторой переменной БИ (имя переменной в дан­ном случае не имеет никакого значения, мы могли присвоить перемен­ной любое другое имя). Как и любой другой объект встроенного язы­ка, объект «БухгалтерскиеИтоги» имеет набор методов, которые позволяют обращаться к остаткам и оборотам по счетам. Имена эт методов необходимо записывать через точку после имени переменной, содержащей ссылку на объект «Бухгалтерские Итоги», в нашем случае — БИ. Используя имена методов объекта «Бухгалтерские Итоги» мы получим все необходимые нам остатки на счетах.

Щелкните мышью ячейку в колонке 2 в строке с текстом «Остаток на расчетном счете». Вызовите палитру свойств, нажав правую кнопку мыши и выбрав пункт «Свойства» из появившегося контекстного меню.

Теперь в эту ячейку введите строку БИ. СКД("51"). Это выражение является методом объекта «БухгалтерскиеИтоги», и этот метод возвращает остаток на счете 51.

Имя метода СКД() расшифровывается как «сальдо конечное дебетовое». В качестве параметра методу нужно передать код счета, для которого необходимо получить остаток. Причем, достаточно переда код счета как строку символов, как мы это сделали для счета 51.

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

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

БИ. СКД("50")

БИ. СКД("62")

БИ. СКК("60")

БИ. СКК("68")

БИ. СКК("76")

Собственно, мы закончили создание печатной формы отчета. Одна­ко, давайте внесем еще кое-какие изменения.

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

Щелкните мышью ячейку со словом «Справка». Палитра свойств теперь показывает свойства этой ячейки. Отредактируем текст «Справка», добавив в его конец текст [ТекущаяДата()]» и отделив его пробелом. В результате у нас получился текст «Справка на [ТекущаяДата()]».

Чтобы дата документа выдавалась прописью, дополним ее форматной строкой «#Д ДДММММГГГГ». Эта строка означает, что 6yдет выведена дата в виде: число, месяц прописью и год — четырьмя цифрами. Эту строку следует записать в квадратных скобках после выражения «ТекущаяДата()», так как в данном случае форматная строка относится только к выражению «ТекущаяДата()», а не ко всему тексту в целом. Также для этой ячейки следует выбрать тип «Шаблон». Для того чтобы изменения, сделанные в палитре свойств, были изображены в ячейке, следует нажать кнопку «Обновить» в палитре свойств.

Теперь давайте зададим свойства шрифта для различных ячеек таб­лицы. Сейчас палитра свойств отображает свойства заголовка отчета. Перейдите к закладке «Шрифт», установите размер шрифта 12 и включите атрибут «Жирн.». Вместо того, чтобы нажимать кнопку «Обновить», просто щелкните мышью ячейку с текстом «Остаток на расчетном счете». Внешний вид текста заголовка должен измениться.

Для остального текста отчета также увеличим размер шрифта. Мы можем изменять размер шрифта последовательно для каждой ячейки, однако, гораздо быстрее будет сделать это сразу для диапазона ячеек.

Для выделения диапазона ячеек поместите указатель мыши ячейкой с текстом «Остаток на расчетном счете», нажмите левую кнопку мыши и, не отпуская ее, перетащите указатель мыши к ячейке с текстом «БИ. СКК("76")», потом отпустите кнопку мыши. Сейчас у нас выделены все ячейки, содержащие текст (разумеется, за искл» нием заголовка). Палитра свойств, в свою очередь, теперь отражает «объединенные» свойства всех выделенных ячеек.

В закладке «Шрифт» палитры свойств установите размер шрифта 10 и нажмите кнопку «Обновить». Теперь шрифт изменился сразу во всех выделенных ячейках.

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

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

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

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

Поэтому для ячеек типа «Выражение», «Шаблон» или «Фиксированный шаблон» мы рекомендуем пользоваться значениями «Контроль» палитры свойств, чтобы избежать возможных ошибок ситуаций.

Для выражений, результатом которых будет строка символов, удобно ставить значение «Переносить». В этом случае не помещающийся по ширине текст будет переноситься на следующие строки ячейки, то есть ширина ячейки останется прежней, а ее высота будет увеличена таким образом, чтобы в ней был виден весь текст.

Для числовых выражений наилучшим подходом будет использование значения «Забивать» поля «Контроль». При такой установке, содержимое ячейки не видно в ней целиком, то все символы вида части текста будут заменяться на символ «#». На содержимом ячейки это, естественно, никак ни скажется — результат в ячейке останется прежним. Поэтому, заметив в ячейке готового документа такую «конструкцию» «######», можно будет сразу отредактировать либо готовый документ, либо исправить шаблон печатной формы.

Кроме того, в «1C:Предприятии 7.7» есть возможность выводить в таблицах отрицательные числа красным цветом. В случае, когда получение в отчете отрицательного числа сигнализирует об ошибке, пользование такой возможности повышает удобство работы с отчетом.

Поэтому давайте установим для всех выражений в нашем отчете, выдающих остатки по счетам, значение «Забивать+Красный» в поле «Контроль».

Выделите все ячейки с этими выражениями, для этого щелкните мышью ячейку с текстом «БИ. СКД("51")» и, не отпуская левую кноп­ку мыши, перетащите указатель мыши к ячейке с текстом «БИ. СКК("76")», после чего отпустите кнопку мыши. Теперь в поле «Контроль» палитры свойств выберите значение «Забивать+Красный».

Но пока не нажимайте кнопку «Обновить». Если вы помните, ранее мы рекомендовали использовать для чисел выравнивание по правой границе ячейки. Сейчас как раз удобно это сделать. Перейдите к за­кладке «Положение» и щелкните мышью слово «Право» в группе «По горизонтали». Теперь можно нажать кнопку «Обновить», чтобы изменения в па­литре свойств были отражены в табличном документе.

И, в завершение редактирования, давайте выровняем заголовок от­чета по центру. Сначала в строке с заголовком отчета выделите крайнюю левую ячейку (ту, в которой находится текст заголовка) и соседнюю с ней, и выберите пункт «Объединить» в меню «Таблица» главного меню Конфигуратора. Теперь в закладке "Положение" палитры свойств щелкните слово "Центр" в группе "По горизонтали".

Можно нажать кнопку "ОК"- шаблон печатной формы нашего отчета готов.

Теперь нам опять надо обратиться к закладке «Модуль», чтобы закончить создание отчета. Фактически, нам осталось дописать в модуль отчета команды, которые непосредственно будут формировать печатную форму. Как мы уже знаем, для работы с табличным документом во встроенном языке существует объект «Таблица».

Воспользуемся Синтакс-Помощником для вставки в модуль нуж­ных команд. В окне Синтакс-Помощника нам необходимо открыть ветвь «Шаблоны», а в ней — ветвь «Прочие». На этой ветви располо­жен шаблон «Таблица», который нам и понадобится.

Поместите курсор в начало строки «КонецПроцедуры». Теперь щелкните правой кнопкой мыши название шаблона «Таблица» и вы­берите пункт «Выбрать» из появившегося контекстного меню. После его вставки текст модуля будет выглядеть так.

Процедура Сформировать()

БИ=СоздатьОбъект("Бухгалтерские Итоги");

Таб=СоздатьОбъект("Таблица");

Таб. ИсходнаяТаблица("");

Таб. ВывестиСекцию("Отчет");

Таб. ТолькоПросмотр (1);

Таб. Опции(0,0,0,0);

Таб. Показать("");

КонецПроцедуры

Однако, этот алгоритм нам придется отредактировать. Давайте проанализируем команды. Строка

Таб=Создать Объект("Таблица");

создает в модуле объект языка типа «Таблица» и присваивает его переменной Таб, чтобы впоследствии к этому объекту можно было обращаться.

Таб. Исходная Таблица ("");

В этой строке вызывается метод ИсходнаяТаблица(), которая назначает исходный табличный документ. Так как у нас всего один табличный документ, оставим без изменений эту строку.

Таб. ВывестиСекцию ("Отчет");

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

Мы можем поступить так: все строки табличного документа включить в секцию с именем «Отчет». Однако не торопитесь этого делать — среди методов объекта типа «Таблица» существует метод вывода таблицы целиком, а не ее секции. Этот метод так и называется — Вывести(). Поэтому давайте заменим приведенную выше строку вызовом метода Вывести().

У вас должна получиться следующая строка.

Таб. Вывести();

Оставшиеся строки

Таб. ТолькоПросмотр(1);

Таб. Опции (0,0,0,0);

Таб. Показать ("");

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

В качестве параметра метода Показать() можно указать заголовок, который будет у окна с готовым табличным документом, в да случае — с нашим отчетом. Если ничего не указывать или, как у нас, указать пустую строку, то в заголовке окна будет выведено «Таблица». Однако, это название не слишком информативно, и, если в программе открыто много табличных документов, и у всех в заголовке окна написано «Таблица», найти нужный отчет среди множе других будет затруднительно — даже воспользовавшись меню «Oкна». Поэтому хорошим стилем написания отчетов будет, если мы кaждому табличному документу будем присваивать свой уникальный заголовок. Давайте присвоим такой заголовок и нашему отчету, для этого мы двойными кавычками в скобках введем слово «Справка». Конечно, можно было назвать отчет как-нибудь развернуто, но это мы оставляем на ваше усмотрение.

Итак, в результате всех изменений у нас должен получиться такой алгоритм:

Процедура Сформировать()

БИ=СоздатьОбъект("Бухгалтерские итоги");

Таб=Создать Объект("Таблица");

Таб. ИсходнаяТаблица ("");

Таб. Вывести();

Таб. ТолькоПросмотр (1);

Таб. Опции (0,0,0,0);

Таб. Показать("Справка");

КонецПроцедуры

Запустите «1С:Предприятие», выбрав «1С:Предприятие» из меню «Сервис» главв меню Конфигуратора. Ответьте «Да» на запрос о сохранении изменений. Так как мы (с помощью Конструктора) включили вызов создания отчета в пользовательский интерфейс, то чтобы открыть его, необходимо из меню«0тчеты» главного меню программы выбрать «Справка руководству». Для построения отчета нажмите кнопку «Сформировать».

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

Глава 17. Получение итогов по аналитике

Предположим, нам необходимо соз­дать отчет, который бы выдавал нашу задолженность поставщикам на текущую дату. Любому бухгалтеру известно, что это кредитовый остаток 60 счета по конкретной организации.

Для получения этой информации бухгалтер может построить отчет «Оборотно-сальдовая ведомость по счету», разворачивая итоги по 60 счету по контрагентам, без учета основания возникновения этой за­долженности. Чтобы построить такой отчет, запустите «1С:Бухгалтерию 7.7» (или перейдите в нее, если программа уже запущена), в меню «От­четы» выберите пункт «Оборотно-сальдовая ведомость по счету». В отчете, построенном с такими параметрами, мы сразу увидим, ка­ким организациям мы должны, и сколько.

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

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

Запустите Конфигуратор и создайте новый отчет. В Конфигураторе откройте окно «Конфигура­ция» и перейдите к закладке «Метаданные». Если у вас Конфигуратор уже был запущен, для удобства работы закройте все окна, кроме окна «Конфигурация».

Нам опять предстоит создать новый отчет, поэтому перейдите к ветви «Отчеты» дерева метаданных и выберите пункт «Новый эле­мент» из меню «Действия» главного меню Конфигуратора.

В диалогах Конструктора Отчетов укажите идентификатор «За-долженностьПоставщикам», а в качестве синонима введите строку «Задолженность поставщикам». Как и ранее, воспользуемся Конструк­тором, чтобы вставить вызов нового отчета в меню.

Если же вы отключили использование Конструктора, то при созда­нии нового элемента вам надо будет записать идентификатор и сино­ним в палитру свойств нового отчета и нажать кнопку «ОК», чтобы закрыть палитру свойств и отразить сделанные нами изменения в де­реве метаданных.

В результате выполнения описанных выше действий в дереве метаданных появится новый отчет. Если для создания нового отчета вы вос­пользовались Конструктором, то форма уже открыта. Если вы не пользовались Конструктором, то, чтобы открыть форму отчета, дважды щелкните мышью идентификатор отчета в дереве ме­таданных. В диалог отчета Конфигуратор автоматически добавил 2 кнопки:

«Сформировать» и «Закрыть».

Изменим заголовок окна диа­лога. Для этого дважды щелкните мышью в пустое пространство диа­лога, в появившейся палитре свойств в закладке «Общие» введите в поле «Заголовок» текст «Задолженность поставщикам» и нажмите кнопку «ОК».

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

Итак, выполните следующее:

•в меню «Вставить» выберите пункт «Текст»;

•обведите мышью желаемую область размещения текста — обычно такие надписи размещают в верхней части диалога, под заголовком окна;

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

В палитре свойств:

•в закладке «Общие» введите в поле «Заголовок» текст «Задолженность поставщикам»;

•в закладке «Дополнительные» в списке «Положение» выберите «Центр по горизонтали» и щелкните мышью флажок «Центр по вертикали»;

•в закладке «Шрифт» щелкните мышью флажок «Шрифт по умолчанию», чтобы отключить его, затем выберите размер шрифта 10 и атрибут «Жирн.»;

•нажмите кнопку «ОК», чтобы внести изменения в диалог.

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

Любая таблица состоит из трех частей: шапки, табличной части и «подвала». Каждой из этих частей соответствует своя секция в шабло­не печатной формы.

Сначала создадим секцию шапки отчета. Щелкнем мышью край­нюю левую ячейку во второй строке сверху и введем текст «Задол­женность поставщикам». Так как мы условились, что бухгалтерский учет у нас ведется «день в день», можно в заголовке выдавать и дату составления справки. Для этого допишем в конец введенного текста строку «на [ТекущаяДата() #Д ДДММММГГГГ]».

Сразу отредактируем свойства заголовка отчета. Щелчком кнопки мыши по ячейке вызовите контекстное меню и выберите «Свойства». В открывшейся палитре свойств:

•в закладке «Общие» выберите тип ячейки «Шаблон»,

•в закладке «Положение» выберите пункт «Центр» в группе «По горизонтали»,

•в закладке «Шрифт» выберите размер шрифта 12 и включите атрибут шрифта «Жирн.»

•нажмите кнопку «ОК», чтобы внести изменения в таблицу.

Теперь нарисуем таблицу для выдачи результатов. Сначала создадим заголовки граф таблицы.

Отступите 1 строку вниз от заголовка и в крайней левой ячейке этой строки введите текст «Поставщик», а в ячейке справа — текст «Сумма задолженности».

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

Теперь в палитре свойств:

• в закладке «Положение» выберите пункт «Центр» в группе «По горизонтали»;

• в закладке «Шрифт» выберите размер шрифта 10 и включите атрибут «Жирн.»;

• в закладке «Рамка» в группе «Стиль» выберите тонкую сплошную линию, а в группе «Рамка» щелкните мышью пункт «Обвести»;

•нажмите кнопку «Обновить».

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

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

Сначала создадим ячейку для вывода наименования организации. Отступите 2 сроки вниз от ячейки с текстом «Поставщик» и щели ните мышью по крайней левой ячейке. В палитре свойств перейдите к закладке «Текст» и введите текст «Наименование». Укажите тип этой ячейки «Выражение».

Текст «Наименование» в данном случае — имя переменной, которой в модуле мы будем присваивать название организации-поставщика. Для редактируемой ячейки также выберите шрифт 10 и обведите рамкой, как мы это делали для заголовков граф.

Теперь создадим ячейку для вывода суммы задолженности. Щелкнем мышью ячейку справа и введем в поле закладки «Tекст» строку «Сумма Задолженности». Для этой ячейки также выберем «Выражение».

В данном случае СуммаЗадолженности — имя переменной, в которую мы при формировании отчета будем записывать кредитов остаток по объекту аналитики. Когда мы разрабатывали печатную форму документа «Списание Материалов», мы советовали выравнивать числа по правой границе ячейки. Поэтому давайте для редактируемой ячейки в закладке «Положение» палитры свойств выберем пункт «Право» в группе «По горизонтали».

Для восприятия удобнее, когда одинаковые разряды чисел в колонке таблицы располагаются друг под другом: копейки — под копейками десятки копеек — под десятками копеек, рубли — под рублями, и так далее, при этом десятичные точки всех сумм также располагаются одна под другой. Это надо учитывать при выводе денежных сумм в ко­лонку таблицы.

Если специально не указывать при создании шаблона документа, то в табличном документе «1С:Предприятия» числа будут выводиться только со значащими разрядами. Например, сумма 123 рубля 45 копе­ек будет выдана как 123.45, а 123 рубля 40 копеек — как 123.4. соот­ветственно, сумма без копеек будет выдана в виде только «рублевой» части.

Если вы обратили внимание, то именно так выдаются числа в на­шем предыдущем отчете «Справка руководству».

При выводе чисел также существует возможность указать формат­ную строку. Давайте для ячейки с текстом «СуммаЗадолженности» укажем форматную строку. Для этого в конец текста после пробела запишем «#Ч15.2». Эта форматная строка означает, что информация, выдаваемая в ячейке, всегда будет выводиться в виде числа общей длиной 15 разрядов, из этих разрядов 2 отводится для вывода деся­тичной части и еще один разряд — для вывода десятичной точки (то есть, для вывода целой части остается 15-2-1=12 разрядов).

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

Форматная строка также позволяет указать разделитель целой и дробной части. Так как мы будем выводить денежные суммы, давайте укажем в качестве такого разделителя символ «-»: для этого его следу­ет поставить в форматной строке после «2».

Итак, в редактируемой ячейке у вас должна находиться строка «СуммаЗадолженности #415.2-».

Теперь для этой ячейки осталось установить в закладке «Шрифт» размер шрифта 10 и обвести ячейку рамкой: в закладке «Рамка» в группе «Стиль» выбрать тонкую сплошную линию, а в группе «Рам­ка» — пункт «Обвести».

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

Отступите 3 строки вниз от ячейки с выражением «Наименование» и введите в крайнюю левую ячейку текст «Главный бухгалтер». Для этой ячейки также измените вид текста: в закладке «Шрифт» выберите размер шрифта 10.

Теперь можно нажать кнопку «OK» — палитра свойств нам пока не понадобится.

Последнее, что мы можем сделать, с точки зрения оформления чета, — выровнять заголовок отчета по центру таблицы. Для этого объединим 2 ячейки: одну, в которой находится текст заголовка, и соседнюю с ней.

В строке с заголовком отчета щелкните мышью крайнюю левую ячейку, не отпуская кнопки мыши, перетащите указатель мыши к соседней ячейке справа, и отпустите указатель мыши. Теперь выбери пункт «Объединить» в меню «Таблица» главного меню Конфигуратора.

Для управления выводом отчета нам также по­требуются секции в шаблоне печатной формы. Как мы определили, наш отчет должен состоять из 3-х секций

Для вывода шапки отчета включим в секцию «Шапка» строки в верхней части, которые должны выводиться один раз: это сам заголовок отчета и заголовки граф табличной части отче­та.

Поместите указатель мыши на заголовок с номером строки, в кото­ром расположен заголовок отчета (это строка с номером 2). Теперь нажмите левую кнопку мыши и, не отпуская ее, перетащите указатель мыши к строке с заголовками колонок табличной части отчета (это строка с номером 4). В результате в табличном документе будут выде­лены три строки. Теперь выберите из меню «Таблица» пункт «Включить в секцию».

Появится диалог, в котором нужно указать имя секции. Изменим предложенное имя «Секция_1», на имя «Шапка» и нажмем кнопку "ОК".

В левой части окна мы увидим обозначение выделенной нами сек­ции. Теперь мы аналогичным образом выделим как отдельную секцию одну строку — ту, в которой мы вводили выражения для вывода на­именования поставщика и суммы задолженности. При выделении од­ной строки достаточно щелкнуть мышью в номер этой строки. Этой секции мы присвоим имя «Строка».

В качестве «подвальной» секции мы выделим 2 последние строки: ту, в которой расположен текст «Главный бухгалтер», и находящуюся над ней. Это секции присвоим имя «Подвал». Теперь шаблон печатной формы готов полностью.

Итак, мы создали заготовку отчета. Теперь перей­дем к закладке «Модуль» и начнем создавать ал­горитм. Как и при создании предыдущего отчета, Кон­фигуратор автоматически добавил в модуль «заго­товку» процедуры формирования отчета — строки «Процедура…» и «КонецПроцедуры». Весь осталь­ной алгоритм мы будет создавать между этими строками.

В любом случае, для работы с бухгалтерскими итогами сначала не­обходимо создать объект «Бухгалтерские итоги». Введите между стро­ками «Процедура…» и «КонецПроцедуры» следующую строку:

Процедура Сформировать()

БИ=СоздатьОбъект("Бухгалтерские Итоги");

КонецПроцедуры

Как мы уже решили, в нашем отчете мы будем выдавать кредито­вые остатки 60 счета по аналитике. Мы покажем, как для обращения к таким остаткам использовать объект типа «БухгалтерскиеИтоги» в режиме запроса, чтобы отобрать нужные бухгалтерские итоги.

Создав объект «Бухгалтерские итоги», мы, фактически, указали системе, что будем работать со всеми бухгалтерскими итогами. Но аб­солютно все бухгалтерские итоги нам не нужны, поэтому теперь мы будем последовательно сужать наш выбор. Сначала укажем, что мы будем отбирать итоги только по контрагентам. Для этого используется метод объекта «Бухгалтерские итоги» ИспользоватьСубконто().

Для ввода строк в модуль отчета можно использовать Син-такс-Помощник. Чтобы вызвать его, выберите пункт «Синтакс-Помощник» из меню «Сервис» главного меню Конфигуратора.

Практически все необходимые нам команды сосредоточены на вет­ви «Встроенный язык — Бухгалтерские итоги — Итоги — Период ито­гов — Режим запроса». Перейдите к ветви «Режим запроса», щелкая мышью знаки «+» у перечисленных фраз.

Введите новую строку:

ПроцедураСформировать()

БИ=СоздатьОбъект("Бухгалтерские Итоги");

БИ. ИспользоватьСубконто("Контрагенты");

КонецПроцедуры

Таким образом, мы ограничили извлекаемые бухгалтерские итоги конкретным видом субконто «Контрагенты».

Укажем системе, за какой период мы хотим получить итоги, и по какому счету. Для этого служит метод ВыполнитьЗапрос(). При вызове этого метода в скобках можно указать множество различных параметров, задающих, какие итоги следует извлечь. Мы ограничимся заданием периода и бухгалтерского счета,

После сроки с методом ИспользоватьСубконто() введите строку

Процедура Сформировать()

БИ=СоздатьОбъект("Бухгалтерские Итоги");

БИ. ИспользоватьСубконто("Контрагенты");

БИ. ВыполнитьЗапрос(,Текущая Дата (), "60");

КонецПроцедуры

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

Так как нас интересуют итоги по счету 60, третьим параметром метода мы указали код счета в виде строки символов. Обратите внимание, что сейчас мы не использовали функцию СчетПоКоду(), так метод ВыполнитьЗапрос() допускает такой синтаксис — указа кода счета в виде символьной строки.

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

Сейчас мы можем ввести в алгоритм команды для работы с объектом «Таблица». Эти команды нам уже знакомы. Однако, в отличие от алгоритма построения предыдущего отчета, здесь команды работы с таблицей будут «разбросаны» по всему алгоритму. Поэтому сейчас мы воспользуемся Синтакс-Помощником вставки «заготовки», а затем вручную будем добавлять необходимые команды, по мере того, как в них появится надобность.

Шаблон «Таблица» расположен на ветви «Шаблоны — Прочие» Синтакс-Помощника. Перед тем как вызвать шаблон, нужно поместить текстовый курсор в модуле в то место, куда мы будем вставлять фраг­мент алгоритма. В данном случае следует поставить курсор перед сло­вом Конец Процедуры.

Теперь следует щелкнуть правой кнопкой мыши на имени шаблона «Таблица» в Синтакс-Помощнике и в появившемся контекстном меню указать пункт «Выбрать». После этого текст модуля должен выглядеть так:

Процедура Сформировать()

БИ=СоздатьОбъект("Бухгалтерские Итоги");

БИ. ИспользоватьСубконто("Контрагенты");

БИ. ВыполнитьЗапрос(,ТекущаяДата (), "60");

Таб=СоздатьОбъект("Таблица");

Таб. ИсходнаяТаблица("");

Таб. ВывестиСекцию("Отчет");

Таб. Только Просмотр(1);

Таб. Опции(0,0,0,0);

Таб. Показать("");

КонецПроцедуры

Во вставленные строки придется внести некоторые изменения. Наш отчет состоит из 3-х секций: «Шапка», «Строка» и «Подвал». Эти секции должны выводиться в готовый отчет в таком же порядке, в каком мы их перечислили, а секция «Строка», к тому же, столько раз, скольким поставщикам мы должны. Естественно, что шаблон «Табли­ца» ничего не знает про секции нашего отчета, поэтому записывает только одну команду для вывода секции с условным именем «Отчет».

В свою очередь, нам необходимо использовать метод ВывестиСекцию() для вывода «наших» секций, созданных при разра­ботке шаблона печатной формы диалога.

Первой должна выводиться шапка отчета. Она не содержит ника­ких данных, которые требуют вычислений в алгоритме построения отчета. Поэтому мы вполне можем вывести секцию «Шапка» в любом месте алгоритма (естественно, после команды создания объекта «Таблица» и до вывода секции «Строка»). Давайте в строке с текстом» «Таб. ВывестиСекцию(«Отчет»);» заменим слово «Отчет» на слово «Шапка».

Для вывода строк с суммами задолженностей нам необходимо обратиться к бухгалтерским итогам, которые мы извлекли команда ВыполнитьЗапрос(). Результаты обращения мы и будем выводить отчет, используя секцию «Строка». Очевидно, что вывод строк додж быть после вывода шапки отчета. Лучше всего для этого подойдет пустая строка между выводом секции «Шапка» и установкой режима «Только Просмотр».

Так как количество строк в отчете заранее не известно, поэтому мы будем последовательно выбирать все отобранные субконто и выводить в отчет только те, у которых кредитовое сальдо больше нуля.

Для начала обработки субконто нам нужно внести в модуль метод объекта «БухгалтерскиеИтоги», начинающий обработку отобранв субконто. Он так и называется ВыбратьСубконто. Введем в пустую строку следующий текст:

БИ. ВыбратьСубконто();

Теперь нужно организовать обход всех субконто. Для этого используется команда встроенного языка Пока…Цикл. После строки с текстом «БИ. Вы6ратьСубконто();» введите в модуль новые строки.

Процедура Сформировать()

БИ=СоздатьОбъект("Бухгалтерские Итоги");

БИ. ИспользоватьСубконто("Контрагенты");

БИ. ВыполнитьЗапрос(,ТекущаяДата(),"60");

Таб=СоздатьОбъект("Таблица");

Таб. ИсходнаяТаблица("");

Таб. ВывестиСекцию("Шапка");

БИ. ВыбратьСубконто();

Пока БИ. ПолучитьСубконто() =1 Цикл

СуммаЗадолженности=БИ. СКК();

Если СуммаЗадолженности> 0 Тогда

Наименование=БИ. Субконто();

Таб. ВывестиСекцию("Строка");

КонецЕсли;

КонецЦикла;

КонецПроцедуры

Таб. Только Просмотр (1);

Таб. Опции (0,0,0,0);

Таб. Показать ("");

КонецПроцедуры

Теперь дадим пояснения к введенным строкам.

Пока БИ. ПолучитьСубконто()=1 Цикл

Для последовательного выбора субконто нужно написать условие ПолучитьСубконто()=1. Это вызов специального метода ПолучитьСубконто(), который выбирает очередное субконто и воз­вращает 1, если следующее субконто есть, и 0, если больше субконто нет. Условие «=1» проверяет, что метод ПолучитьСубконто() вер­нул 1.

СуммаЗадалженности =БИ. СКК();

В этой строке сальдо конечное кредитовое присваивается перемен­ной СуммаЗадолженности. Поскольку метод СКК() используется в режиме запроса, параметры в скобках мы не указываем. Какое именно кредитовое сальдо извлекается, определено теми условиями, которые были наложены на бухгалтерские итоги: по счету 60, на текущую дату, по субконто вида «Контрагенты».

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

Если СуммаЗадолжености > 0Тогда

Наименование=БИ. Субконто ( );

Таб. Вывести Секцию ("Строка");

КонецЕсли;

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

Наименование=БИ. Субконто();

Эта строка алгоритма формирует в отчете наименование поставщика, то есть запоминает в переменной Наименование текущее субконто, выбранное методом ПолучитьСубконто().

Здесь необходимо напомнить, что мы работаем с видом субконто «Контрагенты». Этот вид субконто, в свою очередь, имеет тип «Справочник-Контрагенты». То есть, кредитовый остаток по счету 60 по данному субконто «привязан» к какому-либо конкретному элементу справочника «Контрагенты».

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

Далее выполняется вывод секции отчета, содержащей строку с информацией о задолженности, если эта задолженность больше 0.

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

Результатом всех наших действий должен быть следующий алго­ритм:

Процедура Сформировать()

БИ=СоздатьОбъект("Бухгалтерские Итоги");

БИ. ИспользоватьСубконто("Контрагенты");

БИ. ВыполнитьЗапрос(,ТекущаяДата(),"60");

Таб=СоздатьОбъект("Таблица");

Таб. ИсходнаяТаблица("");

Таб. ВывестиСекцию("Шапка");

БИ. ВыбратьСубконто();

Пока БИ. ПолучитьСубконто() =1 Цикл

СуммаЗадолженности=БИ. СКК();

Если СуммаЗадолженности> 0 Тогда

Наименование=БИ. Субконто();

Таб. ВывестиСекцию("Строка");

КонецЕсли;

КонецЦикла;

Таб. ВывестиСекцию("Подвал");

КонецПроцедуры

Таб. Только Просмотр (1);

Таб. Опции (0,0,0,0);

Таб. Показать ("Печать справки о задолженностях поставщикам");

КонецПроцедуры

Теперь можно проверить работу отчета. Запустите «1С:Предприятие», выберите из меню «Отчеты» пункт «Задолженность поставщикам», и в выданном на экран диалоге отчета нажмите кнопку «Сформировать» для построения отчета.

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

В завершение, мы хотим продемонстрировать некоторые приемы, которые позволят сделать ваши отчеты выразительнее и добавить им функциональности. Поэтому закройте «1С:Предприятие» и опять перей­дите в Конфигуратор.

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

Нам опять придется отредактировать все 3 составные части отчета: диалог, шаблон печатной формы и модуль. Перейдите к закладке «Диалог» формы отчета. Чтобы можно было задавать размер задол­женности, в диалоге отчета создадим реквизит для ввода размера задолженности.

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

Итак, для вставки реквизита необходимо выбрать пункт «Реквизит диалога» из меню «Вставить» главного меню Конфигуратора.

Затем следует обвести в диалоге желаемое место размещения этого реквизита. Давайте поместим его под надписью «Задолженность по­ставщикам», ближе к правой границе диалога.

Созданный нами реквизит не обладает никакими свойствами. Нам самим придется задать их, поэтому вызовите палитру свойств двойным щелчком мыши по реквизиту диалога и закрепите ее на экране.

На закладке «Общие», в первую очередь, следует за­дать идентификатор реквизи­та. Введем в качестве идентификатора строку «МаксимальнаяСумма».

Теперь перейдем к закладке «Тип». Так как нам необходимо указывать сумму, очевидно, что в качестве типа реквизита следует выбрать «Число». Для выбора типа необходи­мо щелкнуть мышью в поле «Тип» (в котором пока написано «Стро­ка») и выбрать нужный тип из выпадающего списка. Строка «Число» в этом списке расположено над строкой «Строка», поэтому надо воспользоваться вертикальной линейкой прокрутки, чтобы нужный тип появился на экране.

Длина и точность реквизита определяются, в основном, размерно­стью тех сумм, которые мы планируем здесь указывать. Например, можно определить эти свойства, исходя из того, что мы уже делали в отчете. Если помните, в ячейке для вывода сумм в печатной форме мы использовали форматную строку «#Ч15.2-». Очевидно, что и для рек­визита можно использовать такую же размерность, поэтому укажем в поле «Длина» значение 15, а в поле «Точность» — значение 2.

Можно также включить свойства «Разделять триады» и «Неотрицательный». Это сервисные свойства, и служат только для удобства работы. Если установлено свойства «Неотрицательный», в рек­визит нельзя будет ввести отрицательное число, а свойства «Разделять триады» автоматически вставляет разделители между тройками цифр целой части.

На этом можно закон­чить редактирование свойств. Но на закладке «Дополнительно» есть еще одно свойство, которое можно задействовать. По­этому перейдите к закладке «Дополнительно» и вклю­чите флажок «Имеет кнопку выбора».

Это свойство доступно только для реквизитов типа «Число» и «Да­та». Если флажок «Имеет кнопку выбора» включен, в правой части реквизита появится кнопка, нажав на которую можно будет вызвать калькулятор (или календарь), например, для выполне­ния каких-либо вычислений в процессе ввода.

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

Давайте также разместим в диалоге подпись к созданному реквизи­ту. Кроме надписей в самом диалоге, можно также воспользоваться средствами создания пользовательских подсказок, которые предоставляет Конфигура­тор.

Например, на закладке «Описание» палитры свойств реквизита диалога есть поле «Подсказка», в котором можно ввести краткое описание диалога. Это описание будет появляться всякий раз, когда пользователь поместит указатель мыши над этим реквизитом и подержит его 1…2 секунды.

На этой же закладке есть большое поле для ввода текста, в которое можно ввести подробное описание реквизита. Это описание также можно получить только при использовании отчета в режиме запуска «1С:Предприятие». Для этого нужно нажать кнопку в панели инстру­ментов окна отчета, и указать реквизит диалога, по которому нужно полу­чить описание.

Наконец, можно составить описание к отчету в целом. Для редактиро­вания этого описания необходимо выделить отчет в дереве метаданных и выбрать пункт «Редактировать описание» в меню «Действия» главного меню Конфигуратора. Это описание выдается при нажатии кнопки панели инструментов окна отчета.

Итак, давайте вставим реквизит типа «Текст» в диалог. Выберите в меню «Вставить» главного меню Конфигуратора пункт «Текст» и обведите желаемое место размещения надписи, лучше всего слева от поля ввода «МаксимальнаяСумма».

Теперь отредактируйте свойства этого реквизита. Для этого в па­литре свойств закладке «Общие» в поле «Заголовок» замените слово «Текст» фразой «Выделять, если задолженность больше», в закладке «Дополнительные» установите «Положение — Прижать вправо» и включите флажок «Центр по вертикали».

Теперь можно нажать кнопу «ОК», чтобы внести изменения в диа­лог.

Редактирование печатной формы и алгорит­ма обычно выполняется параллельно. Итак, нам нужно добиться, чтобы строки, в которых задолженность больше суммы, указанной при построении отчета, как-либо выделялись, например, цветом или жирно­стью шрифта.

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

Для вывода в отчет строки другим цветом мы создадим еще одну секцию «Строка» (естественно, с другим именем) в шаблоне печатной формы — с нужным оформлением — и будем выводить ее вместо «обычной» секции «Строка», когда задолженность поставщику больше, чем указанный нами предельный размер. Перейдите к закладке «Таблица».

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

Однако, все-таки лучше располагать секции примерно так, как они будут выводиться: во-первых, чтобы примерно представлять себе внешний вид будущего отчета; во-вторых, просто для удобства редак­тирования. Давайте создадим новую секцию под секцией «Строка».

Создавая шаблон печатной формы, мы не зря разместили в нем секции не вплотную друг к другу, а оставив между ними по пустой строке: теперь мы можем легко добавить новую секцию между сек­циями «Строка» и «Подвал», причем, добавим мы ее так, чтобы между секциями опять оставалось по пустой строке.

Сначала нам необходимо вставить нужное количество пустых строк между секциями. Очевидно, что потребуется 2 дополнительных стро­ки: одна — для секции, и еще одна — разделительная.

Для вставки строк необходимо выделить пустую строку (щелкнув мышью ее заголовок с номером строка) под секцией «Строка» и вы­брать пункт «Раздвинуть» из меню «Действия» главного меню Конфи­гуратора. В результате пустая строка будет вставлена над выделенной нами строкой. Для добавления еще одной строки необходимо еще раз выбрать пункт «Раздвинуть».

Теперь у нас между секциями «Строка» и «Подвал» расположено 3 пустых строки. Среднюю из них мы и используем для новой секции.

Выделите эту строку, щелкнув мышью ее заголовок, и выберите пункт «Включить в секцию». Присвойте новой секции имя, например, «СтрокаЦветная».

Теперь повторите все то, что вы уже делали для секции «Строка», и измените оформление ячеек секции: например, в закладке «Шрифт» включите флажок «Жирн» и измените цвет шрифта, например, на зе­леный. Нажмите кнопку «ОК», чтобы внести изменения в табличный документ.

Теперь отредактируем алгоритм. Нам необходимо для каждого контрагента проверять сумму задолженностии, если она превышает указанную величину, выводить цветную секцию отчета. Для редактирования алгоритма опять перейдем к закладке «Модуль». Замените строку

Таб. ВывестиСекцию.("Строка");

на строки:

Если СуммаЗадолженности > МаксимальнаяСумма Тогда

Таб. ВывестиСекцию.("СтрокаЦветная");

Иначе

Таб. ВывестиСекцию.("Строка");

КонецЕсли;

Смысл этих строк прост: оператор Если проверяет, что сумма за­долженности, записанная в переменную СуммаЗадолженности, боль­ше, чем указанная в реквизите диалога МаксимальнаяСумма, и, если это так, выдает в отчет секцию «СтрокаЦветная». В противном случае (когда сумма задолженности не превышает установленного максиму­ма), в отчет выдается секция «Строка».

Отчет готов, теперь можно посмотреть, как он ра­ботает. Запустите «1С:Предприятие», выбрав пункт «1С:Предприятие» из меню «Сервис» главного меню Конфигуратора, и ответив «Да» на вопрос о сохранении изменений. Вызовите отчет, воспользовавшись меню «Отчеты» главного меню программы. Теперь в диалоге можно задать максимальную сумму, при превы­шении которой строки в отчете будут выделены цветом.

Наташа

Автор

Наташа — контент-маркетолог и блогер, но все это не мешает ей оставаться адекватным человеком. Верит во все цвета радуги и не верит в теорию всемирного заговора. Увлекается «нефрохиромантией» и тайно мечтает воссоздать дома Александрийскую библиотеку.

Распродажа дипломных

 Скидка 30% по промокоду Diplom2020