Здравствуйте! Никак не могу разобраться, как в табличном документе, который создается на основе «Макета табличного документа», организовать Группировки. Есть такой код: Код 1C v 8.х и собственно сам макет
Чего не хватает, чтобы все группировалось по Подразделению?
Yandex
Возможно, вас также заинтересует
E_Migachev
19.01.2012 15:20
Ответ № 1
(0) alex81nzp, сделай проще: 1. скоприруй код запроса 2. зайди в конфигуратор и создай новый отчет 3. Используй конструктор печати 4. в нем укажи этот запрос и вывод в табл документ 5. смотри получившийся код *13
alex81nzp
20.01.2012 09:39
Ответ № 2
Спасибо за подсказку, но результат меня не устроил, фактически получилось тоже самое за исключением вот этого кусочка: Код 1C v 8.х
Нужно чтобы получилось вот такой структуры (взято из настроек Произвольных отчетов):
Подразделение организации (Иерархия) Должность, Количество, Ставка
То что формируется через запрос в консоли отчетов меня устраивает, но не устраивает того для кого это делается! Потому и начал рыть в макетах. Ситуация осложняется еще и тем, что справочник подразделений имеет сложную структуру, т.е. например «1 цех» имеет глубину вложений 2, а именно: Например: 1 цех — Бухгалтерия — Служба ИТ — — Отдел по работе с пользователями — — Еще какой-нибудь отдел — — — какая-нибудь группа и т.д.
в итоге при печати того же Штатного расписания, нужно чтобы в качестве группы шло название Цеха, а внутри вся его структура. 1 цех — Бухгалтерия . Бухгалтер, 3 шт., 10000 руб. — Служба ИТ — — Отдел по работе с пользователями . Лоботряс, 10 шт., 5000 руб. — — Еще какой-нибудь отдел — — — Какая-нибудь группа . Бездельник, 1, 3000 руб.
Вот как-то так Вопрос остается открытым Изменено 20.01.12 09:41:18
E_Migachev
20.01.2012 10:41
Ответ № 3
(2) alex81nzp, я правильно понял? — тебе нужено чтобы у каждого внутреннего подразделения ставился отступ больше чем у предудущего?
alex81nzp
23.01.2012 07:02
Ответ № 4
(3) E_Migachev, тут дело не в отступах, попробуйте сделать запрос в консоли отчетов из первого поста, с вот такой настройкой:
Подразделение организации (Иерархия) Должность, Количество, Ставка
Результат выполнения запроса:
Вот в макете (в области данных) должно быть так же сгруппировано
Поля «Категория персонала» в Вашей конфигурации нет, не обращайте на него внимание. 2 раза 14 цех потому,что так занесено в штатном (в корень цеха)
Наверное так понятнее будет.
E_Migachev
24.01.2012 11:12
Ответ № 5
(4) alex81nzp, все-равно как-то не ясно что хочешь*09, сделай тот же запрос через конструктор и будет то же самое или в СКД.
alex81nzp
24.01.2012 13:42
Ответ № 6
(5) E_Migachev, Простите, самое главное то я и не написал *12
Вся эта каша из-за того что мне в отчет нужно добавить поле, которое вычисляется из содержимого другого поля, причем поле источник — строка из которой нужно брать определенную информацию, языка запросов тут явно не хватит.
Источник
НачатьАвтогруппировкуСтрок() метод ТабличногоДокумента
Скажите, пожалуйста. Почему не получается сгруппировать строки? Тип значения параметра группировки «Дата». ТабДок.НачатьАвтогруппировкуСтрок(); Для каждого Строка Из ТЗ Цикл ОбластьЗаголовок.Параметры.Период = Строка.Период; ТабДок.Вывести(ОбластьЗаголовок, 1);
(11) А я хочу чтобы, если дата1 = дата2, допустим 1августа и еще раз «выводится» 1августа.
В этом случае, происходит склейка дат (1 уровня), становится одна запись 1августа, а строка которая идет на (2 уровне), под дата2 (1августа) попадает в подчинение к этой склейке.
Может я чего не догоняю, синтаксис не проверял — но как-то так может быть?
(15) Если свернуть периоды, то данные других колонок исчезнут. Структура ТЗ такая:
И, если склеить период1 и период2, то значения период1 и период2 исчезнут, т.к. это не числа, верно ведь?
И это не сработает, так как данных нет, чтобы копировать. Только склейка периодов.
(33) Ну выборка из регистра и в ней цикл по дням, а эти дни берут из периода который указываю я.
В выборке есть строки содержащие, допустим имяживотного, датарождения, сколько ест, сколько пьет и периодичность(через) сколько его нужно кормить и поить. Допустим, я хочу знать на следующей неделе в какой день и кого кормить и поить и в каком объеме. Вот мне нужно перебрать всех животных, а на следующей неделе перебрать каждый день и узнать в какой день кормить/поить какое животное с расчетом от датырождения. Слегка глупо сформулировано, но это чисто в целях примера))
(35) это решаемо в пределах запроса через фокусы вроде генерации цифр и чисел, а уже от них переходить к датам. вот попробуй такое упражнение для консоли запросов:
Не работает «НачатьАвтогруппировкуСтрок» при выводе печатной формы документа
Хотелось бы, чтобы в печатной форме документа реквизит табличной части «статья бюджета»(справочник) выводился полностью со всеми уровнями. Не могу понять как это сделать. Во всех найденных примерах используется запрос, а как то без запроса можно сделать тоже самое? Пробовала вместо «НачатьАвтогруппировкуСтрок» использовать «НачатьГруппуСтрок», тогда в печатной форме появляется плюсик, но группы справочника не выводятся, а плюсиком закрываются просто все выведенные статьи. Понимаю, что то не так делаю, подскажите пожалуйста как правильно.
ТабДок = Новый ТабличныйДокумент; Макет = Документы.Т_БюджетныйПлан.ПолучитьМакет(«Печать»); // Заголовок Область = Макет.ПолучитьОбласть(«Заголовок»); ТабДок.Вывести(Область); // Шапка Шапка = Макет.ПолучитьОбласть(«Шапка»); Шапка.Параметры.Заполнить(ЭтотОбъект); ТабДок.Вывести(Шапка); // ТабЧасть Область = Макет.ПолучитьОбласть(«ТабЧастьШапка»); ТабДок.Вывести(Область); ОбластьТабЧасть = Макет.ПолучитьОбласть(«ТабЧасть»); ТабДок.НачатьАвтогруппировкуСтрок(); Для Каждого Стр Из ТабЧасть Цикл ОбластьТабЧасть.Параметры.Заполнить(Стр); ТабДок.Вывести(ОбластьТабЧасть,Стр.СтатьяБюджета.Уровень(),Стр.СтатьяБюджета.Родитель,Истина); КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.ИтогиСнизу = Истина; ТабДок.ОтображатьСетку = Ложь; ТабДок.Защита = Ложь; ТабДок.ТолькоПросмотр = Ложь; ТабДок.ОтображатьЗаголовки = Ложь; ТабДок.Показать();
Источник
Интерактивные возможности табличного документа
Табличный документ 1С:Предприятия 8 служит не только для печати документов и отчетов. Он имеет расширенные возможности, которые превращают его в интерактивное средство взаимодействия с пользователем. К таким возможностям относятся:
Стоит заметить, что к интерактивным возможностям табличного документа можно также отнести сводные таблицы и элементы управления, располагающиеся в ячейках, но сейчас мы не будем на них останавливаться, а подробнее рассмотрим вышеперечисленные механизмы.
Расшифровки
Система «1С:Предприятие 8» поддерживает механизм расшифровок (drill-down, drill-through), когда пользователь щелкает на строке или ячейке отчета и получает более детальный отчет, если конечно это предусмотрено программистом.
Расшифровки делятся на стандартные и нестандартные. Стандартные расшифровки обрабатываются системой автоматически и не требуют дополнительных усилий от программиста, например, для документов будет открыта форма документа, а для элементов справочника будет открыта форма элемента. Если справочник редактируется в списке, то курсор будет установлен на текущем элементе в форме списка. Для выполнения нестандартной расшифровки предназначено событие ОбработкаРасшифровки.
Событие «ОбработкаРасшифровки» можно обработать, только если табличный документ помещен в форму как элемент управления, а не открывается в отдельном окне, поскольку это событие существует только у элемента управления «ПолеТабличногоДокумента». Ниже показаны категория свойств «События» элемента управления «ПолеТабличногоДокумента», где назначается процедура-обработчик расшифровки:
Сама процедура «РасшифроватьСтроку» может выглядеть следующим образом (как пример):
Примечание 1. В модуле приложения (аналог глобального модуля в версии 7.7) больше нет события ОбработкаЯчейкиТаблицы. Вся обработка расшифровок должна быть произведена в модуле формы, где располагается элемент управления «ПолеТабличногоДокумента».
Примечание 2. Событие «ОбработкаРасшифровки» возникает при щелчке на ячейке или рисунке, содержащих расшифровку. Не путайте его с событием «Выбор», возникающим для всех ячеек и рисунков при двойном щелчке мыши или нажатии клавиши Enter, причем, сначала возникает событие «Выбор», а потом «ОбработкаРасшифровки».
Группировки
В 1С:Предприятии 8 появилась возможность группировать данные в отчете. Группировки могут быть горизонтальные и вертикальные, тогда слева и сверху появляются специальные маркеры, позволяющие пользователю разворачивать и сворачивать группы, как показано на следующем рисунке:
Самый простой способ добавить группировки в отчет — доверить эту задачу системе, тогда от программиста потребуются минимальные усилия. Необходимо всего лишь применить методы НачатьАвтоГруппировкуСтрок/НачатьАвтоГруппировкуКолонок и ЗакончитьАвтоГруппировкуСтрок/ЗакончитьАвтоГруппировкуКолонок, которые включают режим автоматической группировки строк или колонок соответственно. В этом режиме при вызове методов Вывести (для строк) и Присоединить (для колонок) указываются дополнительные параметры для группировки:
При использовании группировок очень полезно установить свойство ячейки «АвтоОтступ» в какое-нибудь ненулевое значение, например, 5. Тогда система будет автоматически добавлять заданное количество пробелов слева текста ячейки, основываясь на текущем уровне группировки. В результате отчет приобретет удобный внешний вид для отображения иерархии данных.
Следующий пример выводит список товаров с группировками:
Примечания
Ячейки табличного документа могут иметь примечания, тогда в правом верхнем углу ячейки выводится маленький красный треугольник. При наведении курсора мыши на ячейку примечание показывается во всплывающем окне:
Программная установка примечаний реализуется следующим образом:
Обратите внимание, что свойство «Примечание» у объекта «ОбластьЯчеекМакета» является объектом типа «Рисунок», а не простой строкой. Через этот объект можно редактировать внешний вид примечания, шрифт и цвет текста, фон, линии и т.д.