6Глава Концепция управляемого приложения
Скачать 6.74 Mb.
|
Глава 7. Документы 7.1. Структура документов. Свойства документов Любая учетная система получает исходные данные из документов. В классическом бухгалтерском учете основа всего – первичные документы, автоматизированные системы учета – не исключение. Для описания документов в дереве конфигурации имеется отдельная ветвь – Документы. Создадим документ – ПоступлениеМатериалов. Поместим в подсистеме «Документы». Мы планируем с его помощью отражать в системе поступление материалов. Исходя из этих целей, нам понадобятся следующие реквизиты документа (рис. 7.1), которые мы зададим на вкладке Данные окна редактирования объекта: Имя: Контрагент, Тип: СправочникСсылка.Контрагенты Имя: ОтветственныйСотрудник: Тип: СправочникСсылка.Сотрудники Добавим в состав табличных частей нашего документа новую табличную часть с именем Материалы и следующими реквизитами: Имя: Номенклатура, Тип: СправочникСсылка.Номенклатура Имя: Цена, Тип: Число, длина 10, точность 2 Имя: Количество, Тип: Число, длина 10, точность 3 Имя: Сумма, Тип: Число, длина 10, точность 2 123 Рис. 7.1. Настройка состава реквизитов документа На закладке Нумерация, рис. 7.2., можно задать параметры нумерации документов. Рис. 7.2. Настройка параметров нумерации документа В данном случае документы будут нумероваться автоматически с контролем уникальности номеров. Нескольким различным видам документов можно назначить сквозную нумерацию с одинаковыми настройками, благодаря использования нумератора. Если в качестве типа номера использована строка – это позволит, при возникновении необходимости, добавлять к номеру различные символьные префиксы. Настройка периодичности в данном случае установлена в значение Непериодический, то есть, независимо от срока работы с информационной базой, нумерация документов будет продолжаться, а при установке некоторой периодичности (в пределах дня, 124 месяца, квартала, года) – уникальность номеров будет соблюдаться в течение указанного периода. Закладка Движения, рис. 7.3, позволяет управлять проведением документа. Рис. 7.3. Настройка параметров проведения документа Если документ планируется проводить, то есть – он будет формировать движения по регистрам, проведение следует разрешить. Оперативное проведение позволяет разработчику настроить различное реагирование кода, отвечающего за проведение документа, при проведении документа, скажем, более поздней или ранней датой, чем текущая дата. Если мы не планируем реализацию подобной функциональности, мы можем отключить оперативное проведение. Автоматическое удаление движений документа предусматривает, при отмене проведения, автоматически удалять движения, которые документ сформировал по регистрам. В данный момент в нашей конфигурации пока нет регистров, по которым будет проводиться документ. "Формирование движений по регистру", более простым языком, означает то, что документ при проведении делает записи в регистре. Регистры можно сравнить с таблицами, содержащими ключевые данные о документах, которые по ним проводятся. Работу с различными регистрами мы рассмотрим ниже. Вкладка Журналы позволяет настраивать включение документа в так называемые журналы документов. Журнал позволяет организовать совместную работу с документами различных типов, которые включены в этот журнал. Такие документы отображаются в едином списке. Если проведение документа запрещено – то пользователь сможет лишь сохранить документ в базе данных. Других воздействий на информационную базу такой документ не произведет. Например, такое поведение может быть характерно для документов, вроде выписанных счетов, которые сами по себе воздействия на учет не производят, но их важно хранить в системе для того, чтобы "помнить" о том, какие счета выписаны, важно иметь возможность формировать их печатные формы. 125 Но то, что счет выписан, еще не гарантирует то, что счет будет оплачен, то, что товары, указанные в выписанном счете будут действительно отгружены покупателю. Если продолжить пример с выписанным счетом и перейти на вкладку Ввод на основании, рис. 7.4., то окажется, что эта вкладка позволяет настроить ввод одного документа на основании другого. Рис. 7.4. Настройка параметров ввода на основании Если, например, мы имеем дело с документом наподобие "Отгрузка материалов", окажется, что такой документ вполне логично будет вводить на основании документа "Счет" - после оплаты этого счета и фактической отгрузки материалов. Документ отгрузки, в отличие от счета, фиксирует уже свершившийся факт хозяйственной жизни, который должен оказать воздействие на состояние информационной базы. Такой документ должен проводиться – то есть – делать записи в соответствующие регистры. На данном этапе мы можем запустить систему, попытаться поработать с документом, используя автоматически сгенерированную форму, и посмотреть, все ли в данной форме нас устраивает. Создадим форму документа, рис. 7.2. Разделим в форме документа расположение реквизитов на 2 страницы: 1 страница (закладка) - реквизиты шапки; 2 страница – реквизиты табличной части. 126 Рис. 7.5. Форма документа Сформируем группу «Группа1», в свойствах зададим вид "Страницы" и две подчиненные группы «Шапка» и «ТЧ» вида «Страница». Перенесем элементы формы в подчинение нужным группам. Получим форму с двумя закладками. Прежде чем продолжать работу с документом ПоступлениеМатериалов, приведем данные справочника Номенклатура в вашей информационной базе к виду, показанному в таблице 7.1. Таблица 7.1. Таблица 7.1. Данные справочника Номенклатура Наименование Единица измерения Услуга Группа Парикмахерские услуги Да Да Завивка Час Да Стрижка Час Да Парфюмерия Нет Да Духи Штука Нет Одеколон Штука Нет Прочие материалы Нет Да УФ-гель Упаковка Нет Спецодежда Нет Да Одежда для парикмахера Штука Нет Уход за волосами Нет Да Бальзам для волос Штука Нет Лак для волос Упаковка Нет На рис. 7.6. вы можете видеть форму документа после ввода в нее некоторых данных. 127 Рис. 7.6. Заполнение шапки и табличной части документа «ПоступлениеМатериалов» Подобный документ, очевидно, заполняется в информационной базе по данным некоего бумажного документа (приходной накладной, например), поступившей от поставщика вместе с поступившими товарами. Цена и количество каждой товарной 128 позиции вводится из документа вручную, с этим здесь ничего поделать нельзя. Но вот ввод суммы по каждой из строк табличной части вполне поддается автоматизированному расчету на основе данных о цене и количестве. Еще один важный момент, на который можно обратить внимание – в нашем документе не отображается итоговый показатель по табличной части. Как правило, в подобных случаях пользователю важно увидеть общую сумму документа. Общая сумма позволит быстро сверить данные, введенные в электронный документ, с его бумажным аналогом. Если общая сумма совпадает – то, почти наверняка, все строки табличной части введены верно. Реализуем эту функциональность. Для того, чтобы автоматически заполнить поле сумма по каждой из строк табличной части, редактируемой пользователем, очевидно, что рассчитывать сумму имеет смысл либо после заполнения поля Цена, либо – после заполнения поля Количество, перехватив какие-либо события, имеющие отношение к редактируемой табличной части. В нашем случае это должны быть события, генерируемые при изменении полей Цена или Количество при вводе данных в определенной строке. Для того, чтобы назначить обработчики подобных событий для определенных элементов табличной части, можно поступить так же, как мы поступали, назначая обработчики событий для любых других элементов формы (рис. 7.7). Для начала, конечно же, нам нужно будет создать собственную форму документа, делается это на закладке Формы окна редактирования объекта. С параметрами, предложенными конструктором форм по умолчанию, можно согласиться. 129 Рис. 7.7. Назначение обработчика полю табличной части Назначим обработчики событий ПриИзменении для полей МатериалыЦена и МатериалыКоличество. Теперь нам нужно реализовать следующее: при работе в определенной строке таблицы, при вводе в нее данных, получить эту строку, и, при изменении цены или количества номенклатуры рассчитать сумму. У табличных полей есть свойство ТекущиеДанные, которое, как раз, позволяет обращаться к текущей редактируемой строке. Данные редактируются на клиенте, поэтому мы вполне можем обойтись здесь без вызова серверных процедур, выполнив все необходимые действия на клиенте. Если вы хотите побольше узнать о том, что можно сделать с табличным полем из кода, как и в других случаях, помочь вам в этом могут инструменты отладки. Вот как, например, выглядит свойство ТекущиеДанные при срабатывании точки останова в коде модуля нашей формы при отладке кода, который будет представлен ниже, рис. 7.8. 130 Рис. 7.8. Просмотр свойства ТекущиеДанные в окне Выражение при отладке кода Итак, наша задача может быть решена следующим образом: &НаКлиенте Процедура МатериалыЦенаПриИзменении(Элемент) РассчитатьСумму(); КонецПроцедуры &НаКлиенте Процедура МатериалыКоличествоПриИзменении(Элемент) РассчитатьСумму(); КонецПроцедуры &НаКлиенте Процедура РассчитатьСумму() ТекущаяСтрока=Элементы.Материалы.ТекущиеДанные; ТекущаяСтрока.Сумма=ТекущаяСтрока.Количество*ТекущаяСтрока.Цена; КонецПроцедуры Вторая задача из тех, которые мы поставили себе выше, заключается в выводе на форму итоговых сведений по табличному полю. Ее можно реализовать различными способами, но лучше всего воспользоваться стандартными итоговыми показателями табличного поля, которые можно найти в составе табличного поля на закладке Реквизиты редактора форм, рис. 7.9. 131 Рис. 7.9. Вывод итогового показателя для поля Сумма на форму Этот реквизит – ИтогСумма – нужно перетащить на вкладку Элементы. Он будет отображаться на форме, изменяясь при изменениях суммы в строках табличной части, рис. 7.10. 132 Рис. 7.10. Форма после модификации Документ ПоступлениеМатериалов мы разработали, настроили его форму. Документ, хотя его проведение и разрешено, пока, фактически, не проводится – мы не реализовали механизмы проведения, у нас нет регистров, по которым он будет проводиться. Данную функциональность мы реализуем ниже, а сейчас займемся еще одним документом, который, являясь, по составу реквизитов и по особенностям устройства формы, очень похожим на документ ПоступлениеМатериалов, выполняет противоположную ему функцию – а именно – отвечает за списание материалов. В нашей системе материалы выбывают при передаче их в производство. Cоздадим новый документ копированием предыдущего и изменением некоторых его реквизитов. Скопируем документ и приведем состав его реквизитов к показанному на рис. 7.11. Рис. 7.11. Создание документа ОтпускМатериаловМастеру Включим данный документ в состав подсистемы Документы. Вместо реквизита Контрагент у него будет реквизит ПолучательМатериалов с типом СправочникСсылка.Сотрудники. В табличной части документа мы используем лишь два реквизита – это Номенклатура и Количество. Показатели стоимости списываемой номенклатуры мы будем рассчитывать автоматически. При работе с этим документом нас вполне устроит форма, генерируемая автоматически. Форма нашего нового документа будет выглядеть так, как показано на рис. 7.12. Документы созданы, но сейчас они, во-первых, заполняются практически полностью вручную (за исключением поля Сумма в табличной части документа ПоступлениеМатериалов), а, во-вторых, нам сейчас довольно сложно будет понять, каков остаток материалов, числящихся за определенным сотрудником. Единственный способ, которым можно сделать это сейчас – программно или "вручную" просмотреть все документы поступления материалов, выводя некоторые итоговые 133 показатели. При заполнении документа отпуска материалов мы вынуждены заранее самостоятельно проверять остатки материалов по существующим документам, самостоятельно решать, какова цена этих материалов, контролировать остатки. Эти вопросы будут рассмотрены позднее. Рис. 7.12. Документ ОтпускМатериаловМастеру. Форма документа 7.2. Программная работа с документами С документами в пользовательском режиме можно работать не только интерактивно – так, как мы это делали до сих пор, но и программно. Рассмотрим объекты 1С:Предприятие, которые используются для программной работы с документами. ДокументыМенеджер – этот объект доступен через свойство глобального контекста Документы. Он позволяет управлять документами, давая доступ к объекту ДокументМенеджер для конкретного документа ДокументМенеджер – позволяет управлять документом, в частности, создавать новые документы, производить поиск документов, помечать документы на удаление, получать выборки. ДокументСсылка – идентификатор документа. Используется обычно в реквизитах других объектов для указания ссылки на определенный документ. ДокументОбъект – позволяет работать с отдельным документом – читать и редактировать его данные. 134 ДокументВыборка – предназначен для работы с выборкой документов, произведенной по определенным условиям. ДокументСписок – позволяет управлять списком документов, расположенных в табличном поле. Для доступа к метаданным документа можно воспользоваться свойством Документы свойства глобального контекста Метаданные. Создадим новую обработку, назовем ее РаботаСДокументами. Включим в подсистему Администрирование. Добавим в обработку команду с именем ВывестиСписокВидовДокументов, зададим обработчик для этой команды, выведем ее на форму обработки. Воспользуемся свойством глобального контекста Метаданные для того, чтобы вывести пользователю список синонимов существующих в конфигурации документов. Для подобных действий нам понадобится серверная процедура, которую мы вызовем из клиентской процедуры обработчика ранее созданной команды. Выполнить запланированное можно с помощью следующего кода: &НаКлиенте Процедура ВывестиСписокВидовДокументов(Команда) ВывестиСинонимыДокументов(); КонецПроцедуры Процедура ВывестиСинонимыДокументов() Для каждого Документ из Метаданные.Документы Цикл Сообщить(Документ.Синоним); КонецЦикла; КонецПроцедуры Результат выполнения показан на рис. 7.13. Рис. 7.13. Вывод списка синонимов документов С помощью коллекции Метаданные (тип ОбъектМетаданныхКонфигурация) мы можем получить доступ к структуре конфигурации, в частности, к коллекции Документы (тип КоллекцияОбъектовМетаданных), состоящей из объектов типа ОбъектМетаданных: Документ. Обратившись к документу, как к объекту метаданных, мы можем узнать имя, синоним и другие метаданные. Теперь рассмотрим следующую задачу. Нужно программно создать новый документ заданного вида, заполнить его некоторыми данными, сохранить в базе данных, приняв решение о том, проводить его или не проводить на основе анализа флага 135 ПроводитьДокумент, который имеется на форме обработки, после чего открыть его форму для проверки пользователем. Здесь нам понадобится начинать "поиски" нужного объекта от объекта ДокументыМенеджер. С его помощью мы можем получить объект ДокументМенеджер для нужного вида документов, и уже с помощью этого объекта мы сможем создать новый документ. Добавим в нашу обработку новую команду – СоздатьДокументПоступлениеМатериалов. Так же добавим новый реквизит – ПроводитьДокумент, поместим его на форму, рис. 7.14. Мы зададим все данные, в том числе – и тип документа для создания – в коде. Рис. 7.14. Модификация формы обработки Решить поставленную задачу можно с помощью следующего кода: &НаКлиенте Процедура СоздатьДокументПоступлениеМатериалов(Команда) //Настраиваем режим записи нового документа РежимЗаписи=РежимЗаписиДокумента.Запись; Если ПроводитьДокумент Тогда РежимЗаписи=РежимЗаписиДокумента.Проведение; КонецЕсли; //В функции будет создан новый документ //Она возвратит ссылку на него Документ=СоздатьДокумент(РежимЗаписи); 136 //Открываем форму документа ОткрытьЗначение(Документ); КонецПроцедуры Функция СоздатьДокумент(РежимЗаписи) //Создаем новый документ Документ = Документы.ПоступлениеМатериалов.СоздатьДокумент(); //Заполняем его реквизиты Документ.Дата=ТекущаяДата(); Документ.ОтветственныйСотрудник=Справочники.Сотрудники.НайтиПоКо ду("000000003"); Документ.Контрагент=Справочники.Контрагенты.НайтиПоРеквизиту("Конт актныеСведения", "ул. Береговая, д. 2, телефон 3-34-34"); Документ.Комментарий="Документ создан автоматически"; //Заполняем строку табличной части НоваяСтрокаТЧ=Документ.Материалы.Добавить(); НоваяСтрокаТЧ.Номенклатура=Справочники.Номенклатура.НайтиПоНаиме нованию("Духи"); НоваяСтрокаТЧ.Количество=10; НоваяСтрокаТЧ.Цена=200; НоваяСтрокаТЧ.Сумма=10*200; //Записываем документ Документ.Записать(РежимЗаписи); //Возвращаем ссылку на документ Возврат(Документ.Ссылка); КонецФункции Проведение документа, либо его запись, либо – отмена проведения – производятся с помощью метода документа Записать(). Этот метод принимает параметр, который и отвечает за то, что будет произведено при записи документа. В начале клиентской процедуры СоздатьДокументПоступлениеМатериалов мы анализируем флаг ПроводитьДокумент, предварительно установив переменную РежимЗаписи в значение РежимЗаписиДокумента.Запись. Если флаг установлен – то есть мы хотим не только записать, но и провести документ, значение переменной меняется на РежимЗаписиДокумента.Проведение. При вызове функции СоздатьДокумент(), мы планируем воспользоваться возвращенной ей ссылкой на созданный документ для открытия его формы с помощью метода ОткрытьЗначение(). Функция СоздатьДокумент принимает один параметр – РежимЗаписи, который мы используем после создания документа для задания режима его записи. В переменной Документ, после работы метода СоздатьДокумент(), мы имеем объект типа ДокументОбъект, новый чистый документ, с которым можем работать. Мы заполняем дату с помощью функции ТекущаяДата(). Заполняя реквизиты мы пользуемся различными методами поиска данных в справочнике. Метод НайтиПоКоду() позволяет найти элемент справочника по заданному коду, НайтиПоРеквизиту() ищет по значению заданного реквизита. Оба эти метода возвращают нам ссылку на элемент справочника. В реквизит Комментарий мы записываем строку. 137 Следующим этапом работы с документом становится заполнение его табличной части. Мы выполняем заполнение построчно, добавляя в табличную часть строку – она представлена в коде переменной НоваяСтрокаТЧ с типом Строка табличной части. Когда строка добавлена, мы обращаемся к ее реквизитам, заполняя их данными. После того, как документ сформирован, мы записываем его (или – и записываем и проводим – в зависимости от значения параметра РежимЗаписи) и возвращаем ссылку на него в точку вызова функции СоздатьДокумент. Форма документа, созданного программно с помощью нашего кода, рис. 7.15. Рис. 7.15. Документ, созданный автоматически Решим теперь следующую задачу. Нужно пометить на удаление все документы типа ПоступлениемМатериалов, которые созданы автоматически – их реквизит Комментарий содержит текст "Документ создан автоматически". Добавим в форму обработки новую команду, назовем ее ПометитьНаУдаление. Поставленную задачу можно реализовать с помощью следующего кода: &НаКлиенте Процедура ПометитьНаУдаление(Команда) ПометитьДокументыНаУдаление(); Предупреждение("Были помечены на удаление документы поступления материалов"); КонецПроцедуры 138 Процедура ПометитьДокументыНаУдаление() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПоступлениеМатериалов.Ссылка |ИЗ | Документ.ПоступлениеМатериалов КАК ПоступлениеМатериалов |ГДЕ | ПоступлениеМатериалов.Комментарий = &Комментарий"; Запрос.УстановитьПараметр("Комментарий", "Документ создан автоматически"); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Документ=ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); Документ.УстановитьПометкуУдаления(Истина); КонецЦикла; КонецПроцедуры Здесь мы, в серверной процедуре ПометитьДокументыНаУдаление(), получаем с помощью запроса список ссылок на документы, реквизит Комментарий которых равен нужному нам значению. После этого в цикле обхода выборки запроса переходим от ссылки на объект к объекту (тип ДокументОбъект) и устанавливаем у объектов пометки удаления. При завершении серверной процедуры, мы, на клиенте, показываем пользователю окно сообщения, рис. 7.16. Рис. 7.16. Сообщение пользователю о пометке документов на удаление Нашей следующей задачей будет вывод пользователю списка документов за заданный пользователем период. Добавим в форму обработки команду 139 ВыводСпискаДокументовЗаПериод и два реквизита – ДатаНачала и ДатаОкончания – тип Дата, состав даты – Дата и время. Дата документа содержит сведения о дате и времени создания документа, поэтому для выбора периода, в который должны попасть искомые документы, нам понадобятся значения даты с датой и временем. Решение задачи может выглядеть так: &НаКлиенте Процедура ВыводСпискаДокументовЗаПериод(Команда) Сообщить("Обнаружены следующие документы за период с "+ДатаНачала+" по "+ДатаОкончания); ВыводСписка(); КонецПроцедуры Процедура ВыводСписка() Выборка=Документы.ПоступлениеМатериалов.Выбрать(ДатаНачала, ДатаОкончания); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Ссылка); КонецЦикла КонецПроцедуры Здесь мы пользуемся методом Выбрать с параметрами, устанавливающими дату начала и дату окончания для выборки документов. Полученную выборку перебираем в цикле и сообщаем пользователю о найденных документах, рис. 7.17. Рис. 7.17. Вывод списка документов, принадлежащих периоду, заданному пользователем 140 7.3. Стандартные реквизиты Введена возможность настройки свойств для стандартных реквизитов прикладных объектов (таких, как Код, Наименование, Дата, Владелец и т. д.). Это позволяет, например, изменить формируемые системой заголовки в формах., рис.7.18. Рис.7.18. Настройка стандартных реквизитов 7.4. Функциональные опции На платформе 1С:Предприятие 8 введен механизм функциональных опций. Он позволяет определить в конфигурации ту функциональность, которая может использоваться или не использоваться при внедрении в зависимости от потребностей конкретной организации. Введем в шапку документа «ПоступлениеМатериалов» еще один реквизит: Склад, тип СправочникСсылка.Склады (рис.7.19.). Некоторые предприятия, которые будут использовать наше приложение, ведут складской учет, а некоторые небольшие предприятия его не ведут. Поэтому при внедрении разработанного приложения на разных предприятий необходимо иметь средства настройки на особенности ведения их хозяйственного учета. Используем механизм функциональных опций. 141 Рис.7.19. Добавление нового реквизита в структуру документа и нового элемента на форму Сначала создадим в конфигурации константу «УчетПоСкладам», Тип булево и включим ее в состав подсистемы «Администрирование». Затем создадим новый объект «Функциональные опции» «УчетПоСкладам» 142 Различные элементы конфигурации (объекты, реквизиты, команды) могут быть привязаны к функциональным опциям. Например, рис.7.20. Рис.7.20. Пример состава функциональной опции «УчетПоСкладам» 143 В нашей конфигурации необходимо установить принадлежность справочника Склады, документа «ПоступлениеМатериалов» к данной опции, рис..7.21. Рис.7.21. Состав функциональной опции «УчетПоСкладам» нашей конфигурации Система при этом будет автоматически включать и выключать отображение всех соответствующих элементов интерфейса (полей, команд, колонок списков, элементов отчетов). А) учет по складам включен (рис.7.22.): Рис.7.22. Включение режима учета приложения по складам 144 В форме документа «ПоступлениеМатериалов» (рис.7.23.): Рис.7.23. Форма документа с включенным режимом учета материалов по складам Б) Учет по складам выключен (рис.7.24.): Рис.7.24. Выключение режима учета приложения по складам В форме документа «ПоступлениеМатериалов»: Рис.7.25. Форма документа с выключенным режимом учета материалов по складам 145 Кроме того, функциональные опции могут использоваться с параметрами. Например, для того, чтобы вид конкретной формы мог зависеть от функциональных опций, установленных для выбранной в форме организации. Параметры функциональных опций - это общие объекты конфигурации. Они являются частью механизма функциональных опций и позволяют создавать функциональные опции, результат работы которых задан не жестко (один раз при внедрении), а может изменяться в зависимости от данных, хранящихся в информационной базе (в зависимости от значения параметра функциональной опции). Например, в процессе работы требуется показывать или скрывать поле Валюта взаиморасчетов в документах в зависимости от того, для какой организации оформляется поступление товаров. Если в этой организации ведется валютный учет - поле Валюта взаиморасчетов должно быть показано. Если валютный учет не ведется - это поле должно быть скрыто. Для решения такой задачи в конфигурацию можно добавить функциональную опцию Валютный учет и параметр функциональной опции Организация. Для функциональной опции указать, что ее значение будет храниться в булевом реквизите организации (ее параметра) - Валютный учет (рис.7.26). Тогда, если организация не ведет валютный учет - поле Валюта взаиморасчетов будет скрыто. Если ведет - поле будет показано. 146 147 Рис.7.26 Формы документа с включенным и выключенным режимом валютного учета по организациям 7.5. Варианты заданий Цель данной работы заключается в разработке нового документа, структура которого приведена в вариантах задания. Выполнение работы состоит из следующих этапов: 1. Разработать новую подсистему «Лабораторная работа 4». Все новые объекты данного задания поместить в данную подсистему. 2. Для обеспечения работы документа сформировать дополнительные объекты данных (константы, справочники, перечисления). 3. В форме документа необходимо организовать две закладки: «Шапка» (содержит реквизиты шапки) и «Таблица» (содержит табличную часть документа.). 4. Ввести в конфигурацию общий реквизит для всех документов конфигурации (см. глава 3). Название и тип- см. варианты заданий. 5. В форме документа должно быть поле, показывающее итоговую сумму по какому-либо числовому полю табличной части документа. 148 6. Сформировать печатную форму документа. Вызов – по кнопке «Печать», расположенной в форме документа. Использовать конструктор запроса с обработкой результата. 7. Сформировать обработку «Работа с документами». Задачи, возложенные на данную обработку – см. варианты заданий. Поместить в подсистему «Лабораторная работа 4». 8. В пользовательском режиме сформировать и записать несколько документов. 9. С помощью механизма функциональных опций обеспечить при внедрении приложения на предприятии возможность его настройки на особенности ведения учета. Настраиваемая особенность - см. варианты заданий. Вариант 1 1. Общий реквизит – Автор, тип «СправорчникСсылка.Пользователи». Означивается автоматически при открытии нового документа именем пользователя, с которым зашли в задачу. 2. Документ «Поступление товаров от поставщиков» Поставщик__________________________ Склад______________________________ Товар Цена Количество Единица измерения Стоимость При вводе нового документа поле «Поставщик» означивается по умолчанию выбранным значением из справочника поставщиков. При выборе товара автоматически означиваются поля «Цена» и единица измерения значением из справочника товаров. После ввода поля «Количество» автоматически рассчитывается поле «Сумма» 3. Задача, возложенная на обработку «Работа с документами»: Вывести в окно сообщений список всех видов документов, расположенных в конфигурации. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота ведения складского учета. Вариант 2 1. Общий реквизит –Комментарий, тип строка, 100 символов. 2. Документ «Поступление товаров от поставщиков» Поставщик__________________________ Склад______________________________ Товар Цена Количество Стоимость Ставка НДС Сумм а НДС Всего с НДС При вводе нового документа поле «Склад» означивается по умолчанию выбранным значением из справочника складов. При выборе товара автоматически означивается поле «Цена» значением из справочника товаров. После ввода поля «Количество» автоматически рассчитывается поле «Сумма» Ставка НДС автоматически берется из соответствующей константы. Сумма НДС и Всего с НДС рассчитываются автоматически 3. Задача, возложенная на обработку «Работа с документами»: 149 Вывести в окно сообщений даты всех документов разработанного вида за указанный период. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота ведения складского учета. Вариант 3 1. Общий реквизит –Организация, тип «СправчочникСсылка.Организации» 2. Документ «Ввод начисленных сумм зарплаты » % отчислений в ТФОМС ______________ % отчислений ФФОМС ______________ Подразделение________________________ Сотрудник Сумма зарплаты Сумма отчислений в ТФОМС Сумма отчислений ФФОМС Проценты отчислений автоматически берутся из соответствующих констант. Суммы отчислений рассчитываются после ввода суммы зарплаты. 3. Задача, возложенная на обработку «Работа с документами»: Пометить все введенные документы разработанного вида на удаление. 4. Настраиваемая особенность ведения учета в приложении: Вариант 4 1. Общий реквизит –ОтветственныйСотрудник, тип «СправчочникСсылка.Сотрудники» 2. Документ «Ввод начисленных сумм зарплаты » Подразделение______________ Сотрудник Оклад Отработано дней фактически Дней по плану Оклад фактически Удержано НДФЛ Сумма «К выдаче» при вводе нового документа поле «Подразделение» означивается по умолчанию выбранным значением из справочника подразделений. Сумма планового оклада берется из справочника сотрудников Поля «Дней по плану», ставка НДФЛ берутся из соответствующих констант Поля «Оклад фактически», «Удержано НДФЛ», «Сумма к выдаче» рассчитываются после ввода поля «Отработано дней». 3. Задача, возложенная на обработку «Работа с документами»: Отменить проведение всех введенных документов разработанного вида. Вариант 5 1. Общий реквизит –ДатаСозданияДокумента, тип «Дата». Автоматически означивать при вводе нового документа текущей датой. 2. Документ « Поступление основных средств» Подразделение_____________ Поставщик____________________ N Стр Основное Средство Первонач. Стоимость ОС % износа Сумма износа Остаточная стоимость Счет Затрат 150 при вводе нового документа поля «Подразделение» и «Поставщик» означиваются по умолчанию выбранными значениями из соответствующих справочников. Поле «Счет затрат», берется из соответствующей константы по умолчанию Поля «Сумма износа», «Остаточная стоимость» рассчитываются после ввода поля «Первонач. Стоимость ОС» и процент износа. 3. Задача, возложенная на обработку «Работа с документами»: Создать новый документ разработанного вида программным путем. Значения полей шапки документа брать произвольно. Сформировать две строки табличной части документа. 4. Настраиваемая особенность ведения учета в приложении: Вариант 6 1. Общий реквизит – Автор, тип «СправорчникСсылка.Пользователи». Означивается автоматически при открытии нового документа именем пользователя, с которым зашли в задачу. 2. Документ « Поступление основных средств» Подразделение_____________ Поставщик____________________ N Стр Основное Средство Цена Количес тво Сумма Амортизацио нная группа Счет Затрат при вводе нового документа поля «Подразделение» и «Поставщик» означиваются по умолчанию выбранными значениями из соответствующих справочников. Поле «Счет затрат», берется из соответствующей константы по умолчанию Поле «Сумма » рассчитыается автоматически 3. Задача, возложенная на обработку «Работа с документами»: Вывести в окно сообщений список всех видов документов, расположенных в конфигурации. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота ведения учета по подразделениям. Вариант 7 1. Общий реквизит –Комментарий, тип строка, 100 символов. 2. Документ «Расходная накладная на отпуск товаров» Покупатель__________________________ Склад___________________________ Товар Цена Количество Стоимость с НДС % НДС Сумма НДС Предварительно процент НДС должен устанавливаться из соответствующей константы по умолчанию. при вводе нового документа поле «Покупатель» означивается по умолчанию выбранными значениями из соответствующего справочника. 3. Задача, возложенная на обработку «Работа с документами»: 151 Вывести в окно сообщений даты всех документов разработанного вида за указанный период. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота ведения складского учета. Вариант 8 1. Общий реквизит –Организация, тип «СправчочникСсылка.Организации» 2. Документ «Расходная накладная на отпуск товаров» Покупатель__________________________ Склад________________ Товар Едини ца измере ния Цена Количество Стоимость с НДС % НДС Сумма НДС Предварительно процент НДС должен устанавливаться из соответствующей константы по умолчанию. при вводе нового документа поля «Покупатель» и «Склад» означиваются по умолчанию выбранными значениями из соответствующих справочников. 3. Задача, возложенная на обработку «Работа с документами»: Пометить все введенные документы разработанного вида на удаление. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота ведения складского учета. Вариант 9 1. Общий реквизит –ОтветственныйСотрудник, тип «СправчочникСсылка.Сотрудники» 2. Документ «Расходная накладная на отпуск товаров» Покупатель__________________________ Склад________________ Валюта___________ курс___________________ Товар Цена Количество Стоимость с НДС % НДС Сумма НДС Предварительно процент НДС должен устанавливаться из соответствующей константы по умолчанию. при вводе нового документа поля «Покупатель» , «Склад», «валюта» означиваются по умолчанию выбранными значениями из соответствующих справочников. После выбора валюты курс означивается автоматически значением из справочника валют. Стоимостные поля документа формируются в выбранной валюте. При изменении валю и (или курса) все стоимостные поля должны автоматически пересчитываться. 3. Задача, возложенная на обработку «Работа с документами»: Отменить проведение всех введенных документов разработанного вида. 152 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота реализации в валюте, отличной от руб. Вариант 10 1. Общий реквизит –ДатаСозданияДокумента, тип «Дата». Автоматически означивать при вводе нового документа текущей датой. 2. Документ «Расходы по кассе » Касса_____________________ Корресп. счет От кого Сумма Поле «От кого» при вводе новой строки означивается по умолчанию выбранным значением из справочников: Если Кор счет – 71, то из справочника сотрудников, Если 60 или 62, то из справочника контрагентов. (Считать, что в качестве кор. Счета можно брать только один из трех счетов) 3. Задача, возложенная на обработку «Работа с документами»: Создать новый документ разработанного вида программным путем. Значения полей шапки документа брать произвольно. Сформировать две строки табличной части документа. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота учета кассовых оборотов по кассам. Вариант 11 1. Общий реквизит – Автор, тип «СправорчникСсылка.Пользователи». Означивается автоматически при открытии нового документа именем пользователя, с которым зашли в задачу. 2. Документ «Обороты по кассе » Касса_____________________ Тип операции (приход или расход) Корресп. счет От кого/кому Сумма Поле «От кого/кому» при вводе новой строки означивается по умолчанию выбранным значением из справочников: Если Кор счет – 71, то из справочника сотрудников, Если 60 или 62, то из справочника контрагентов. (Считать, что в качестве кор. Счета можно брать только один из трех счетов) 3. Задача, возложенная на обработку «Работа с документами»: Вывести в окно сообщений список всех видов документов, расположенных в конфигурации. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота учета кассовых оборотов по кассам. Вариант 12 1. Общий реквизит –Комментарий, тип строка, 100 символов. 153 2. Документ «Требование на списание материалов в производство» Со Склада______________________________ В подразделение_________ Материал Закупо чная цена Количеств о Сумма Продукция, для которой отпускается материал Корр. счет Для ведения документа необходимо создать 2 справочника: Материалов; готовой продукции . Справочник готовой продукции должен содержать следующие поля: Код Продукции Наимен ование Плановая себестоимость Корр.Счет, на котором накапливаются затраты Поле «КоррСчет» документа должен автоматически означиваться после выбора продукции. При вводе нового документа поля «Подразделение» , «Склад» означиваются по умолчанию выбранными значениями из соответствующих справочников. 3. Задача, возложенная на обработку «Работа с документами»: Вывести в окно сообщений даты всех документов разработанного вида за указанный период. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота учета движения материалов по подразделениям. Вариант 13 1. Общий реквизит –Организация, тип «СправчочникСсылка.Организации» 2. Документ «Расходная накладная на отпуск товаров» Покупатель__________________________ Склад________________ Товар Цена Количество % НДС Сумма НДС Стоимость с НДС Поля «шапки» документов при вводе нового документа означиваются по умолчанию выбранными значениями из соответствующих справочников. Поля «Сумма НДС» и «Стоимость с НДС» означиваются автоматически. 3. Задача, возложенная на обработку «Работа с документами»: Пометить все введенные документы разработанного вида на удаление. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота учета движения товаров по складам. Вариант 14 154 1. Общий реквизит –ОтветственныйСотрудник, тип «СправчочникСсылка.Сотрудники» 2. Документ: «Требование на списание материалов в производство» Склад__________________________ Материал Продукция, для которой отпускается материал Корр. счет Количество Замечание .Для ведения документа необходимо создать 2 справочника: Материалов; готовой продукции . Справочник готовой продукции должен содержать следующие поля: Код Продукции Наимен ование Плановая себестоимость Корр.Счет, на котором накапливаются затраты Сумма затрат Поле «КоррСчет» документа должен автоматически означиваться после выбора продукции. 3. Задача, возложенная на обработку «Работа с документами»: Отменить проведение всех введенных документов разработанного вида. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота учета движения материалов по складам. Вариант 15 1. Общий реквизит –ДатаСозданияДокумента, тип «Дата». Автоматически означивать при вводе нового документа текущей датой. 2. Документ: «Доверенность на приобретение материала» Подотчетное лицо, на которое выписана доверенность ___________ Документ проводить? (флажок) Склад____________________________ Материал Количество Цена Организация Если флажок в документе не активен, документ не проводится. После приобретения материалов по доверенности следует вызвать документ на редактирование и активизировать флажок. 3. Задача, возложенная на обработку «Работа с документами»: Создать новый документ разработанного вида программным путем. Значения полей шапки документа брать произвольно. Сформировать две строки табличной части документа. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота учета движения материалов по складам. 155 Вариант 16 1. Общий реквизит – Автор, тип «СправорчникСсылка.Пользователи». Означивается автоматически при открытии нового документа именем пользователя, с которым зашли в задачу. 2. Документ: «Банковские платежи» Расчетный счет_________________ Получа тель (орган изация ) Сумма платежа Ставка НДС Сумма НДС Всего с НДС Назначение Платежа Поле «шапки» документа при вводе нового документа означиваются по умолчанию выбранными значениями из соответствующих справочников. 2. Поле «Назначение платежа» - произвольный текст ( впоследствии помещаемый в содержание проводки). Ставка НДС берется из соответствующей константы. 3. Задача, возложенная на обработку «Работа с документами»: Вывести в окно сообщений список всех видов документов, расположенных в конфигурации. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота учета движения денежных средств по расчетным счетам. Вариант 17 1. Общий реквизит –Комментарий, тип строка, 100 символов. 2. Документ: «Выдача спецодежды работникам» Подразделение_______________________________ Подотчетное Лицо Наименование спецодежды Количеств о Цена Сумма Для заполнения табличной части документа сформировать справочники спецодежды и справочник сотрудников. Цена спецодежды проставляется автоматически после выбора элемента справочника спецодежды из соответствующего реквизита данного справочника. Сумма рассчитывается автоматически. 3. Задача, возложенная на обработку «Работа с документами»: Вывести в окно сообщений даты всех документов разработанного вида за указанный период. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота учета движения материалов по подразделениям. Вариант 18 1. Общий реквизит –Организация, тип «СправчочникСсылка.Организации» 2. Документ: «Списание спецодежды» Подразделение___________________________ 156 Сотрудник Спецодежда количество стоимость При заполнении табличной части документа цена спецодежды берется из справочника «спецодежда». Стоимость рассчитывается автоматически. 3. Задача, возложенная на обработку «Работа с документами»: Пометить все введенные документы разработанного вида на удаление. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота учета движения материалов по подразделениям. Вариант 19 1. Общий реквизит –ОтветственныйСотрудник, тип «СправчочникСсылка.Сотрудники» 2. Документ: «Возврат от покупателя» Покупатель__________________________ Склад______________________________ Товар Цена Количество Стоимость Причина возврата Цена товара проставляется автоматически после выбора элемента справочника товаров из соответствующего реквизита данного справочника. Сумма рассчитывается автоматически. Причина возврата –имеет тип перечисления. 3. Задача, возложенная на обработку «Работа с документами»: Отменить проведение всех введенных документов разработанного вида. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота учета движения товаров по складам. Вариант 20 1. Общий реквизит –ДатаСозданияДокумента, тип «Дата». Автоматически означивать при вводе нового документа текущей датой. 2. Документ: «Передача на реализацию» Реализатор__________________________ Склад______________________________ Товар Цена Количество Стоимость При заполнении табличной части документа цена товара берется из справочника товаров. Стоимость рассчитывается автоматически. 3. Задача, возложенная на обработку «Работа с документами»: Создать новый документ разработанного вида программным путем. Значения полей шапки документа брать произвольно. Сформировать две строки табличной части документа. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота учета движения товаров по складам. 157 Вариант 21 1. Общий реквизит – Автор, тип «СправорчникСсылка.Пользователи». Означивается автоматически при открытии нового документа именем пользователя, с которым зашли в задачу. 2. Документ: «Отчет реализатора» Реализатор__________________________ Касса поступления денежных средств_______________ Товар Цена Количество Стоимость Кому продано При заполнении табличной части документа цена товара берется из справочника товаров. Стоимость рассчитывается автоматически. 3. Задача, возложенная на обработку «Работа с документами»: Вывести в окно сообщений список всех видов документов, расположенных в конфигурации. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота учета движения денежных средств по кассам. Вариант 22 1. Общий реквизит –Комментарий, тип строка, 100 символов. 2. Документ: “Заявка от покупателя» Покупатель__________________________ Склад______________________________ Товар Цена Количество Стоимость Поля «шапки» документов при вводе нового документа означиваются по умолчанию выбранными значениями из соответствующих справочников. При заполнении табличной части документа цена товара берется из справочника товаров. Стоимость рассчитывается автоматически. 3. Задача, возложенная на обработку «Работа с документами»: Вывести в окно сообщений даты всех документов разработанного вида за указанный период. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота учета движения товаров по складам. Вариант 23 1. Общий реквизит –Организация, тип «СправчочникСсылка.Организации» 2. Документ: «Ввод больничных листов» Подразделение______________ Сотрудник Дата начала заболеван ия Дата окончани я заболеван ия Число дней болезни Суммарный доход сотрудника за последние 2 года Количест во дней в двух последни х годах Средний доход за 1 день Сумма больничного 158 При вводе нового документа поле «Подразделение» означивается по умолчанию выбранным значением из справочника подразделений. Число дней болезни рассчитывается автоматически после ввода 2 и 3 колонок. Средний доход за 1 день рассчитывается как Суммарный доход сотрудника за последние 2 года/ Количество дней в двух последних годах. Сумма больничного рассчитывается как Средний доход за 1 день*Число дней болезни. 3. Задача, возложенная на обработку «Работа с документами»: Пометить все введенные документы разработанного вида на удаление. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота учета расходов на оплату труда по подразделениям. Вариант 24 1. Общий реквизит –ОтветственныйСотрудник, тип «СправчочникСсылка.Сотрудники» 2. Документ: «Списание товара-брака» Сотрудник – виновное лицо ______________ Склад_________________________________ Вид ТМЦ ТМЦ количество Стоимость количественное значение остатка выбранного ТМЦ на предприятии Остаток ТМЦ должен проставляться автоматически на дату документа после выбора ТМЦ из справочника ТМЦ. Если затребованное количество больше остатка, должно выдаваться сообщение «затребовано больше остатка» и поле «Количество» должно обнуляться. 3. Задача, возложенная на обработку «Работа с документами»: Отменить проведение всех введенных документов разработанного вида. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота учета движения ТМЦ по складам. Вариант 25 1. Общий реквизит –ДатаСозданияДокумента, тип «Дата». Автоматически означивать при вводе нового документа текущей датой. 2. Документ: «Приход оплаты за проданный товар» Расчетный счет_______________________ Тип покупателя Покупатель Сумма оплаты % скидки Сумма скидки Остаток долга покупателя Тип покупателя: ФизЛицо, ЮрЛицо. Остаток долга покупателя означивается автоматически после выбора покупателя из справочника контрагентов. Сумма скидки рассчитывается автоматически. 3. Задача, возложенная на обработку «Работа с документами»: 159 Создать новый документ разработанного вида программным путем. Значения полей шапки документа брать произвольно. Сформировать не менее двух строк в табличной части документа. 4. Настраиваемая особенность ведения учета в приложении: Возможность исключения из документооборота учета движения денежных средств по расчетным счетам. |