1с программирование работа с документами


Групповое перепроведение документов в 1С:Бухгалтерия 8.3, редакция 3.0

2016-12-07T16:57:01+00:00

В этом уроке мы изучим всё, что нужно знать бухгалтеру о проведении документов в 1с, а именно:

Итак, поехали!

Что такое проведение документа и зачем оно нужно?

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

Рассмотрим простой пример.

Пусть мы создали новый документ "Поступление наличных", указав в нём вид операции "Получение наличных в банке" и сумму 50 000 рублей:


Но считается ли этот документ проведенным? Конечно, нет. Чтобы убедиться в этом нажмём кнопку "ДтКт", которая покажет нам проводки документа:

В ответ мы получим сообщение о том, что документ ещё не проведён и проводки по нему смотреть рано.

А если нет проводок, то и в бухгалтерском учёте (например, в оборотно-сальдовой ведомости) мы эти поступившие 50 000 рублей никогда не увидим.

И в журнале этот документ будет без зелёной галочки:


Теперь проведём документ, нажав кнопку "Провести":


И снова проверим появились ли проводки (кнопка "ДтКт"):


Проводки появились и документ с этого момента считается проведённым.

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

Что происходит при нажатии кнопки "Записать" в проведенном документе?

Многие знакомые мне бухгалтеры до конца не понимают как работает кнопка "Записать", когда мы нажимаем её в уже проведённом документе. Перепроводится при этом документ или просто сохраняется с новыми данными, но проводки остаются старыми?

Чтобы было понятнее давайте рассмотрим 2 случая.

Мы работаем в не проведенном документе

При нажатии кнопки "Записать ": документ сохраняется, но не проводится.

При нажатии кнопки "Провести ": документ сохраняется, а затем проводится (формируются проводки).

Мы работаем в уже проведенном документе

При нажатии кнопки "Записать

При нажатии кнопки "Провести ": документ сохраняется, а затем проводится (старые проводки удаляются и формируются новые).

Вывод

Если документ уже проведён, то никакой разницы между кнопками "Записать" и "Провести" нет. Они делают одно и то же - перепроводят документ.

Можно ли изменить проведенный документ без его перепроведения?

Во-первых, зачем это может понадобиться? Ну, например, нужно изменить какой-нибудь несущественный реквизит в уже закрытом периоде.

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

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

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

Ответ для пользователей: нет, нельзя. Большинство (если не все) типовых документов в "тройке" заточены на то, что формируют проводки заново при изменении и записи документа даже программным способом!

Ответ для программистов: используйте вот такой код при программном сохранении измененного документа:

Док. ОбменДанными Истина ; Док. Записать() ;

Как перепровести все документы по организации за период?

Когда речь идёт о текущем (ещё не закрытом) периоде я рекомендую поступать именно так - проводить вообще все документы разом за период по организации.

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

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

Заходим в раздел "Операции" пункт "Групповое перепроведение документов":


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


Наконец, нажимаем кнопку "Выполнить" и дожидаемся окончания процесса.

Как перепровести не все документы, а только определенного вида?

Если же у нас есть веские причины проводить не все документы, а только определенного вида; или нам требуется провести только не проведенные документы - тогда нам на помощь придёт более мощный и гибкий инструмент.

Открываем меню "Все функции" ():

В открывшемся диалоге раскрываем пункт "Стандартные" и в нём выбираем "Проведение документов":

Нажимаем кнопку "Открыть". Открылась встроенная в 1с обработка для проведения документов:


Здесь можно выбрать:

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

Выбираем нужное и нажимаем кнопку "Провести".

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

В общем прекрасная обработка, но если вам нужно проводить ещё и отдельно по организациям, то возможно вы захотите познакомиться с ещё более изощрённым способом

Самый изощрённый способ перепроведения на случай, если в базе несколько организаций

Внимание! Этот вариант предназначен для достаточно опытных пользователей. Если вы пользуетесь этой возможностью в первый раз - я настоятельно рекомендую создать резервную копию базы перед этим.

Покажу на примере.

Пусть у нас в базе много организаций и мы хотим перепровести уже проведенные документы реализации за 1 квартал 2013 года только по организации ООО "Юпитер".

Ни одним из вышеперечисленных способов мы этого сделать не сможем.

Поэтому открываем меню "Все функции" ():

В открывшемся окне раскрываем пункт "Обработки" и находим там "Групповое изменение реквизитов":


Открываем её.

В пункте "Выбор элементов для изменения" указываем "Реализация (акты, накладные":

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


В данном случае я указал, что нам нужны только уже проведенные документы по организации Юпитер за 1 квартал 2013 года.

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

Для работы сценариев необходимо подключить сборки:

EleWise.ELMA.Integration1C

Microsoft.CSharp

и пространства имен:

Using EleWise.ELMA.Integration1C; using EleWise.ELMA.Integration1C.Data; using EleWise.ELMA.Integration1C.V81; using EleWise.ELMA.Model.Common; using EleWise.ELMA.Model.Entities; using EleWise.ELMA.Model.Managers; using EleWise.ELMA.Model.Types.Settings; using EleWise.ELMA.Services;

Для системы 1С версии 8.х

Для системы 1С версии 8.х используется функция «СоздатьДокумент». Необходимо заполнить атрибуты Номер и Дата:

Var newObject = docRef.СоздатьДокумент(); newObject.Номер = "000124"; newObject.Дата = "18.12.2013"; newObject.Записать();

При записи можно указать следующие два параметра:

1. Для параметра «Режим записи документа» — доступны следующие режимы:

Запись (по умолчанию)

ОтменаПроведения

Проведение

Пример того, как передавать параметр:

NewObject.Записать(РежимЗаписиДокумента.Запись);

2. Для параметра «Режим проведения документа» — доступны следующие режимы:

Неоперативный (по умолчанию)

Оперативный

Пример того, как передать оба параметра «Режим записи документа» и параметра «Режим проведения документа»:

NewObject.Записать(РежимЗаписиДокумента.Запись, РежимПроведенияДокумента.Неоперативный);

Редактирование документа

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

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

Для системы 1С версии 7.7

Создание, проведение и сохранение документа

Используется функция «Новый»

DocRef.Новый(); docRef.УстановитьАтрибут("Номер","000124"); docRef.УстановитьАтрибут("Дата","20.12.2012"); docRef.Записать();

Если нужно провести документ, то после метода «Записать» нужно вызвать метод «Провести(‘Режим’, ’Знач’)» , где ’Режим’ является необязательным параметром и принимает значения от 0 до 3:

  1. проводить документ без сдвига (по умолчанию)
  2. проводить не проведенный документ реальным временем
  3. перепроводить проведенный документ реальным временем
  4. проводить любой (не проведенный, проведенный) документ реальным временем

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

Редактирование документа

Чтобы выбрать значение для редактирования можно использовать метод ВыбратьПоНомеру(‘Номер’, ’Дата’). Отметим, что в данном случае Дата — обязательный параметр.

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

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

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

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

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

Следующий момент. В типовых программах (1С: УПП 8 и 1С: УТ 8) программисты предусмотрели функции контроля всевозможных конфликтов, используя режим проведения документов. К примеру, для выполнения проведения операции реализации товаров программа осуществляет контроль достаточности запаса товаров на складе.

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

Зачем нужны документы?

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

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

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

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

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

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

Состав документа

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

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

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

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

Проведение документа

Некоторые документы могут проводиться . С точки зрения пользователя, "провести" документ означает "пустить его в дело". С точки зрения программиста, при проведении документа сработает модуль проведения документа (процедура ОбработкаПроведения ). Именно там определяются все действия, выполняемые при проведении документа. Например, при проведении документа "Приказ о приеме на работу" сработает модуль этого документа, который в справочник Сотрудники добавит нового сотрудника.

Атрибуты документов (реквизиты)

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

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

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

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

Журналы документов

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

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

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

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

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

У журнала документов есть экранная форма, где можно настраивать отображаемые колонки. Можно создавать дополнительные колонки, которые будут отображать информацию из документов. Например, в журнале ПриказыКадровые удобно сразу видеть, к какому сотруднику относится каждый документ, для этого создается Графа журнала Сотрудник.

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

хорошую работу на сайт">

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Введение

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

Разработка будет происходить в режиме Конфигуратора «Обычное приложение».

1. Практическая работа: Справочники

автоматизирование конфигуратор справочник документ

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

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

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

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

На основании имени платформа автоматически создаст синоним - «Клиенты».

Все подряд свойства объекта конфигурации Справочник мы пока настраивать не будем, нас вполне удовлетворят те значения, которые система предлагает для них по умолчанию. Поэтому перейдем на закладку «Данные». Длина кода 5 символов - это от 0 до 99999, то есть сто тысяч элементов. Для нашего небольшого OOO «Наша фирма» этого вполне достаточно. Перейдем к длине наименования. 25 символов для нас явно мало, увеличим длину наименования до 50.

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

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

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

Вернемся в конфигуратор и создадим новый объект конфигурации Справочник. Назовем его «Сотрудники».

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

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

Создадим реквизиты табличной части «ТрудоваяДеятельность»:

· «Организация» - тип Строка, длина 100,

· «НачалоРаботы» - тип Дата, состав даты - «Дата»,

· «ОкончаниеРаботы» - тип Дата состав даты - «Дата»,

· «Должность» - тип Строка, длина 100.

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

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

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

Создадим две группы в корне справочника: «Материалы» и «Услуги» (меню Действия | Новая группа):

В группе «Материалы» создадим пять элементов:

· «Строчный трансформатор Samsung»,

· «Строчный трансформатор GoldStar»,

· «Транзистор Philips 2N2369»,

· «Шланг резиновый»,

· «Кабель электрический».

В группе «Услуги» тоже создадим несколько элементов - услуги по ремонту телевизоров:

· «Диагностика»,

· «Ремонт отечественного телевизора», и услуги по установке стиральных машин:

· «Подключение воды»,

· «Подключение электричества».

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

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

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

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

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

Таким образом, теперь мы можем обозначить две характерные особенности предопределенных элементов:

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

· предопределенные элементы являются объектами базы данных, которые нельзя удалить в режиме 1С: Предприятия.

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

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

2. Практическая работа: Документы

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

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

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

Создадим новый объект конфигурации Документ. Зададим имя документа - «ПриходнаяНакладная». Создадим реквизит документа с именем «Склад» и типом СправочникСсылка.Склады.

После этого добавим табличную часть с именем «Материалы» и создадим у нее четыре реквизита:

Запустим 1С: Предприятие в режиме отладки и протестируем получившийся результат.

При заполнении документа приходится вводить сумму в каждой строке.

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

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

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

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

Вернемся в конфигуратор и откроем окно редактирования объекта конфигурации «ПриходнаяНакладная».

В этом окне нас интересует закладка «Формы». Как мы видим, ни одна из основных форм документа пока не задана.

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

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

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

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

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

Среди событий, связанных с полем ввода, найдите событие «При изменении». Это событие возникает после изменения значения поля ввода.

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

В модуль формы в созданную процедуру добавим следующий программный код:

СтрокаТабличнойЧасти.Сумма=СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена

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

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

Во второй строке вычисляется сумма как произведение количества и цены. Объект СтрокаТабличнойЧасти.<имя> позволяет обратиться к данным конкретной колонки, указав имя колонки в качестве свойства объекта (например, СтрокаТабличнойЧасти.Количество).

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

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

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

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

Создадим объект конфигурации Общий модуль в ветке Общие | Общие модули и назовем его «РаботаСДокументами». Он будет содержать следующий текст:

СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;

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

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

Затем в модуле нашей формы изменим текст нашего обработчика:

Процедура МатериалыКоличествоПриИзменении(Элемент)

СтрокаТабличнойЧасти=ЭлементыФормы.Материалы.ТекущиеДанные

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

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

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

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

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

Создается отдельная процедура (функция), выполняющая необходимые действия;

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

Из каждого обработчика вызывается требуемая процедура (функция).

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

ПроцедураМатериалыЦенаПриИзменении(Элемент)

СтрокаТабличнойЧасти=ЭлементыФормы.Материалы.ТекущиеДанные РассчитатьСумму(СтрокаТабличнойЧасти);

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

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

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

1. создать новый объект конфигурации Документ «ОказаниеУслуги» с реквизитами:

2. создать табличную часть этого документа «ПереченьНоменклатуры» с реквизитами:

· «Количество» тип Число, длина 15, точность 3, неотрицательное,

· «Цена» тип Число, длина 15, точность 2, неотрицательное,

· «Сумма» тип Число, длина 15, точность 2, неотрицательное.

3. создать основную форму документа,

4. для полей ввода колонок «Количество» и «Цена» создать обработчик

5.обработать события «ПриИзменении» - вызов процедуры «РассчитатьСумму» из общего модуля «РаботаСДокументами».

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

3. Практическая работа: Регистр Накопления

Казалось бы, что все необходимое мы с вами уже создали: у нас есть что расходовать и приходовать (справочники) и у нас есть чем расходовать и приходовать (документы). Осталось только построить несколько отчетов и автоматизация OOO «Наша фирма» будет закончена. Однако это не так.

Во-первых, путем анализа документов можно, конечно, получить требуемые нам выходные данные, но представьте, что завтра OOO «Наша фирма» решит немного изменить свои бизнес-процессы и нам потребуется ввести в конфигурацию еще один документ (или несколько документов!). Например, сейчас мы полагаем, что товары поступают в OOO и затем расходуются. Руководство захотело усилить материальный контроль и решило приходовать товары на основной склад организации и затем выдавать их материально ответственным лицам. В этом случае нам придется добавить в конфигурацию еще один документ, который будет фиксировать перемещение материалов между основным складом и материально ответственными лицами. И очевидно, нам придется переработать все отчеты, которые были созданы к этому моменту, с тем, чтобы они учитывали изменения, вносимые новым документом. А представьте, если в нашей конфигурации не два, а двадцать документов?!

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

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

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

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

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

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

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

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

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

Создадим измерения регистра:

Затем создадим ресурс

«Количество» с длиной 15 и точностью 3.

В результате этих действий регистр «ОстаткиМатериалов» должен иметь следующий вид:

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

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

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

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

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

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

Нажмем «ОК» и посмотрим, какой текст сформировал конструктор в модуле объекта:

Обратите внимание, что по умолчанию конструктор предлагает нам создавать движения прихода (символ «+» рядом с названием регистра) по регистру «ОстаткиМатериалов». Это нас вполне устраивает, ведь документ «ПриходнаяНакладная» и должен приходовать материалы.

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

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

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

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

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

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

Посмотрим, как это работает. Запустим 1С:Предприятие в режиме отладки и откроем одновременно два окна: список документов «ПриходнаяНакладная» и список регистра накопления «ОстаткиМатериалов».

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

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

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

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

Размещено на Allbest.ru

...

Подобные документы

    Характеристика предметной области. Загрузка системы "1С: Предприятие 8.2". Обработка и учет информации о книгах, работниках и читателях. Создание и изменение подсистем, справочников, документов, регистров накопления, регистра сведений, модулей, отчетов.

    курсовая работа , добавлен 22.01.2016

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

    курсовая работа , добавлен 27.12.2014

    Анализ предметной области. Разработка информационной системы учёта бракованной продукции в "1С: Предприятие 8.2". Создание констант, документов, плана счетов, справочников, отчётов, регистров накопления. Характеристика пользовательского интерфейса.

    курсовая работа , добавлен 19.10.2015

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

    курсовая работа , добавлен 13.01.2015

    Изучение компьютерных систем бухгалтерского учета на примере комплексных систем масштаба крупного предприятия (типа 1C:Предприятие). Разработка конфигурации для автоматизации фирмы ООО "Профессионал". Создание справочника, документа, регистров и отчетов.

    курсовая работа , добавлен 05.02.2013

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

    курсовая работа , добавлен 29.07.2013

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

    курсовая работа , добавлен 28.07.2015

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

    контрольная работа , добавлен 20.09.2014

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

    лабораторная работа , добавлен 04.12.2010

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

Выбор редакции
СИТУАЦИЯ: Работник, занятый во вредных условиях труда, был направлен на обязательный периодический медицинский осмотр. Но в назначенное...

Федеральный закон № 402-ФЗ от 06.12.2011 в статье 9 предусматривает для коммерческих предприятий свободный выбор форм первичной...

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

Сведений о семье в биографии политолога Сергея Михеева крайне мало. Зато карьерные достижения помогли снискать, как поклонников...
Президент Института Ближнего Востока Евгений Сатановский в ходе беседы с журналистами во время представления своей книги «Диалоги»,...
В истории Новосибирской области - история нашей страны. Все эпохи здесь… И радующие археологов древние поселения, и первые остроги, и...
ИСТОЧНИК: http://portalus.ru (c) Н.Л. ШЕХОВСКАЯ, (c) Более полувека назад, предвидя суть грядущих преобразований в России,...
30 января опубликован Приказ налоговой службы No ММВ-7-11/19@ от 17 января 2018 г. На основании этого с 10 февраля 2-НДФЛ 2018 заполняют...
В настоящее время страхователи обязаны сдавать в Пенсионный фонд следующую отчетность:Расчет по форме РСВ-1 – ежеквартальный расчет по...