стр. 1
(всего 2)

СОДЕРЖАНИЕ

>>

Министерство образования Российской Федерации
Новосибирский государственный технический университет










С.Н. Постовалов









Программирование в системе 1С:Предприятие 7.7
(компонента "Бухгалтерский учет")




курс лекций














Новосибирск, 2002

Постовалов С.Н. Программирование в системе 1С:Предприятие 7.7 (компонента "Бухгалтерский учет"): курс лекций. - Новосибирск, 2002. - 63 с.


Курс лекций предназначен для слушателей учебного центра математики и информатики "Бизнес-информатика" при факультете прикладной математики и информатики Новосибирского государственного технического университета.
В основу курса лекций положены техническая документация по программе "1С: Предриятие 7.7" и многолетний опыт автора по настройке данной программы.
Курс рассчитан на профессиональных программистов, желающих освоить технологию администрирования и конфигурирования системы 1С: Бухгалтерия 7.7.
По окончании курса слушатели будут уметь:
* Выполнять администрирование и конфигурирование системы 1С: Предприятие 7.7.
* Работать с основными типами данных системы 1С: Предприятие 7.7 (таблицы и списки значений, справочники, документы, запросы).
* Работать со служебными типами данных и объектами компоненты "Бухгалтерский учет" ("ПланСчетов", "ВидСубконто", "Счет", "Операция", журналы операций и проводок).
* Работать с бухгалтерскими итогами.
* Создавать новые документы, формы, отчеты и обработки в системе 1С-Предприятие 7.7.
* Настраивать конфигурации в системе 1С-Предприятие 7.7.
* Выполнять экспорт и импорт данных в другие приложения.
Слушатели курса, выполнившие итоговую работу, получают сертификаты соответствующего образца.

Соглашения и обозначения, принятые в синтаксических диаграммах
В синтаксических диаграммах используются следующие символы:
[ ]
В квадратных скобках заключаются необязательные синтаксические элементы.
( )
Круглые скобки заключают в себе список параметров.
|
Вертикальной линией разделяются синтаксические элементы, среди которых нужно выбрать только один.





? Постовалов С.Н, 2002
? УЦМИ "Бизнес-Информатика", 2002

Оглавление
1. ВВЕДЕНИЕ В СИСТЕМУ 1С-ПРЕДПРИЯТИЕ 7.7 5
1.1. О ФИРМЕ "1С" 5
1.2. О СИСТЕМЕ 1С: ПРЕДПРИЯТИЕ 7.7 5
1.3. СИСТЕМА ЗАЩИТЫ СИСТЕМЫ 1С: ПРЕДПРИЯТИЯ 6
1.4. ЗАПУСК СИСТЕМЫ 1С: ПРЕДПРИЯТИЕ 6
1.5. КОНФИГУРАЦИЯ 7
1.6. ВВОД ПОЛЬЗОВАТЕЛЕЙ СИСТЕМЫ 8
1.7. СОХРАНЕНИЕ, ВОССТАНОВЛЕНИЕ И ТЕСТИРОВАНИЕ ИНФОРМАЦИОННЫХ БАЗ 8
1.8. ОБНОВЛЕНИЕ И ЗАГРУЗКА ИЗМЕНЕННОЙ КОНФИГУРАЦИИ 8
1.9. КАК ВНОСИТЬ ИЗМЕНЕНИЯ В ТИПОВУЮ КОНФИГУРАЦИЮ? 9
1.9. ПЛАН ЗАНЯТИЯ 10
2. ВВЕДЕНИЕ В БУХГАЛТЕРСКИЙ УЧЕТ 11
2.1. БУХГАЛТЕРСКИЙ УЧЕТ, ЕГО ОБЪЕКТЫ И ОСНОВНЫЕ ЗАДАЧИ 11
2.2. ОСНОВНЫЕ ТРЕБОВАНИЯ К ВЕДЕНИЮ БУХГАЛТЕРСКОГО УЧЕТА 11
2.3. ПРИМЕР 12
2.4. ВВЕДЕНИЕ В ТИПОВУЮ КОНФИГУРАЦИЮ "БУХГАЛТЕРСКИЙ УЧЕТ. РЕДАКЦИЯ 4.2" 13
2.5. ПЛАН ЗАНЯТИЯ 14
3. ИЗУЧЕНИЕ ВСТРОЕННОГО ЯЗЫКА ПРОГРАММИРОВАНИЯ (ОПЕРАТОРЫ, УПРАВЛЯЮЩИЕ СТРУКТУРЫ, ТИПЫ ДАННЫХ) 15
3.1. ПРОГРАММНЫЕ МОДУЛИ 15
3.2. КОНТЕКСТ ВЫПОЛНЕНИЯ ПРОГРАММНОГО МОДУЛЯ 15
3.3. ВИДЫ ПРОГРАММНЫХ МОДУЛЕЙ 15
3.4. ФОРМАТ ОПЕРАТОРОВ 16
3.5. ИМЕНА ПЕРЕМЕННЫХ, ПРОЦЕДУР И ФУНКЦИЙ 16
3.6. СТРУКТУРА ПРОГРАММНОГО МОДУЛЯ 16
3.7. ПРОЦЕДУРЫ И ФУНКЦИИ ПРОГРАММНОГО МОДУЛЯ 17
3.8. ТИПЫ ДАННЫХ 18
3.9. УПРАВЛЯЮЩИЕ ОПЕРАТОРЫ 22
3.9.1. Оператор ветвления 22
3.9.2. Циклы 22
3.9.3. Обработка ошибок 23
3.9.4. Работа с транзакциями 23
3.10. РАБОТА С ОБЪЕКТОМ "СПИСОКЗНАЧЕНИЙ" 23
3.11. РАБОТА С ОБЪЕКТОМ "ТАБЛИЦАЗНАЧЕНИЙ" 24
3.12. ЗАПУСК ВНЕШНИХ ПРИЛОЖЕНИЙ ИЗ 1С. 25
3.13. ПЛАН ЗАНЯТИЯ 25
4. РАБОТА СО СПРАВОЧНИКАМИ, ДОКУМЕНТАМИ И ЖУРНАЛАМИ ДОКУМЕНТОВ 27
4.1. СПРАВОЧНИКИ 27
4.1.1. Подчиненные справочники 27
4.1.2. Группы элементов 28
4.1.3. Обработка элементов справочника 28
4.1.4. Добавление нового элемента справочника 28
4.1.5. Поиск элемента справочника 28
4.1.6. Удаление элементов справочника 29
4.2. ДОКУМЕНТЫ 29
4.2.1. Реквизиты документа 30
4.2.2. Проведение документа 30
4.2.3. Обработка документов 31
4.2.4. Ввод нового документа 31
4.3. ЖУРНАЛЫ ДОКУМЕНТОВ 31
4.4. ПЛАН ЗАНЯТИЯ 31
5. РАБОТА С ЗАПРОСАМИ И СОЗДАНИЕ ОТЧЕТОВ 32
5.1. ТАБЛИЦА 32
5.1.1. Таблица для ввода 32
5.1.2. Таблица для вывода 32
5.2. ЗАПРОСЫ 33
5.2.1. Создание запроса 33
5.2.2. Обработка результатов запроса 34
5.2.3. Использование конструктора запросов 35
5.3. ПЛАН ЗАНЯТИЯ 35
6. РАБОТА СО СЛУЖЕБНЫМИ ТИПАМИ ДАННЫХ И ОБЪЕКТАМИ КОМПОНЕНТЫ "БУХГАЛТЕРСКИЙ УЧЕТ" 36
6.1. РАБОТА С БУХГАЛТЕРСКИМИ СЧЕТАМИ 36
6.2. РАБОТА С ОПЕРАЦИЯМИ И ПРОВОДКАМИ 37
6.3. РАБОТА С КОРРЕКТНЫМИ ПРОВОДКАМИ 38
6.4. ПЛАН ЗАНЯТИЯ 38
7. РАБОТА С БУХГАЛТЕРСКИМИ ИТОГАМИ 39
7.1. РАБОТА С ОСНОВНЫМИ ИТОГАМИ 39
7.2. РАБОТА С ВРЕМЕННЫМИ ИТОГАМИ 40
7.3. РАБОТА В РЕЖИМЕ ЗАПРОСА 40
7.3.1. Выполнение запроса 40
7.3.2. Обращение к результатам запроса 41
7.4. ПЛАН ЗАНЯТИЯ 42
8. РАБОТА С ТАБЛИЦАМИ ДЛЯ ВВОДА ДАННЫХ 43
8.1. СВОЙСТВА ТАБЛИЦЫ В РЕЖИМЕ ВВОДА ДАННЫХ 43
8.2. ВЫГРУЗКА И ЗАГРУЗКА ЗНАЧЕНИЙ ТАБЛИЦЫ С ПОМОЩЬЮ ОБЪЕКТА "СПИСОКЗНАЧЕНИЙ" 43
8.3. РАБОТА С "ПУСТОЙ" ТАБЛИЦЕЙ 44
8.4. ПЛАН ЗАНЯТИЯ 44
9. ОПЕРАЦИИ ЭКСПОРТА-ИМПОРТА ДАННЫХ 45
9.1. ИСПОЛЬЗОВАНИЕ ТЕКСТОВЫХ ФАЙЛОВ ДЛЯ ПЕРЕНОСА ДАННЫХ 45
9.1.1. Чтение текста 45
9.1.2. Запись текста 46
9.2. РАБОТА С ФАЙЛАМИ В ФОРМАТЕ "DBF" 46
9.3. ОБМЕН ДАННЫМИ С ПОМОЩЬЮ OLE AUTOMATION 47
ПРИЛОЖЕНИЕ 1. ТЕОРЕТИЧЕСКИЕ ВОПРОСЫ ПО КОМПОНЕНТЕ "БУХГАЛТЕРСКИЙ УЧЕТ" КОМПЛЕКСА "1С:ПРЕДПРИЯТИЕ" ВЕРСИЙ 7.5 И 7.7 49
ПРИЛОЖЕНИЕ 2. ПРАКТИЧЕСКИЕ НАВЫКИ КОНФИГУРИРОВАНИЯ, КОТОРЫМИ ДОЛЖЕН ВЛАДЕТЬ АТТЕСТУЕМЫЙ ПО КОМПОНЕНТЕ "1С: БУХГАЛТЕРИЯ" ВЕРСИЙ 7.5 И 7.7 52
ПРИЛОЖЕНИЕ 3. ПРИМЕРНАЯ ФОРМУЛИРОВКА ПРАКТИЧЕСКИХ ЗАДАНИЙ ДЛЯ РЕАЛИЗАЦИИ НА ПК 55
ПРИЛОЖЕНИЕ 4. СПИСОК 1С-ФРАНЧАЙЗИ В НОВОСИБИРСКЕ 63

1. ВВЕДЕНИЕ В СИСТЕМУ 1С-ПРЕДПРИЯТИЕ 7.7

1.1. О ФИРМЕ "1С"
Система программ 1С-Предприятие разработана фирмой 1С.
"Фирма "1С" специализируется на дистрибьюции, поддержке и разработке компьютерных программ и баз данных делового и домашнего назначения. Основанная в 1991 г., "1С" - чисто российская фирма со штатом более 200 человек, опирающаяся исключительно на собственные профессиональные успехи. По данным многочисленных опросов "1С" занимает первое место в софтверном секторе российской компьютерной индустрии и отличается рекордной отдачей от одного сотрудника" (www.1c.ru).
Ключевыми в деятельности фирмы 1С являются два момента.
1. Индустриальный подход к разработке, тиражированию, продаже и поддержке программ. Основной продукт фирмы "1С" - Система 1С:Предприятие 7.7 является "конструктором" для создания мощных программ автоматизации предприятия "малыми силами". На базе этой 1С: Предприятия фирмой 1С разработаны типовые решения в области бухгалтерского учета, оперативного (управленческого) учета и расчета заработной платы. Понятно, что каждая отрасль имеет свои особенности и охватить все области фирма 1С не в состоянии, поэтому разработкой отраслевых решений занимаются партнеры ее партнеры.
2. Опора на широкую партнерскую сеть (франчайзинг) обеспечивает качественное и эффективное обслуживание массового потребителя и высокие темпы развития. В настоящее время сеть насчитывает 2200 фирм-франчайзи. Из них около 200 занимаются разработкой собственных конфигураций, ориентированных на отраслевые решения, такие как торговля, транспорт, туризм, услуги и др.
3. Создана система контроля качества оказываемых услуг. Разрабатываемые партнерами продукты проходят проверку и получают статус "1С:Совместимо!". Качество специалистов подтверждается наличием сертификатов, которые выдаются после сдачи аттестационных экзаменов. Экзамены проводятся как в учебных центрах фирмы 1С, так и в крупных городах специальными выездными комиссиями. Информацию о проводимых экзаменах можно узнать на сайте www.1c.ru.

1.2. О СИСТЕМЕ 1С: ПРЕДПРИЯТИЕ 7.7
1С-Предприятие является гибкой настраиваемой системой для решения широкого круга задач в сфере автоматизации деятельности предприятий. На рис. 1.1 приведена схема взаимодействия различных компонент 1С: Предприятия. Жирным шрифтом выделены те объекты, которые будут рассматриваться в настоящем курсе.














Рис. 1.1. Структурная схема 1С: Предприятия
Одной из характерных особенностей программ, является их масштабируемость: одна и та же конфигурация может работать на локальном компьютере, в сети и на сервере под управлением MS SQL Server 7.0.
Специальная компонента "Управление распределенными базами" позволяет производить обмен информации между удаленными рабочими местами.

1.3. СИСТЕМА ЗАЩИТЫ СИСТЕМЫ 1С: ПРЕДПРИЯТИЯ
Программа 1С-Предприятие защищена аппаратным ключом, вставляемым в порт принтера. Перед запуском системы "1С: Предприятие" необходимо установить драйвер защиты.
При использовании сетевой версии на компьютере, к которому присоединен аппаратный ключ, устанавливается сервер защиты. Способ установки сервера зависит от используемой операционной системы и описан в руководстве по инсталляции программы.

1.4. ЗАПУСК СИСТЕМЫ 1С: ПРЕДПРИЯТИЕ
При запуске системы 1С: Предприятие появляется диалоговая форма (рис. 1.2), в которой производится выбор информационной базы и режима работы ("Предприятие", "Конфигуратор", "Отладчик", "Монитор").

Рис. 1.2. Запуск системы 1С: Предприятие
Первый запуск всегда производится в монопольном режиме, т.к. происходит создание индексных файлов.
Чтобы создать новую (пустую) конфигурацию, необходимо выбрать режим "Конфигуратор", нажать кнопку "Добавить" и выбрать (или создать новый) каталог, в котором будет находиться информационная база.

1.5. КОНФИГУРАЦИЯ
Открыть конфигурацию можно через меню "Конфигурация/Открыть конфигурацию". Соответствующий файл конфигурации имеет имя "1cv7.md". Окно конфигурации состоит из трех закладок: "Метаданные", "Интерфейсы" и "Права".
Метаданные - это данные о данных, т.е.
* информация о структуре информационных баз данных: справочников, документов и т.д.;
* формы диалогов и списков;
* таблицы отчетов;
* программные модули, в которых на встроенном языке описываются алгоритмы функционирования системы.
В закладке "интерфейсы" происходит создание и настройка интерфейсов пользователей. Интерфейс состоит из двух частей: меню и инструментальные панели. У интерфейса может быть подчиненный интерфейс, который получается из родительского интерфейса перечислением доступных пунктов меню и кнопок.
В закладке "права" задаются наборы прав доступа к информационным объектам, определенным в закладке "метаданные".

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

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

1.8. Обновление и загрузка измененной конфигурации
Опыт работы с типовыми конфигурациями показывает, что срок жизни типовой редакции составляет от 1-2 лет. При этом за это время фирма 1С успевает выпустить несколько десятков релизов. Чем отличается релиз от редакции? Релиз - небольшая модификация конфигурация, связанная с исправлением имеющихся ошибок, выходом новых форм документов и отчетов, небольшими изменениями в законодательстве. Редакция же выпускается, когда меняется методология программы. Это может быть связано как с существенными изменениями в законодательстве (изменение плана счетов, введение налогового учета), так и потребностью коренных изменений в структуре данных и выполняемых функций. Так, например, самая первая конфигурация - "Торговля и Склад" пережила 9 редакций, конфигурация "Бухгалтерский учет" - 4, "Зарплата и Кадры" - 2. Количество редакций говорит также о негибкости более ранних редакций, что делает невозможным эволюционное развитие программы. Старые редакции фирма 1С не поддерживает, что приводит к их постепенному отмиранию.
Какие же механизмы дает 1С обновления программ?
1. При переходе от релиза к релизу применяется два способа - "Загрузка измененной конфигурации" и "Объединение конфигураций".
* Первый способ "Загрузка измененной конфигурации" применяется, если последующая конфигурация является потомком изменяемой конфигурации. Последнее означает, что за данная конфигурация была скопирована, изменена в другом месте и загружена обратно. Если же после копирования обе конфигурации подверглись изменениям (даже несущественным), то при попытке загрузить другую конфигурацию система выдаст ошибку "Выбранный файл конфигурации не является потомком данного файла. При реструктуризации может произойти разрушение данных". Продолжайте загрузку, только если абсолютно уверены, что изменения, сделанные в текущей конфигурации после копирования являются несуществеными и могут быть потеряны.
* Второй способ "Объединение конфигураций" применяется, если требуется объединить две разные конфигурации (когда-то бывшие одной). При этом можно отдать приоритет либо текущей, либо загружаемой конфигурации и выбрать режим замещения или объединения объектов. В режиме замещения объект приоритетной конфигурации замещает объект с таким же именем другой конфигурации. В режиме объединения система пытается объединить два объекта с одинаковым именем. При объединении конфигураций, можно флажками отметить какие объекты требуется объединить.
Второй способ работает существенно медленней и, вообще говоря, не всегда заканчивается успешно. Есть еще одна возможность переноса объектов внутри одной конфигурации или между двумя разными. Для этого используется буфер обмена, - объект копируется в одном месте, а затем вставляется в другом.
2. При переходе от редакции к редакции применяются специальные конверторы, которые осуществляют перенос данных между двумя информационными базами. В настоящее время эти конверторы применяют для переноса данных промежуточный файл в формате XML.

1.9. Как вносить изменения в типовую конфигурацию?
Первое правило - не торопитесь сразу же менять программный код конфигурации. Как правило, многие проблемы у пользователя возникают из-за незнания всех возможностей типовой конфигурации. Возможно, изменения, которые просит сделать пользователь, противоречат законодательству или решаются другими способами. Выясните также, какой объем трудозатрат пользователя экономит программирование данной задачи и не является ли перепрограммирование типовой конфигурации более сложной задачей (по времени и стоимости).
Если же все-таки пользователь настаивает на внесении изменений, то сформулируйте эти изменения в письменном виде, - тогда будет проще и сделать и сдать работу. Внимательно прочитайте техническое задание и попытайтесь его детализировать: если вам написали проводки документа, уточните аналитику по проводкам, если попросили добавить документ, - уточните реквизиты документа, возможные движения и проводки, печатную форму.
Перед изменениями нужно выполнить резервное копирование (предварительно все пользователи должны выйти из программы), причем в имени архива желательно указать дату и время архивирования.
Изменения нужно производить в отдельном каталоге. При этом вы можете смело тестировать сделанные изменения (без опасности потери реальных данных) и не мешаете работать пользователям системы. Для этого вы создаете специальный каталог (например "Для программирования"), заходите в него в режиме конфигуратора и делаете восстановление данных из сделанной резервной копии.
Все изменения надо тщательно документировать - изменяемый код не удаляется, а комментируется, в комментариях ставится дата изменения, кем сделано изменение, с какой целью. Изменения в структуре данных можно фиксировать в описании конфигурации.
Работоспособность сделанных изменений должна быть проверена пользователем не на рабочей базе данных, а в копии, так как только конечный пользователь может оценить правильность вашего решения. Только после этого производим перенос рабочую базу данных.
Снова заходим в рабочую базу данных и опять делаем резервное копирование с указанием даты и времени (это, кстати, позволит определить время, затраченное на программирование), на случай "не замеченных" ошибок. И только после этого делаем "загрузку измененной конфигурации" из каталога "Для программирования", выполняем сохранение сделанных изменений.

1.9. План занятия
1. Создать новую информационную базу данных в новом каталоге.
2. Загрузить измененную конфигурацию из конфигурации "Бухгалтерский учет. Редакция 4.2".
3. Создать в конфигурации новый интерфейс - "ИнтерфейсКассира". Пользователь с таким интерфейсом может вводить приходные и расходные кассовые документы, авансовые отчеты и просматривать список кассовых документов. Настроить панель инструментов и меню.
4. Создать в конфигурации новый набор прав "ПраваКассира". Пользователь с такими правами может вводить новые кассовые документы, но не может изменять уже проведенные кассовые документы.
5. Завести в конфигураторе двух новых пользователей системы (один кассир, другой - администратор), задать им пароли, роли и интерфейсы.
6. Открыть конфигурацию. Задать имя конфигурации, ввести авторов и пароль на конфигурацию.
7. Сохранить, восстановить и протестировать информационную базу данных.

2. ВВЕДЕНИЕ В БУХГАЛТЕРСКИЙ УЧЕТ

2.1. Бухгалтерский учет, его объекты и основные задачи
1. Бухгалтерский учет представляет собой упорядоченную систему сбора, регистрации и обобщения информации в денежном выражении об имуществе, обязательствах организаций и их движении путем сплошного, непрерывного и документального учета всех хозяйственных операций.
2. Объектами бухгалтерского учета являются имущество организаций, их обязательства и хозяйственные операции, осуществляемые организациями в процессе их деятельности.
3. Основными задачами бухгалтерского учета являются:
* формирование полной и достоверной информации о деятельности организации и ее имущественном положении...;
* обеспечение информацией, необходимой внутренним и внешним пользователям бухгалтерской отчетности для контроля за соблюдением законодательства РФ при осуществлении организацией хозяйственных операций и их целесообразностью, наличием и движением имущества и обязательств, использованием материальных, трудовых и финансовых ресурсов в соответствии с утвержденными нормами, нормативами и сметами;
* предотвращение отрицательных результатов хозяйственной деятельности организации и выявление внутрихозяйственных резервов обеспечения ее финансовой устойчивости.

2.2. Основные требования к ведению бухгалтерского учета
* Ведение бухгалтерского учета только на основании первичных учетных документов, оформляемых при проведении хозяйственных операций. Эти документы должны составляться по унифицированным стандартным формам, утвержденным Госкомстатом РФ (при их отсутствии - разрабатываться самой организацией), и иметь ряд обязательных реквизитов.
* Использование стандартного плана счетов бухгалтерского учета (организация может на его основе сформировать свой рабочий план счетов).
* Проверка и документальное подтверждение данных бухгалтерского учета и отчетности путем проведения обязательной инвентаризации.
* Ведение учета имущества, обязательств и хозяйственных операций организации.
* Соответствие данных аналитического учета оборотам и остаткам по счетам синтетического учета.
Бухгалтерский учет ведется в рублях. Записи по валютным счетам и операциям в иностранной валюте производятся в рублях с пересчетом по курсу ЦБ РФ на дату совершения операции. Одновременно эти записи производятся в валюте расчетов и платежей.


2.3. Пример
Рассмотрим бухгалтерский учет на примере хозяйственных операций в торговой организации (рис. 2.1).













Рис.2.1. Примеры хозяйственных операций

Предположим, мы купили у поставщика 100 дискет по цене 10 рублей на общую сумму 1000 рублей. Затем мы отправили дискеты в магазин и продали покупателям по цене 12 рублей. Покупатели внесли в кассу сумму 1200 рублей. Деньги из кассы мы сдали в банк и рассчитались с поставщиком.
Каждый квадратик на рис 2.1 в бухгалтерии называется счетом и имеет свой код. Код является стандартным и принадлежит плану счетов, который утверждается государственными органами. Так, например, склад имеет код "41.1", касса "50.1" и т.д. Счет состоит из двух чисел - код счета и код субсчета.
Каждая стрелка на рис. 2.1 в бухгалтерии называется проводкой, и обозначает факт перемещения денежных средств со счета на счет. Счет, с которого начинается стрелка, называется кредитом, а счет, в который входит стрелка, называется дебетом проводки.
Одна хозяйственная операция может состоять из одной проводки, например поступление денег в кассу (Д51/К62.1), а может состоять из двух и более проводок, например, продажа - товар списывается со склада по закупочной цене (Д90.2/К41.1), а отпускается покупателю по продажной цене (Д62.1/К90.1).
Если просуммировать все суммы, входящие на счет и отнять все суммы, выходящие со счета, то мы получим остаток по счету, который в бухгалтерии называется сальдо.
Все счета делятся на три вида: активные, пассивные и активно-пассивные. На активных счетах сальдо всегда положительное (там деньги накапливаются, например, в кассе или на складе) или дебетовое. На пассивных счетах сальдо всегда отрицательное (например, реализация - продаем мы по большей цене, чем получаем) или кредитовое. На активно-пассивных счетах сальдо может быть как положительным, так и отрицательным (например, поставщики или покупатели).
Если просуммировать сальдо по всем счетам, то мы получим ноль. Это как раз и есть критерий проверки бухгалтерского баланса: сумма остатков по активным счетам равна сумме остатков по пассивным счетам.
В нашем примере на рис.2.1 после выполнения всех хозяйственных операций мы имеем нулевое сальдо по всем счетам, кроме банка и реализации. В банке у нас осталось 200 рублей по дебету, а у реализации 200 рублей по кредиту. В результате мы никому ничего не должны, нам тоже никто ничего не должен, на расчетном счете мы имеем 200 рублей чистой прибыли, источник которых - торговая наценка в 200 рублей при реализации товаров.
Счета позволяют видеть картину в консолидированном или синтетическом виде, например сумму долга по всем поставщикам (кредитовое сальдо по счету 60.1) или сумму всех товаров на складе (сальдо по счету 41.1). Однако не менее важно вести учет в аналитике, т.е. по каждому поставщику в отдельности или по каждому товару или по каждому складу.
Для этого в системе 1С:Предприятие используется понятие субконто, которое фактически означает код аналитического учета. При вводе проводки мы должны указать не только корреспондирующие счета, но и субконто, например, при поступлении товаров на склад, по кредиту мы должны указать от кого мы получили товар ("НЭТА"), а по дебету, - какой товар ("Дискеты TDK") и на какой склад ("Основной") мы его поместили.
У каждого счета может быть несколько видов субконто (в стандартной версии - до трех, в профессиональной - до пяти).

2.4. Введение в типовую конфигурацию "Бухгалтерский учет. Редакция 4.2"
Типовая конфигурация предназначена для ведения бухгалтерского учета в "типичной" хозрасчетной фирме (для бюджетных организаций есть своя конфигурация). Она позволяет:

* Вводить данные о хозяйственных операциях в виде проводок, типовых проводок и документов.
* Распечатывать стандартные формы документов (например, приходный кассовый ордер, расходный кассовый ордер, ТОРГ-12 и т.д.).
* Получать отчеты о движениях средств в самых разных разрезах: по счетам, по субконто, по датам.
* Вести наряду с бухгалтерским учетом налоговый учет в соответсвии налоговым кодексом.
* Формировать регламентные отчеты, сдаваемые в налоговую инспекцию.

Для реализации рассмотренного примера могут использоваться следующие документы:
1. "Поступление товаров" - для ввода приходной накладной от поставщика.
2. "Отгрузка товаров, продукции" - для ввода расходной накладной покупателю.
3. "Приходный кассовый ордер" - для ввода поступления денег в кассу от покупателя.
4. "Расходный кассовый ордер" - для сдачи выручки в банк.
5. "Выписка" - для оплаты долга поставщику через расчетный счет.

Для отслеживания перемещений денежных средств удобно использовать отчет "Оборотно-сальдовая ведомость".

2.5. План занятия

1. Ввести операции на рис. 2.1 с помощью ручных проводок.
2. Отключить проводки у ручных операций (клавиша F8).
3. Ввести те же самые операции с помощью документов.
4. Сравнить полученные проводки, объяснить причину несоответствия.








3. ИЗУЧЕНИЕ ВСТРОЕННОГО ЯЗЫКА ПРОГРАММИРОВАНИЯ (ОПЕРАТОРЫ, УПРАВЛЯЮЩИЕ СТРУКТУРЫ, ТИПЫ ДАННЫХ)

Встроенный язык системы 1С: Предприятие 7.7 предназначен для описания алгоритмов функционирования прикладной задачи.

3.1. Программные модули

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

3.2. Контекст выполнения программного модуля

Глобальный контекст:
- значения системных атрибутов, системные процедуры и функции, например, функция ТекущееВремя() возвращает текущее системное время, а функция ТекущаяДата() - текущую дату на компьютере.
- значения заданных в конфигураторе констант, перечислений.
- переменные и процедуры глобального программного модуля с ключевым словом "Экспорт".

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

3.3. Виды программных модулей

- Глобальный модуль.
- Модуль формы списка справочника
- Модуль формы группы
- Модуль формы элемента справочника
- Модуль формы документа
- Модуль документа
- Модуль формы журнала документов
- Модуль формы списка счетов
- Модуль формы счета
- Модуль формы журнала операций
- Модуль формы операции
- Модуль формы журнала проводок
- Модуль формы отчета
- Модуль формы обработки

Текст программного модуля состоит из операторов и комментариев. Комментарии начинаются с символов "//"

3.4. Формат операторов

[˜метка:]Оператор [(Параметры)][ДобавочноеКлючевоеСлово];

3.5. Имена переменных, процедур и функций

Именем переменной, процедуры или функции может быть любая последовательность букв, цифр и знаков подчеркивания, начинающаяся с буквы или с подчеркивания. Регистр букв не учитывается. Вновь создаваемые имена не должны совпадать с уже существующими именами, доступными на момент выполнения модуля.
Типизация переменных в языке не жесткая, т.е. тип переменной определяется ее значением.
Чтобы определить, является ли слово зарезервированным, нужно воспользоваться поиском в синтакс-помощнике: установить курсор на проверяемое слово и одновременно нажать клавиши СTRL+F1. Таким же способом можно узнать синтаксис системной процедуры или функции: количество и назначение параметров, значения по умолчанию.

3.6. Структура программного модуля

- Раздел определения переменных
- Раздел процедур и функций
- Раздел основной программы

Пример.

// Определение переменных
Перем ЭтоПеременная;
Перем ЭтоВтораяПеременная;

// Процедуры и функции
Процедура ЭтоПроцедура()
// текст процедуры
КонецПроцедуры

Функция ЭтоФункция()
// текст функции
КонецФункции

// Раздел основной программы
ЭтоПременная = "123";


3.7. Процедуры и функции программного модуля

Процедура <Имя_проц>([Знач] <Парам1> [=<ДефЗнач>] , ...) [Экспорт]
// Объявления локальных переменных;
// Операторы;
...
[Возврат;]

// Операторы;

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

После ключевого слова "КонецПроцедуры" точка с запятой не ставится. Ключевое слово "Знач" означает, что переменные передаются по значению. Ключевое слово "Экспорт" имеет смысл только в глобальном модуле и означает, что процедура будет доступна в любом программном модуле. Функция, в отличие от процедуры должна возвращать значение
Для передачи локального контекста используется ключевое слово "Контекст" в качестве параметра.
Пример. Допустим, у нас есть несколько различных документов, причем у всех есть реквизит "Склад". В каждом программном модуле формы редактирования документа нужна процедура выбора склада. В глобальном программном модуле напишем процедуру:
Процедура УстСклада(Конт) Экспорт
// создаем объект типа "справочник"
Скл = СоздатьОбъект("Справочник.Склады");
// вызываем диалог для выбора элемента Справочника
Скл.Выбрать("Выберите Склад", "");
Если Скл.Выбран() = 1 Тогда
// если в диалоге элемент Справочника был выбран,
// то присваиваем его значение реквизиту Документа,
// который доступен по локальному контексту
Конт.Склад = Скл.ТекущийЭлемент();
КонецЕсли;
КонецПроцедуры

Здесь переменная Конт является формальным параметром, которому при вызове процедуры будет присвоен локальный контекст. В данном примере обращение к реквизитам и методам локального контекста происходит "через точку" после идентификатора Конт, например:
Конт.Склад = Скл.ТекущийЭлемент();
Теперь в любом программном модуле конфигурации (в данном примере в любом Модуле формы документа) для выбора склада можно вызвать процедуру, передав ей свой локальный контекст в качестве параметра:
УстСклад(Контекст);
С примерами программных модулей можно ознакомиться в типовой конфигурации "Бухгалтерский учет".

3.8. Типы данных
В системе поддерживаются базовые и агрегатные типы данных. К базовым типам относятся числа, строки и даты. Агрегатные типы данных - это специализированные типы данных, предназначенные для работы с объектами 1С:Предприятия. Агрегатными типами данных называются следующие типы данных:
Константа - средство работы с постоянными (или условно постоянными) значениями. В константах хранится информация, которая не изменяется или изменяется достаточно редко. Например, название организации, почтовый адрес. Перечень констант, доступный в конкретной конфигурации, их названия и тип определяются в конфигураторе.
Справочник - средство для ведения списков однородных элементов данных. Помимо наименования элементов данных, списки могут содержать различную дополнительную информацию. Физическим аналогом справочника может являться картотека. Каждая карточка - это элемент справочника, а сведения, заносимые в карточку, являются реквизитами справочника. Перечень справочников, доступных в конкретной конфигурации, их названия и реквизиты определяются в конфигураторе.
Перечисление - средство работы с элементами данных, список возможных значений которых жестко задан (например, для перечисления "ФормаОплаты" можно задать возможные значения: "Нал", "Безнал"). В отличие от справочников, списки значений в перечислении задаются в процессе их создания в конфигураторе и при выполнении задачи не могут быть изменены. Состав перечислений, доступных в конкретной конфигурации, их названия и допустимые значения определяются в конфигураторе.
Документ - средство для ввода первичной информации о совершаемых хозяйственных операциях. Перечень документов, доступных в конкретной конфигурации, их названия, реквизиты и другие свойства определяются в конфигураторе.
Запрос - средство для выполнения обращения к документам, регистрам, документам, справочникам и журналам расчетов с целью получения сводной информации при формировании выходных отчетов. В программных модулях допускается создавать произвольное число объектов типа Запрос при помощи вызова системной функции СоздатьОбъект.
Текст - средство работы с текстовыми документами. В программных модулях допускается создавать произвольное число объектов типа Текст при помощи вызова системной функции СоздатьОбъект.
Таблица - средство работы с таблицами (отчетами). В программных модулях допускается создавать произвольное число объектов типа Таблица, при помощи вызова системной функции СоздатьОбъект.
СписокЗначений - средство для создания списка значений каких-либо данных и возможности в дальнейшем сортировать и выбирать нужные значения из списка. При добавлении в диалоговых формах полей типа "Список" или "Поле со списком", система автоматически создает объекты СписокЗначений, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произвольное число объектов типа СписокЗначений при помощи вызова системной функции СоздатьОбъект.
ТаблицаЗначений - средство для создания списка значений каких-либо данных и возможности в дальнейшем сортировать и выбирать нужные значе­ния из списка. При добавлении в диалоговых формах полей типа "Список" или "Поле со списком", система автоматически создает объекты СписокЗначений, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произвольное число объектов типа СписокЗначений при помощи вызова системной функции СоздатьОбъект.
Картинка - средство для работы с графическими файлами. При добавлении в диалоговых формах и в таблицах полей типа "Картинка", система автоматически создает объекты Картинка, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произвольное число объектов типа Картинка при помощи вызова системной функции СоздатьОбъект.
Периодический - средство для работы с периодическими реквизитами справочников и периодическими константами. В программных модулях допускается создавать произвольное число объектов типа Периодический при помощи вызова системной функции СоздатьОбъект.
ФС - средство для работы с дисковыми файлами непосредственно из встроенного языка системы 1С:Предприятие. В программных модулях допускается создавать произвольное число объектов типа ФС при помощи вызова системной функции СоздатьОбъект. Кроме того, в глобальном контексте по умолчанию существует один уже созданный объект этого типа с именем ФС (имя объекта совпадает с названием агрегатного типа данных).
XBase - средство для работы с файлами баз данных DBF формата непосредственно из встроенного языка системы 1С:Предприятие. В программных модулях допускается создавать произвольное число объектов типа XBase при помощи вызова системной функции СоздатьОбъект.
Следующие типы данных доступны только при наличии компоненты "Бухгалтерский учет":
ПланСчетов является служебным типом данных. Он предназначен для идентификации Плана счетов, созданного в метаданных. В основном он используется для передачи в качестве параметра различным процедурам и функциям компоненты "Бухгалтерский учет" и для выбора плана счетов в формах. Тип значения "ПланСчетов" не поддерживает никаких данных в информационной базе, а список возможных значений этого типа данных определен планами счетов созданными в конфигурации. Значения типа "ПланСчетов" могут выступать как реквизиты диалога формы, как реквизиты документов, справочников и т. д. Для получения значения такого типа данных используется глобальный атрибут ПланыСчетов, который имеет в свою очередь набор атрибутов типа "ПланСчетов" соответсвующих имеющимся в конфигурации планам счетов. Кроме того, глобальный атрибут ПланыСчетов имеет методы для обхода всех существующих планов счетов.
Счет - это агрегатный тип данных для доступа к объектам данных - бухгалтерским счетам. Бухгалтерские счета используются компонентой "Бухгалтерский учет" системы 1С:Предприятие для идентификации разрезов синтетического учета наличия и движения средств. В общем виде смысл типа данных "Счет" вполне соответствует общепринятому понятию "Счет" в бухгалтерском учете. В конфигурации системы может быть создано несколько планов счетов. План счетов является фактически видом для значений типа "Счет". Например, реквизит типа "Счет" некоторого диалога может иметь конкретный вид (относиться к конкретному плану счетов) или быть неопределенного вида, - то есть принимать значение различных планов счетов.
ВидСубконто является служебным типом данных. Он предназначен для идентификации Вида субконто, созданного в метаданных. В основном он ис­пользуется для передачи в качестве параметра различным процедурам и функ­циям компоненты "Бухгалтерский учет" и для выбора вида субконто в формах. Список возможных значений этого типа данных определен видами субконто, созданными в конфигурации. Значения типа "ВидСубконто" могут выступать как реквизиты диалога формы, как реквизиты документов, справочников и т. д. Для получения значения такого типа используется глобальный атрибут ВидыСубконто, который имеет в свою очередь набор атрибутов типа "ВидСубконто" соответствующих имеющимся видам субконто. Кроме того, глобальный атрибут ВидыСубконто имеет методы для обхода всех существующих видов субконто. Операция - средство для манипулирования из встроенного языка данными бухгалтерских операций и проводок формируемых документом. Так как проводки в системе 1С:Предприятие принадлежат операциям, то управление и операциями и проводками выполняется объектом "Операция".
БухгалтерскиеИтоги - средство для организации доступа к бухгалтерским итогам в различных разрезах, за различные периоды и с разной степенью детализации. При наличии в системе 1С:Предприятие компоненты "Бухгалтерский учет" система автоматически реализует специальный механизм работы с бухгалтерскими итогами. Данный механизм обеспечивает хранение, динамический пересчет бухгалтерских итогов и их извлечение средствами встроенного языка. Система хранения бухгалтерских итогов поддерживается системой 1С:Предприятие автоматически на основе существующих планов счетов. При редактировании планов счетов - в конфигураторе или при работе с системой 1С:Предприятие - для счета могут быть установлены ряд свойств, которые влияют на организацию хранения бухгалтерских итогов: это признаки ведения валютного и количественного учета, а также включение аналитического учета по субконто. Изменение бухгалтерских итогов может производиться только проводками бухгалтерских операций.
Каждый агрегатный тип данных, как правило, имеет набор атрибутов и методов. Атрибуты по свойствам напоминают переменные, т. е. им можно присваивать или читать их значения. Методы - это те действия, которые может выполнять агрегатный тип данных. Методы могут иметь или не иметь возвращаемое значение. Если метод имеет возвращаемое значение, то он может размещаться в правой части оператора присваивания, в выражениях, в описании фактических параметров других вызываемых методов, процедур или функций.
Типичная последовательность работы с объектом агрегатного типа данных выглядит следующим образом:
1. С помощью функции СоздатьОбъект создается объект агрегатного типа данных, и какой-либо переменной присваивается ссылка на него;
2. Объект позиционируется на нужном элементе данных;
3. Производятся различные манипуляции с объектом агрегатного типа данных через вызовы методов и обращения к его атрибутам.
4. В случае, если объект агрегатного типа данных больше не нужен, он может быть отсоединен от переменной посредством переприсваивания переменной какого-либо значения базового типа (например, числа 0). Отсоединение объекта выполнять не обязательно.
Пример:

// Создаем объект
Сотр = СоздатьОбъект("Справочник.Сотрудники");

// Позиционируем созданный объект по наименованию
Сотр.НайтиПоНаименованию("Петров");
Если Сотр.Выбран()=1 Тогда
Сообщить("Петров "+Строка(Сотр.Оклад));
Иначе
Сообщить("Петров не найден");
КонецЕсли;

Для преобразования значения одного базового типа в другой используются функции Строка(<Значение>), Число(<Значение>), Дата(<Значение>).

3.9. Управляющие операторы

Для управления логикой выполнения программы используются логические выражения и управляющие операторы. Логическое выражение записывается с помощью символов сравнения = (равно), <> (не равно), > (больше), < (меньше), <= (меньше либо равно), >=(больше или равно), при этом сравнение производится только над значениями одинаковых типов (то есть нельзя, например, сравнивать число и строку). Из нескольких сравнений можно построить более сложное условие с помощью булевых операций "и", "или", "не". Порядок сравнений можно определять с помощью круглых скобок.

3.9.1. Оператор ветвления

Если <Логическое_выражение> Тогда
...
ИначеЕсли <Логическое_выражение> Тогда
...
Иначе
...
КонецЕсли;

3.9.2. Циклы

Пока <Логическое_выражение> Цикл
...
[Прервать]
...
[Продолжить]
...
КонецЦикла;

Для <Имя_переменной> = <Выражение1> По <Выражение2> Цикл
...
[Прервать]
...
[Продолжить]
...
КонецЦикла;

Величина приращения счетчика при каждом выполнении цикла равна 1. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.

3.9.3. Обработка ошибок
Попытка
...
[Исключение]
...
КонецПопытки;

3.9.4. Работа с транзакциями
Транзакции применяются для выполнения длительных и критических для функционирования системы операций. В некоторых случаях система сама начинает транзакцию и специально описывать ее не надо. Например, это происходит при проведении документов: так как в программе могут работать одновременно несколько пользователей, то при записи документа (например, продажа товара со склада) недопустима ситуация "одновременного" проведения двух документов - все равно один из них должен быть проведен раньше, чем другой (иначе можно продать один и тот же товар два раза!). Поэтому система выполняет проведение документа в режиме транзакции, - база данных становится недоступной для записи остальных пользователей. Естественно, что при большом количестве пользователей, которые активно вводят данные в программу, работа системы замедляется. Одним из решений этой проблемы может быть установка версии для SQL, в этом случае процедуры записи выполняется на отдельном компьютере (сервере базы данных) с помощью MS SQL Server 7.0.
В остальных случаях транзакцию начать и зафиксировать с помощью следующих функций:

НачатьТранзакцию();
...
[ОтменитьТранзакцию();]
...
ЗафиксироватьТранзакцию();

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

3.10. Работа с объектом "СписокЗначений"

Объект "СписокЗначений" применяется для создания динамических списков (не сохраняемых в БД), которые могут отображаться в диалоговых формах (элемент "Список" и "Поле со списком") для выбора одного или нескольких значений из списка. Список создается с помощью функции СоздатьОбъект("СписокЗначений"), либо визуально при добавлении на форму элементов "Список" или "Поле со списком".
Элемент списка содержит три поля - значение, представление и пометка. Значение может принимать значение любого типа, представление же всегда имеет тип "Строка". В форме диалога отображается представление (если оно задано). Пометка означает, помечено данное значение или нет.
Основные функции работы со списком следующие:
ДобавитьЗначение(<Знач>,<Строка>)
НайтиЗначение(<Знач>)
ПолучитьЗначение(<Позиция>,<Перем>)
Получить(<Строка>)
УдалитьЗначение(<Позиция>,<Колич>)
УдалитьВсе()
РазмерСписка()
Сортировать(<Направление>)
СортироватьПоПредставлению(<Направление>)
Принадлежит(<Знач>)
Пометка (<Позиция>,<Отметка >)
ИзСтрокиСРазделителями(<Строка>)
ВСтрокуСРазделителями()

3.11. Работа с объектом "ТаблицаЗначений"
Объект "ТаблицаЗначений" применяется для создания динамических массивов (не сохраняемых в БД), которые могут отображаться в диалоговых формах (элемент "Таблица значений"). Таблица значений создается с помощью функции СоздатьОбъект("ТаблицаЗначений"), либо визуально при добавлении на форму элементов "Таблица значений".

Пример.

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

// Определяем идентификаторы и параметры колонок
Т.НоваяКолонка("Товар", "Строка", 30,, "Наименование товара", 20);
Т.НоваяКолонка("Цена", "Число", 10, 2 , "Цена", 10);
Т.НоваяКолонка("Количество", "Число", 10, 3, "Кол.", 10);
Т.НоваяКолонка("Сумма", "Число", 15, 3, "Сумма", 10);

// Создаем новую строку
Т.НоваяСтрока();
Т.Товар= "Сыр";
Т.Цена= 50;
Т.Количество= 10;
Т.Сумма= Т.Цена* Т.Количество;

Основные функции работы с таблице следующие:

НоваяКолонка(<Идентификатор>,<Тип>,<Длина>,<Точность>,<Заголовок>,<Ширина>,<Формат>,<Положение>)
НоваяСтрока()
УдалитьСтроку(<НомерСтроки>)
УдалитьСтроки()
ПолучитьСтрокуПоНомеру(<НомерСтроки>)
ПолучитьЗначение(<НомерСтроки>,<Колонка>),
<Колонка> - это либо номер колонки либо идентификатор колонки
НайтиЗначение(<Знач>,<Строка>,<Колонка>),
<Строка> - идентификатор переменной, в которую возвращается номер найденной строки, <Колонка> - идентификатор переменной, в которую возвращается колонка найденной строки.

ВыбратьСтроки() - открыть выборку строк из таблицы
ПолучитьСтроку() - получить следующую строку из выборки

Сортировать(<Колонки>)
<Колонки> - это строка, содержащая список идентификаторов или номеров колонок, разделенных запятой, по которым выполняется сортировка строк таблицы значений
Свернуть(<ГрупКолонки>,<СумКолонки>)
<ГрупКолонки> - это строка, содержащая список идентификаторов или номеров колонок, разделенных запятой, по которым выполняется группировка строк таблицы значений (то есть если имеется несколько строк с одинаковыми значениями в группируемых колонках, то в результате свертки останется одна такая строка)
<СумКолонки> - это строка, содержащая список идентификаторов или номеров колонок, разделенных запятой, в которых выполняется суммирование значений строк таблицы значений (то есть, если группируется несколько строк, то значения суммируемых колонок будут складываться).


3.12. Запуск внешних приложений из 1С.

Для запуска внешнего приложения можно использовать функцию ЗапуститьПриложение().
Для запуска и управления внешним приложением можно использовать механизм OLE-Automation.
Пример.
Окно = СоздатьОбъект("Excel.Application");
Окно.Visible = 1; // делаем окно видимым
Окно.Caption = "Отчет"; // задаем имя окну
Окно.Workbooks.Add(); // создаем новую рабочую книгу
Для Н=1 По 10 Цикл
Ячейка = Окно.Cells(Н,1);
Ячейка.Value = Н;
КонецЦикла;

3.13. План занятия
1. Научится создавать простейшие программы в глобальном модуле и внешнем отчете.
2. Научиться пользоваться инструментальными средствами: синтаксический контроль, отладчик, синтакс-помощник.
3. Научиться пользоватьcя локальными и глобальными переменными.
4. Научиться передавать локальный контекст в глобальный модуль.
5. Научиться пользоватьcя механизмом OLE Automation.
Задание
1. В глобальном модуле написать программу "Здравствуй мир"
2. Создать внешний отчет "ОкноВМир"
3. Добавить в форму диалога кнопку "Открыть Excel". При нажатии этой кнопки вызывать Excel. Используя конструкцию "Попытка... ", выдавать сообщение "Excel не доступен" при неудачной попытке открытия внешней программы.
4. Добавить в форму диалога кнопку "Открыть Word". При нажатии этой кнопки вызывать Word.
5. Вставить внешний отчет "ОкноВМир" в конфигурацию.
6. Добавить кнопку на панель инструментов, для функции вызова отчета "ОкноВМир".
7. В отчете "ОкноВМир" добавить в форму диалога таблицу значений с колонками "Товар", "Количество", "Цена", "Сумма" и кнопки "Добавить строку", "Удалить строку", "Свернуть по товарам". Последняя кнопка должна суммировать по товарам сумму и количество. Сумма должна вычисляться автоматически.

4. РАБОТА СО СПРАВОЧНИКАМИ, ДОКУМЕНТАМИ И ЖУРНАЛАМИ ДОКУМЕНТОВ

4.1. Справочники
Справочник - это агрегатный тип данных, средство для работы со списками однородных элементов данных. Название и структура каждого конкретного справочника определяются при его создании в конфигураторе. У любого справочника существуют два реквизита, которые создаются автоматически - "Код" и "Наименование". Реквизиты справочников могут быть периодическими, т.е. иметь значения, связанные с датой. При изменении значения периодического реквизита старое значение сохраняется, при этом новое значение начинает действовать с указанной даты, старое - до указанной даты.
Свойства справочника редактируются в окне редактирования "Справочник". Для визуального представления справочника существуют "Форма элемента", "Форма группы" и "Формы списка" (их может быть несколько).



4.1.1. Подчиненные справочники
Если один справочник подчинен другому (задается в поле "подчинен" окна редактирования), то каждый элемент подчиненного справочника будет соответствовать элементу справочника-владельца. Для этого есть специальный реквизит "Владелец", по которому можно найти элемент справочника-владельца.

4.1.2. Группы элементов
Справочник может иметь иерархическую структуру. Число уровней иерархии определяется в поле "Кол-во уровней" в окне редактирования. Для задания иерархии используется реквизит "Родитель", который и определяет, к какой группе относится элемент. Наиболее важные функции:
* ЭтоГруппа() - возвращает 1, если текущий элемент справочника - группа;
* ПринадлежитГруппе(<Группа>) - возвращает 1, если текущий элемент принадлежит группе <Группа>;
* Уровень() - возвращает номер уровня текущего элемента.

Глубина вложенности групп настраивается в конфигураторе и не может превышать 10 уровней.

4.1.3. Обработка элементов справочника
Обычно для обработки элементов справочника используется следующая последовательность команд:

Спр=СоздатьОбъект("Справочник.НазваниеСправочника");

Спр.ИспользоватьДату(<Дата>); // Используется, если есть периодические //реквизиты

Спр.ИспользоватьВладельца(<Владелец>); // Используется, если нужно //выбрать только элементы, подчиненные Владельцу

Спр.ИспользоватьРодителя(<Группа>); // Используется, если нужно выбрать //только элементы, принадлежащие Группе

Спр.ВыбратьЭлементы(); // Делаем выборку элементов

Пока Спр.ПолучитьЭлемент()=1 Цикл
// Обработка текущего элемента выборки, например
Сообщить(Спр.Код+" "+Спр.Наименование);
КонецЦикла;

4.1.4. Добавление нового элемента справочника

Спр.Новый();
Спр.Наименование = "ЭтоНовыйЭлемент";

// Заполняем остальные реквизиты

Спр.Записать(); // Происходит запись нового элемент в базу данных

4.1.5. Поиск элемента справочника

Есть несколько способов поиска элемента справочника:

* НайтиЭлемент(<Элемент>),
* НайтиПоКоду(<Код>),
* НайтиПоНаименованию(<Наименование>),
* НайтиПоРеквизиту (<Реквизит>, <Значение>).

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

Пример. Следующая функция выполняет поиск элемента справочника по наименованию. Если элемент с таким наименованием не найден, то создается новый элемент. Параметр "Справ" - строка с идентификатором справочника, "Наим" - наименование по которому производится поиск элемента. Функция возвращает ссылку на найденный или созданный элемент.

Функция ПоискЭлемента(Справ,Наим)
Спр=СоздатьОбъект("Справочник");
Спр.Вид(Справ);
Если Спр.НайтиПоНаименованию(Наим)=0 Тогда
Спр.Новый();
Спр.Наименование=Наим;
Спр.Записать();
КонецЕсли;
Возврат Спр.ТекущийЭлемент();
КонецФункции

4.1.6. Удаление элементов справочника

Для удаления текущего элемента справочника используется функция Удалить(<Режим>), где <режим> может иметь значение 0 - пометка на удаление, 1 - непосредственное удаление (используется по умолчанию). Вообще непосредственное удаление не рекомендуется, из-за возможного нарушения ссылочной целостности базы данных.
Чтобы удалить помеченные на удаление объекты через систему 1С:Предприятие 7.7, нужно зайти в программу в монопольном режиме и в меню "Операции" выбрать пункт "Удаление помеченных объектов...".

4.2. Документы
Документы в системе 1С: Предприятие используются для ввода, просмотра и корректировки информации о совершаемых хозяйственных операциях. У любого документа есть три обязательных реквизита "ДатаДок", "ВремяДок", "НомерДок". Дата и время, - наиболее важные характеристики документов, так как позволяют устанавливать строгую временную последовательность совершения операций. Форма документа редактируется при нажатии кнопки "Форма".



4.2.1. Реквизиты документа
Реквизиты шапки документа задаются в списке "Реквизиты шапки". Реквизиты табличной части задаются в списке "Реквизиты табличной части".

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

Формирование проводок происходит в "Модуле документа" в предопределенной процедуре "Обработка проведения".

Операция.НоваяПроводка();
Операция.СодержаниеПроводки = "Поступили товары";
Операция.НомерЖурнала = "ТВ";
Операция.Дебет.Счет = СчетПоКоду("41.1");
Операция.Дебет.Номенклатура = Товар;

Операция.Кредит.Счет = СчетПоКоду("60.1");
Операция.Кредит.Контрагенты = Контрагент;
Операция.Кредит.Договоры = Договор;
Операция.Количество = Количество;
Операция.Сумма = УчетнаяСтоимость;
Операция.Записать();

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

Док=СоздатьОбъект("Документ.НазваниеДокумента");

Док.ВыбратьДокументы(); // Делаем выборку документов

Пока Док.ПолучитьДокумент()=1 Цикл

// Обработка шапки документа, например

Сообщить("Вид документа "+Строка(Док.Вид()));
Сообщить("Дата документа "+Строка(Док.ДатаДок));
Сообщить("Номер документа "+Строка(Док.НомерДок));
Док.ВыбратьСтроки();// Делаем выборку табличной //части документа

Пока Док.ПолучитьСтроку()=1 Цикл
// Обработка строк табличной части документа
Сообщить("Товар "+Док.Товар.Наименование);

КонецЦикла

Сообщить(Строка(Спр.Код)+Спр.Наименование);

КонецЦикла;

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

4.3. Журналы документов
Для просмотра списка документов используется "Журналы документов". Создание журнала производится в конфигураторе. В диалоговой форме задаются графы - реквизиты документов, входящих в журнал. Реквизиты табличной части можно добавить в журнал только в том случае, если в свойствах реквизита в закладке "Дополнительно" стоит флажок "Итог по колонке".

4.4. План занятия
В соответствии с заданием №1 из приложения 3 создать справочники и документы в новой информационной базе.

5. РАБОТА С ЗАПРОСАМИ И СОЗДАНИЕ ОТЧЕТОВ

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



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

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

Пример.

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

Таб.ИсходнаяТаблица("ТОРГ-12"); // Задаем конкретную таблицу

Таб.ВывестиСекцию("Шапка"); // Выводим горизонтальную секцию

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

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

Таб.ВывестиСекцию("Строка|БезНГСМиНП"); //Выводим ячейки на //пересечении секций "Строка" и "БезНГСМиНП"
Если ПечататьНП=1 Тогда
Таб.ПрисоединитьСекцию("Строка|НГСМиНП"); //Присоединяем //к текущей секции ячейки на пересечении секций "Строка" и //"НГСМиНП"
КонецЕсли;
КонецЦикла;

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

Таб.Показать(); // Выводим таблицу на экран


5.2. Запросы
Выборку сводных данных можно осуществлять "вручную". Для этого мы делаем выборку с помощью функции "ВыбратьДокументы()", а затем заполняем объект типа "ТаблицаЗначений" нужными значениями и сворачиваем таблицу значений с помощью функции "Свернуть()". Однако более быстро как на стадии разработки, так и на стадии выполнения, это позволяет сделать механизм запросов.

5.2.1. Создание запроса
Запрос создается функцией "СоздатьОбъект("Запрос")". Для выполнения запроса используется функция "Выполнить(<ТекстЗапроса>)", которая возвращает 1, если запрос выполнился. <ТекстЗапроса> - это строковое выражение на "языке запросов".

Пример:
НашЗапрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|СКЛАД = Документ.РасходнаяНакладная.Склад;
|ТОВАР = Документ.РасходнаяНакладная.Товар;
|КОЛИЧЕСТВО = Документ.РасходнаяНакладная.Количество;
|Группировка ТОВАР Упорядочить По ТОВАР.Код;
|Группировка СКЛАД Упорядочить По СКЛАД.Код;
|Функция КОЛ = Сумма(КОЛИЧЕСТВО);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если НашЗапрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Структура временного набора данных, созданная запросом "НашЗапрос" после его выполнения, представлена на следующем рисунке:

Товар
Склад
Кол.
Итог общий
X
X
62
Итог по товару Стол
Стол
X
35
Строка по товару Стол на складе Первый
Стол
Первый
10
Строка по товару Стол на складе Второй
Стол
Второй
20
Строка по товару Стол на складе Третий
Стол
Третий
5
Итог по товару Стул
Стул
X
9
Строка по товару Стул на складе Второй
Стул
Второй
7
Строка по товару Стул на складе Третий
Стул
Третий
2
Итог по товару Шкаф
Шкаф
X
18
Строка по товару Шкаф на складе Первый
Шкаф
Первый
8
Строка по товару Шкаф на складе Третий
Шкаф
Третий
10
После выполнения запроса в программе можно использовать полученный временный набор данных. Изначально объект "НашЗапрос" спозиционирован на первой записи временного набора данных, где содержится общий итог по запросу. Поэтому общие итоги по запросу можно использовать сразу же после выполнения запроса.
Далее, допустим, в цикле мы проходим только по самой внешней группировке запроса: "Товар". В теле этого цикла объект "НашЗапрос" позиционируется во временном наборе данных на записи, содержащие итоги по каждому конкретному товару, поэтому в теле этого цикла мы можем использовать итоги по товарам.
После завершения цикла по самой внешней группировке, объект "НашЗапрос" снова позиционируется на первой записи временного набора данных, где содержится общий итог по запросу. Поэтому, общие итоги по запросу можно использовать в двух местах: до и после цикла по самой внешней группировке запроса.

//Итог общий
Пока НашЗапрос.Группировка("Товар") = 1 Цикл
//Итог по товару
КонецЦикла;
//Итог общий

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

Запрос=СоздатьОбъект("Запрос");

ТекстЗапроса = "..."; // Создаем текст запроса на "языке запросов"

Если Запрос.Выполнить(ТекстЗапроса)<>1 Тогда
Возврат;
КонецЕсли;

Пока Запрос.Группировка(1)=1 Цикл

// Вывод результатов по первой группировке

Пока Запрос.Группировка(2)=1 Цикл

// Вывод результатов по второй группировке
...

КонецЦикла;

КонецЦикла;

// Вывод результатов по всем группировкам ("Итого")

5.2.3. Использование конструктора запросов

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

5.3. План занятия

1. Создать печатную форму документа "ДоговорЗайма"
2. Создать печатную форму журнала договоров займа с помощью конструктора отчета.
3. Создать печатную форму списка заимодавцев с помощью конструктора отчета.
4. Создать отчеты из задания №1 из приложения 3 без использования запросов.
5. Создать отчеты из задания №1 с использованием и без использования запросов.


6. РАБОТА СО СЛУЖЕБНЫМИ ТИПАМИ ДАННЫХ И ОБЪЕКТАМИ КОМПОНЕНТЫ "БУХГАЛТЕРСКИЙ УЧЕТ"

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



У счета определены следующие атрибуты:
* "Код" - в общем случае представляет собой символьную строку вида <Код счета>.<Код субсчета>.<Код субсчета> и т.д.
* "Наименование" - наименование счета.
* "Валютный" - признак ведения валютного учета.
* "Количественный" - признак ведения количественного учета.
* "Забалансовый" - признак того, что счет является забалансовым.
* "Активный" - принимает три значения: 1 - активный, 2 - пассивный, 3 - активно-пассивный.
Наиболее важные функции: "КоличествоСубконто()" - возвращает количество субконто у текущего счета, "ВидСубконто()" - устанавливает/возвращает вид субконто по порядковому номеру.

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

Операция имеет следующие атрибуты:
"ДатаОперации", "Содержание", "СуммаОперации", "Документ" - документ, которому принадлжит операция, "Сумма" - сумма текущей проводки операции, "Валюта" - валюта текущей проводки, "ВалСумма" - валютная сумма текущей проводки, "Количество" - количество текущей проводки, "Дебет" - обращение к дебету проводки, "Кредит" - обращение к кредиту проводки. Объекты "Дебет" и "Кредит" имеют следующие атрибуты: "Счет", "Субконто"

Пример

Опер=СоздатьОбъект("Операция");

Опер.ВыбратьОперации(Дата1,Дата2);

Пока Опер.ПолучитьОперацию()=1 Цикл

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку()=1 Цикл
Если Опер.Дебет.Счет=СчетПоКоду("60.1") Тогда
Сообщить("Субконто "+Опер.Дебет.Организация);
КонецЕсли;
КонецЦикла;

КонецЦикла;

Чтобы проводки не попадали в бухгалтерские итоги, используется функция "ОтключитьПроводки()".



6.3. Работа с корректными проводками
Для работы с корректными проводками в системе используется специальный тип данных "КорректныеПроводки". Объект создается функцией "СоздатьОбъект". Атрибуты: "Комментарий", "СчетДт", "СчетКт".
Для добавления новой корректной проводки используется функция "Новая()";

Пример

КП=СоздатьОбъект("КорректныеПроводки");

КП.Новая();

КП.Комментарий= "НДС с комиссионного вознаграждения";

КП.СчетДт=СчетПоКоду("46.28");
КП.СчетКт=СчетПоКоду("68.2");

КП.Записать();


6.4. План занятия

Выполнить задание №4 из приложения 3.


7. РАБОТА С БУХГАЛТЕРСКИМИ ИТОГАМИ

При наличии в системе 1С:Предприятие компоненты "Бухгалтерский учет" система автоматически реализует специальный механизм работы с бухгалтерскими итогами. Данный механизм обеспечивает хранение, динамический пересчет бухгалтерских итогов и их извлечение средствами встроенного языка.
Изменение бухгалтерских итогов может производиться только проводками бухгалтерских операций.
Хранение итогов поддерживается системой с детализацией до месяца. В итогах хранятся остатки и обороты по счетам с детализацией по субконто и обороты между счетами (без детализации по субконто).
Обращение к бухгалтерским итогам выполняется при помощи агрегатного объекта типа "БухгалтерскиеИтоги". Объект может работать в трех режимах:
* работа с основными итогами,
* работа с временными итогами,
* работа в режиме запроса.

Объект типа "БухгалтерскиеИтоги" при создании функцией "СоздатьОбъект()" работает в первом режиме. Переключение в другие режимы производится функциями "Рассчитать()" и "ВыполнитьЗапрос()".
Функции "ИспользоватьПланСчетов()" и "ИспользоватьРазделитель Учета()" позволяют назначить план счетов и разделитель учета по которым будут выдаваться итоги.

7.1. Работа с основными итогами
В пункте меню "Управление бухгалтерскими итогами" в системе "1С:Предприятие" устанавливается последний рассчитанный период. В режиме работы с основными итогами осуществляется доступ только к итогам по рассчитанный месяц включительно.
Функции работы с итогами:
* ПериодД(<ДатаНач>,<ДатаКон>) - установка периода итогов
* СНД(<Cчет>,<ТипСуммы>,<Валюта>,<Cубконто1>,...) - сальдо начальное дебетовое;
* СНК() - сальдо начальное кредитовое;
* СКД() - сальдо конечное дебетовое;
* СКК() - сальдо конечное кредитовое;
* ДО() - дебетовый оборот по счету за период;
* КО() - кредитовый оборот по счету за период;

Параметры: <Cчет> - счет, <ТипСуммы> = 1 - сумма, 2 - валютная сумма, 3 - количество, <Валюта> - значение типа "Справочник.Валюты", <Субконто1> - значение первого субконто счета, <Субконто2> - значение второго субконто счета и т.д.

* ОБ(<СчетДеб>,<СчетКред>,<ТипСуммы>,<Валюта>) - обороты между счетами;

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

7.2. Работа с временными итогами
Чтобы получить итоги на любую дату нужно выполнять временный расчет (временный, потому что он хранится только во время существования переменной типа "БухгалтерскиеИтоги") с помощью функции

Рассчитать(<ДатаНач>,<ДатаКон>,<ФильтрПоСчетам>,<ТолькоСинтетика>,<ПланСчетов>,<РазделительУчета>).

В параметре <ФильтрПоСчетам> можно задать в виде строки список счетов, разделенных запятой или точкой с запятой, по которым будет делаться расчет. Если параметр <ТолькоСинтетика> = 1, то расчет будет делаться только по счетам, иначе по счетам и субконто.

7.3. Работа в режиме запроса
Для получения большего количества итогов (обороты и остатки по разным видам группировок) используется режим запроса.

7.3.1. Выполнение запроса
Перед выполнением запроса устанавливаются различные фильтры:

* ВключатьСубсчета() - устанавливать режим отбора по субсчетам.
* ИспользоватьСубконто(<ВидСубконто>,<Значение>,<ТипФильтра>,<ПоГруппам>) - устанавливать режим отбора итогов в разрезе субконто. Параметр <ВидСубконто> задается выражением типа "ВидСубконто" или строкой, содержащей имя идентификатора вида субконто. Параметр <Значение> задает конкретное значение субконто. Если <ТипФильтра>=1, тогда итоги будут разворачиваться по этому виду субконто. Если <ТипФильтра>=2, тогда итоги будут отбираться по значению субконто. Если <ТипФильтра>=3, тогда это субконто вообще не будет учитываться.
* Функцию ИспользоватьСубконто() можно выполнять несколько раз для задания в запросе нескольких видов субконто. Обращение к субконто производится по порядковому номеру (порядок определяется последовательностью команд "ИспользоватьСубконто()").
* ИспользоватьКорСубконто(<ВидСубконто>,<Значение>,<ТипФильтра>,<ПоГруппам>) - устанавливать режим отбора итогов по корреспондирующим счетам в разрезе субконто.

Затем выполняется сам запрос функцией ВыполнитьЗапрос( <ДатаНач>,<ДатаКон>,<ФильтрПоСчетам>,<ФильтрПоКорСчетам>, <Валюта>,<ТипИтогов>,<Периодичность>,<ТипСуммы>),
которая возвращает 1, если запрос выполнился успешно.
Параметр <ТипИтогов> принимает следующие значения: 1 - остатки и обороты по счетам, 2 - обороты между счетами, 3 - и то и другое.

Параметр <Периодичность> может принимать следующие значения:
1 ("Период") - промежуточные итоги не рассчитываются;
2 ("Операция") - промежуточные итоги рассчитываются по операциям;
3 ("Проводка") - по проводкам;
4 ("День") - по дням;
5 ("Неделя") - по неделям;
6 ("Декада") - по декадам;
7 ("Месяц") - по месяцам;
8 ("Квартал") - по кварталам;
9 ("Год") - по годам;

7.3.2. Обращение к результатам запроса
Для перебора группировок используются следующие функции:

* ВыбратьСчета(), ПолучитьСчет();
* ВыбратьКорСчета(), ПолучитьКорСчет();
* ВыбратьВалюты(), ПолучитьВалюту();
* ВыбратьПериоды(), ПолучитьПериод();
* ВыбратьСубконто(), ПолучитьСубконто();
* ВыбратьКорСубконто(), ПолучитьКорСубконто();

Функции получения остатков и оборотов такие же, как и при работе с основными итогами.

Пример.

БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто("Номенклатура");

БИ.ВыполнитьЗапрос(Дата1,Дата2,"41.1");

БИ.ВыбратьСчета();
Пока БИ.ПолучитьСчет()=1 Цикл

// выводим итоги по счету

БИ.ВыбратьСубконто(1);

Пока БИ.ПолучитьСубконто()=1 Цикл

// выводим итоги по субконто

Сообщить("Остаток на начало по счету " + БИ.Счет.Код + " товара " + БИ.Субконто(1)+Строка(БИ.СНД(3)) + "ед.");

КонецЦикла;

КонецЦикла;

7.4. План занятия
Выполнить задание №6 с использованием бухгалтерских итогов.

8. РАБОТА С ТАБЛИЦАМИ ДЛЯ ВВОДА ДАННЫХ

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

8.1. Свойства таблицы в режиме ввода данных
Работать в режиме ввода данных могут таблицы в отчетах и обработках. Данный режим использования таблицы включается через свойства формы (вызов свойств формы выполняется из меню "Действия" пунктом "Свойства формы").
Режим ввода данных позволяет совместить в одной форме отчета диалог формы вместе с табличным документом или вообще заменить диалог табличным документом. У ячеек таблицы в режиме ввода в свойствах появляется дополнительная закладка, обозначающая тип данных. Для ячеек, в которые предполагается вводить данные, требуется выключить флажок "защита".
Работа в режиме ввода имеет несколько особенностей с точки зрения обращения к таблице средствами встроенного языка. Во-первых, доступ к таблице осуществляется с помощью ключевого слова "Таблица". Кроме того, в модуле формы допустимо непосредственное обращение к значениям именованных ячеек по их именам. При обращении к области таблицы используется атрибут "Значение", который предоставляет доступ значению ячеек. При этом тип значений определяется типом, выбранным в закладке свойств ячейки "Данные".
В свойствах ячеек можно задавать формулы. Формула выполняется непосредственно после ввода значений в ячейку и используется обычно для вызова процедуры обработки значений других ячеек. У ячеек, имеющих признак "защита", формула является обычным выражением и вычисляет собственно значение ячейки как у элементов диалога типа "Текст".

8.2. Выгрузка и загрузка значений таблицы с помощью объекта "СписокЗначений"

Для выгрузки и загрузки большого числа переменных удобно использовать объект типа "СписокЗначений". Объект этого типа создается функцией "СоздатьОбъект". У каждого элемента списка значений есть "значение" и "представление".
Добавление нового элемента в список осуществляется функцией "ДобавитьЗначение(<Значение>,<Представление>)".
Для загрузки элементов из списка значений используется функция "Загрузить(<Список>)", причем <Значение> элемента списка будет записано в ячейку с именем <Представление>. Кроме имени можно использовать и строковое выражение вида "R1C1", обозначающее ряд и колонку ячейки.
После ввода данных пользователем делается выгрузка данных из таблицы функцией "Вырузить(<Список>)".

Пример. Следующая программа осуществляет запись чисел от 1 до 30 в первую колонку таблицы

Сп=СоздатьОбъект("СписокЗначений");

Для Н=1 по 30 Цикл

Сп.ДобавитьЗначение(Строка(Н),"R"+Строка(Н)+"C1");

КонецЦикла;

Таблица.Загрузить(Сп);

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

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

//*******************************************
Процедура Увеличить()

Для Ном=1 По 10 Цикл

Обл=Таблица.Область(Ном,1,Ном,1);
Обл.Текст=Строка(Число(Обл.Текст)*2);

КонецЦикла;

Таблица.Показать();

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


8.4. План занятия
1. Реализовать запись процентов в договор займа в отчете по задержке поступления денежных средств из задания №1 из приложения 3.
2. Реализовать формирование корректирующих проводок по инвентаризационной ведомости в задании №6 из приложения 3.

9. ОПЕРАЦИИ ЭКСПОРТА-ИМПОРТА ДАННЫХ

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

9.1. Использование текстовых файлов для переноса данных

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

Для работы с текстами в системе используется специальный тип данных "Текст". Средства языка позволяют выводить строк в текстовые файлы и считывать из имеющихся файлов текст с последующим разбором его по строкам.
* Открыть(<ИмяФайла>) - открывает файл.
* КодоваяСтраница(<Режим>) - получить/установить режим кодировки. <Режим> = 0 - Windows-кодировка, 1 - DOS-кодировка
* Показать(<Заголовок>,<ИмяФайла>) - открыть окно редактирования текста.
* Записать(<ИмяФайла>) - записывает текст в файл.

9.1.1. Чтение текста

* КоличествоСтрок() - количество строк в тексте.
* ПолучитьСтроку(<НомерСтроки>) - получить строку текста по номеру

Пример. Из файла "exp_imp.txt" загружается справочник номенклатуры

Спр=СоздатьОбъект("Справочник.Номенклатура");
Текст = СоздатьОбъект("Текст");
Список = СоздатьОбъект("СписокЗначений");
Текст.ОткрытьФайл("exp_imp.txt");

Для Ном=1 По Текст.КоличествоСтрок() Цикл
Стр = Текст.ПолучитьСтроку(Ном);

Список.ИзСтрокиСРазделителями(Стр); // преобразуем строку
//в список значений

Если Спр.НайтиПоКоду(Список.ПолучитьЗначение(1))=0 Тогда
Спр.Новый();
Спр.Код= Список.ПолучитьЗначение(1);
Спр.Наименование= Список.ПолучитьЗначение(2);
Спр.Записать();
КонецЕсли;
КонецЦикла;

9.1.2. Запись текста
* ВставитьСтроку(<НомерСтроки>,<Строка>) - вставить строку с указанным номером.
* ЗаменитьСтроку(<НомерСтроки>,<Строка>) - заменить строку с указанным номером.
* УдалитьСтроку(<НомерСтроки>) - удалить строку с указанным номером.
* ДобавитьСтроку(<Строка>) - добавить строку в конец текста.
* Очистить() -удалить все строки текста.

Пример. В файл "exp_imp.txt" выгружается справочник номенклатуры

Текст = СоздатьОбъект("Текст");
Список = СоздатьОбъект("СписокЗначений");
Спр=СоздатьОбъект("Справочник.Номенклатура");
Спр.ВыбратьЭлементы();

Пока Спр.ПолучитьЭлемент()=1 Цикл

Список.ДобавитьЗначение(Спр.Код);
Список.ДобавитьЗначение(Спр.Наименование);

// и другие поля...

// выводим список в текст
Текст.ДобавитьСтроку(Список.ВСтрокуСРазделителями());

Список.УдалитьВсе();// очищаем список
КонецЦикла;

Текст.Записать("exp_imp.txt");

9.2. Работа с файлами в формате "DBF"

Для работы с базами данных в формате "DBF" используется объект типа "XBase". При этом надо учитывать следующие ограничения:
1. Не поддерживаются поля типа memo.
2. База данных открывается монопольно
3. Поддерживаются только индексные файлы в формате "CDX"

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

Пример

БД=СоздатьОбъект("XBase");

БД.ОткрытьФайл("data.dbf");

Если БД.Открыта()=1 Тогда
БД.Первая();//встаем на первую запись

Пока 1=1 Цикл

// Обработка записи базы данных
Сообщить(Строка(БД.CODE) + " " + БД.Name);

Если БД.Следующая()=0 Тогда
// не удалось перейти к следующей записи
Прервать;
КонецЕсли;

КонецЦикла;

КонецЕсли;

9.3. Обмен данными с помощью OLE Automation

Для запуска системы 1С:Предприятие в качестве OLE Automation сервера из внешнего приложения (например, из другой программы 1С), выполняется следующая последовательность действий:
- Создается объект с OLE идентификатором:
* V1СEnterprise.Application - версия независимый ключ;
* V77.Application - версия зависимый ключ;
* V77S.Application - версия зависимый ключ, SQL версия;
* V77L.Application - версия зависимый ключ, локальная версия;
* V77M.Application - версия зависимый ключ, сетевая версия.
- Выполняется инициализация системы 1С:Предприятие методом Initialize.
- Вызываются атрибуты и методы системы 1С:Предприятие как OLE Automation сервера
Пример.
Процедура Загрузить()
Если ФС.Существуетфайл(Путь + "\NUL") = 0 Тогда
Предупреждение("Путь информационной базы не найден!");
Иначе
V7 = СоздатьОбъект("V77.Application");
Открыта = V7.Initialize(V7.RMTrade, "/d" + Путь +
" /M /N" + Пользователь, "");
Если Открыта = 0 Тогда
Предупреждение("Ошибка открытия информационной базы");
Возврат;
КонецЕсли;
Импорт = V7.CreateObject("Справочник.Контрагенты");
Импорт.ВыбратьЭлементы();
Пока Импорт.ПолучитьЭлемент() = 1 Цикл
Если Импорт.ЭтоГруппа() = 0 Тогда
Сообщить(Импорт.Наименование);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры












ПРИЛОЖЕНИЕ 1. ТЕОРЕТИЧЕСКИЕ ВОПРОСЫ ПО КОМПОНЕНТЕ "БУХГАЛТЕРСКИЙ УЧЕТ" КОМПЛЕКСА "1С:ПРЕДПРИЯТИЕ" ВЕРСИЙ 7.5 И 7.7

* Основные принципы построения системы "1С:Предприятие". Компоненты системы. Конфигуратор, отладчик, прикладная программа. Определение понятий "конфигурация", "метаданные", "данные". Соотношение понятий конфигурирования и использования конфигурации.
* Понятия "Метаданные", "Объекты метаданных". Свойства объектов метаданных в зависимости от вида объекта. Назначение составных частей форм объектов метаданных для разных видов объектов.
* Понятие "агрегатного объекта метаданных". Способы определения и использования агрегатных объектов при автоматизации задач бухгалтерского учета в системе "1С:Предприятие".
* Константы - назначение, создание, возможные типы значений. Возможные способы для задания и получения значений констант в процессе эксплуатации системы.
* Периодические константы. Назначение и способы их создания. Какими средствами можно получить и установить значение периодической константы?
* План счетов - назначение, способы создания, возможные типы значений. Атрибуты счета, способы их определения и последующего использования при ведении бухгалтерского учета. Способы определения плана счетов на этапе конфигурирования и эксплуатации системы. Рекомендации по определению подмножеств счетов вводимых на этапе конфигурирования и на этапе использования конфигурации.
* Структура и характеристики бухгалтерского счета. Понятие субсчета. Создание многоуровневых иерархических структур бухгалтерских счетов.
* Многоплановость счетов в системе автоматизации бухгалтерского учета. Способы организации ведения бухгалтерского учета одновременно в нескольких планах счетов. Примеры эффективного использования нескольких планов счетов в системе автоматизации бухгалтерского учета.
* Понятие разделителя учета. Организация ведения учета в единой базе данных для нескольких предприятий (организаций).
* Глобальный модуль. Расположение и назначение глобального модуля и общих таблиц. Глобальные переменные, способы их определения и использования.
* Понятие процедуры, функции. Область действия имен. Передача параметров. Использование процедур глобального модуля другими компонентами системы.
* Типовые операции. Их назначение. Способы определения правил формирования реквизитов бухгалтерских проводок. Использование процедур глобального модуля при создании типовых операций. Примеры задач, для которых эффективно использование механизма типовых операций.
* Понятия: операции, проводки, корреспонденции. Журналы операций, проводок. Виды и способы отбора информации в журналах. Управление режимами отбора информации на этапе конфигурирования системы.
* Сложные проводки - назначение, примеры и порядок использования.
* Механизм контроля ссылочной целостности данных и его использование. Последствия отмены контроля ссылочной целостности. Режим поиска ссылок на объекты. Поиск ссылок на объекты средствами встроенного языка.
* Управление свойствами элементов диалога средствами встроенного языка. "Слои" и "Закладки" в формах. Атрибуты и методы контекста модуля формы для управления слоями и закладками.
* Атрибуты и методы агрегатных объектов. Отличие системных процедур и функций от методов агрегатных объектов.
* Способы определения новых типов данных. Понятие "типообразующего объекта". Примеры образования и использования новых типов данных в задачах автоматизации бухгалтерского учета.
* Агрегатный объект "Таблица значений". Использование таблиц значений в качестве структурированных или неструктурированных двумерных массивов, а также как элемента диалога формы.
* Справочники. Назначение объекта типа "Справочник". Структура справочника. Примеры использования справочников в задачах автоматизации бухгалтерского учета.
* Добавление новых элементов в справочник. Средства встроенного языка для добавления и удаления элементов справочника.
* Методы справочников для поиска элементов и упорядочения списка элементов.
* Понятие выборки. Как построить выборку элементов справочника и обработать строки этой выборки в цикле?
* Назначение периодических реквизитов справочника. Средства встроенного языка для чтения и корректировки значений периодических реквизитов.
* Многоуровневые и подчиненные справочники. Примеры использования многоуровневых и подчиненных справочников в задачах автоматизации бухгалтерского учета.
* Атрибуты и методы для обработки подчиненных элементов иерархических справочников и элементов подчиненного справочника.
* Перечисление. Характеристика объекта "Перечисление". Принципиальное отличие объекта "Перечисление" от других объектов метаданных. Примеры, иллюстрирующие преимущества в использовании перечислений по сравнению с другими объектами метаданных в задачах автоматизации бухгалтерского учета.
* Понятие объекта типа "Документ". Назначение и примеры использования механизма определения пользовательских документов в системе. Составные компоненты объекта "Документ". Средства описания свойств документа. Виды модулей описания алгоритмов формирования и обработки документов.
* Назначение и основные правила создания предопределенной процедуры "ОбработкаПроведения".
* Дата и время. Понятие периода расчета итогов и интервала видимости операций. Способы управления периодами расчета итогов и интервалами видимости бухгалтерских операций.
* Назначение и правила использования механизмов проведения и перепроведения документов. Примеры использования данных механизмов в системе бухгалтерского учета.
* Общие реквизиты документов. Правила и цели их создания. Примеры использования в задачах бухгалтерского учета.
* Организация выборок документов (или подчиненных документов). Циклическая обработка строк выборки. Способы и условия ограничения выборки документов.
* Организация выборок по строкам документов. Циклическая обработка выборки. Способы и условия ограничения выборки строк документов.
* Способы изменения времени документа, операции, проводки.
* Понятие нумератора. Назначение и примеры использования нумераторов.
* Понятие последовательности документов. Создание последовательностей документов. Граница последовательности. Методы управления последовательностями документов.
* Понятие подчиненного документа. Способы создания подчиненных документов. Способы доступа к спискам подчиненных документов. Примеры использования механизма подчиненных документов при автоматизации задач бухгалтерского учета.
* Режимы создания документов путем копирования и ввода на основании других документов. Характеристика и основные отличия указанных режимов. Примеры их эффективного использования для решения задач бухгалтерского учета.
* Организация подборов в формах документов. Какие предопределенные процедуры и методы контекста модуля формы позволяют реализовать механизм подбора?
* Бухгалтерские итоги. Виды итогов, хранимых в системе. Способы управления бухгалтерскими итогами. Методы доступа к бухгалтерским итогам для их использования.
* Применение режима запросов для доступа к бухгалтерским итогам. Назначение и структура запроса.
* Понятие "временного расчета итогов" Назначение и примеры использования. Методы встроенного языка для проведения временного расчета. Понятие актуальности временного расчета.
* Журналы. Назначение и примеры использования журналов документов в системе бухгалтерского учета. Правила включения реквизитов заголовочной и табличной частей документов в графы журнала. Способы группировки и сортировки информации в журналах. Назначение и способы использования граф отбора.
* Отчеты и обработки, их назначение в системе. Принцип отнесения создаваемого объекта метаданных к отчетам или обработкам.
* Назначение и порядок использования внешних отчетов. Включение внешних отчетов в конфигурацию системы.
* Таблицы. Понятие секции, типа секции. Допустимые типы значений данных в ячейке таблицы. Управление форматами отображения информации в ячейках таблицы. Использование неопределенного типа данных Методы встроенного языка для формирования выходных таблиц.
* Механизм детализации данных текущей ячейки отчета путем организации вызова конкретизирующего отчета.
* Понятие предопределенной процедуры встроенного языка. Примеры предопределенных процедур и их назначение.
* Назначение и структура запроса. Примеры использования запросов в решении задач бухгалтерского учета.
* Понятие "транзакции". Явное и неявное использование транзакций.
* Аналитический учет. Понятие аналитического разреза. Отличия многоуровневого и многомерного аналитического учета. Примеры организации многомерного и многоуровневого аналитического учета на различных счетах бухгалтерского учета.
* Допустимые типы данных, используемых в качестве аналитических разрезов бухгалтерских счетов. Примеры использования различных типов данных в качестве аналитических разрезов при решении задач бухгалтерского учета.

ПРИЛОЖЕНИЕ 2. ПРАКТИЧЕСКИЕ НАВЫКИ КОНФИГУРИРОВАНИЯ, КОТОРЫМИ ДОЛЖЕН ВЛАДЕТЬ АТТЕСТУЕМЫЙ ПО КОМПОНЕНТЕ "1С: БУХГАЛТЕРИЯ" ВЕРСИЙ 7.5 И 7.7

* Уметь представить задачу, подлежащую конфигурированию, в виде совокупности взаимосвязанных объектов метаданных и алгоритмов их обработки.
* Настраивать интерфейсы и наборы прав доступа, а также определять список пользователей, обладающих конкретным видом интерфейса и набором прав.
* Уметь проводить сохранение и восстановление данных.
* Проводить корректировку существующей конфигурации. Создавать, удалять и корректировать свойства объектов метаданных. Копировать объекты метаданных в рамках одной конфигурации и переносить из одной конфигурации в другую. Выполнять объединение конфигураций.
* Уметь редактировать форму объектов, создавать описание объекта.
* В редакторе диалогов:
* Создавать, копировать, изменять размеры и свойства элементов диалога;
* Создавать слои;
* Менять порядок обхода элементов диалога;
* Использовать разметку и кнопки выравнивания;
* Понимать, в чем отличие реквизитов диалога от реквизитов справочников и документов;
* Знать назначение и правильно использовать элементы диалога тип: "текст", "реквизит", "кнопка", "рамка группы", "таблица", "дерево", "список", "поле со списком", "флажок", "переключатель", "рисунок";
* Уметь строить многослойные формы диалогов, использовать закладки.
* В редакторе текста модулей:
* Использовать форматирование синтаксических конструкций;
* Проводить синтаксический контроль модуля и запросов;
* Уметь использовать режим автоматической проверки модулей.
* Осуществлять поиск фрагмента текста, в том числе в режиме "поиск во всех текстах";
* Уметь формировать список ссылок на объект метаданных и осуществлять переход по найденным ссылкам
* Создавать и использовать синтаксические шаблоны;
* Использовать "Синтакс-помощник", в том числе уметь пользоваться средствами поиска синтаксических конструкций и их копирования в текст модуля.
* Уметь выбрать файл шаблонов, который будет использоваться синтакс-помощником при работе со всеми конфигурациями на данном компьютере.
* В табличном редакторе:
* Задание свойств ячеек таблицы, их копирование и перемещение;
* При форматировании уметь пользоваться типом ячейки (текст, выражение, шаблон и фиксированный шаблон);
* Уметь включать табличный документ в форму отчета (обработки), обеспечивая режим работы, при котором табличный документ используется для ввода данных. Организовывать ввод данных в табличном документе аналогично вводу данных в диалоге формы.
* Уметь добавлять в табличный документ объект типа "Диаграмма" и управлять им средствами встроенного языка.
* Создавать, переименовывать и удалять секции таблицы;
* Создавать вложенные и внешние секции;
* Проводить настройку печати таблицы (колонтитулы, автоматическое повторение строк и колонок, параметры страницы);
* Уметь сохранять табличный документ в текстовом формате, в формате MS Excel, и в формате HTML.
* Создавать новый справочник, задавать количество уровней и признак подчинения, изменять список реквизитов справочника, определять периодические реквизиты.
* Настраивать форму элемента, форму группы и формы списка.
* Создавать и корректировать существующие планы счетов в соответствии с задачами, стоящими перед системой бухгалтерского учета.
* Создавать новые документы, определять структуру шапки и табличной части документа.
* Создавать и корректировать общие реквизиты документов.
* Настраивать форму документа, уметь добавлять вычисляемые поля и графы документов.
* Разрабатывать и отлаживать модуль документа.
* Разрабатывать процедуры изменения документом значений периодических реквизитов справочников.
* Уметь организовывать сплошную нумерацию для документов разных типов.
* Уметь организовать ввод одних документов на основании других, разрабатывать и отлаживать процедуры ввода на основании.
* Создавать подчиненные документы, средствами языка обрабатывать список подчиненных документов.
* Разрабатывать структуру и форму журналов.
* Уметь строить в журналах отборы по видам документов, по графам отбора и по общим реквизитам.
* Уметь использовать в формах журналов закладки по значениям отборов.
* Создавать новые виды перечислений, задавать для них списки значений.
* Разрабатывать новые отчеты и обработки.
* Выгружать отчеты из конфигурации во внешние отчеты и загружать отлаженные внешние отчеты как объекты метаданных в конфигурацию.
* Уметь формировать списки значений на основании данных, хранимых в учетных регистрах, журналах, справочниках для выдачи в окне выбора значения.
* Использование агрегатного объекта "Таблица значений" в качестве структурированного или неструктурированного двумерного массива, а также как элемента диалога формы.
* Уметь использовать конструкторы для проектирования новых документов, отчетов, справочников, журналов, запросов.
* Создавать и корректировать панели инструментов.
* Уметь использовать механизм OLE Automation для организации обмена данными с внешними приложениями.
* Пользоваться средствами отладчика (точки останова, табло значений, пошаговое выполнение) для отладки модулей конфигурации.
* Пользоваться средствами просмотра журнала регистрации в режимах запуска "Монитор" и "1С:Предприятие", функциями поиска, фильтрации и динамического обновления журнала.
* Использовать режим "Тестирование и исправление ИБ". Обеспечение выбора уровней проверки и исправления информационной базы, а также создания объектов по неразрешенным ссылкам и при частичной потере данных.
* Уметь пользоваться панелью окон, расположенная в нижней части главного окна программы, для быстрого переключения между открытыми окнами.


ПРИЛОЖЕНИЕ 3. ПРИМЕРНАЯ ФОРМУЛИРОВКА ПРАКТИЧЕСКИХ ЗАДАНИЙ ДЛЯ РЕАЛИЗАЦИИ НА ПК
Задание 1.
Необходимо внести дополнения в типовую конфигурацию для автоматизации задачи учета договоров займа на счете 66 "Расчеты по краткосрочным кредитам и займам".
Для этого требуется:
Создать следующие информационные объекты:
Сведения о заимодавцах - организации или физические лица, предоставляющие свои средства в долг),
Сведения об агентах - структурное подразделение или отв. лицо (сотрудник), несущее ответственность по заключению и выполнению договора займа
Сведения о заключенных договорах займа (документ, являющийся основанием совершения операций займа)
В рабочем плане счетов на счете 66 предусмотреть ведение аналитического учета в трех независимых разрезах: агентов, контрагентов и договоров займа.
Предусмотреть ввод и хранение первичных документов "Договор займа", включающего следующие реквизиты: номер договора; дата заключения договора; агент; заимодавец (контрагент); дата начала действия договора; сумма договора; валюта договора; срок договора (в месяцах и днях); дата окончания договора (рассчитывается автоматически); процент годовых, выплачиваемый заимодавцу при возврате денежных средств по окончании срока договора; процент годовых, выплачиваемый заимодавцу при возврате денежных средств при досрочном завершении договора.
Реализуйте автоматизацию выполнения следующих операций:
1.Заключение договора - ввод первичного документа "Договор займа" в базу данных.
2. Поступление денежных средств на основании банковской выписки с рублевого или валютного счета предприятия, подтверждающей факт поступления средств по договору займа, формируется запись в дебет счета денежных средств и кредит счета 66 на сумму полученного займа.
3. Завершение договора. По истечении (до истечения) срока договора формируется проводка на сумму начисленного процента в дебет счета 91 "Прочие доходы и расходы" по статье: "Проценты по договорам займа" и кредит счета 66 (соответствующий субсчет).
4. Возврат займа. Выплата суммы займа (с процентами) отражается в учете при получении выписки банка.
5. Обеспечьте формирование следующих отчетов.
Сведения о договорах займа,
завершенных до истечения установленного срока
в период с . . . по . . .
Клиент (заимодавец)
Агент
Договор
Дата начала договора
Срок займа по договору (в днях)
Фактическая дата завершения договора
Фактический срок займа
(в днях)
Сумма займа
Начислен процент
Валюта займа
АКМ
ОГЦБ
ДЗ-64/3
12.03.02
121
12.04.02
31
1000
26,75
US$





Период, за который формируется отчет, может быть произвольным и задается в диалоге пользователем.
Отчет о задержке в поступлении денежных средств
по заключенным договорам займа
в период с . . . по . . .
Клиент (заимодавец)
Агент
Договор
Дата начала договора
Дата фактического поступления денежных средств
Сумма договора
Валюта договора
Процент срочный
Процент досрочный
1
2
3
4
5
7
8
9
10
АКМ
ОГЦБ
ДЗ-64/3
12.03.02
17.03.02
1000
US$





стр. 1
(всего 2)

СОДЕРЖАНИЕ

>>