Табличный документ 1С:Предприятия 8 служит не только для печати документов и отчетов. Он имеет расширенные возможности, которые превращают его в интерактивное средство взаимодействия с пользователем. К таким возможностям относятся:
Стоит заметить, что к интерактивным возможностям табличного документа можно также отнести сводные таблицы и элементы управления, располагающиеся в ячейках, но сейчас мы не будем на них останавливаться, а подробнее рассмотрим вышеперечисленные механизмы.
Расшифровки
Система "1С:Предприятие 8" поддерживает механизм расшифровок (drill-down, drill-through), когда пользователь щелкает на строке или ячейке отчета и получает более детальный отчет, если конечно это предусмотрено программистом.
Расшифровки делятся на стандартные и нестандартные. Стандартные расшифровки обрабатываются системой автоматически и не требуют дополнительных усилий от программиста, например, для документов будет открыта форма документа, а для элементов справочника будет открыта форма элемента. Если справочник редактируется в списке, то курсор будет установлен на текущем элементе в форме списка. Для выполнения нестандартной расшифровки предназначено событие ОбработкаРасшифровки.
Событие "ОбработкаРасшифровки" можно обработать, только если табличный документ помещен в форму как элемент управления, а не открывается в отдельном окне, поскольку это событие существует только у элемента управления "ПолеТабличногоДокумента". Ниже показаны категория свойств "События" элемента управления "ПолеТабличногоДокумента", где назначается процедура-обработчик расшифровки:
Сама процедура "РасшифроватьСтроку" может выглядеть следующим образом (как пример):
Примечание 1. В модуле приложения (аналог глобального модуля в версии 7.7) больше нет события ОбработкаЯчейкиТаблицы. Вся обработка расшифровок должна быть произведена в модуле формы, где располагается элемент управления "ПолеТабличногоДокумента".
Примечание 2. Событие "ОбработкаРасшифровки" возникает при щелчке на ячейке или рисунке, содержащих расшифровку. Не путайте его с событием "Выбор", возникающим для всех ячеек и рисунков при двойном щелчке мыши или нажатии клавиши Enter, причем, сначала возникает событие "Выбор", а потом "ОбработкаРасшифровки".
Группировки
В 1С:Предприятии 8 появилась возможность группировать данные в отчете. Группировки могут быть горизонтальные и вертикальные, тогда слева и сверху появляются специальные маркеры, позволяющие пользователю разворачивать и сворачивать группы, как показано на следующем рисунке:
Самый простой способ добавить группировки в отчет — доверить эту задачу системе, тогда от программиста потребуются минимальные усилия. Необходимо всего лишь применить методы НачатьАвтоГруппировкуСтрок/НачатьАвтоГруппировкуКолонок и ЗакончитьАвтоГруппировкуСтрок/ЗакончитьАвтоГруппировкуКолонок, которые включают режим автоматической группировки строк или колонок соответственно. В этом режиме при вызове методов Вывести (для строк) и Присоединить (для колонок) указываются дополнительные параметры для группировки:
При использовании группировок очень полезно установить свойство ячейки "АвтоОтступ" в какое-нибудь ненулевое значение, например, 5. Тогда система будет автоматически добавлять заданное количество пробелов слева текста ячейки, основываясь на текущем уровне группировки. В результате отчет приобретет удобный внешний вид для отображения иерархии данных.
Следующий пример выводит список товаров с группировками:
Примечания
Ячейки табличного документа могут иметь примечания, тогда в правом верхнем углу ячейки выводится маленький красный треугольник. При наведении курсора мыши на ячейку примечание показывается во всплывающем окне:
Программная установка примечаний реализуется следующим образом:
Обратите внимание, что свойство "Примечание" у объекта "ОбластьЯчеекМакета" является объектом типа "Рисунок", а не простой строкой. Через этот объект можно редактировать внешний вид примечания, шрифт и цвет текста, фон, линии и т.д.
alex81nzp |
---|
Прочитано: 26231 |

Никак не могу разобраться, как в табличном документе, который создается на основе "Макета табличного документа", организовать Группировки.
Есть такой код:
Код 1C v 8.х
и собственно сам макет

Чего не хватает, чтобы все группировалось по Подразделению?
Yandex |
---|
Возможно, вас также заинтересует |

E_Migachev |
---|
Ответ № 1 |

1. скоприруй код запроса
2. зайди в конфигуратор и создай новый отчет
3. Используй конструктор печати
4. в нем укажи этот запрос и вывод в табл документ
5. смотри получившийся код *13
alex81nzp |
---|
Ответ № 2 |

Код 1C v 8.х
Нужно чтобы получилось вот такой структуры (взято из настроек Произвольных отчетов):
Подразделение организации (Иерархия)
Должность, Количество, Ставка
То что формируется через запрос в консоли отчетов меня устраивает, но не устраивает того для кого это делается! Потому и начал рыть в макетах. Ситуация осложняется еще и тем, что справочник подразделений имеет сложную структуру, т.е. например "1 цех" имеет глубину вложений 2, а именно:
Например:
1 цех
— Бухгалтерия
— Служба ИТ
— — Отдел по работе с пользователями
— — Еще какой-нибудь отдел
— — — какая-нибудь группа
и т.д.
в итоге при печати того же Штатного расписания, нужно чтобы в качестве группы шло название Цеха, а внутри вся его структура.
1 цех
— Бухгалтерия
. Бухгалтер, 3 шт., 10000 руб.
— Служба ИТ
— — Отдел по работе с пользователями
. Лоботряс, 10 шт., 5000 руб.
— — Еще какой-нибудь отдел
— — — Какая-нибудь группа
. Бездельник, 1, 3000 руб.
Вот как-то так Вопрос остается открытым Изменено 20.01.12 09:41:18
E_Migachev |
---|
Ответ № 3 |

alex81nzp |
---|
Ответ № 4 |

Подразделение организации (Иерархия)
Должность, Количество, Ставка
Результат выполнения запроса:
Вот в макете (в области данных) должно быть так же сгруппировано
Поля "Категория персонала" в Вашей конфигурации нет, не обращайте на него внимание.
2 раза 14 цех потому,что так занесено в штатном (в корень цеха)
Наверное так понятнее будет.
E_Migachev |
---|
Ответ № 5 |

alex81nzp |
---|
Ответ № 6 |

Вся эта каша из-за того что мне в отчет нужно добавить поле, которое вычисляется из содержимого другого поля, причем поле источник — строка из которой нужно брать определенную информацию, языка запросов тут явно не хватит.
Проконсультироваться
со специалистом 1С
Формируем ТабДок а далее пишем:
Код 1C v 8.х
Либо при выводе:
ТабличныйДокумент (SpreadsheetDocument)
Вывести (Put)
Синтаксис:
Код 1C v 8.х
Параметры:
(обязательный)
Тип: ТабличныйДокумент, ПолеТабличногоДокумента. Выводимая таблица.
(необязательный)
Тип: Число. Уровень используется для автоматической группировки строк табличного документа. Соседние строки с одинаковым уровнем будут отнесены к одной группе. Строки с минимальным уровнем в группу не объединяются.
(необязательный)
Тип: Строка. Название группы, к которой относятся выводимые строки.
Значение по умолчанию: Пустая строка
(необязательный)
Тип: Булево. Истина — выведенная группа будет открыта, Ложь — группа будет выведена в свернутом виде.
Значение по умолчанию: Истина
Возвращаемое значение:
Тип: ОбластьЯчеекТабличногоДокумента. Область, в которую был осуществлен вывод.
Описание:
Выводит табличный документ в результирующий табличный документ, добавляя его со следующей строки вслед за самой нижней выведенной строкой, начиная с первой колонки.
Обратите внимание на параметр номер 2 "Уровень".