- •Учебно-методическое пособие
- •Решение типовых задач Нижний Новгород.
- •Оглавление
- •1.Краткое описание задач пособия.
- •1.1.Школа(многоуровневый справочник).
- •1.2.Себестоимость (подчиненные справочники).
- •1.3.Торговля (регистры).
- •1.4.Кафе (документы,таблицы значений,обработки).
- •2.Роли,Интерфейсы,Пользователи,Пароли.
- •3.Создание Справочников.
- •3.1.Справочник.Материалы.
- •Фрагм. 1 Справочник нормы : Форма элемента (процедура при изменении)
- •4.Регистры
- •4.1.Создание регистров накопления (обычных регистров)
- •4.1.1.Создание регистра «Рбост».
- •4.2.Бухгалтерские регистры.
- •4.2.1..Планы Видов Характеристик(пвс).
- •4.2.2.Планы счетов.
- •4.2.3.Создание бухгалтерских регистров.
- •5.Решение задачи «Школа».
- •5.1.Создание документа Школа.
- •Фрагм. 2 Процедуры ЗаполнитьНажатие и рассчитатьНажатие
- •6.Решение задачи «Себестоимость».
- •Фрагм. 3 Процедура РасчитатьНажатие
- •Фрагм. 4 Формирование отчета Мактз
- •Фрагм. 5 Формирование отчета в разрезе материалов.
- •7.Решение задачи «Торговля».
- •Фрагм. 6 Процедура ОбработкаПроведения
- •Фрагм. 7 Обработка проведения
- •Фрагм. 8 Процедура ТовТоварПриИзменении
- •Фрагм. 9 Процедура товЦенаПриИзменении
- •Фрагм. 10 Процедура Печать
- •8.Решение задачи «Кафе».
- •Фрагм. 11 Документ кблюдо форма ввода (4 процедуры)
- •Фрагм. 12 Документ кблюдо форма ввода (Процедура кблколичствоПриИзменении)
- •Фрагм. 13 Документ кблюдо форма ввода (Процедура кблпродуктПриИзменении)
- •Фрагм. 14 Документ кблюдо форма ввода (Процедура кбл1продуктПриИзменении)
- •Фрагм. 15 Документ кблюдо форма ввода (Процедура кблПослеУдаления)
- •Фрагм. 16 Свойство кбл Количество Поле Ввода
- •Фрагм. 17 Процедуры тзвыбора и заполнить тз
- •Фрагм. 18 Процедура заполнитьТз
- •Фрагм. 19 Процедуры тзвыбора
- •Фрагм. 20 Документ итпрод модуль объекта Обработка проведения
- •Фрагм. 21 Процедура КнопкаСформироватьНажатие
- •9.Создание отчетов.
- •9.1.Создание с помощью отчета-обработки нового документа копированием ранее созданного документа. (Отчет «СозданиеДокументов»).
- •Фрагм. 22 КнопкаСформироватьНажатие
- •9.2.Создание отчетов различных типов на основе документов пт и от.
- •Фрагм. 23 Модуль формы Фсг (9 процедур)
- •9.2.1. Процедура 1 «КнопкаСформироватьНажатие».
- •Фрагм. 24 Процедура 1 «КнопкаСформироватьНажатие».
- •9.2.2.Процедура 2 «ОтчпоМногимДокПтНажатие».
- •Фрагм. 25 ОтчпоМногимДокПтНажатие
- •9.2.3.Процедура 3 ЗапрНажатие.
- •Фрагм. 26 Процедура 3 Запр Нажатие
- •Фрагм. 27 Текст запроса процедуры 3
- •9.2.4.Процедура 4 «ТолькоНаимДокНажатие»
- •Фрагм. 28 Процедура 4 «ТолькоНаимДокНажатие»
- •9.2.5.Процедура 5 «ОтчТзНажатие».
- •Фрагм. 29 Процедура 5 «ОтчТзНажатие» (Создание таблицы тз)
- •Фрагм. 30 Процедура 5 «ОтчТзНажатие» (Печать отчета)
- •9.2.6.Процедура 6 «РегОстНажатие».
- •Фрагм. 31 Процедура 6 «РегОстНажатие».
- •9.2.7.Процедура 7 «РегОстаткиБезРасшифровки»
- •Фрагм. 32 Процедура 7 «РегОстаткиБезРасшифровки»
- •9.2.8.Процедура 8 ЗапрОстНажатие
- •Фрагм. 33 Процедура 8 ЗапрОстНажатие
- •9.2.9.Процедура 9 «РегОстСУсловиемНажатие»
- •Фрагм. 34 Процедура 9 «РегОстСУсловиемНажатие»
- •10.Дополнительная задача.Добыча руды.
- •10.1. ДБзапррегнак
- •10.2. ДбтЗциклдок
- •10.3. Дбрегнакцикл
- •10.4. Дбхсгзапрдок
- •10.5. ДбрегбуХхсгЦикл
- •10.6. Дбхсгрегбухзапрсубк1руда
- •10.7. Дбхсгрегбухзапрсубк2рудАскл
- •10.8.Дбхсгрегбухзапрсубк1скл
- •11.Задача.Справочная ж/д вокзала.
- •Часть1.Формирование состава.
- •Часть2. Клиентская часть.
- •12.Работа с диаграммами.
- •13.Построение любых Диаграмм.
- •14.Пример работы с формами, вложенными формами . Передача параметров между формами.
- •15.Работа со списками на примере задачи «Тариф».
- •16.Построение списков на основе справочника и их использование.
- •17. Регистры Сведений.
- •18.Построитель отчетов
- •19. Изящное решение задачи «Овощи».
- •20.Еще раз про «Себестоимость»
- •21.Учет начислений преподавателям за проведение занятия.Работа со списками, регистами сведений , формами и построителем отчетов.
- •22.Тестовые задачи
- •13. Доставка грузов.
- •14. Оплата труда преподавателей.
- •15. Учет лекарств.
- •16. Расчет арендной платы.
- •17. Ремонт автомобилей.
- •18.Строительство
- •19.Ремонт оборудования.
- •20.Штрафы.
- •21.Отель
- •22.Кинотеатр.
- •23.Библиотека.
- •24. Калькуляция блюда с учетом возможной замены ингредиентов.
- •Список рекомендуемой литературы
5.Решение задачи «Школа».
Справочник.Школа ранее создан (См 1.1 Школа(многоуровневый справочник).).
5.1.Создание документа Школа.
Создадим новый объект конфигурации Документ. Зададим имя документа - «Школа» (Рис. 69Создание документа "Школа" (Закладка Основные)).
Рис. 69Создание документа "Школа" (Закладка Основные)
Перейдем на закладку «Данные» (Рис. 70 Создание документа "Школа" (Закладка Данные))
Особо остановимся на понятии «Табличная часть документа». В 1С-7 в документе возможна только одна «Табличная часть». В 1С-8 возможны несколько ТЧ и ,как следствие , каждая ТЧ должна иметь имя . Это вносит нюансы в программирование. Создание одной или нескольких ТЧ происходит по пункту «Данные» в нижней белой области по кнопке «Добавить»(левая верхняя в нижней белой области).
Рис. 70 Создание документа "Школа" (Закладка Данные)
Зададим свойства табличной части (Рис. 71 Свойства табличной части)
Рис. 71 Свойства табличной части
По «+» на ТЧ «Дети» кнопкой «Добавить реквизит» задаем структуру ТЧ «Дети» (Рис. 72 Создание документа Школа (Закладка Данные) Табличная часть Дети). Рис. 73 Создание документа Школа (Закладка Данные) Табличная часть Дети Свойства реквизита ЛитерРис. 74 Создание документа Школа (Закладка Данные) Табличная часть Дети Свойства реквизита ФИОРис. 75 Создание документа Школа (Закладка Данные) Табличная часть Дети Свойства реквизита КоличествоРис. 76 Создание документа Школа (Закладка Данные) Табличная часть Дети Свойства реквизита Сумма
Рис. 72 Создание документа Школа (Закладка Данные) Табличная часть Дети Свойства реквизита Класс
Рис. 73 Создание документа Школа (Закладка Данные) Табличная часть Дети Свойства реквизита Литер
Рис. 74 Создание документа Школа (Закладка Данные) Табличная часть Дети Свойства реквизита ФИО
Обратите внимание , что класс и литер –это строковые переменные и только ФИО имеет тип СправочникССылка.Школа . Выбор происходит по элементу , а группы это путь к элементу.
Рис. 75 Создание документа Школа (Закладка Данные) Табличная часть Дети Свойства реквизита Количество
Рис. 76 Создание документа Школа (Закладка Данные) Табличная часть Дети Свойства реквизита Сумма
Пункт «Нумерация», в принципе очевиден (Рис. 77 Создание документа Школа (Закладка Нумерация)).
Рис. 77 Создание документа Школа (Закладка Нумерация)
По сути задачи , документ Школа не проводимый документ , Поэтому по пункту «Движения» хотя все созданные регистры приведены ни один из них не помечен галочкой (Рис. 78 Создание документа Школа (Закладка Движения)).
Рис. 78 Создание документа Школа (Закладка Движения)
По пункту «Форма» (Рис. 79 Создание документа Школа (Закладка Формы)) определяем имя формы (Например, ФормаДокумента1). Кстати форм документа может быть много как по типам форм так и в рамках одного типа. Все формы должны иметь имя , которое является идентификатором при программировании.
Рис. 79 Создание документа Школа (Закладка Формы)
Щелкнув мышью по ФормеДокумента1 получим , собственно форму , которая обеспечит ввод информации (Рис. 80 Документ школа ФормаДокумента1).
Рис. 80 Документ школа ФормаДокумента1
Кнопок «Заполнить» и «Рассчитать» исходно нет после этого этапа. Их ввод делается по траектории Форма-Вставить элемент управления (Рис. 81)- кнопка – имя кнопки (например, Заполнить»- см Рис. 82 Вставка элемента управления). Для того, чтобы создать заготовку процедуры с тем же именем что и кнопка необходимо поставить галочку в пункте «Создать процедуру». ОК и появятся и кнопка на форме и заготовка кнопки с созданным системой именем Заполнитьнажатие.
Рис. 81 Траектория Форма-Вставить элемент управления
Рис. 82 Вставка элемента управления
Нажав правой кнопкой мыши на кнопке «Заполнить» Появится контексное меню и по пункту «свойства» этой кнопки (Рис. 83 Свойства кнопки "Заполнить") найдем пункт «События» и подпункт «Нажатие позволяет либо проверить создана ли заготовка или подключить к кнопке любую созданную ранее процедуру.
Рис. 83 Свойства кнопки "Заполнить"
Аналогично разместим на форме вторую кнопку «Рассчитать» (Рис. 84 Свойства кнопки «Рассчитать».).
Рис. 84 Свойства кнопки «Рассчитать».
До этого момента , были на кнопочном уровне созданы все элементы формы и заготовки процедур. Теперь займемся программированием.
Рассмотрим текст процедуры «Заполнитьнажатие». По сути алгоритма необходимо организовать цикл по перебору всего справочника Школа и при обнаружении элементов справочника на уровне3 (обратим внимание , что счет уровней начинается с 0, то есть уровню3 соответствует в программах уровень 2) –это фамилии начинаем формировать новую строку документа.
Как это делается? (Фрагм. 2 Процедуры ЗаполнитьНажатие и рассчитатьНажатие)
В отличие от 1С-7 –нет метода «СоздатьОбъект». В 1С-8 объявляется переменная , например «спр» (как и в 1С-7) и ей ставится в соответствие конструкция (метод) «Справочники,Школа.ВыбратьИерархически()». Справочники – это класс метаданных (коллекция- это слово доминирует в 1С-8). Школа-конкретика. «Выбрать иерархически()»- это метод : – во-первых показывающий , что имеем дело с иерархическим справочником и нельзя к нему применять другой метод , например, «Выбрать(); - во вторых , он открывает выборку , позиционирует на первую запись (возможно это группа или элемент). Таким образом , данная строка сочетает сразу два действия в 1С-7 «СоздатьОбъект» и «ВыбратьЭлементы()». Продолжая аналогию. Вместо «Пока Спр. ПолучитьЭлемент()=1 цикл» в 1С-7 , в1С-8 –оператор «Пока Спр.Следующий()=1 цикл». =1 можно опускать. Как видно , отличия чисто формальные.
Оператор « Если УровеньВВыборке()=2 тогда» гарантирует перебор ФИО , как следствие, внутри формирование новой строки в документ. Оператор «нс=Дети.Добавить()» аналогичен «НоваяСтрока()» , поскольку в 1С-8 документ может иметь несколько табличных частей , то,естественно, нужно снять вопрос в какую ТЧ добавлять новую строку (в нашем случае ТЧ=Дети) , даже если ТЧ в документе Школа всего одна. «НС» -определитель строки именно этой части. Продолжение той же логики. Возможен алгоритм , в котором формируется сразу несколько новых строк в разных ТЧ. Остальные три строки –очевидны и аналогичны 1С-7 . Уточнимся по первой строке «НС.фио=спр.ссылка» .
Вроде –бы понятно , но все же. Нс-идентификатор строки и ,как следствие, «нс.фио» -это точная адресация к полю ФИО нужной ТЧ. «Спр.Ссылка»- это представление ссылки на пользовательском уровне в виде наименования (вместо спр.ТекущийЭлемент() в 1с-7).
