- •Содержание
- •Глава 21 Работа с Корректными проводками 48
- •Глава 22 Работа с Журналами расчетов 52
- •Глава 23 Работа с Видами и Группами расчетов 88
- •Глава 24 Работа с Правилами перерасчета 94
- •Глава 25 Работа с Календарями и Праздниками 98
- •Глава 26 Работа с последовательностями документов 105
- •Глава 27 Работа с объектом Периодический 108
- •Глава 28 Работа со Списком Значений 117
- •Глава 29 Работа с Таблицей Значений 125
- •Глава 30 Атрибуты и методы контекста Модуля формы 136
- •Глава 31 Работа с Таблицами 154
- •Глава 32 Работа с Текстом 180
- •Глава 33 Работа с Запросами 185
- •Глава 34 Язык Запросов 194
- •Глава 35 Работа с Картинками 217
- •Глава 36 Работа с Диаграммами 219
- •Глава 37 Работа с Файлами 224
- •Глава 38 Работа с базами данных формата dbf 230
- •Глава 39 Работа с Метаданными 248
- •Глава 40 Связь с внешними приложениями посредством механизмов dde и ole Automation 251
- •Глава 18 Работа с Журналами операций Контекст работы с журналами операций
- •Методы контекста Модуля формы журнала операций
- •ВидыОтбора
- •ЗакладкиОтбора
- •УстановитьОтбор
- •ПолучитьОтбор
- •УстановитьИнтервал
- •НачалоИнтервала
- •КонецИнтервала
- •Предопределенные процедуры модуля формы журнала операций
- •ПриУстановкеОтбора
- •ПриУстановкеИнтервала
- •Глава 19 Работа с Журналами проводок Контекст работы с журналами проводок
- •Методы контекста Модуля формы журнала проводок
- •ВидыОтбора
- •ЗакладкиОтбора
- •УстановитьОтбор
- •ПолучитьОтбор
- •УстановитьИнтервал
- •НачалоИнтервала
- •КонецИнтервала
- •Предопределенные процедуры модуля формы журнала проводок
- •ПриУстановкеОтбора
- •ПриУстановкеИнтервала
- •ПриПоказеПроводокПоДокументу
- •Глава 20 Работа с бухгалтерскими итогами
- •Контекст работы с бухгалтерскими итогами
- •Общие свойства
- •ИспользоватьПланСчетов
- •ИспользоватьРазделительУчета
- •Работа с основными итогами
- •Остатки и обороты по счетам
- •Обороты между счетами
- •Развернутое сальдо по субсчетам
- •Сндр, снкр, скдр, сккр
- •Развернутое сальдо по субконто
- •Сндрс, снкрс, скдрс, сккрс
- •Установка периода итогов ПериодД
- •ПериодКв
- •ПериодКвн
- •ПериодМ
- •ПериодМнк
- •ПериодМнг
- •НачПериода
- •КонПериода
- •ОсновныеИтоги
- •Работа с временными итогами
- •Рассчитать
- •Актуальность
- •Работа в режиме запроса
- •ВыполнитьЗапрос
- •ВключатьСубсчета
- •ИспользоватьСубконто
- •ИспользоватьКорСубконто
- •Работа с результатами запроса
- •Методы выборки результатов запроса ВыбратьСчета
- •ПолучитьСчет
- •ВыбратьКорСчета
- •ПолучитьКорСчет
- •ВыбратьВалюты
- •ПолучитьВалюту
- •ВыбратьПериоды
- •ПолучитьПериод
- •ВыбратьСубконто
- •ПолучитьСубконто
- •ВыбратьКорСубконто
- •ПолучитьКорСубконто
- •Атрибуты для обращения к результатам запроса Счет
- •КорСчет
- •НачДата
- •КонДата
- •Операция
- •Методы обращения к результатам запроса Субконто
- •КорСубконто
- •ПредставлениеСубконто
- •ПредставлениеКорСубконто
- •ЭтоГруппа
- •Сндрс, снкрс, скдрс, сккрс
- •КорДо, КорКо
- •ВыбранаПоДт, ВыбранаПоКт
- •Глава 21 Работа с Корректными проводками
- •Контекст работы с объектом «КорректныеПроводки»
- •ВыбратьКорректныеПроводки
- •ВыбратьКорректныеПроводкиПоСчету
- •ПолучитьКорректнуюПроводку
- •Записать
- •Удалить
- •Глава 22 Работа с Журналами расчетов
- •Контекст работы с журналом расчета
- •Контекст работы с записями журнала расчетов
- •Контекст работы с периодом журнала расчетов
- •Атрибуты периода журнала расчетов ДатаНачала
- •ДатаОкончания
- •ОписательПериода
- •Методы периода журнала расчетов ПрибавитьПериод
- •Атрибуты журнала расчетов Документ
- •РодительскийДокумент
- •ВидРасч
- •ДатаНачала
- •ДатаОкончания
- •ПериодДействия
- •ПериодРегистрации
- •Рассчитана
- •Исправлена
- •Фиксирована
- •Перерасчет
- •ПервичнаяЗапись
- •Результат
- •Методы журнала расчетов НачалоТекущегоПериода
- •КонецТекущегоПериода
- •НачалоПериодаПоДате
- •КонецПериодаПоДате
- •ПериодПоДате
- •УстановитьТекущийПериод
- •ТекущийПериод
- •ПолучитьЗапись
- •ВыполнитьРасчет
- •ОписательПериода
- •ТекущаяЗапись
- •НайтиЗапись
- •ФиксироватьЗапись
- •ОсвободитьЗапись
- •ВвестиПерерасчет
- •ВвестиПерерасчетНаОсновании
- •ПредставлениеВида
- •НазначитьТип
- •УстановитьРеквизит
- •ВвестиРасчет
- •ВвестиРасчетНаОсновании
- •ЗаписатьРасчет
- •ЗаписатьРасчетНаОсновании
- •Рассчитать
- •ВыбратьЗаписи
- •ВыбратьПериод
- •ВыбратьЗаписиПоОбъекту
- •ВыбратьЗаписиПоДокументу
- •ВыбратьПериодПоОбъекту
- •ВыбратьПоЗначению
- •Записать
- •УдалитьЗапись
- •Исправить
- •ОтменитьИсправление
- •Методы контекста Модуля формы журнала расчетов
- •ВидыОтбора
- •УстановитьОтбор
- •ПолучитьОтбор
- •ЗакладкиОтбора
- •ГраницаПросмотра
- •УстановитьПредставление
- •ПолучитьПредставление
- •РассчитыватьПриОтменеИсправления
- •Предопределенные процедуры Модуля формы журнала расчетов
- •ПриИсправленииРезультата
- •ПриОтменеИсправления
- •ПриРасчете
- •ПриВыбореВладельца
- •ПриУстановкеОтбора
- •ПриУстановкеГраницыПросмотра
- •ПриУстановкеПредставления
- •Глава 23 Работа с Видами и Группами расчетов Контекст работы с видами расчетов и группами расчетов
- •Атрибуты видов расчета и групп видов расчета
- •Наименование
- •Атрибуты видов расчета Очередность
- •ПриоритетВытеснения
- •Методы видов расчета ПолучитьАтрибут
- •ВходитВГруппу
- •ВытесняетВидРасчета
- •ВытесняетсяВидомРасчета
- •Методы групп видов расчета СодержитВидРасчета
- •Количество
- •ПолучитьРасчет
- •Глава 24 Работа с Правилами перерасчета
- •Контекст работы с правилами перерасчета
- •Атрибуты правил перерасчета
- •КоличествоПериодов
- •Методы правил перерасчета КоличествоВедущих
- •ИмеетВедущий
- •ПолучитьВедущий
- •ДобавитьКакВедущий
- •УдалитьВсеВедущие
- •КоличествоПодчиненных
- •ИмеетПодчиненный
- •ПолучитьПодчиненный
- •ДобавитьКакПодчиненный
- •УдалитьВсеПодчиненные
- •Применять
- •Глава 25 Работа с Календарями и Праздниками
- •Контекст работы с календарями
- •Контекст работы с праздниками
- •Атрибуты и методы объекта Календари
- •ПолучитьАтрибут
- •УстановитьАтрибут
- •Методы календарей Выбран
- •ВыбратьДаты
- •СледующаяДата
- •Автозаполнение
- •УчитыватьПраздники
- •ПолучитьДату
- •Методы праздников Новый
- •Удалить
- •ВыбратьДаты
- •СледующаяДата
- •Глава 26 Работа с последовательностями документов
- •Контекст работы с последовательностями
- •Установить
- •Сравнить
- •ПринадлежитПоследовательности
- •Проверить
- •Глава 27 Работа с объектом Периодический
- •Контекст работы с объектом Периодический
- •Атрибуты объекта Периодический Значение
- •ДатаЗнач
- •Методы объекта Периодический ИспользоватьОбъект
- •НазначитьТип
- •ЗначениеНаДату
- •НайтиЗначение
- •ВыбратьЗначения
- •ВыбратьПоДокументу
- •ПолучитьЗначение
- •ОбратныйПорядок
- •ТекущийДокумент
- •ТекущийОбъект
- •ТекущийРеквизит
- •НомерСтроки
- •Записать
- •Удалить
- •Глава 28 Работа со Списком Значений
- •Контекст работы со Списком Значений
- •Методы объекта Список Значений ДобавитьЗначение
- •ВставитьЗначение
- •РазмерСписка
- •НайтиЗначение
- •ПолучитьЗначение
- •УстановитьЗначение
- •Получить
- •Установить
- •УдалитьЗначение
- •УдалитьВсе
- •Сортировать
- •СортироватьПоПредставлению
- •СдвинутьЗначение
- •Принадлежит
- •ВыбратьЗначение
- •ОтметитьЗначения
- •Пометка
- •ТекущаяСтрока
- •ИзСтрокиСРазделителями
- •ВСтрокуСРазделителями
- •Выгрузить
- •Глава 29 Работа с Таблицей Значений
- •Контекст работы с Таблицей Значений
- •Атрибуты Таблицы Значений НомерСтроки
- •Методы объекта Таблица Значений КоличествоКолонок
- •НоваяКолонка
- •ВставитьКолонку
- •УдалитьКолонку
- •УстановитьПараметрыКолонки
- •ПолучитьПараметрыКолонки
- •КоличествоСтрок
- •НоваяСтрока
- •ВыбратьСтроку
- •ПолучитьСтрокуПоНомеру
- •СдвинутьСтроку
- •УстановитьЗначение
- •ПолучитьЗначение
- •НайтиЗначение
- •Сортировать
- •Очистить
- •Заполнить
- •Свернуть
- •Выгрузить
- •Загрузить
- •ВидимостьКолонки
- •ТекущаяСтрока
- •ТекущаяКолонка
- •Фиксировать
- •ВыводитьПиктограммы
- •Пример использования объекта Таблица Значений
- •Глава 30 Атрибуты и методы контекста Модуля формы
- •Атрибуты контекста Модуля формы СтрокаДействийФормы
- •Атрибуты объекта Форма Закладки
- •Параметр
- •Методы объекта Форма
- •ТолькоПросмотр
- •Обновить
- •ИспользоватьЗакладки
- •ИспользоватьСлой
- •Заголовок
- •ПанельИнструментов
- •КнопкаПоУмолчанию
- •ОбработкаВыбораСтроки
- •ВыполнитьВыбор
- •РежимВыбора
- •МодальныйРежим
- •ПолучитьАтрибут
- •АктивныйЭлемент
- •ТекущаяКолонка
- •Закрыть
- •Методы элементов диалога
- •Видимость
- •Доступность
- •Редактирование
- •ВыборГруппы
- •ВыполнятьФормулуТолькоПриИзменении
- •Заголовок
- •УстановитьТип
- •НазначитьТип
- •НеИзменятьВид
- •Методы контекста Модуля формы
- •ОткрытьПодбор
- •УстановитьЗначениеВПодборе
- •ПолучитьЗначениеИзПодбора
- •Активизировать
- •АктивизироватьОбъект
- •Предопределенные процедуры Модуля формы
- •ПриОткрытии
- •ПриПовторномОткрытии
- •ПриЗакрытии
- •ПриВыбореЗакладки
- •ПриНачалеВыбораЗначения
- •ОбработкаПодбора
- •ОбработкаВыбораЗначения
- •ПриВыбореСтроки
- •Атрибуты и методы контекста Модуля формы отчета (обработки)
- •РасположениеФайла
- •Предопределенные процедуры модуля формы отчета (обработки)
- •ВводНового
- •ПриОткрытии
- •Глава 31 Работа с Таблицами
- •Контекст работы с таблицами
- •Атрибуты таблиц ТекущийОбъект
- •Методы таблиц ИсходнаяТаблица
- •ИспользоватьФормат
- •Открыть
- •Вывести
- •ПолучитьСекцию
- •ВывестиСекцию
- •ПрисоединитьСекцию
- •НоваяСтраница
- •НоваяКолонка
- •ЩиринаТаблицы
- •ВысотаТаблицы
- •ШиринаСекции
- •ВысотаСекции
- •ТолькоПросмотр
- •Очистить
- •Показать
- •Записать
- •ЗначениеТекущейЯчейки
- •Область
- •ПовторятьПриПечатиСтроки
- •ПовторятьПриПечатиСтолбцы
- •ОбластьПечати
- •ПараметрыСтраницы
- •КоличествоЭкземпляров
- •ЭкземпляровНаСтранице
- •Напечатать
- •Атрибуты и методы объекта «СекцияТаблицы»
- •Область
- •Атрибуты и методы объекта «ОбластьТаблицы» Текст
- •Расшифровка
- •Объединить
- •РазмерШрифта
- •Полужирный
- •Подчеркнутый
- •ВертикальноеПоложение
- •ГоризонтальноеПоложение
- •Контроль
- •РамкаСверху
- •РамкаСнизу
- •РамкаСлева
- •РамкаСправа
- •РамкаОбвести
- •ЦветФона
- •ЦветРамки
- •ЦветТекста
- •ВысотаСтроки
- •ШиринаСтолбца
- •Атрибуты и методы таблицы в режиме ввода данных
- •АктивнаяОбласть
- •Выгрузить
- •Загрузить
- •Атрибуты и методы области таблицы в режиме ввода данных
- •Значение
- •УстановитьТип
- •НазначитьТип
- •Доступность
- •Редактирование
- •Системные предопределенные процедуры работы с таблицами ОбработкаЯчейкиТаблицы
- •ПриВыбореЯчейкиТаблицы
- •Глава 32 Работа с Текстом
- •Контекст работы с текстом
- •Методы текста КоличествоСтрок
- •ПолучитьСтроку
- •Открыть
- •ФиксШаблон
- •ВставитьСтроку
- •ДобавитьСтроку
- •ЗаменитьСтроку
- •УдалитьСтроку
- •ТолькоПросмотр
- •Показать
- •Очистить
- •КодоваяСтраница
- •Записать
- •Глава 33 Работа с Запросами
- •Контекст работы с запросами
- •Структура запросов и методика их использования
- •Атрибуты запросов
- •Методы запросов Выполнить
- •ИспользоватьГрафуОтбора
- •Группировка
- •ЭтоГруппа
- •НачалоПериода
- •КонецПериода
- •Получить
- •ВНачалоВыборки
- •Выгрузить
- •ЗначениеУпорядочивания
- •ПолучитьАтрибут
- •Глава 34 Язык Запросов
- •Формат текста описания запроса
- •Соглашения и обозначения
- •Зарезервированные слова языка запросов
- •Комментарий
- •Константы и переменные запросов Константы
- •Внутренние переменные
- •Конкретизация переменной
- •Внешние переменные
- •Атрибуты, доступные при описании внутренних переменных
- •Операторы языка запросов Объявление внутренней переменной
- •Период с
- •ОбрабатыватьДокументы
- •ОбрабатыватьОперации
- •Обрабатывать
- •Функция
- •Группировка
- •Без итогов
- •Условие
- •Примеры использования Запросов Печать каталога товаров
- •Отчет по неходовым товарам
- •Отчет по регистру с точностью до строки документа
- •Анализ счета
- •Разработка вложенных отчетов
- •Способы оптимизации формирования отчетов
- •Глава 35 Работа с Картинками
- •Контекст работы с картинками
- •Методы объекта Картинка Загрузить
- •Сохранить
- •РежимРисования
- •УстановитьКартинку
- •Глава 36 Работа с Диаграммами
- •Контекст работы с диаграммами
- •Объект «Диаграмма» — основные принципы и понятия, используемые при визуальной настройке и управлении
- •КоличествоТочек
- •УстановитьИмяСерии
- •УстановитьИмяТочки
- •ЦветСерии
- •АвтоУстановкаИменСерий
- •АвтоУстановкаИменТочек
- •УстановитьЗначение
- •Обновление
- •Очистить
- •Пример использования
- •Глава 37 Работа с Файлами
- •Контекст работы с Файлами
- •Методы объекта «фс» ВыбратьФайл
- •ВыбратьФайлКартинки
- •ВыбратьКаталог
- •СуществуетФайл
- •КопироватьФайл
- •УдалитьФайл
- •ПереименоватьФайл
- •НайтиПервыйФайл
- •НайтиСледующийФайл
- •АтрибутыФайла
- •СоздатьКаталог
- •УдалитьКаталог
- •УстТекКаталог
- •ТекКаталог
- •WindowsКаталог
- •СвободноеМестоНаДиске
- •Глава 38 Работа с базами данных формата dbf Основные понятия
- •Поля и записи
- •Индексы, выражения индекса и фильтра
- •Работа с индексными файлами
- •Удаление записей
- •Создание базы данных, индекса, индексного файла
- •Ограничения
- •Контекст работы с xBase
- •Атрибуты объекта xBase
- •Методы объекта xBase СоздатьФайл
- •ОткрытьФайл
- •Открыта
- •ЗакрытьФайл
- •ОчиститьФайл
- •Переиндексировать
- •ПоказыватьУдаленные
- •Последняя
- •Следующая
- •Предыдущая
- •НомерЗаписи
- •Перейти
- •ВНачале
- •ТекущийИндекс
- •НайтиПоКлючу
- •ПолучитьЗначениеПоля
- •УстановитьЗначениеПоля
- •Добавить
- •Скопировать
- •Автосохранение
- •Записать
- •Отменить
- •Удалить
- •ЗаписьУдалена
- •Восстановить
- •Очистить
- •КоличествоЗаписей
- •КоличествоПолей
- •КоличествоИндексов
- •ОписаниеПоля
- •ОписаниеИндекса
- •НомерПоля
- •ДобавитьПоле
- •ДобавитьИндекс
- •СоздатьИндексныйФайл
- •КодоваяСтраница
- •КодОшибки
- •Выражение и фильтр индекса
- •Функции, применяемые в выражениях
- •Глава 39 Работа с Метаданными
- •Контекст работы с метаданными
- •Атрибуты и методы объекта «Метаданные»
- •Методы работы с метаданными
- •Родитель
- •ПолныйИдентификатор
- •Представление
- •ДлинаПредставленияЗначения
- •Глава 40 Связь с внешними приложениями посредством механизмов dde и ole Automation
- •Контекст работы с внешними приложениями
- •Методы внешних приложений
- •Работа системы 1с:Предприятие в качестве ole Automation сервера
- •Атрибуты системы 1с:Предприятие как ole Automation сервера
- •Методы системы 1с:Предприятие как ole Automation сервера
- •Работа системы 1с:Предприятие в качестве dde сервера
Разработка вложенных отчетов
Средства программы 1С:Предприятие по работе с Таблицами позволяют создавать эффектные отчеты, причем на экране монитора отображается не просто мертвая картинка предварительного просмотра печати, а живой отчет, который можно редактировать или непосредственно из него вызывать дополнительную поясняющую информацию.
Поскольку каждая ячейка Таблицы может содержать значение, записанное в нее (см. Конфигуратор, редактор таблиц — Свойства ячейки — Текст — поле: Значение), то в программном модуле формы отчета возможно обрабатывать это значение. Обработка значения ячейки Таблицы вызывается системой по клавише <Enter> или по двойному щелчку мышью на какой-либо ячейке (если режим «только просмотр»). Стандартными действиями системы на обработку такого события являются: для документа — открытие документа, для элемента справочника — открытие формы редактирования элемента справочника. Другими словами, стандартные действия системы зависят от типа данных содержащегося в ячейке значения. Однако, это событие возможно перехватить и обработать нестандарным способом. Для этого предназначена предопределенная процедура встроенного языка ОбработкаЯчейкиТаблицы.
Примером нестандартной обработки значения ячейки таблицы может быть, например, вызов на формирование другого отчета. Таким образом, мы можем создавать как бы вложенные отчеты, которые вызываются один из другого, выдавая с каждым разом более детальную информацию. Допустим отчет «Взаиморасчеты» при формировании всегда выводится в кратком виде, когда виден только сводный баланс по контрагенту. Для того, чтобы получить детальный отчет по данному контрагенту, достаточно встать курсором в готовой форме отчета на этого контрагента и нажать клавишу <Enter>. Тогда сработает процедура ОбработкаЯчейкиТаблицы, в которой можно записать вызов формирования детального отчета. А если, кроме того, завести флаг режима отображения, то можно вместо этого показывать карточку этого контрагента из справочника.
Рассмотрим построение вложенных отчетов на примере. Допустим, у вас есть отчет «ПродажиТоваров», в котором отображается перечень товаров, количество и сумма проданных за некоторый период товаров. Программный модуль формирования такого отчета приведен ниже.
Пример:
Процедура ПродВсего()
Перем Запрос, ТекстЗапроса, Таб;
ДатаКон = ДатаКонца;
Если ДатаКон >= ПолучитьДатуТА() Тогда
ДатаКон = Дата(0);
КонецЕсли;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "//{{ЗАПРОС(ПродВсего)
|Период с ДатаНачала по ДатаКон;
|ТОВАР = Документ.РасхНакл.Товар;
|Сумма_Прод = Документ.РасхНакл.СуммаРуб;
|КОЛВО_Прод = Документ.РасхНакл.Количество;
|Группировка ТОВАР;
|Функция Продано = Сумма(КОЛВО_Прод);
|Функция СуммаПродано = Сумма(Сумма_Прод);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("ТабВсего");
Таб.ВывестиСекцию("Отчет");
Пока Запрос.Группировка("Товар") = 1 Цикл
ПродСумма = Запрос.СуммаПродано;
Если Запрос.Товар.ЭтоГруппа() = 1 Тогда
Таб.ВывестиСекцию("Группа");
Иначе
Таб.ВывестиСекцию("Товар");
КонецЕсли;
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Опции(0, 0, 4, 0);
Таб.Показать("Продажа товаров ", "");
КонецПроцедуры
В
Отчет по продаже
товаров
с 01.11.96 по 19.11.96
Товар
Продано
Кол-во
Сумма
Обувь
12
1270
Сапоги женские
5
920
Туфли мужские
7
350
Далее, допустим, мы хотим получить более подробный отчет по конкретному товару, так, чтобы указав на товар в отчете, и дважды нажав кнопку мыши, мы получали отчет по продажам именно этого товара с точностью до каждого клиента. Для этого откроем в Конфигураторе редактор таблицы нашего отчета и в свойствах ячейки (Свойства ячейки — Текст — поле: Значение), отображающей наименование товара, проставим значение ячейки. («Запрос.Товар»)
Далее, в программном модуле напишем процедуру формирования дополнительного отчета.
Продолжение примера:
//*********************************
// Процедура дополнительного отчета
Процедура ПродТовар(ВТовар)
Перем Запрос, ТекстЗапроса, Таб;
ДатаКон = ДатаКонца;
Если ДатаКон >= ПолучитьДатуТА() Тогда
ДатаКон = Дата(0);
КонецЕсли;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "//{{ЗАПРОС(ПродТовар)
|Период с ДатаНачала по ДатаКон;
|КЛИЕНТ = Документ.РасхНакл.Клиент;
|ТОВАР = Документ.РасхНакл.Товар;
|СУММ = Документ.РасхНакл.СуммаВал;
|КОЛВО = Документ.РасхНакл.Количество;
|Группировка КЛИЕНТ Упорядочить По КЛИЕНТ.Наименование;
|Группировка ТОВАР Упорядочить По ТОВАР.Наименование;
|Функция Продано = Сумма(КОЛВО);
|Функция ПродСум = Сумма(СУММ);
|"//}}ЗАПРОС
;
Если ВТовар.Выбран() = 1 Тогда
Если ВТовар.ЭтоГруппа() = 1 Тогда
ТекстЗапроса = ТекстЗапроса +
"Условие(Товар.ПринадлежитГруппе(ВТовар) = 1);";
Иначе
ТекстЗапроса = ТекстЗапроса + "Условие (Товар = ВТовар);";
ФОдинТовар = 1;
КонецЕсли;
КонецЕсли;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм
Таб = СоздатьОбъект("Таблица");
Таб.ВывестиСекцию("Отчет");
Пока Запрос.Группировка("Клиент") = 1 Цикл
Таб.ВывестиСекцию("Клиент");
Пока Запрос.Группировка("Товар") = 1 Цикл
Если ФОдинТовар = 0 Тогда
Таб.ВывестиСекцию("Товар");
КонецЕсли;
КонецЦикла;
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Опции(0, 4, 0, 0);
Таб.Показать("Продажа товара", "");
КонецПроцедуры
Теперь нам осталось написать предопределенную процедуру, которая возьмет на себя обработку события «двойной щелчок мышью на выбранной ячейке таблицы». Главная задача этой процедуры — определить, что выбрана ячейка, где указано значение товара и вызвать на исполнение процедуру формирования дополнительного отчета, написанную ранее.
Продолжение примера:
//-------------------------
Процедура ОбработкаЯчейкиТаблицы(ЗначЯч, ФлагСтандартнойОбработки)
Если ТипЗначения(ЗначЯч) = 2 Тогда
ФлагСтандартнойОбработки = 1;
Возврат;
КонецЕсли;
ПродТовар(ЗначЯч);
КонецПроцедуры
Теперь, в режиме исполнения, если в отчете «Продажи товаров» мы укажем курсором на товар, например, «Сапоги женские» и дважды щелкнем на нем мышью, то сформируется дополнительный подробный отчет «Продажа товара».