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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

При проектировании конфигурации 1С:Предприятия весьма важным моментом для понимания является процесс проведения документа.

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

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

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

Запись движений регистров оперативного учета;

Запись данных в журнал расчетов;

Запись бухгалтерских операций и проводок.

Заметим, что все перечисленные действия должны выполняться специальными средствами, ориентированными именно на использование в процессе проведения документа. Например, запись значения периодического реквизита справочника должна выполняться методом "УстановитьРеквизитСправочника", а не методами объекта "Периодический".

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рассмотрим подробнее эти ситуации. На приведенных ниже схемах обозначена ось времени с отметками моментов перехода на новую дату, времени Точки

Актуализации (ТА ), времени ввода нового документа (Новый документ).

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

Значкомна схемах обозначены новые документы, которые проводятся.

Значкомна схемах обозначены существующие проведенные документы, которые

находятся за моментом ТА (они не учтены в остатках регистров).

Дата документа меньше ТА

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



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

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

"Дата документа меньше ТА! Провести документ задним числом?"

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

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

После данного документа существуют проведенные документы

На рисунке приведена схема ситуации, когда документ проводится той же датой, что и дата ТА, но время документа меньше времени ТА и между документом и ТА существуют ранее проведенные документы.



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

Пользователю предлагается выбрать один из двух вариантов:

  • Провести документ задним числом.
  • Изменить время документа.

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

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

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

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

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

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

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

Кроме того, существует возможность регулировать проведение документов (проводить в реальном времени или задним числом) в модуле формы документа средствами встроенного языка (при использовании метода "Провести"). В этом случае, существует специальная возможность проводить в реальном времени уже проведенный документ. При этом, фактически, обеспечивается перепроведение документа в реальном времени (с переносом его за ТА). Очень важно, что в этом случае и удаление существующих движений и формирование новых выполняется в единой транзакции. Например, в типовой конфигурации "Торговля и склад" (редакция 8) этот механизм используется для предварительного проведения расходной накладной. Фактически, пользователь может несколько раз выполнять проведение документа в текущей дате в реальном времени. Если бы он распроводил документ и проводил заново, то существовала бы вероятность того, что другой пользователь отгрузит "дефицитный" товар и повторное проведение уже не будет выполнено. При перепроведении в реальном времени, другие пользователи не могут "вклиниться" между удалением движений и формированием новых.

Существуют более ранние проведенные документы

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



В этом случае система выдает следующее сообщение:

"Существуют более ранние проведенные документы!"

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

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

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

При написании модуля оперативного документа следует учитывать, что использование текущих итогов регистра в процессе проведения может выполняться только если метод "ИтогиАктуальны" возвращает значение "1". При этом обращение к текущим итогам может выполняться методами объекта "Регистр" или объектом "Запрос" с периодом без указания конечной границы.

Если метод "ИтогиАктуальны" возвращает "0", то при использовании объекта "Регистр" следует выполнять временный расчет на текущий документ, а при использовании объекта "Запрос", следует указывать в качестве конечной границы текущий документ.

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

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


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



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



Дополнительные вкладки используются намного реже, но они позволяют более точно настроить работу документов 1с. Например, на вкладке «Движения» можно разрешить или запретить проведение, на вкладке «Ввод на основании» добавить документы, на основании которых можно создать текущий документ и т.д.
Итак, программно создать документ 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 года.