- •Т.А. Меркулова «Разработка управляемого приложения на платформе 1с:Предприятие 8»
- •Олавление
- •10.5. Варианты заданий……………………………………………………………………..203
- •4.10. Варианты заданий…….…………………………………………………………………66
- •5.6. Варианты заданий………………………………………………………………………...93
- •Глава 6. Запросы
- •6.3. Варианты заданий………………………………………………………………………108
- •7.5. Варианты заданий………………………………………………………………………130
- •8.8. Варианты заданий………………………………………………………………………163
- •9.3. Варианты заданий……………………………………………………………………….176
- •11.7. Варианты заданий…………………………………………………………………….226
- •12.4. Варианты заданий……………………………………………………………………..245
- •13.5. Варианты заданий……………………………………………………………………..267
- •14.2. Пример формирования отчета………………………………………………………….275
- •14.3. Варианты заданий……………………………………………………………………..281
- •15.4. Варианты заданий……………………………………………………………………….
- •Глава 1. Концепция управляемого приложения
- •1.1. Основные сферы использования управляемого приложения
- •1.2. Основные особенности работы управляемого приложения
- •То для извлечения значения коэффициента необходимо обратиться к бд. А раз так, то за коэффициентом теперь уже придется "идти" на сервер.
- •1.3. Новая стратегия разработки прикладного решения
- •Процедура создания новой информационной базы (иб) в режиме уп
- •Глава 2. Подсистемы в режиме управляемого приложения
- •2.1. Подсистемы – основа командного интерфейса управляемого приложения
- •2.2. Пользователи, роли и панель разделов
- •3.1. Константы
- •Форма констант
- •3.2. Основы клиент-серверного программирования
- •3.3. Общие реквизиты
- •Глава 4. Справочники
- •4.1. Окно редактирования справочника
- •4.2. Разработка формы справочника
- •4.3. Клиентские методы в модуле формы
- •4.4. Объект СообщениеПользователю
- •4.5. Настройка командного интерфейса для ускорения доступа к справочнику
- •4.6. Иерархические справочники
- •4.8. Программная работа со справочниками
- •4.9. Модуль менеджера
- •4.9. Варианты заданий
- •1. Константа «Главный бухгалтер», тип СправочникСсылка.Сотрудники
- •2. Справочник основных средств (ос):
- •3. Справочник материально-ответственных лиц (подчиненный):
- •1. Константа «Директор», тип СправочникСсылка.Сотрудники
- •2. Справочник товаров:
- •3. Справочник цен товаров (подчиненный):
- •1. Константа «Главный бухгалтер», тип СправочникСсылка.Сотрудники
- •2 Справочник сотрудников:
- •3 Справочник стандартных вычетов сотрудника (подчиненный):
- •1. Константа «Главный контрагент», тип СправочникСсылка.Контрагенты
- •2. Справочник контрагентов:
- •3. Справочник расчетных счетов контрагента(подчиненный)
- •1. Константа «Основное транспортное средство директора», тип СправочникСсылка.ТранспортныеСредстваПредприятия
- •2. Справочник ТранспортныеСредстваПредприятия
- •3. Справочник товарно-транспортных накладных (подчиненный)
- •1. Константа «Название предприятия », тип «Строка”
- •2. Справочник персональных компьютеров предприятия
- •3. Справочник сотрудников, работающих на данном компьютере (подчиненный)
- •1. Константа «Название библиотеки », тип «Строка”
- •2. Справочник библиографических единиц:
- •3. Справочник сотрудников, бравших данную единицу с абонемента (подчиненный)
- •1. Константа «Название университета », тип «Строка”
- •2. Справочник факультетов университета:
- •3. Справочник сотрудников- заместителей декана факультета (подчиненный)
- •1. Константа «Название университета », тип «Строка”
- •2/ Справочник кафедр вуЗа:
- •3. Справочник лабораторий кафедры (подчиненный)
- •1. Константа «Название предприятия », тип «Строка”
- •3. Справочник детей работника (подчиненный)
- •1. Константа «Форма оплаты труда предприятия », тип «Строка”
- •2. Справочник «Виды оплат и удержаний»
- •3. Справочник работников, которым назначен данный вид расчета (подчиненный)
- •1. Константа «фио главбуха », тип «Строка”
- •2. Справочник «Парк машин»
- •1. Константа «Директор », тип «СправчникСсылка.Сотрудники”
- •2. Справочник сотрудников:
- •3. Трудовая книжка сотрудника (Подчиненный)
- •1. Константа «Основной объект предприятия », тип «СправочникСсылка.Объекты”
- •2. Справочник видов работ
- •3. Справочник сотрудников, выполняемых данный вид работ (подчиненный)
- •1. Константа «Главный склад предприятия », тип «СправочникСсылка.Склады”
- •2. Справочник складов
- •3. Справочник товарно-материальных ценностей склада (подчиненный)
- •1. Константа «Начальник автотранспортного цеха », тип «СправочникСсылка.Сотрудники”
- •2. Справочник норм расхода масел ,смазок и доп. Топлива
- •3. Справочник водителей автомобиля (подсиненный))
- •1. Константа «Название предприятия », тип «Строка”
- •2. Справочник профессий
- •3. Справочник должностных ставок данной профессии(подчиненный)
- •1. Константа «Название университета », тип «Строка”
- •2. Штатное расписание вуЗа
- •3. Справочник сотрудников кафедры (подчиненный)
- •1. Константа «Название предприятия », тип «Строка”
- •2. Справочник характерных видов расчетов подразделений предприятия
- •3. Справочник сотрудников данного подразделения (подчиненный)
- •1. Константа «Наибольший табельный номер (Код) в справочнике сотрудников », тип «Строка”. Означивается автоматически при запуске приложения.
- •2. Справочник сотрудников:
- •3. Справочник кадровых приказов по сотруднику (подчиненный)
- •Справочник дополнительных свойств пользователя (подчиненный)
- •1. Константа «Основной расчетный счет предприятия », тип «Строка”
- •2. Справочник контрагентов:
- •3. Справочник филиалов контрагента (подчиненный)
- •1. Константа «Основной поставщик предприятия », тип «СправочникСсылка.Контрагенты”
- •2. Справочник товаров:
- •3. Справочник Цены номенклатуры (подчиненный)
- •1. Константа «Название информационной базы », тип «Строка”
- •2. Справочник пользователей
- •Глава 5. Отчеты
- •5.1. Макет отчета
- •5.2. Табличный документ
- •5.3. Дополнительные свойства табличного документа
- •5.3.1. Оформление ячеек
- •5.3.2. Группировки
- •5.3.3. Расшифровки
- •5.3.4. Примечания
- •5.4. Сохранение отчетов
- •5.5. Конструктор печати
- •5.6. Варианты заданий
- •Глава 6. Запросы
- •6.1. Табличный способ доступа к данным
- •6.2. Язык запросов
- •6.2.1. Обращение к полям через точку (".")
- •6.2.2. Обращение к вложенным таблицам (табличным частям документов и элементов справочников)
- •6.2.3. Автоматическое упорядочивание
- •6.2.4. Многомерное и многоуровневое формирование итогов
- •6.2.5. Поддержка виртуальных таблиц
- •6.2.6. Стандартные sql операции
- •6.2.10. Пакетные запросы
- •6.2.10А Таблица значений как источник данных для запроса
- •6.2.11. Обработка результатов запроса Получение и проверка результата запроса
- •Выборка из результата запроса
- •6.2.12. Конструкторы запроса
- •Конструктор запроса (Query Builder)
- •Конструктор запроса с обработкой результата
- •6.3. Варианты заданий
- •Глава 7. Документы
- •7.1. Структура документов. Свойства документов
- •7.2. Программная работа с документами
- •7.3. Стандартные реквизиты
- •7.6. Функциональные опции
- •7.5. Варианты заданий
- •Цена товара проставляется автоматически после выбора элемента справочника товаров из соответствующего реквизита данного справочника.
- •Сумма рассчитывается автоматически.
- •Глава 8. Регистры накопления
- •8.1. Назначение регистров накопления
- •8.2. Регистры остатков
- •8.3. Оборотные регистры накопления
- •8.4. Вызов формы регистра накопления из формы документа
- •8.5. Агрегаты
- •8.6. Последовательности
- •8.7. Нумераторы
- •8.8. Варианты заданий
- •Глава 9. Регистры сведений
- •9.1. Назначение. Типы регистров сведений
- •Реквизиты регистра сведений
- •Режим записи
- •9.2. Программная обработка данных из регистра сведений
- •9.3. Варианты заданий
- •Справочник сотрудников:
- •Глава 10. Система компоновки данных
- •Введение
- •Основные составляющие скд
- •10.3. Пример формирования отчета с помощью скд
- •10.4. Расшифровки в скд Стандартная расшифровка
- •Нестандартная расшифровка
- •Разработка ведомости в скд
- •Присоединение ведомости в качестве расшифровки отчета по остаткам
- •10.5. Варианты заданий
- •Глава 11. Разработка средств ведения бухгалтерского учета
- •11.1. Объекты метаданных, относящиеся к бухучету
- •11.2. Планы счетов и регистры бухгалтерии
- •Субсчета
- •Предопределенные счета
- •Корреспонденции
- •11.3. План видов характеристик
- •Предопределенные виды субконто
- •11.4. Приемы программирования
- •11.5. Примеры формирования проводок в модуле документа
- •11.6. Пример решения задачи Разработать документ: «Безвозмездное поступление тмц от организаций»
- •11.7. Варианты заданий
- •Вариант 21 «Выдача спецодежды работникам»
- •Вариант 22 «Списание спецодежды»
- •Предварительно разработать документ «Поступление товаров без ндс» с одной проводкой (по сумме выручки) для каждой строки документа.
- •Предварительно разработать документ «Заявка от покупателя» , не формирующий проводок.
- •Глава 12. Запросы к регистрам бухгалтерии
- •12.1. Регистры- источники данных для запроса
- •12.2. Примеры запросов к регистрам бухгалтерии
- •Структура регистра бухгалтерии
- •Движения без субконто
- •Движения с указанием субконто
- •Остатки по счетам
- •Валютные остатки по счетам
- •Обороты по счетам
- •Обороты между счетами
- •Оборотно-сальдовая ведомость
- •12.3. Пример формирования отчета
- •Проект запроса.
- •12.4. Варианты заданий
- •Ведомость выдачи спецодежды работника за период с____ по_____
- •Ведомость списания спецодежды работника за период с____ по_____
- •Глава 13. Сложные периодические расчеты
- •13.1. Объекты метаданных, используемые в периодических расчетах
- •13.2. Планы видов расчета
- •Предопределенные виды расчета
- •Взаимосвязь видов расчета
- •Предопределенные табличные части плана видов расчета
- •13.3. Регистры расчета
- •Структура регистра расчета
- •Периодичность регистра расчета
- •Связь регистра расчета с планом видов расчета
- •Зависимость записей по базовому периоду
- •График времени
- •Частичное попадание записей регистра расчета в базовый период
- •Перерасчеты
- •13.4. Пример решения задачи расчета заработной платы
- •13.5. Варианты заданий
- •Глава 14. Запросы к регистрам расчета
- •14.1. Таблицы – источники запросов
- •Пример.
- •За период с___по________
- •Ведомость начислений материальной помощи, не облагаемой налогом, с начала года по___________
- •Глава 15. Дополнительные возможности разработки отчетов с использованием системы компоновки данных
- •Внешние макеты
- •Предопределенные макеты
- •15.3. Макеты оформления Работа со стандартными макетами оформления
- •Создание собственного макета оформления
- •15.4. Варианты заданий
- •1. В.А. Ажеронок, а. В. Островерх, м. Г. Радченко, е. Ю. Хрусталева
10.4. Расшифровки в скд Стандартная расшифровка
В СКД стандартная расшифровка представляет собой всплывающее меню (по двойному клику на ячейке), содержащие доступные пользователю действия, рис. 10.14.
Рис.10.14. Стандартная расшифровка в СКД
Интерактивный выбор действия обработки расшифровки, предоставляет пользователю набор доступных действий в виде меню и, в случае необходимости, запрашивает дополнительную информацию.
Меню состоит из возможных действий над расшифровкой: “Расшифровать”, “Открыть”, “Отфильтровать”, “Упорядочить”, “Сгруппировать”, “Оформить”. Для всех действий, кроме расшифровки, программа пытается подобрать наиболее вероятные варианты параметризации, на основе данных расшифровки.
“Открыть” - отбираются поля данного элемента расшифровки, которые имеют значения не примитивных типов и не являются перечислениями. Если элемент расшифровки не имеет полей с установленными значениями (любого типа), используются поля родительских элементов расшифровки.
“Отфильтровать” - отбираются поля данного элемента расшифровки, которые имеют значения и доступны для использования в главном отборе, либо в отборах элементов структуры, и имеют доступный вид сравнения “Равно”, либо “В группе” для полей содержащих иерархическое значение. Если элемент расшифровки не имеет полей с установленными значениями (любого типа), используются поля родительских элементов расшифровки.
“Упорядочить” - отбираются поля данного элемента расшифровки, которые доступны для использования в упорядочивании. Если элемент расшифровки не имеет полей с установленными значениями (любого типа), используются поля родительских элементов расшифровки.
“Сгруппировать”- отбираются поля данного элемента расшифровки, которые доступны для использования в группировках и не задействованы в вышестоящих группировках. Если элемент расшифровки не имеет полей с установленными значениями (любого типа), используются поля родительских элементов расшифровки.
“Оформить” - отбираются поля данного элемента расшифровки, которые имеют значения, доступны для использования в дополнительном отборе, и имеют доступный вид сравнения “Равно”, либо “В группе” для полей содержащих иерархическое значение. Если элемент расшифровки не имеет полей с установленными значениями (любого типа), используются поля родительских элементов расшифровки.
“Расшифровать” – действие не доступно, если данный элемент расшифровки – “детальные записи”, кроме случая, когда он содержит поля – ресурсы.
Нестандартная расшифровка
Вся
работа с расшифровкой, выполняется в
событии ОбработкаРасшифровки.
Чтобы получить доступ к этому событию,
необходимо сначала сгенерировать
основную форму отчета ( рис. 10.15) и
назначить полю «Результат» процедуру
– обработчик данного события
Рис.10.15. форма отчета СКД
Параметр «Расшифровка» имеет тип «ИдентификаторРасшифровкиКомпоновкиДанных».
При формировании отчетов с помощью СКД данные о расшифровке хранятся в специальном объекте. Извлечение данных осуществляется по идентификатору объекта (См. в Синтаксис-помощнике Отчеты – Расширение формы отчета – ДанныеРасшифровки). Именно в этом объекте содержатся все элементы расшифровки.
Для передачи параметров в процедуру обработки расшифровки используется стандартный реквизит «ДанныеРасшифровки» типа строка (рис.10.16.)
Рис.10.16. Список стандартных реквизитов в СКД
Особенностью данного реквизита является то, что его значение при передаче параметра расшифровки хранится в так называемом «временном хранилище данных». Это значение можно извлечь, указав ссылку на это хранилище с помощью метода «ПолучитьИзВременногоХранилища». Данный метод работает только на сервере. Поэтому переносим вызов метода на сервер
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
ТОвар=ПолучитьРасшифровку(Расшифровка);
КонецПроцедуры
&НаСервере
Функция ПолучитьРасшифровку(Расшифровка)
Данные=ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
Поля=Данные.Элементы.Получить(Расшифровка).ПолучитьПоля();
//Полученное поле является коллекцией. Для нахождения в ней нужного значения //воспользуемся методом «Найти». Результат м.б. неопределен, если поиск неуспешен. //Поэтому
ПолеТовар=Поля.Найти("Товар");
Если ПолеТовар=Неопределено Тогда
Возврат Неопределено;
Иначе
Возврат Полетовар.Значение;
КонецЕСли;
//Т.о. Получили значение поля товар, на котором сделали двойной клик.
КонецФункции
Кроме товара, входными данными конкретизирующего отчета являются значения склада и даты, на которую считались остатки (будем считать, что ведомость по движению формируем за весь период от начала эксплуатации БД до выбранной даты). Окончательно получим следующий текст:
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
Товар= _ПолучитьРасшифровку(Расшифровка);
Если Товар=Неопределено Тогда
Возврат;
КонецЕСли;
КонПериода= _ПолучитьДату(Расшифровка);
Если КонПериода=Неопределено Тогда
Возврат;
КонецЕСли;
Склад=_ПолучитьНастройку();
Если склад=Неопределено Тогда
Возврат;
КонецЕСли;
СтандартнаяОбработка=Ложь;
Таб=ОбработатьРасшифровку(товар,Склад,КонПериода);
Таб.Показать();
КонецПроцедуры
&НаСервере
Функция _ПолучитьРасшифровку(Расшифровка)
Данные=ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
Поля=Данные.Элементы.Получить(Расшифровка).ПолучитьПоля();
ПолеТовар=Поля.Найти("Товар");
Если ПолеТовар=Неопределено Тогда
Возврат Неопределено;
Иначе
Возврат Полетовар.Значение;
КонецЕСли;
КонецФункции
&НаСервере
Функция _ПолучитьДату(Расшифровка)
Данные=ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
Выбдата=Данные.настройки.ПараметрыДанных.Элементы.получить(0).Значение.Дата;
Если Выбдата=Неопределено Тогда
Возврат Неопределено;
Иначе
Возврат Выбдата;
КонецЕСли;
КонецФункции
&НаСервере
Функция _ПолучитьНастройку()
ПолучитьОтбор=отчет.КомпоновщикНастроек.ПолучитьНастройки().Отбор;
// из строки <Склад равно "Основной"> выделяем наименование
// выбранного склада
НастройкаСтрока=СокрЛП(Строка(ПолучитьОтбор));
Нач=Найти(НастройкаСтрока,"""");
Наименование=сред(НастройкаСтрока,Нач+1,СтрДлина(НастройкаСтрока)-нач-1);
Склад=Справочники.Склад.НайтиПоНаименованию(Наименование);
Если Склад=Неопределено Тогда
Возврат Неопределено
ИНаче
Возврат Склад;
КонецЕСли;
КонецФункции
Замечание. Если в расшифровку необходимо передать несколько отборов (у нас – только один склад), то удобнее воспользоваться следующим алгоритмом:
&НаСервере
Функция _ПолучитьНастройку()
// коллекция всех пользовательских настроек отчета
Коллекция = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
// здесь ключем поиска является
//ИдентификаторПользовательскойНастройки(строка), например,
//"d16ae801-9d48-43a2-8efa-fbb3bc811b39"
// а свойство элемента коллекции "ПравоеЗначение" хранит значение настройки
// Поэтому надо сначала найти этот ид-р в коллекции всех доступных
//полей отбора отчета
Настройки = Отчет.КомпоновщикНастроек.Настройки;
ВсеДоступныеПоляОтбора = Настройки.Отбор.ДоступныеПоляОтбора.Элементы;
ПолеСклад=ВсеДоступныеПоляОтбора.Найти("Склад").Поле;
ИДСклад = "";
Для Каждого Элемент Из Настройки.Отбор.Элементы Цикл
Если Элемент.ЛевоеЗначение = ПолеСклад Тогда
ИДСклад = Элемент.ИдентификаторПользовательскойНастройки;
Прервать;
КонецЕсли;
КонецЦикла;
ЭлементОтбораСклад = Коллекция.Найти(ИДСклад);
Склад=ЭлементОтбораСклад.ПравоеЗначение;
Возврат Склад;
КонецФункции
После получения товара, склада, даты как параметров расшифровки, можно формировать конкретизирующий отчет. Его можно сделать двумя способами:
«традиционными» средствами, т.е. сформировать макет, а затем модуль формирования с его использованием.
можно и вызвать в качестве конкретизирующего другой отчет, который также выполнен с использованием СКД. Например, ведомость движения данного товара (как приход, так и расход) до момента расчета остатков предыдущего отчета.
Рассмотрим только второй случай.
В качестве конкретизирующего отчета используем отчет «Ведомость движения товара на складе», который в случае автономного запуска имеет вид, рис. 10.17.:
Рис.10.17. Отчет по движению выбранного товара на выбранном складе за период
В виде расшифровки отчета по остаткам этот же отчет должен выглядеть так (отборы недоступны), рис.10.18.:
Рис.10.17. Отчет по движению выбранного товара на выбранном складе за период, как расшифровка отчета по остаткам
Поэтому сначала формируем два варианта отчета для отчета «Ведомость…» (для автономного запуска и для использования в расшифровке ) в СКД, а затем вернемся к основному отчету по остаткам и присоединим эту ведомость в качестве расшифровки.
