- •Учебно-методическое пособие
- •Решение типовых задач Нижний Новгород.
- •Оглавление
- •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. Калькуляция блюда с учетом возможной замены ингредиентов.
- •Список рекомендуемой литературы
19. Изящное решение задачи «Овощи».
Задача. ОВОЩИ.
1.Создать два справочника «овощи» и области.
2.Создать трехуровневый справочник «План» (область-колхоз-овощ). На уровне овоща задать план производства. На уровне области и овоща обеспечить копирование из соответствующих справочников.
3. создать отчет «Итоги». На форму отчета поместить следующие поля: -область, колхоз ,овощ и сумма планов. Задавая в разных разумных комбинациях входные данные в виде области , колхоза и овоща получать итоговые суммы.(например – задана область и овощ; или задан только овощ и т.д.)
Создадим очевидные справочники «Области», «Овощи» «План» (трехуровневый с копированием области и овоща в поле наименование 0 и 2 уровня). Наименование Колхоза будем набирать руками так как бессмысленно иметь независимый справочник «Колхозы».
Создадим отчет «Итоги». Новшеством при создании отчета является использование табличной части , с помощью которой будем задавать несколько вариантов запроса (одна строка – один запрос) и которые будут отрабатываться одновременно. Для этого в пункте «данные» зададим табличную часть «Овощи».
При конструировании формы , щелкнув мышью на табличном поле в свойствах в качестве данных указать «Отчет.ТабличнаяЧасть.итоги.Овощи».
Теперь рассмотрим изящное решение этой задачи. (Позднее посмотрим дубовое решение, для сравнения).
Решение основано на собственной функции пользователя «СравнитьМаску(маска,стр)». Функция возвращает переменную «пер» со значением «Истина» в двух случаях . Или маска=стр , если стр не пустая, либо маска пустая.
В качестве маски берутся значения из перебираемых строк табличной части отчета. В качестве «стр» берутся значения из перебираемых элементов справочника «План». Подумайте! Почему это работает.
Это Справочники.
Ниже пять вариантов запросов и результаты.
Это был изящный вариант. Теперь –обещанный дубовый (хотя он тоже поучительный).
Обычная форма отчета.
В принципе , возможны 8 комбинаций признаков , а значит восемь программ , на каждую из которых нужно выйти , анализируя содержимое призначных полей на «пусто» , с помощью метода «Пустая()»( Например, «Область.Пустая()») или ,если не пусто на соответствие значениям из справочика. Этот путь понятный (8 условий «если» и 8 программ с переходом на них.
Идея , надеюсь понятна , а программирование всех 8 вариантов очевидно. Гоним цикл по перебору элементов справочника «План» , ловим уровень «Овощей» (уровень2) и сравниваем с овощами и родителями. Сравни «Коня» и «Трепетную лань».
20.Еще раз про «Себестоимость»
Усилим ранее сделанную задачу себестоимость в следующих направлениях: а).учтем затраты труда в составе прямых расходов. Для этого создадим справочник.ТОП (технологических операций), подчиненный справочнику детали , который для каждой детали содержит операцию и ее стоимость. Логика учета труда идентична учету расхода материалов.
б) учтем косвенные расходы . Для этого создадим справочник.ВидыРасходов с конкретным перечнем (вода,газ,электроэнергия). Создадим документ.ВР с конкретными данными.
в)Дополним реквизиты табличной части документа Себестоимость следующими очевидными колонками СТтруд,СтПрямЗатрат,доля,стэлектр,стгаз,ствода. Особо по реквизиту «доля» (горемычная). Косвенные расходы распределяются либо пропорционально расходу материалов , либо пропорционально затратам труда основных рабочих. Рассмотрим распределение по материалам. Нужно посчитать сумму расходов материалов по всем деталям , а затем вычислить долю по каждой детали. Само распределение косвенных расходов идет в соответствии с долями . Для этого сделаем двойной цикл , сначала перебираем строки документа Виды расходов, а в рамках каждого расхода цикл по перебору строк документа себестоимость.
г)Обеспечим возможность проведения документа Себестоимость по всем видам расходов. Для этого создадим свой ПланХарактеристик ,свой ПланСчетов , набор проводок и модуль проведения.
д). Создадим отчет , позволяющий пользователю проводить совместный анализ большого количества документов Себестоимость в различных разрезах. Для этого используем технику работы с флагами.
Модуль по кнопке «Рассчитать» в общем должен быть понятен. Немножко набычьтесь или накоровьтесь в зависимости от пола.
Всего одно новщество , связанное с организацией диалога меду программой и пользователем.
Системный Оператор «РежимДиалогаВопрос.ДаНет» организует диалоговое окно с кнопками «ДаНет» и вопросом , который будет задан следующим оператором «Вопрос».
В зависимости от ответа в переменную «КодВозвратаДиалога» попадет то что выбрали и далее анализируем и что-то делаем.
Режим = РежимДиалогаВопрос.ДаНет; //Вопрос - выводить ли макет СводТЗ?
Ответ = Вопрос ("Вывести сводную потребность в материалах на план?", Режим, 0);
если Ответ =КодВозвратаДиалога.Да тогда
Окно имеет вид.
Информация к примеру и результаты.
Отчет (работа с флагами).
Рассматривая вид отчета можно понять , что он может делать.
Выбирать либо документы Себестоимость в интервале времени «Период С.. По» ,если флаг «Все» выключен, либо все вообще документы «Себестоимость» , если флаг «Все» включен.
кнопка «РегистрБухг» выводит проводки для выбранных документов.
Группа флагов «Критерий выбора» -«Максимум» ,«Минимум» определяет режим вывода любого показателя из группы «Показатель». Обе группы недоступны пока не включен флаг «Включить»
Результаты работы выводятся в окнах диалога. Выполнение любого режима по кнопке «Сформировать».
Рассмотрим как в конфигураторе создаются флаги , группы флагов и технику работы с ними.
Создадим тренажный отчет.хсг и поместим на него два флага «Сергей» и «Георгий» и объединим их рамкой с именем «Хворенков». Сразу скажем , рамка нужна только для эргономики(для удобства). В программах это имя не используется.
Обратим внимание на то что , флаги имеют тип «булево» со значениями «ложь» или «истина».
Возвращаемся к задаче.
С ней (с диалогом ) связано ужасное количество процедур , часть из которых функциональная(что-то считает) , а часть , вспомогательная и управляет флагами а значит режимами работы функциональных частей.
Процедура КнопкаСформироватьНажатие посильна для понимания без комментариев. Новое в ней –Это реакция на флаги и переход на разные варианты.
Процедура ВыбПериодНажатие
Нижерасположенный чудовищный текст порождает сама система , когда устанавливаем на диалог «выбор периода».
Процедура «приоткрытии» все флаги обнуляет.
Процедура РегистрБухНажатие перебирает в цикле регистр РегБух и выводит на печать проводки.
Следующая процедура выводит список подлежащих анализу документов «Себестоимость» ,либо всех если флаг «Все» включен , либо за период в противном случае.
Процедура ФлажокВключить активизирует все остальные флажки (дает возможность включать и выключать , связанные с ним флаги.
Процедура ТЗ1Выбор для выбранного мышью в ТЗ1(в перечне документов) документа обеспечивает его расшифровку.
Все остальные процедуры каждая , связана с конкретным флагом и отключает другие , дабы не ставить программу в двусмысленное (или даже в многосмысленное положение.
Далее демонстрация реализации.(Он даже к финским скалам бурым обращался с каламбуром).
Проводки должны быть созданы в конфигураторе конструктором движений. Проводки соответствуют всем расходам и прямым и косвенным и собирают на счете 20 все расходы по всем деталям вместе и порознь.
Разумеется должен быть предварительно создан свой «ПланХарактеристик» (в задаче назван «ВидСубконто»).
Должен быть создан план счетов.
