1с программное создание документа. Документ может находится в трех состояниях

Быстрая пошаговая демонстрация разработки приложения на платформе 1С:Предприятие 8.2.

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

Простая система кадрового учета

26. Теперь создайте новый документ "ПриемНаРаботу". (установите курсор на ветку Документы и щелкнув правой кнопкой мыши выберите Добавить). Задайте имя документа ПриемНаРаботу. Перейдите на закладку Данные.

27. Добавьте реквизит "ФИО", укажите ему тип значения Строка и длина 100 символов.

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

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

Далее нужно создать таким же образом, как и реквизит "ФИО", остальные реквизиты и укажите для каждого из них правильный тип:
реквизит Должность - тип "СправочникСсылка.Должности"
реквизит Оклад - тип Число, длина 10, точность 2
реквизит ДатаПриема - тип Дата

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

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

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

Для открытия модуля объекта перейдите на закладку "Прочее" и нажмите кнопку "Модуль объекта". Другой способ перейти в модуль объекта – выбрать в дереве конфигурации документ ПриемНаРаботу и кликнув правой кнопкой мышки выбрать "Открыть модуль объекта".

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

28. На панели инструментов найдите пиктограмму "Процедуры и функции" и нажав на нее выберете "ОбработкаПроведения".

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

СпрСотр = Справочники.Сотрудники.СоздатьЭлемент();
СпрСотр.Наименование = ФИО;
СпрСотр.Должность = Должность;
СпрСотр.Оклад = Оклад;
СпрСотр.ДатаПриема = ДатаПриема;
СпрСотр.Записать();

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

Кстати, часто начинающие специалисты 1С забывают вызвать Записать() . Если вы не вызовете метод Записать(), то все ваши изменения не сохранятся в базе.

Обратите внимание, что каждый оператор в языке 1С заканчивается символом ";" (точка с запятой). После слова КонецПроцедуры точки с запятой нет, потому что это не оператор, а операторная скобка (есть такое понятие в 1С). Точки с запятой нет также после слов Цикл и Тогда , но после слов КонецЦикла и КонецЕсли обязательно ставьте точку с запятой. В данной программе мы не использовали ни циклы, ни условия.

Также обратите внимание как оформляются комментарии.

// это комментарий

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

29. Закройте окно модуля и сохраните конфигурацию.

Теперь можно попробовать принять нового сотрудника по всей форме.

30. Запустите 1С в режиме 1С:Предприятие. В панели навигации выберете "Прием на работу". Перед нами откроется список документов "Прием на работу" и это список пока пустой.

31. Создайте новый документ. Откроется форма документа "Прием на работу" для ввода данных. Номер документа присвоится автоматически после его записи, дата документа - сегодняшнее число.

Введите все данные: ФИО сотрудника, укажите ему должность, оклад и дату приема на работу.

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

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

Теперь организуем правильное увольнение сотрудников с помощью кадрового приказа.

32. Создайте в Конфигураторе новый документ "Увольнение". Укажите, что он содержит реквизиты "Сотрудник" тип "СправочникСсылка.Сотрудники" и "ДатаУвольнения" тип Дата.

33. Напишите следующий текст в модуле документа в процедуре ОбработкаПроведения():

СпрСотр=Сотрудник.ПолучитьОбъект();
СпрСотр.ДатаУвольнения=ДатаУвольнения;
СпрСотр.Записать();

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

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

34. Создадим журнал "КадровыеДокументы". Для этого установите курсор на ветку "Журналы документов" в дереве конфигурации и щелкните "Добавить". Задайте имя журнала.

На закладке "Данные" укажите регистрируемые документы: "ПриемНаРаботу" и "Увольнение".

Создадим новые графы:

  • Сотрудник – для документа "ПриемНаРаботу" это реквизит "ФИО", а для документа "Увольнение" - это реквизит "Сотрудник";
  • ДатаПриемаУвольнения – для документа "ПриемНаРаботу" это реквизит "ДатаПриема", а для документа "Увольнение" - это реквизит "ДатаУвольнения".

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

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

Для сравнения скажу, что написание такого же прикладного решения в другой среде или на другом языке программирования (Visual Basic или Delphi) займет в три или даже в пять раза больше времени и сил. Что бы там ни говорили недоброжелатели, но на 1С программы пишутся гораздно быстрее.

Создадим новый документ, зададим название:

Создадим необходимые реквизиты шапки и табличной части

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

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

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

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

Однако документ еще провести не удастся, для этого его необходимо добавить в «Регистраторы» Регистра бухгалтерии «Хозрасчетный»:

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

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

И в модуле напишем следующее для этой кнопки:

Процедура ДействияФормыЖурналПроводок(Кнопка)

ОбщегоНазначения.РучнаяКорректировкаОсновнаяФорма(ЭтоНовый(),Ссылка,ЭтотОбъект);

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

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

ОбщегоНазначения.РучнаяКорректировкаОсновнаяФорма(Ложь,ЭлементыФормы.ДокументСписок.ТекущиеДанные.Ссылка,

ЭлементыФормы.ДокументСписок.ТекущиеДанные.Ссылка.ПолучитьОбъект());

Вы уже пробуете нажимать на кнопки?...

Да, они не работают:) Ведь форма отображения проводок хранится в Обработке «КорректировкаДвижений», необходимо в данной обработке указать тип реквизита «ДокументОбъект» - ваш документ:

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

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

3
Обратился ко мне клиент с задачей: Нужно запретить изменение всех видов платежных документов (ПП, РКО, ПКО) спустя 8 часов с момента проведения соответствующего документа Для реализации этого я использовал Подписку на событие: ПередЗаписьюДокуме 2
Данный код позволяет открыть список документов с установленным отбором, также можно открыть список элементов справочника с нужным отбором Форма = ОткрытьФорму("Документ.РасходнаяНакладная.Форма.ФормаСписка"); //Открываем форму ОтборВладелец =Форма 2
Обратился ко мне старый клиент и говорит - беда с нумерацией счетов! Менеджеры, кто как хотел - так и изменял номера документов. с префиксом, без, писали даже б/н. Но тут пришел новый бухгалтер и сказал - нужно с 1 октября запустить авто нумерацию 1
При доработке какого-либо процесса, бывает необходимо программно создать документ копированием по ссылке уже созданного в базе. Код позволяющий создать документ копированием: Процедура ДействияФормыДобавитьКопированием(Кнопка) колдок = 5; Если В

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

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

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

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

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

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

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

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

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

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

Второй метод изменения документа в конфигураторе в 1С - это палитра свойств документа. Открыть ее можно, нажав на «Свойства объекта» в меню или же воспользовавшись комбинацией Alt+Enter на клавиатуре. Окно «Дополнительно», которое тоже используют для редактирования, можно вызвать в контекстном меню объекта.

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

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

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

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

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

Скопировать документ в конфигураторе 1С можно, выделив его и нажав на клавиатуре Ctrl+C. После этого его можно будет вставить в другую базу данных, если нажать Shift+Insert. Также в некоторых конфигурациях можно выполнить копирование, просто перетянув документ мышью.

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

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

Задачи:

    познакомиться с объектом Документ конфигурации 1С: Предприятие 8.1;

    научиться разрабатывать формы документов;

    научиться работать с модулями конфигурации.

Порядок выполнения работы

Запустите конфигуратор: выберите Пуск | Программы | 1С:Предприятие 8.0 | Конфигуратор.

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

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

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

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

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

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

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

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

Оперативное и неоперативное проведение

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

С оперативным проведением документов связано понятие оперативной отметки времени.

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

Если последняя оперативная отметка меньше текущего времени, в качестве новой оперативной отметки принимается текущее время.

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

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

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

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

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

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

Типообразующие объекты

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

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

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

Рисунок 2.1 – Создание реквизита документа. Типообразущие виды данных

    Создадим документ: выберите на дереве объект Документы , выберите Добавить , в поле Имя введите: ПриходнаяНакладная , в поле Синоним введите ПриходнаяНакладная .

    Создадим реквизит документа: выберите закладку Данные , выберите Реквизиты , МП, Добавить , в поле Имя введите Склад , в списке Тип выберите СправочникСсылка.Склады .

Рисунок 2.2 – Создание реквизита табличной части документа

    Создайте табличную часть: выберите Табличные части, МП, Добавить, в поле Имя введите Материалы.

    Материалы, МП, Добавить, выберите Реквизит табличной части , в поле Имя введите Материал, в поле Тип данных – СправочникСсылка.Номенклатура .

    Создайте реквизиты табличной части: выберите табличную часть Материалы , МП , Добавить , выберите поле Имя введитеКоличество, в списке Тип выберите Число , выберите длину 15 , точность – 3 , неотрицательное .

    Создайте для табличной части Материалы :

    реквизит Цена с типом Число , длиной 15 , точностью 2 , неотрицательное ,

    реквизит Сумма с типом Число , длиной 15 , точностью 2 , неотрицательное .

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

Рисунок 2.3 – Добавление нового документа

    Введите данные в документ: выберите Операции | Документы , выберите документ ПриходнаяНакладная , нажмите Insert , заполним ее, например, материалами для ремонта телевизоров Строчный трансформатор GoldStar, Строчный трансформатор Samsung, Транзистор Philips , нажмите ОК .

Рисунок 2.4 – Документ Приходная накладная

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

Рисунок 2.5 – Документ Приходная накладная-2

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



Просмотров