
- •«Московский городской педагогический университет» Факультет прикладной информатики Кафедра прикладной информатики в управлении
- •Организационно-методические указания по подготовке и проведению занятия Рекомендации по подготовке к занятию
- •План работы
- •I. Основная часть
- •3.1. Общие сведения о системе 1с:Предприятие 8.1. Порядок создания информационной базы с пустой конфигурацией
- •3.2. Порядок работы с деревом конфигурации
- •3.3. Порядок работы с объектом конфигурации Справочник
- •3.3.1. Создание справочника "Клиенты"
- •3.3.2. Создание справочника "Сотрудники"
- •3.3.3. Создание справочника "Номенклатура"
- •3.3.4. Создание справочника "Склады"
- •3.4. Порядок работы с объектом конфигурации Документ
- •3.4.1. Создание документа " ПриходнаяНакладная "
- •3.4.2. Создание собственной формы документа "ПриходнаяНакладная"
- •3.4.3. Создание процедуры обработки события в модуле формы документа "ПриходнаяНакладная"
- •3.4.4. Создание документа "ОказаниеУслуги"
- •3.5. Порядок работы с объектом конфигурации Регистр накопления
- •3.5.1. Создание регистра накопления "Остатки Материалов"
- •3.5.2. Создание движений документа "ПриходнаяНакладная"
- •3.5.3. Создание движений документа "ОказаниеУслуги"
- •3.6. Порядок работы с объектом конфигурации Отчет
- •3.7. Порядок работы с объектом конфигурации Макет
- •3.7.1. Создание макета документа "Оказание услуги"
- •3.7.2. Редактирование макета документа "Оказание услуги"
- •3.7.3. Редактирование формы документа "Оказание услуги"
- •3.8. Порядок работы с объектом конфигурации Регистр сведений
- •3.8.1. Создание периодического регистра сведений Цены
- •3.8.2. Создание функции РозничнаяЦена()
- •3.8.3. Автоматическое заполнение цены в документе ОказаниеУслуги
- •3.9. Порядок работы с объектом конфигурации Перечисление
- •3.9.1. Реорганизация справочника "Номенклатура"
- •3.9.1. Изменение процедуры проведения документа "Оказание услуги"
- •3.10. Порядок проведения документа по нескольким регистрам
- •3.10.1. Создание регистра "Стоимость материалов"
- •3.10.2. Изменение процедуры проведения документа "ПриходнаяНакладная"
- •3.10.3. Изменение процедуры проведения документа "ОказаниеУслуги"
- •3.11. Порядок работы с объектом конфигурации Оборотный регистр накопления
- •3.11.1. Создание оборотного регистра накопления "Продажи"
- •3.11.2. Изменение процедуры проведения документа "Оказание услуги"
- •3.12. Порядок работы с объектом встроенного языка Запрос
- •3.12.1. Создание отчета "Реестр документов Оказание услуги"
- •3.12.2. Создание отчета "Рейтинг услуг"
- •3.12.3. Создание отчета "Выручка мастеров"
- •3.12.4. Создание отчета "Перечень услуг"
- •3.12.5. Создание отчета "Рейтинг клиентов"
- •3.12.6. Создание отчета "Универсальный"
- •3.12.7. Создание отчета "Универсальный 2"
- •3.13. Оптимизация документа "ОказаниеУслуги"
- •3.14. Порядок работы с объектом конфигурации План видов характеристик
- •3.14.1. Создание новых объектов конфигурации
- •3.14.2. Доработка справочника Номенклатура
- •3.14.3. Доработка справочника Варианты номенклатуры
- •3.14.4. Доработка регистра накопления ОстаткиМатериалов
- •3.14.5. Доработка документа ПриходнаяНакладная
- •3.14.6. Создание наборов свойств в справочнике Номенклатура
- •3.14.7. Создание отчета "Остатки материалов по свойствам"
- •3.15. Порядок организации и ведения бухгалтерского учета
- •3.15.1. Создание объекта конфигурации План видов характеристик ВидыСубконто
- •3.15.2. Порядок работы с объектом конфигурации План счетов
- •3.15.3. Порядок работы с объектом конфигурации Регистр бухгалтерии
- •3.15.4. Изменение движений документа ПриходнаяНакладная
- •3.15.5. Изменение движений документа ОказаниеУслуги
- •3.15.6. Создание отчета Оборотно-сальдовая ведомость
- •3.16. Порядок расчета заработной платы
- •3.16.1. Создание плана видов расчета ОсновныеНачисления
- •3.16.2. Порядок работы с объектом конфигурации Регистр расчета
- •3.16.3. Создание регистра расчета Начисления
- •3.16.4. Создание документа НачисленияСотрудникам
- •3.16.5. Создание отчета Перерасчет
- •3.16.6. Создание процедуры расчета записей регистра Начисления
- •3.16.7. Создание отчета Начисления сотрудникам
- •3.16.8. Выполнение перерасчета записей регистра расчета
- •3.16.9. Графическое представление начислений с помощью диаграммы Ганта
- •3.16.10. Создание отчета Диаграмма начислений
- •3.17. Создание документа ввода начальных остатков
- •3.18. Порядок работы с объектом конфигурации Подсистема
- •3.18.1. Создание подсистем Бухгалтерия, РасчетЗарплаты, УчетМатериаловИУслуг
- •3.19. Порядок работы с объектами конфигурации роль и интерфейс
- •3.19.1. Создание ролей
- •3.19.2. Создание интерфейсов
- •3.19.3. Администрирование работы пользователей
- •4. Практическая часть
- •4.1. Порядок проведения работы
- •4.2. Содержание отчета
- •4.3. Зачет по лабораторной работе
- •II. Перечень заданий для выполнения работы
3.4.3. Создание процедуры обработки события в модуле формы документа "ПриходнаяНакладная"
Щелкните правой кнопкой мыши на поле ввода в колонке Количество и откройте для него палитру свойств (пункт контекстного меню Свойства). Прокрутив список до конца, вы обнаружите перечень событий, которые могут быть связаны с этим полем ввода.
С большинством элементов управления связаны различные события, и именно с их помощью разработчик может влиять на ход работы программы.
Среди событий, связанных с полем ввода, найдите событие При изменении. Это событие возникает после изменения значения поля ввода.
Щелкните по кнопке с лупой в конце поля ввода, и система создаст заготовку процедуры обработчика этого события в модуле формы документа ПриходнаяНакладная (рис. 41).
Рис. 41. Выберите событие "При изменении", и система создаст
заготовку процедуры в модуле формы
Модуль – это "хранилище" для текста программы на встроенном языке. В конфигурации существует большое количество модулей, которые расположены в различных ее точках. Они могут принадлежать некоторым объектам конфигурации (например, формам), а могут существовать сами по себе (принадлежать всей конфигурации в целом). Текст программы, содержащийся в модулях, будет использоваться платформой в заранее известные моменты работы системы 1С:Предприятие.
В модуль формы, в тело процедуры МатериалыКоличествоПриИзменении() добавьте следующий текст:
СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные;
СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество *
СтрокаТабличнойЧасти.Цена;
В первой строке происходит обращение к программному объекту ЭлементыФормы. Этот объект является коллекцией значений, содержащей все элементы управления, расположенные на форме документа. Каждый элемент управления формы можно получить, указав его имя в качестве свойства объекта ЭлементыФормы. В данном случае происходит обращение к элементу управления с именем Материалы (ЭлементыФормы.Материалы).
Этот элемент управления отображает строки табличной части документа ПриходнаяНакладная. Получить ту строку, в которой в настоящее время осуществляется редактирование, можно при помощи свойства программного объекта ТабличноеПоле – ТекущиеДанные. Таким образом, в результате выполнения первой строки переменная СтрокаТабличнойЧасти будет содержать объект ДокументТабличнаяЧастьСтрока.ПриходнаяНакладная.Материалы, в котором находятся редактируемые данные.
Во второй строке вычисляется сумма как произведение количества и цены. Объект ДокументТабличнаяЧастьСтрока.<имя> позволяет обратиться к данным конкретной колонки, указав имя колонки в качестве свойства объекта (например, СтрокаТабличнойЧасти.Количество).
Проверьте, как это работает. В окне программы откройте список документов ПриходнаяНакладная и откройте любой из двух созданных документов. Если теперь вы поменяете количество в любой строке документа, то сумма в строке будет пересчитана автоматически.
Для поля Цена, по идее, следует сделать то же самое. Однако, подобное автоматическое заполнение поля Сумма может понадобиться вам и в других документах. Поэтому лучше будет поместить расчет суммы в некотором "общедоступном" месте, чтобы разные документы, имеющие аналогичные реквизиты табличной части, могли использовать этот алгоритм. Для описания таких "общедоступных" мест служат объекты конфигурации Общий модуль.
Создайте объект конфигурации Общий модуль в ветке Общие –> Общие модули и назовите его РаботаСДокументами. Он будет содержать следующий текст:
Процедура РассчитатьСумму(СтрокаТабличнойЧасти) Экспорт
СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество *
СтрокаТабличнойЧасти.Цена;
КонецПроцедуры
Ключевое слово Экспорт в конце оператора Процедура как раз указывает на то, что эта процедура может быть доступна из других программных модулей.
Затем в модуле формы документа ПриходнаяНакладная измените текст обработчика события При изменении:
Процедура МатериалыКоличествоПриИзменении(Элемент)
СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные;
РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры
Таким образом, теперь вместо непосредственного расчета суммы вы будете вызывать процедуру из общего модуля и передавать ей в качестве параметра нужную строку табличной части.
Аналогичным образом создайте обработчик события При изменении для поля ввода, которое расположено в колонке Цена, и повторите в нем вызов процедуры РассчитатьСумму из общего модуля:
Процедура МатериалыЦенаПриИзменении(Элемент)
СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные;
РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры
Запустите 1С:Предприятие в режиме отладки и убедитесь, что теперь сумма в строках табличной части документов Приходная накладная пересчитывается как при изменении количества, так и при изменении цены.