Что отражает такой объект конфигурации как документ
Что отражает такой объект конфигурации как документ
Объект конфигурации Документ является прикладным объектом и предназначен для описания информации о совершенных хозяйственных операциях или о событиях, произошедших в жизни организации вообще. На основе объекта конфигурации Документ платформа создает в БД информационную структуру, в которой будут храниться, например, такие документы как приходные накладные.
Поскольку документ вносит изменения в состояние учета, он всегда «привязан» к конкретному моменту времени. Это позволяет отражать в БД фактическую последовательность событий.
Следующим важным фактом, является то, что система 1С имеет механизмы, позволяющие отслеживать правильность состояния учета. Предположим, что мы изменили один из проведенных ранее документов и снова провели его «задним числом». В этом случае система способна отследить, повлияют ли внесенные нами изменения на последующие проведенные документы, и если это так, система способна перепровести необходимые документы.
Каждый документ, как правило, содержит информацию, которая более подробно описывает этот документ. Например, каждый документ «ПриходнаяНикладная» может содержать информацию о поставщике товаров, складе, на который приходуется товар. Набор такой информации является одинаковым для всех документов одного, вида и для описания такого набора используются реквизиты объекта конфигурации Документ, являющиеся подчиненными объектами конфигурации. Большинство реквизитов объекта конфигурации Документ разработчик создает самостоятельно, однако у каждого объекта конфигурации Документ существуют два поля «по умолчанию»: дата и номер документа.
Документ содержит, как правило, некоторый набор информации, которая одинакова по своей структуре, но различна по количеству, для разных документов. Так, например, каждый документ «ПриходнаяНакладная» может содержать список приходуемых товаров. Для описания подобной информации служат табличные части объекта конфигурации Документ.
Для представления документа существует несколько основных форм.
Объекты 1С «Документы»
Объект 1С «Документы» — объект метаданных, с помощью которого в прикладном решении хранится информация о совершенных хозяйственных операциях или о событиях, произошедших в «жизни» предприятия вообще. Это могут быть, например, приходные накладные, приказы о приеме на работу, счета, платежные поручения и т.д.
Каждый созданный документ в конфигурации создается для отражения своего типа операции (например, поступление товаров, списание товаров и т.д.).
Состояния документа 1С:
Значения свойств «Дата» и «Ссылка» реальных полей таблицы документа определяют его хронологическую позицию среди других документов.
Структура документа в 1С
Каждый документ 1С содержит:
Рекомендуется устанавливать строковый тип номера, так как в дальнейшем возможно потребуется указывать в номере и префикс организации.
Таким образом, документы могут отличаться друг от друга не только номером, но и своим положением на временной оси (моментом времени). В результате всегда можно сказать, какая из двух операций была совершена раньше.
Пример программного получения момента времени:
Возможные значения свойства «Периодичность»:
Реквизиты и табличные части документа 1С
Система 1С поддерживает:
Иногда возникают ситуации, когда для нескольких видов документов необходима сквозная нумерация. Для этих случаем в системе предусмотрен такой объект как нумератор.
Проведение документа 1С
Важным свойством документа является возможность его проведения:
Если флаг «Проведен» у документа установлен в «Истина», то для системы это означает, что документ проведен (в общем списке такие документы выделены соответствующей пиктограммой). С точки зрения логики программы проведенный документ может влиять на отчетность (финансовый результат компании).
Когда происходит интерактивное или программное проведение срабатывает процедура » ОбработкаПроведения ()», которая находится в модуле объекта документа.
Объекты конфигурации
Объекты конфигурации — это составные элементы, «детали», из которых складывается любое прикладное решение.
Они представляют собой проблемно-ориентированные объекты, поддерживаемые на уровне технологической платформы. По большому счету задача разработчика заключается в том, чтобы собрать из этих объектов, как из конструктора, необходимую структуру прикладного решения и затем описать специфические алгоритмы функционирования и взаимодействия этих объектов, отличающиеся от их типового поведения.
Состав объектов, поддерживаемых технологической платформой, является результатом анализа предметных областей использования 1С:Предприятия, и выделения и классификации используемых в этих областях бизнес-сущностей. В результате этого анализа разработчик может оперировать такими объектами как справочники, документы, регистры сведений, планы счетов и пр.
Для того чтобы стандартизировать и упростить процесс разработки и модификации прикладных решений, разработчику предоставляется графический интерфейс, с помощью которого он имеет возможность описать состав объектов, используемых в конкретном прикладном решении:
На основании этого описания технологическая платформа создаст в базе данных соответствующие информационные структуры, и определенным образом будет работать с данными, хранящимися в этих структурах. Разработчику нет необходимости заботиться о том, в каких таблицах, например, должны размещаться данные, каким образом они будут модифицироваться или представляться пользователю. Все эти действия платформа будет выполнять автоматически, исходя из типового поведения используемых объектов.
Таким образом, разработчик оперирует метаданными — «данными о данных», или объектами конфигурации. Добавляя в структуру прикладного решения очередной объект конфигурации, разработчик, по сути, добавляет описание того, как будут размещаться соответствующие данные, и как они будут взаимодействовать с другими данными, хранящимися в информационной базе.
Состав объектов, которые может использовать разработчик, фиксирован и определен на уровне платформы. Разработчик не может создавать собственные виды объектов, он может оперировать только тем набором объектов, который имеется. Подобный подход к разработке прикладных решений позволяет, во-первых, стандартизировать процесс разработки, а во-вторых — обеспечить простую и быструю модификацию прикладных решений другими разработчиками или пользователями.
Состав основных объектов конфигурации, используемых в 1С:Предприятии 8, перечислен далее:
Объект конфигурации «Документ»
Объект конфигурации Документ предназначен для описания информации о совершенных хозяйственных операциях или о событиях, произошедших в жизни организации вообще. На основе объекта конфигурации Документ платформа создает в базе данных информационную структуру, в которой будут храниться, например, такие документы, как приходные накладные, или приказы о приеме на работу, или платежные поручения, или счета и т. д.
Свойства документа отличается от свойств всех остальных объектов базы данных. Документ обладает способностью проведения. Факт проведения документа означает, что событие, которое он отражает, повлияло на состояние учета. До тех пор, пока документ не проведен, состояние учета неизменно, и документ – не более чем черновик, заготовка. Как только документ будет проведен – изменения, вносимые документом в учет, могут вступить в силу и состояние учета может быть изменено.
Поскольку документ вносит изменения в состояние учета, он всегда «привязан» к конкретному моменту времени. Это позволяет отражать в базе данных фактическую последовательность событий.
Следующим важным фактом, вытекающим из двух предыдущих, является то, что система 1С:Предприятие имеет механизмы, позволяющие отслеживать правильность состояния учета. Предположим, что мы изменили один из проведенных ранее документов и снова провели его «задним числом». В этом случае система 1С:Предприятие способна отследить, повлияют ли внесенные нами изменения на последующие проведенные документы, и если это так, система способна перепровести необходимые документы.
Каждый документ, как правило, содержит информацию, которая подробнее описывает этот документ. Например, каждый документ ПриходнаяНакладная может содержать информацию о поставщике товаров, складе, на который приходуется товар, и т. д. Набор такой информации является одинаковым для всех документов одного вида, и для описания такого набора используются реквизиты объекта конфигурации Документ, являющиеся подчиненными объектами конфигурации. Большинство реквизитов объекта конфигурации Документ разработчик создает самостоятельно, однако у каждого объекта конфигурации Документ существуют два поля «по умолчанию»: Дата и Номер документа. Поскольку тип данных Дата содержит дату и время с точностью до секунды, этот реквизит и определяет в основном положение документа на оси времени.
Кроме этого, каждый документ содержит, как правило, некоторый набор информации, которая одинакова по своей структуре, но различна по количеству, предназначена для разных документов. Так, например, каждый документ ПриходнаяНакладная может содержать список приходуемых товаров. Для описания подобной информации служат табличные части объекта конфигурации Документ.
Лабораторная работа «1С Программирование»
«Управление общеобразовательной организацией:
новые тенденции и современные технологии»
Свидетельство и скидка на обучение каждому участнику
Лабораторная работа № 4
Объект конфигурации Документ предназначен для описания информации о совершенных хозяйственных операциях или о событиях, произошедших в жизни организации вообще. Как правило, в работе любой фирмы используются такие документы, как приходные накладные, приказы о приеме на работу, платежные поручения, счета и т.д. Свойства и структура этих документов описываются в объектах конфигурации Документ, на основе которых платформа создает в базе данных таблицы для хранения информации из этих документов.
Логика работы документов отличается от логики работы других объектов конфигурации. Документ обладает способностью проведения. Факт проведения документа означает, что событие, которое он отражает, повлияло на состояние учета.
Для «визуализации» документа существует несколько основных форм, которые имеют несколько вариантов названий (табл. 4.1).
Таблица 4.1. Основные формы документа.
Типы данных. Типообразующие объекты конфигурации
На предыдущем занятии, когда мы создавали реквизиты справочников или табличных частей, мы всегда указывали тип значения, которое может принимать этот реквизит. Это были примитивные типы данных: Число, Строка, Дата. Примитивные типы данных изначально определены в системе, и их набор ограничен.
Наряду с такими изначально определенными в любой конфигурации типами могут существовать типы данных, определяемые только конкретной конфигурацией.
Объекты конфигурации, которые могут образовывать новые типы данных, называются типообразующими. Эти типы данных не поддерживаются платформой изначально и существуют только в конкретном прикладном решении.
Это небольшое отступление было необходимо потому, что уже при создании первого документа мы столкнемся с использованием типов данных СправочникСсылка.Склады и СправочникСсылка.Номенклатура, которые появились в нашей конфигурации в результате создания объектов конфигурации Справочник Склады и Номенклатура.
В режиме конфигуратор:
Рис. 4.1. Справочник Склады
После этого добавим в документ табличную часть с именем Материалы. Для этого нажмем кнопку Добавить табличную часть над списком табличных частей документа. Кроме имени табличной части установим свойство Проверка заполнения в значение Выдавать ошибку.
Рис. 4.2. Свойства: Материалы
Создадим реквизиты табличной части Материалы. Для этого нажмем кнопку Добавить реквизит в разделе описания табличных частей документа:
Материал, тип СправочникСсылка. Номенклатура;
Количество, тип Число, длина 15, точность 3, неотрицательное;
Цена, тип Число, длина 15, точность 2, неотрицательное;
Сумма, тип Число, длина 15, точность 2, неотрицательное.
Для каждого реквизита табличной части также установим свойство Проверка заполнения в значение Выдавать ошибку.
— На закладке Нумерация: убедимся, что свойство Авто-нумерация включено.
— В дереве объектов конфигурации выделим ветвь Подсистемы, вызовем ее контекстное меню и выберем пункт Все подсистемы. В открывшемся окне в списке Подсистемы выделим подсистему УчетМатериалов: включим видимость у команды Приходная накладная: создать, в группе Панель действий.Создать.
В режиме 1С:Предприятие
Запустим 1С:Предприятие в режиме отладки и протестируем получившийся документ. В открывшемся окне 1С:Предприятия мы видим, что в панели навигации разделов Бухгалтерия и Учет материалов появилась команда Приходные накладные для открытия списка приходных накладных.
Рис. 4.3. В режиме 1С:Предприятие
Документ будет сохранен и проведен, ему будет присвоен автоматически сгенерированный системой номер и текущее время проведения документа.
Рис. 4.4. Приходные накладные
Автоматический пересчет суммы в строках документа
При заполнении документа приходится вводить сумму в каждой строке. Это неудобно, и возникает естественное желание автоматизировать работу документа так, чтобы сумма вычислялась автоматически каждый раз при изменении цены или количества материалов в строке.
Это совсем не сложно, и для этого нам потребуется сначала создать собственную форму документа, а затем воспользоваться возможностями встроенного языка.
В режиме конфигуратор:
Листинг 4.1. Форма документа
Одна процедура для обработки нескольких событий
Теперь хотелось бы и для поля Цена и Сумма сделать то же самое.
Поэтому лучше будет поместить расчет суммы в некоторое «общедоступное» место, чтобы разные документы, имеющие аналогичные реквизиты табличной части, могли использовать этот алгоритм. Для описания таких «общедоступных» мест служат объекты конфигурации Общий модуль, расположенные в ветке Общие > Общие модули. Процедуры и функции, содержащиеся в этих модулях, могут быть доступны для любых объектов конфигурации.
В режиме конфигуратор:
Добавим объект конфигурации Общий модуль. Для этого раскроем ветвь Общие в дереве объектов конфигурации, нажав на + слева от нее. Затем выделим ветвь Общие модули и нажмем кнопку Добавить в командной панели окна конфигурации:
Рис. 4.5. Общие модули
Назовем его РаботаСДокументами и установим в его свойствах флажок Клиент (управляемое приложение), а флажок Сервер снимем. Это означает, что экземпляры этого модуля будут скомпилированы в контексте тонкого клиента и в контексте веб-клиента
Рис. 4.6. Свойства: РаботаСДокументами
Внесем в общий модуль следующий текст:
Процедура РассчитатьСумму(строкаТабличнойЧасти) Экспорт
СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена;
КонецПроцедуры
Изменим текст обработчика. Для этого вернитесь в модуль формы документа, выберите поле КоличествоПриИзменении.
Создадим обработчик события ПриИзменении для поля табличной части МатериалыЦена так же, как мы делали это для поля Материалы Количество, и повторим в нем вызов процедуры РассчитатьСумму из общего модуля.
— Листинг процедуры «МатериалыЦенаПриИзменении()»
В режиме 1С: Предприятие:
Запустим 1С: Предприятие в режиме отладки и убедимся, что теперь сумма в строках табличной части документов ПриходнаяНакладная пересчитывается как при изменении количества, так и при изменении цены.
Документ «Оказание услуги»
В режиме конфигуратор:
Добавим новый объект конфигурации Документ и назовем его ОказаниеУслуги.
— На закладке Основные : Представление объекта задавать не будем, вместо него будет использоваться Синоним объекта. Представление списка зададим как Оказание услуг.
— На закладке Подсистемы : отметим, что документ будет доступен в подсистемах Оказание услуг и Бухгалтерия.
— На закладке Данные:
создадим реквизиты документа:
Склад, тип СправочникСсылка.Склады. Выберем для свойства Значение заполнения предопределенный элемент Основной справочника Склады.
Клиент, тип СправочникСсылка.Клиенты. Установим свойство Проверка заполнения в значение Выдавать ошибку.
Мастер, тип СправочникСсылка.Сотрудники. Установим свойство Проверка заполнения в значение Выдавать ошибку.
Создадим табличную часть этого документа ПереченьНоменклатуры с реквизитами:
Номенклатура, тип СправочникСсылка.Номенклатура;
Количество, тип Число, длина 15, точность 3, неотрицательное;
Цена, тип Число, длина 15, точность 2, неотрицательное,
Сумма, тип Число, длина 15, точность 2, неотрицательное;
Установим для табличной части в целом и для каждого ее реквизита свойство Проверка заполнения в значение Выдавать ошибку.
— На закладке Формы: создадим основную форму документа:
Для поля ПереченьНоменклатурыКоличество создадим обработчик события ПриИзменении, в котором будем вызывать процедуру РассчитатьСумму из общего модуля РаботаСДокументами.
При этом откроется модуль формы с шаблоном обработчика события ПереченьНоменклатурыКоличествоПриИзменении, который мы пока заполнять не будем, а перейдем в окно элементов формы на закладку Форма и аналогичным образом создадим обработчик события ПереченьНоменклатурыЦенаПриИзменении для поля ПереченьНоменклатурыЦена.
Далее модуль формы документа ОказаниеУслуги нужно заполнить следующим образом:
Листинг 4.2. Модуль формы документа «ОказаниеУслуги»
В заключение отредактируем командный интерфейс, чтобы в подсистеме Оказание услуг была доступна команда создания новых документов.
Для разнообразия воспользуемся другим способом. Откроем окно редактирования объекта конфигурации Подсистема ОказаниеУслуг и нажмем кнопку Командный интерфейс.
В открывшемся окне отразятся все команды выбранной подсистемы.
В группе Панель действий.Создать включим видимость у команды Оказание услуги: создать
Рис. 4.7. Видимость у команды Оказание услуги: создать
В режиме 1С:Предприятие:
В панели действий раздела Оказание услуг вызовем команду создания документа Оказание услуги и заполним его следующим образом:
Рис. 4.8. Оказание услуги
Обратите внимание, что склад Основной подставляется по умолчанию, а для полей Мастер и Клиент выполняется проверка заполнения. А также при вводе цены и количества в табличную часть документа Оказание услуги сумма пересчитывается по нашему алгоритму.
Форма как программный объект
Помимо того что форма внутри своего модуля предоставляет доступ к различным частям конфигурации, она также доступна из других частей конфигурации как программный объект.
При этом помимо стандартных свойств и методов объекта встроенного языка УправляемаяФорма, у нее могут существовать и другие свойства и методы, определенные разработчиком.
Например, если в модуле формы ФормаДокумента документа ПриходнаяНакладная описана экспортируемая процедура, то может быть использован следующий вызов этой процедуры:
Как понять работу кода на встроенном языке
Теперь мы покажем два способа, как самому разобраться с множеством незнакомых свойств и методов объектов конфигурации, чтобы в будущем самостоятельно изучать фрагменты кода или создавать свои собственные процедуры на встроенном языке.
Синтакс-помощник — инструмент, созданный для помощи разработчику, содержащий описание всех программных объектов, которые использует система, их методов, свойств, событий и пр.
Чтобы открыть синтакс-помощник, нужно нажать соответствующую кнопку на панели инструментов конфигуратора или выполнить команду главного меню Справка > Синтакс-помощник, или с помощью горячей клавиши (Ctrl + F1).
Анализ кода с помощью синтакс-помощника:
Пользоваться синтакс-помощником удобно в тех случаях, когда нужно разобраться в уже написанном незнакомом коде.
Есть также еще одна полезная возможность использования синтакс- помощника. Можно ограничить состав объектов, которые будут отображаться в нем. Так как мы находимся на клиенте, в форме, имеет смысл ограничиться только объектами встроенного языка, доступными в режимах Тонкий клиент и Веб-клиент. Для этого нужно выполнить команду главного меню Сервис > Параметры или нажать кнопку Открыть режим настройки параметров, находящуюся над окном описания объектов синтакс- помощника. На закладке Справка окна Параметры можно снять или поставить отметку у нужных режимов исполнения.
Анализ кода с помощью отладчика
пошаговое выполнение модуля,
расстановка точек останова,
прерывание и продолжение выполнения модуля,
возможность отладки нескольких модулей одновременно,
вычисление выражений для анализа состояния переменных,
просмотр стека вызовов процедур и функций,
возможность остановки по возникновению ошибки,
возможность редактирования модуля в процессе отладки.
Как правило, термин объект употребляется в одном из трех контекстов:
Говоря о конфигурации, термином объект конфигурации мы обозначаем некоторую совокупность описания данных и алгоритмов работы с этими данными. Например, в конфигурации может существовать объект Справочник Сотрудники.
Когда мы говорим о базе данных, термином объект мы обозначаем всего лишь некий элемент такой информационной структуры. Характерной особенностью такого элемента является то, что на него (как на совокупность данных) существует ссылка, которая может являться значением какого-либо поля другой информационной структуры.
Если же мы начинаем говорить о встроенном языке и о том, каким образом средствами встроенного языка работать со справочниками, то термином объект мы обозначаем тип данных, позволяющий получить доступ к данным и обладающий набором свойств и методов.
Система 1С:Предприятие поддерживает два варианта работы системы: файловый и клиент-серверный.
Файловый вариант работы с информационной базой рассчитан на персональную работу одного пользователя или работу небольшого количества пользователей в локальной сети. В этом варианте все данные информационной базы (конфигурация, база данных, административная информация) располагаются в одном файле.
Рис. 5.3. Файловый вариант
Система 1С:Предприятие изначально рассчитана на клиент-серверный вариант работы. Хотя сейчас вы разрабатываете свою учебную конфигурацию в файловом варианте работы, она будет работать и в клиент-серверном варианте без ваших дополнительных усилий.
Прикладные решения разрабатываются один раз и одинаково работают, что в одном, что в другом варианте. То есть переход с одного варианта на другой не требует переделки конфигурации.
Рис. 5.4. Клиент-серверный вариант
В настоящее время система 1С:Предприятие может работать со следующими серверами баз данных:


















