ОсновыРаботы_1С_Предприятие. Занятие Установка и начало работы с 1С Предприятие 8
Скачать 3.65 Mb.
|
§5.3. Журнал документов. Команды формы. Иногда бывают ситуации, когда пользователю необходимо ряд документов различного вида представить в едином списке в хронологическом порядке. В нашем случае – это перечень всех документов «Приходная накладная» и «Расходная накладная». Для таких целей используется объект «Журнал документов». Создадим новый журнал «Приходно-расходные операции», включим в подсистему «Общий отдел». На закладке «Данные» указываем перечень всех документов, которые необходимо отобразить в журнале: укажем оба наших документа (рис. 36). По умолчанию, если больше ничего не настраивать, то при загрузке журнала система динамически сформирует список, который будет в хронологическом порядке содержать дату, номер и тип документа. Если необходимо вывести какую-то дополнительную информацию, то для этого следует воспользоваться добавлением граф на вкладке «Данные» (рис. 36). Рис. 36. Журнал документов При добавлении очередной графы указывается ее имя и синоним, а в свойстве «Ссылки» – реквизиты, которые будут выбираться из документов каждого вида, входящих в журнал (рис. 36). Допустимо указание только реквизитов шапки, реквизиты табличных частей недоступны для выбора. Дополнительно следует обратить внимание, что тип графы журнала – составной. Это означает, что из различных документов в данной графе можно указать реквизиты различных типов, если это необходимо. В нашем случае создадим графы «Контрагент» и «Сотрудник», и укажем для каждого из документов соответствующие реквизиты. Запустим систему и посмотрим результат. Далее предположим, что в журнале необходимо отображать также сумму документа. Рассмотрим решение на примере документа «Приходная накладная». Для этого создадим еще один реквизит шапки в документе: «Сумма документа», тип Число, длина 15, точность 2. По той причине, что форма документа уже была ранее создана, данный реквизит автоматически на форме не появится (проверьте это, запустив систему в режиме исполнения). Для добавления вновь созданного реквизита, необходимо отрыть форму документа, в разделе «Данные формы» найти основной реквизит «Объект», в нем «Сумму документа», и перетащить его к «Элементам формы» (расположим ниже табличной части «Товары», но не в ней). Далее указанный реквизит необходимо заполнить нужным значением. Создадим специальную кнопку – команду формы, которая будет рассчитывать сумму документа и заносить ее в указанный реквизит. В области «Данные формы» откроем вкладку «Команды», далее «Команды формы». Добавим новую команду «Рассчитать сумму» и перетащим ее к элементам формы, разместив в одну строку с реквизитом «Сумма документа». По умолчанию, система все элементы формы автоматически выстраивает друг под другом. Для того чтобы изменить такое расположение, элементы необходимо группировать. Для группировки в «Элементы формы» можно добавить следующие группы: Обычная группа – для простой группировки элементов; Страницы – для создания группы, которая будет содержать несколько закладок, в каждой из которых может быть несколько элементов; Страница – отдельная закладка, создается внутри группы типа «Страницы»; Командная панель формы – для создания команд на форме на специальной панели; Так создадим обычную группу и переместим в нее элемент «Сумма документа» и кнопку «Рассчитать сумму». В панели свойств созданной группы можно настроить положение элементов, отображение заголовков и т.д. Для настройки положения элементов используется свойство «Группировка». Аналогичным образом расположим элементы формы «Дата» и «Номер» в одну строку, дополнительно изменив их заголовки. В результате всех преобразований форма должна выглядеть, как показано на рис. 37. Рис. 37. Измененная форма документа «Приходная накладная» Затем для кнопки необходимо описать механизм заполнения суммы. Для этого выбирается созданная команда формы, и в панели свойств открывается «Действие» для данной команды (на клиенте). В открывшуюся процедуру добавляем следующий код: Объект.СуммаДокумента = Объект.Товары.Итог("Сумма"); Л.10 В данном программном коде применяется функция Итог(), которая производит суммирование числовых значений в указанном столбце таблицы (столбец «Сумма»). Результат записывается в нужный реквизит. Проверьте механизм работы на практике. Темы для самостоятельного изучения: 1. Конструктор ввода документов «на основании». 2. Нумераторы документов. 3. Последовательности документов. Восстановление последовательности. 4. Макеты и печатные формы документов. Контроль знаний (выбирается 4 вопроса из 12): 5.1. В окне "Конфигурация" копирование объекта перетаскиванием... 1) невозможно 2) возможно только в пределах "своей" ветки объектов 3) возможно и в пределах "своей" ветки, и за ее пределами. При этом в отношении структуры будут скопированы только те свойства (реквизиты), которые поддерживаются классом результирующего объекта 4) возможно и в пределах "своей" ветки, и за ее пределами. При этом в отношении структуры будут скопированы все свойства исходного объекта 5.2. Конструктор управляемых форм содержит закладки... 1) Диалог, Модуль, Реквизиты 2) Форма, Модуль формы, Реквизиты 3) Диалог, Модуль, Реквизиты, Команды формы 4) Форма, Модуль, Элементы, Команды, Реквизиты, Параметры, Командный интерфейс 5) Диалог, Модуль, Реквизиты, Элементы, Параметры, Команды формы, Командный интерфейс 5.3. При наличии одного основного реквизита формы можно ли добавить еще один основной реквизит? 1) Это невозможно 2) Можно посредством назначения соответствующего значения свойства реквизита формы 3) Можно только программно, при обращении к объекту "Форма" 4) Можно посредством добавления еще одного значения к соответствующему свойству формы 5.4. Возможность системы создания "налету" форм по умолчанию в режиме "1С: Предприятие"... 1) следует использовать только в тех случаях, когда обращения к данной форме редки, поскольку "притормаживает" работу системы 2) следует использовать во всех случаях, когда не требуется выполнение программных действий в форме, и нет особых требований по отношению внешнего вида формы объекта со стороны пользователя 3) следует использовать только в тех случаях, когда форму необходимо исключить из состава основных 4) следует использовать только для объектов, обладающих простой структурой 5.5. Для чего предназначены элементы управления? 1) Для хранения данных 2) Для обеспечения возможности интерактивного изменения данных 3) Для обеспечения отображения данных 4) Верны 1 и 3 5) Верны 2 и 3 5.6. Закладки на форме могут быть расположены: 1) Только сверху 2) Только снизу 3) Только справа 4) Только слева 5) Сверху, снизу, справа и слева 6) Сверху и слева 7) Снизу и справа 5.7. Назовите основное назначение конструктора ввода документа "на основании" 1) Конструктор ввода на основании облегчает задачу разработки процедуры, с помощью которой будет формироваться новый объект при вводе "на основании" 2) Конструктор ввода документа "на основании" в системе отсутствует 3) Конструктор ввода на основании облегчает задачу формирования движений в регистрах учета "на основании" данных документа 4) Конструктор ввода на основании облегчает задачу разработки структуры другого документа "на основании" структуры "документа-основания" 5.8. Назовите основное назначение объектов типа «Документ»? 1) Предназначены для хронологического отражения в системе событий предметной области, например, хозяйственных операций предприятия, контактов с покупателями 2) Предназначены для отражения в системе условно-постоянной информации, например, карточек контрагентов 3) Предназначены только для отражения хозяйственных операций в регистрах учета, например, в регистрах бухгалтерии 4) Предназначены только для печати на бумажных носителях унифицированных форм, например, счетов-фактур, расходных накладных 5) Предназначены только для обработки больших объемов данных в целях получения информации нового качества, например, формирование книги покупок, книги продаж по учету НДС 5.9. Какое максимальное количество реквизитов документа позволяет определить система «1С: Предприятие 8»? 1) Количество реквизитов документа не ограничено 2) Максимальное количество реквизитов ограничивается в свойстве "Количество реквизитов" 3) Количество реквизитов документа не ограничено, но при этом реквизитов ссылочного типа не может быть больше 10 4) Количество реквизитов зависит от варианта работы с информационной базой. В файловом - до 50 реквизитов, в клиент-серверном - неограниченно 5.10. Какое максимальное количество табличных частей документа позволяет определить система «1С: Предприятие 8»? 1) Количество табличных частей документа не ограничено 2) Максимальное количество табличных частей ограничивается в свойстве "Количество табличных частей" 3) У документа может быть только одна табличная часть 4) Количество табличных частей зависит от варианта работы с информационной базой. В файловом - до 50, в клиент-серверном - неограниченно 5) У документа может быть не больше 255 табличных частей 5.11. Значения каких реальных полей таблицы документа определяют его хронологическую позицию среди других документов? 1) Значения свойств "Дата" и "Ссылка" 2) Достаточно значения свойства "Дата" 3) Значения свойств "Дата" и "Время" 4) Достаточно значения свойства "Номер" 5) Достаточно значения свойства "Ссылка" 6) Значения свойств "Дата" и "Номер" 5.12. В документе описаны реквизиты: Контрагент (ссылка на справочник Контрагенты) и Договор (ссылка на справочник Договора, справочник Договора подчинен справочнику Контрагенту, подчинение элементам). Какую настройку Представления полей формы нужно выбрать, чтобы при выборе Контрагента в поле Договор подставлялись только те договора, которые относятся к выбранному Контрагенту? 1) В настройке "Параметры выбора" установить отбор по владельцу 2) В настройке "Связи параметры выбора" установить отбор по владельцу 3) В настройке "Связь по типу" установить связь по типу с полем Контрагент 4) Нет правильных ответов Ответы к разделу: 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 3 4 1 2 5 5 1 1 1 1 1 2 Занятие 6. Регистры накопления. Проведение документов §6.1. Регистры накопления Документ отражает факт хозяйственной деятельности на предприятии. Однако на текущий момент просто создан ряд документов с информацией, не более. Нет информации о том, сколько всего товара поступило, сколько всего товара продано. Также отсутствует анализ того, могли ли мы продавать товар (вдруг его не было на складе); нет анализа того на какую сумму мы продали товар, какую выручку получили, и сколько прибыли (выручка минус себестоимость) и т.д. На данный момент у нас нет никаких учетных механизмов, которые являлись бы показателями финансовой и хозяйственной деятельности предприятия, отражали бы изменение материального, финансового и т.д. состояния организации. В качестве механизмов, отражающих учет на предприятии, используется прикладной объект «Регистры накопления». Они служат для накопления информации о различных аспектах деятельности организации: сколько товара пришло, ушло, сколько есть в наличии (в количественном или стоимостном выражении); на какую сумму продали товара, какова выручка и т.д. Эти сводные, сгруппированные данные в дальнейшем можно использовать для формирования различных отчетов, бухгалтерских, финансовых и т.д. – то есть то, ради чего и разрабатывается автоматизированная система. Записи в регистрах накопления могут формировать только документы, отражающие факт хозяйственной деятельности. Здесь вводится понятие «Проведение» документа. Пока документ не проведен – он является просто «черновиком», который показывает, что определенный вид деятельности на предприятии ведется. Но, как только документ становится проведенным – это является признаком совершения (вернее, завершения) операции, которая приводит к формированию записей в регистре накопления, связанным с данным документом. Эти записи и отражают изменение состояния (материального, финансового и т.д.) на предприятии. Таким образом, только проведение документа фактически показывает, что учетные данные на предприятии изменились. В терминах «1С: Предприятие» проведение документа означает формирование «движений» (записей) в соответствующем регистре накопления. Документ, формирующий движения, называется «Регистратором» для данного регистра. Так, для ведения учета, необходимо описать соответствующие регистры накопления, и сформировать механизмы их движений. Для учета материальных ценностей (приход, расход) на предприятии создадим регистр накопления «Остатки товаров». Существует два типа регистров накопления: регистр остатков и регистр оборотов. В регистре остатков каждая запись регистра имеет соответствующий тип: приход (товары в плюс) или расход (товары в минус). Регистр накопления имеет особенность в хранении данных, заключающуюся в том, что он дополнительно хранит итоговые записи (суммарный приход, расход, оборот, остатки товаров) на конец каждого месяца. Это позволяет системе производить более быстрое извлечение требуемых данных на определенную дату. Регистр накопления типа «Обороты» не разделяет данные на приход и расход: все записи, которые формируются в регистре, накапливаются и идут «в плюс». Обороты нужны при накоплении информации, например, о выручке: никогда выручка не пойдет в минус – это те деньги, которые мы получили от продажи товара (вариант возврата товара сейчас не рассматривается, это более сложный механизм). Соответственно, в оборотном регистре не будет остатков – в нем будет информация лишь о накопленных данных за определенный период. Для ведения материального учета необходимо выбрать тип регистра «Остатки». Включим регистр в подсистемы «Отдел закупок», «Отдел продаж» и «Бухгалтерия». Перейдем к закладке Данные (рис. 38). Рис. 38. Измерения и ресурсы регистра накопления Регистры не являются типообразующими объектами, т.е. никогда нельзя указать ссылку на какую-то конкретную запись регистра. Регистр служит для хранения и быстрого извлечения данных, но не для ссылки на них. Регистр – это таблица с набором полей. Все поля делятся на: Стандартные реквизиты; Измерения; Ресурсы; Реквизиты; К стандартным реквизитам относятся поля, обязательным образом присутствующие у всех записей регистра: Период: дата записи; периодичность записи зависит от настроек регистра, для регистра накопления периодом является дата, устанавливаемая в процедуре формирования движений; Регистратор: документ, формирующий движения регистра; Номер строки: номер строки в документе-регистраторе (в табличной части), уникален в пределах регистратора; Активность: отвечает за попадание записи в виртуальные таблицы (о виртуальных таблицах позже); Вид движения: Приход/Расход для регистра типа «Остатки»; Измерения – это разрезы, в рамках которых мы храним данные. Набор измерений характеризует уникальность при идентификации конкретных учетных данных. В нашем случае измерение будет одно – «Номенклатура»: мы хотим накапливать информацию о поступлении и продаже конкретных товаров. Если бы мы, допустим, хранили товары на разных складах, то нас бы интересовало, сколько какого товара хранится на конкретном складе. Тогда вторым измерением был бы «Склад». Одно измерение для регистра накопления является стандартным и относится к стандартным реквизитам – «Период». Ресурсы – это то, что мы храним (количество товара, его себестоимость и т.д.). Для регистра накопления ресурс может быть только числового типа. Реквизиты – это некоторые дополнительные данные, вспомогательная информация, которая никак не влияет на формирование оборотов и остатков. Остатки и обороты, хранящиеся в регистре накопления, рассчитываются только в зависимости от набора измерений. Добавим измерение «Номенклатура», тип СправочникСсылка.Номенклатура, ресурсы «Количество» (длина 15, точность 2) и «Стоимость» (длина 15, точность 2) (рис. 38). Для измерения «Номенклатура» можно отметить галочку «Запрет незаполненных» - тем самым нельзя будет сформировать записи с пустым значением данного измерения. На вкладке «Регистраторы» укажем оба документа («Приходная накладная» и «Расходная накладная») в качестве документов, которые могут формировать записи регистра. «Приходная накладная» будет формировать записи «приход», «Расходная накладная» – соответственно «расход». §6.2. Процедура проведения документов Теперь необходимо в соответствующих документах описать правила формирования движений (записей регистра). Для начала опишем процедуру проведения документа «Приходная накладная». Для этого откроем окно редактирования документа и перейдем на закладку «Движения» (рис. 39). Рис. 39. Настройка движений для документа В самом верху (рис.39) располагаются общие настройки проведения. Проведение можно «Разрешить» или «Запретить». Для документов, у которых разрешено проведение, имеется специальная кнопка «Провести» на форме документа. При этом в форме списка проведенные документы помечаются зеленой галочкой на значке документа. Те документы, для которых проведение запрещено в принципе, на форме документа нет кнопки «Провести» и вообще отсутствуют какие-либо команды, связанные с проведением документа. Все документы такого вида системой автоматически помечаются как проведенные (чтобы пользователь даже не пытался их проводить). Пункт «Оперативное проведение» предназначен для использования проведения документов в режиме реального времени, т.е. текущей датой. Как правило, в большинстве учетных систем используется оперативное проведение, отличительная черта которого заключается в невозможности проведения документов будущим временем. Проведение «задним числом» допустимо, которое является уже неоперативным проведением. Если запретить оперативное проведение документов, то это приведет лишь к тому, что документы можно будет проводить как прошлой или текущей датой, так и будущей. Раздел «Удаление движений» предназначен для описания правил перепроведения документов. По умолчанию, движения (т.е. записи регистра) удаляются при отмене проведения. Если же документ перепроводится, то сохраняются старые движения и дополнительно записываются новые (измененные). Это бывает необходимо в том случае, когда нужна история формирования движений. Настройка «Удалять автоматически» приводит к тому, что все старые движения будут автоматически удаляться и замещаться новыми как при отмене проведения документа, так и при его перепроведении. При выборе «Не удалять автоматически» все движения документа будут сохраняться. Выберем автоматическое удаление движений. Ниже в окне выбираются регистры (сведений, накопления и т.д.) в которых данный документ будет формировать движения. Список выбранных регистров отображается в нижнем окне. Для настройки правил проведения документа, т.е. формирования движений, в самом простейшем случае воспользуемся конструктором движений, нажав соответствующую кнопку (рис. 40). Рис. 40. Конструктор движений документа В окне «Регистры» указывается перечень регистров, по которым формируются движения. Для добавления еще одного регистра, используется кнопка «Добавить». Следует отметить, что по одному и тому же регистру документ может формировать несколько различных движений, поэтому ничто не запрещает один и тот же регистр добавить несколько раз, и для каждого случая описать различные правила. В правом окне «Реквизиты документа» указывается перечень реквизитов, значения которых будут подставляться в измерения и ресурсы соответствующего регистра. Если требуемые реквизиты расположены в табличной части документа, то необходимо выбрать табличную часть в соответствующем пункте. Конструктор движений автоматически определяет соответствие типа данных измерения/ресурса регистра и реквизита документа. И те реквизиты, которые по типу совпадают с текущим выбранным для заполнения измерением/ресурсом, помечаются специальным зеленым маркером (рис.40). После нажатия на кнопку «Заполнить выражение» система для данных реквизитов дополнительно проверяет строковое совпадение их имен с именами измерений/ресурсов регистра, и заполняет поле «Выражение» для тех данных, для которых было найдено точное совпадение по типу и по имени. Данное выражение при необходимости можно вручную отредактировать. Если оказалось, что для поля регистра автоматически не нашлось соответствия с реквизитами документа, то необходимо в нужном поле вручную указать имя реквизита документа (или написать произвольное выражение). Так, ресурс «Стоимость» можно заполнить значением реквизита «ТекСтрокаТовары.Сумма» (рис. 40). В зависимости от типа регистра, в конструкторе движений имеется ряд настроек. В частности, для регистра накоплений типа «Остатки» - это вид движения. В нашем случае документ «Приходная накладная» будет формировать движения типа «Приход» по соответствующему регистру накопления. После сохранения движений открывается модуль объекта с автоматически сформированной процедурой проведения документа. Если в полученный код внести изменения, то при повторном запуске конструктора движений, все изменения будут утеряны. Поэтому, для ручного исправления процедуры проведения необходимо самостоятельно открывать модуль объекта для редактирования. Самостоятельно изучите и разберите сформированный программный код. Аналогичным образом сформируйте движения документа «Расходная накладная» по регистру накопления «Остатки товаров». Далее, обратите внимание, что в документе «Расходная накладная» не только продаются товары, но и оказываются услуги. Но услуги не могут поступать или расходоваться. Поэтому сформированную процедуру необходимо изменить, добавив условие, проверяющее, является ли выбранная номенклатурная позиция товаром или услугой. Измененная процедура проведения будет выглядеть следующим образом (жирным выделен добавленный фрагмент кода): Движения.ОстаткиТоваров.Записывать = Истина; Для Каждого ТекСтрокаТовары Из Товары Цикл Если ТекСтрокаТовары.Номенклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Товар Тогда Движение = Движения.ОстаткиТоваров.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура = ТекСтрокаТовары.Номенклатура; Движение.Количество = ТекСтрокаТовары.Количество; Движение.Стоимость = ТекСтрокаТовары.Сумма; КонецЕсли; КонецЦикла; Л.11 Запустим систему в режиме отладки, и проверим работу рассмотренного механизма проведения. Для этого создадим несколько документов поступления товаров (различные товары, различные поставщики) и несколько документов продажи товаров (различные товары, услуги, различные покупатели). Для просмотра записей (движений) в соответствующем регистре накоплений воспользуемся меню «Все функции» и выберем регистр накопления «Остатки товаров». Создадим регистр накопления «Продажи» (добавим в подсистему «Отдел продаж»), который будет накапливать информацию о продажах товаров и оказании услуг – будет хранить выручку компании. Тип регистра в данном случае будет «Обороты» т.к. выручка идет только в плюс (мы не рассматриваем ситуации возврата товара). Измерения: «Номенклатура» и «Контрагент», ресурсы – «Количество» и «Сумма». В качестве регистратора – документ «Расходная накладная». Т.к. для указанного документа уже была создана и вручную отредактирована процедура проведения, то не будем ее портить повторным запуском конструктора движений. Откроем модуль объекта для данного документа. Добавим в конец процедуры проведения следующий код: Движения.Продажи.Записывать = Истина; Для Каждого ТекСтрокаТовары Из Товары Цикл Движение = Движения.Продажи.Добавить(); Движение.Период = Дата; Движение.Номенклатура = ТекСтрокаТовары.Номенклатура; Л.12 Движение.Контрагент = Контрагент; Движение.Количество = Движение.Количество = ТекСтрокаТовары.Количество; Движение.Сумма = ТекСтрокаТовары.Сумма; КонецЦикла; Запустим систему в режиме отладки, перепроведем документы «Расходная накладная» и через меню «Все функции» проверим формирование записей в регистре накопления «Продажи». Самостоятельно разберите приведенный фрагмент кода. Самостоятельная работа №1: В документе «Расходная накладная» товары и услуги разнесите по двум табличным частям, добавьте новый реквизит «Сумма документа». Исправьте форму документа соответствующим образом, реализуйте механизм заполнения нового реквизита. Исправьте процедуру ОбработкаПроведения() для учета измененной структуры документа. Добавьте необходимый обработчик событий в модуле объекта, чтобы реквизит «Сумма документа» автоматически вычислялся и заполнялся при любой записи документа, вне зависимости от формы. Добавьте в журнал документов «Приходно-расходные операции» еще одну графу, которая будет отображать сумму документа. Проверьте разработанные механизмы на практике. Темы для самостоятельного изучения: 1. Отображение движений регистров в форме документа-регистратора. 2. Формирование движений регистра из формы документа (без использования процедуры «Обработка Проведения»). 3. Неоперативное проведение документов, проблемы восстановления последовательности документов. Занятие 7. Регистры сведений. Объектная модель доступа к данным |