1с добавить отчет меню
во первых теме уже почти 5 лет (за это время может быть изобрели более простые способы)
во вторых вы говорите про внешний отчет, а если требуется сделать операцию для штатного (дублировать в любом случае не правильно функционал - это чревато бардаком, потом нужно будет менять в нескольких местах одно и то же и естественно через некоторое время кто-то про это забуедет или вообще будет не при делах)
Ну извиняйте. не заметил, что посту пять лет, просто последний пост был не пять лет назад.
Так штатные отчеты обычно уже включены..в панели по умолчанию..и там как раз ничего делать то и не нужно. если вам только логику поменять.
я готовился к спецу по ут 11 и тогда требовалась с нуля писать конфу.
Просмотры 27123
Загрузки 0
Рейтинг 7
Создание 15.01.14 11:06
Обновление 15.01.14 11:06
№ Публикации 240041
Тип файла Нет файла
Конфигурация Конфигурации 1cv8
Операционная система Windows
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)
Код открыт Не указано
Ключевую часть курса составляет практическая работа по командам над проектами. Управление ИТ-проектами. Agile: продвинутый курс по гибкому управлению проектами.См. также
Редактирование текстов интерфейса … Промо
Редактирование текстов интерфейса … (перевод интерфейса конфигурации на другой язык английский – немецкий – китайский – японский и многие другие). У вас есть стандартная конфигурация, в которой надо перевести интерфейс на другой язык, легко! А вот со справкой придется немного помучаться. Просьба не путать с данными, которые хранятся в реквизитах объектов.
1 стартмани
26.06.2012 40584 Nykyanen 39
Семеро одного не ждут? Асинхронное исследование асинхронности
Все уже, наверное, знают о появлении в новых версиях платформы асинхронных функций и конструкций Асинх/Ждать. Многие, возможно, уже их используют. Но что будет, если создать свои асинхронные функции, запустить и не дожидаться окончания их выполнения? Неужели можно запустить несколько процессов параллельно?
1 стартмани
08.06.2021 5643 Alxby 45
Библиотека программного изменения формы (УФ)
Нам часто приходится дорабатывать различные управляемые формы. Проще внести изменения непосредственно на самой форме, но, для дальнейшего поддержания конфигурации, удобнее вносить все изменения на форме программно. Предлагаю Вам библиотеку для программного изменения управляемых форм, которую можно внедрить в конфигурацию либо совсем бесшовно, либо практически бесшовно.
1 стартмани
07.08.2020 7061 BuriyLesha 19
Настройка колонок для вывода в отчет
Иногда возникает задача вывести в отчет по запросу не все колонки, а только определенные.
1 стартмани
12.07.2020 4199 user847462 2
Приятная глазу цветовая схема 1С 8.х Промо
Несколько цветовых схем для встроенного языка 1С, которые минимизирует нагрузку на глаза, за счет чего повышается производительность!
1 стартмани
26.03.2012 71764 NDM 126
Сохранение настроек колонок
Сохранение настроек колонок табличных полей. Получение имени формы из модуля формы. Для обычных форм.
1 стартмани
10.07.2020 1574 Arc 1
1С+Firebase. Оперативное отображение информации
Появилась задача по отображению информации из базы в "режиме реального времени" с возможностью масштабирования количества подключенных клиентов (неплохо бы уметь подключаться с мобильных устройств), плавающей нагрузкой и минимальными затратами на разработку без изобретения сложных велосипедов. В уме довольно быстро всплыло "Firebase". Далее небольшой опыт реализации взаимодействия с Firestore для раскрашивания объектов карты.
1 стартмани
06.04.2020 3446 oyti 2
Управление состоянием для шаблона MVC и работы с данными объекта
Пользователи хотят интуитивно понятный и отзывчивый интерфейс, программистам нужен ни менее богатый программный интерфейс, бизнесу нужно быстрое и дешевое решение, которое бы гарантировало корректные данные и отсутствие мусора. В статье представлено решение для декларативного описания зависимостей данных и работы формы.
1 стартмани
18.03.2020 4286 kalyaka 35
Генерация управляемой формы на основе обычной (proof of concept)
В статье рассматривается техническая возможность автоматизированной генерации управляемой формы на основе обычной.
1 стартмани
06.11.2019 9333 user700211_a.straltsou 28
"Живые" картинки со Snap.SVG
1 стартмани
24.10.2019 15226 blackhole321 7
Полное копирование одной формы в другую
Однажды я столкнулся с необходимостью открыть форму ЛЮБОГО документа с определенными изменениями, не зависящими от структуры объекта (например, заблокировать все кнопки). В интернете решения я не нашел. Обычно на форумах на запросы подобного рода отвечают чем-то вроде "покажи первоначальную задачу, а не спрашивай как реализовать то, что ты придумал". Тем не менее, мне стало интересно, как это можно сделать.
1 стартмани
03.10.2019 8212 nekit_rdx 25
Еще один способ программной модификации управляемых форм
Пример программной модификации управляемой формы для случая когда вызов метода СобытияФорм.ПриСозданииНаСервере разработчиком конфигурации не предусмотрен.
1 стартмани
03.09.2019 5115 infosoft-v 15
Изменяющееся контекстное меню в 1С 8.3
В одной практической задаче мне пришлось разрабатывать контекстное меню таблицы управляемой формы, которое должно было меняться в зависимости от данных, находящихся в этой таблице. Ниже приведен мой способ решения этой задачи.
1 стартмани
06.08.2019 22882 signum2009 16
Совместное использование 1С:Сервер взаимодействия и Документооборот 8 КОРП, редакция 2.1.13 - Уведомления для рабочего стола
С версии ДО 2.1.13 в программу встроена подсистема Обсуждения. Данная подсистема позволяет производить уведомление пользователей без необходимости открытия программы.
1 стартмани
Изменение реквизитов существующих объектов (документов) 1С без сохранения
При решении очередной задачи столкнулся с тем, что менеджерам (сотрудникам) необходимо часто менять реквизиты существующих объектов. Это дополнительные реквизиты или сведения объектов. При этом действия менеджеров не должны приводить к перепроведению документов или пересохранению объектов, т.к. изменения могут быть в закрытых периодах. Изменение данных в реквизитах должны быть доступны в закрытых периодах и не влиять на финансовые и бухгалтерские данные.
1 стартмани
14.06.2019 7927 BraunAlex 9
Искусственный интеллект для змейки. Часть 1: Кратчайший/длиннейший путь, Гамильтонов цикл
Различные варианты алгоритмов для игры "Змейка".
1 стартмани
07.06.2019 8395 Alex_YAM 2
Как вывести в СКД две независимые таблицы, объединенные одним полем
Надо вывести в отчет на СКД 2 таблицы, которые содержат различные данные, объединяемые одним полем. Количество строк в каждой таблице может быть произвольным. Если выводить с помощью обычного соединения таблиц, то мы получим перемножение строк. Чтобы его избежать обычно используются циклы. Но в данной статье мы разберемся как это сделать только средствами СКД.
1 стартмани
06.06.2019 7808 swimdog 13
Табличная часть из дополнительных реквизитов с обработкой событий в расширении
Эмуляция табличной части с помощью дополнительных реквизитов и расширения. Подход применим к любой конфигурации на управляемых формах с БСП и режимом совместимости, допускающим использование расширений. Весь код в статье.
1 стартмани
13.05.2019 13528 mvxyz 17
Вывод вариантов СКД в таблицы на управляемой форме
Задача стояла такая: есть 2 различных запроса, результаты которых выгружаются на форму обработки в таблицы значений (далее ТЗ) и программно "соприкасаются" между собой определенным образом (как именно- в рамках данной статьи неважно). Нюанс в том, что запросы должны иметь свой компоновщик настроек и могут интерактивно на форме изменяться пользователем. На оригинальность публикации не претендую - изначально в рамках поставленной задачи пытался найти что-то подобное (уже готовый шаблон) на инфостарте, возможно "плохо искал" ;)
05.04.2019 13368 artkor 1
Поиск по дереву значений рекурсией, методом НайтиСтроки(), с помощью СКД. Вывод результата поиска в отдельную таблицу. Активация строки в дереве значений при выборе в таблице
В данной статье рассматриваются три способа поиска по дереву значений, отображённому на форме (ДанныеФормыДерево), с дальнейшим выводом результата в таблицу и возможностью перехода к строкам дерева при выборе в таблице. В статье приведены пошаговые примеры реализации всех трех способов.
1 стартмани
29.10.2018 16251 Vyacheslav_Kochnev 5
Управление состоянием формы через конечный автомат
Взаимодействие пользователя с интерфейсом приводит к изменению состояния формы и её элементов. Элементы отражают текущее состояние формы через свойства: видимости, доступности, оформления, текста заголовка и т.д. Даже при небольшом количестве элементов количество возможных состояний формы может быть достаточно большим. Необходимость учета всех состояний формы порождает сложные алгоритмы настройки элементов. В статье рассматривается алгоритмическое решение перехода к состоянию формы с использованием функционального подхода на основе декларативного описания
1 стартмани
19.06.2018 16415 kalyaka 37
Отборы (поиск) в табличной части либо таблице значений (управляемые формы)
В управляемых формах для нас доступен мощный ресурс работы с динамическими списками посредством СКД - отборы, сортировки и далее. Но вот табличная часть (таблица значений) на управляемой форме не позволяет работать так гибко. Мы можем научить пользователей пользоваться комбинацией клавиш "Ctrl+F", но давайте немного упростим жизнь и позволим нашим пользователям настраивать отборы (осуществлять поиск) по табличной части прямо в нашем окне.
1 стартмани
22.03.2018 64804 Kim1C 22
Шаблон MVC для управляемого интерфейса
Мы воспринимаем как что-то само собой разумеющееся интуитивно понятный интерфейс, мгновенно реагирующий на наши клики, подстраивающийся под уже сделанный нами выбор. А между тем за этой возможностью - решение серьезных алгоритмических задач. В общем случае решения этих задач уже найдены, но проблема их конкретного применения остается как для выбранного окружения (веб-браузер, экран мобильного телефона, компьютер), так и возможностей языка программирования. В следующей статье представлено одно из таких применений общего решения на основе шаблона MVC для 1С в сочетании с возможностями управляемых форм и декларативного описания интерфейса.
1 стартмани
14.03.2018 20940 kalyaka 37
Случайность, совпадение, закономерность. Генератор случайных чисел
Объект ГенераторСлучайныхЧисел удобно выдает случайные числа в заданном интервале значений. Исследование особенностей, рассуждения на тему случайных чисел, практика применения. Увлекательно в игровой форме можно исследовать работу генератора случайных чисел.
1 стартмани
20.01.2018 41954 Ликреонский 59
Варианты отображений свертываемых групп
Как пользователю только одним внешним видом сказать "Тут есть нужные данные. Только нажми". Используем разные варианты свертываемых групп.
1 стартмани
19.12.2017 21326 Kim1C 12
Размеры управляемой формы
Как рассчитать ширину и высоту управляемой формы или отдельного элемента, чтобы адаптировать интерфейс программно при их изменении.
1 стартмани
08.10.2017 30016 json 9
Пишем игру 21 (очко). Пример использования 1С и ActiveX
Пишем игру "очко". Программный код состоит из двух частей: 1.Разработка компоненты работы с графикой на Delphi 2.Логическая реализация игрового процесса на 1С
1 стартмани
23.05.2017 20663 user621724_Dimav1979 17
Условное оформление таблицы управляемой формы
Динамический список – замечательный элемент управления, который предоставляет пользователю широкий спектр настроек, от всевозможных отборов до условного оформления. Но что делать, если в поставленной задаче использовать список невозможно, а заказчик отказывается принимать проект без возможности настройки условного оформления. В статье будет рассмотрено одно из возможных решений для таблицы формы.
1 стартмани
17.05.2013 40895 akomar 6
Уровни группировок в отчете СКД в управляемых формах
Сверуть и развернуть группировки можно через контекстное меню, горячими клавишами, можно разместить соответствующие кнопки на форме отчета как описал mxm2, но мы пойдем другим, более информативным путем.
1 стартмани
08.05.2013 22535 Pralva 16
Кнопки сворачивания и разворачивания группировок в отчете СКД в управляемых формах
Сверуть и развернуть группировки можно через контекстное меню, горячими клавишами, а можно разместить соответствующие кнопки на форме отчета. Как оказалось, для этого не нужно ни строчки кода.
1 стартмани
10.04.2013 49999 mxm2 9
Программная настройка рабочего стола или Как на лету добавить скрыть, подменить формы.
Долгожданная возможность программно управлять составом форм рабочего стола! Публикация написана новичком для новичков, гуру 1С просьба не судить строго.
1 стартмани
07.11.2012 35724 NittenRenegade 12
1С:Предприятие 8.2. Управляемая Форма. Меняем иконку рабочего стола.
Для конфигураций имеющих свой дизайн важно иметь возможность сменить не только картинки разделов для созданных подсистем, но и картинку рабочего стола, но менять ее нет возможности. Сама 1С объясняет это тем что интерфейс любой конфигурации должен быть унифицирован: "Дело не в одной картинке, а в общей стилистике для любых конфигураций. Важно чтобы пользователи привыкали к общему стилю и одинаково воспринимали одинаковые элементы в разных конфигурациях - это ускорит и освоение конфигураций и повседневную работу пользователей с ними." Но все же можно попытаться ее сменить.
1 стартмани
28.09.2012 30387 ghostaz 39
Нестандартная расшифровка СКД или расшифровка одного отчета СКД при помощи другого отчета СКД установкой пользовательских настроек (в управляемых формах, методика + пример для УТ11)
Если требуется расшифровка одного отчета СКД при помощи другого отчета СКД, можно использовать представленный вариант. Казалось-бы все просто, однако дело усложняется тем, что с одной стороны, нужно предусмотреть разделение функционала между клиентом и сервером, с другой, нет достаточно четкого описания поведения передачи параметров расшифровки. В итоге: все решается "элементарно", но чтобы дойти до этого, лично мне пришлось убить уйму времени, так что экономьте своё ))). Под "нестандартной расшифровкой" имеется ввиду расшифровка данных одного вида отчета - другим видом, отличным от первого (с предварительной установкой нужных параметров и отборов в отчете-расшифровке).
Как сделать отчет в 1С
Научимся создавать отчеты в конфигураторе 1С. Для того, чтобы создать отчет, в конфигураторе необходимо выделить ветку Отчеты, вызвать правой клавишей мышки контекстное меню и выполнить команду Добавить.
На закладке Подсистемы редактора отчета можно указать подсистему, в которую будет входить отчет.
А на закладке Права указать, у каких ролей будет право на использование и просмотр отчета.
Если установить только право Использовать, то пользователь с этой ролью не сможет видеть отчет в интерфейсе, но сможет использовать обработки (или команды), в которых осуществляется программное обращение к этому отчету. Если необходимо, чтобы пользователь имел доступ к отчету через командный интерфейс, то нужно установить право Просмотр.
В этой статье я покажу пример создания простого отчета с помощью СКД.
Будет создана схема компоновки данных, в которой добавим набор данных Запрос.
Закончив работать с конструктором запроса, нажмем кнопку ОК, в результате добавятся поля из запроса в таблицу Поля схемы компоновки данных, и заполнится текст запроса в поле Запрос.
Осталось перейти в настройки, и создать группировку.
В группировке выберем единственное поле.
Выбранное поле появится в дереве Отчет закладки Настройка, и, в принципе, наш отчет будет готов.
Заметьте, созданная схема компоновки появится в редакторе отчета на закладке Макеты.
Наш отчет готов, осталось озаботиться тем, чтобы пользователь мог формировать этот отчет.
Вывести отчет в 1С
Проверим, сможет ли наш пользователь увидеть этот отчет.
Откроем командный интерфейс подсистемы, в которую включили отчет при его создании.
Отчет должен быть в группе Панель Действий.Отчеты.
Чтобы отчет был в этой группе, должно выполняться несколько условий.
Первое, в редакторе отчета на закладке Команды должен быть установлен флаг «Использовать стандартные команды».
Второе, созданная схема компоновки данных должна быть указана в свойстве «Основная схема компоновки данных» .
Если все вышеуказанное настроено, а также у пользователя имеется роль с правом на просмотр этого отчета и подсистемы, в которую он входит, то сделанный отчет появится в группе отчеты нужной подсистемы.
И его можно будет сформировать.
Внешний отчет 1С
Создать внешний отчет в 1С
Второй способ – сделать из существующего отчета в конфигураторе новый внешний отчет.
Для создания нового отчета, нужно нажать на кнопку «Новый документ» меню Стандартная конфигуратора.
Откроется окно «Выбор вида документа», в котором следует указать «Внешний отчет», а после нажать кнопку ОК.
Откроется знакомый нам редактор отчёта, с которым работаете так, как работаете с редактором обычного отчёта.
После того, как вы выполните все работы по созданию отчёта, следует его сохранить на жесткий диск. Для этого нужно или нажать на кнопку «Сохранить» панели «Стандартная», или выполнить команду «Сохранить» в меню Файл, или нажать комбинацию клавиш Ctrl + S. Как результат, откроется окно «Сохранить как…», в котором нужно выбрать место, где будет находиться файл вашего внешнего отчёта.
Также, можно создать внешний отчет из отчета, который уже был разработан в конфигураторе. В этом случае, необходимо выделить нужный отчет в дереве метаданных, вызвать правой клавишей мышки контекстное меню, и выполнить команду «Сохранить как внешнюю обработку, отчет..» этого меню.
В результате выполнения команды, будет открыто окно «Сохранить как…», в котором следует выбрать путь хранения нового отчета.
Открыть внешний отчет в 1С
Для того, чтобы пользователь имел возможность открывать внешний отчет из клиентского приложения «1С: Предприятия 8.3», необходимо, чтобы у роли этого пользователя было включено право «Интерактивное открытие внешних отчетов».
Если это право включено, то внешний отчет в 1С можно открыть, используя команду «Открыть» подменю файл, которое находится в меню «Сервис и настройка» (начиная с версии платформы 1С 8.3.14).
В окне «Открыть» нужно выбрать файл внешнего отчета (с расширением erf).
Выйдет предупреждение безопасности.
И если вы нажмете «Да», то откроется внешний отчет, с которым можно уже работать.
Другие статьи по конфигурированию в 1С:
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Любой отчет и обработку можно подключить пользователям как дополнительные отчеты или обработки, вот например пункт в БП - Банк:
Добавление происходит через
далее Дополнительные отчеты и обработки, в списке нажмите Создать и Выберите Файл отчета/обработки:
Перед добавлением файл нужно подготовить, дописать в модуль объекта код подключения:
Для обработок код:
Для отчетов и печатных форм меняйте параметр Вид:
Возможные значения этого поля приведу в виде таблицы
Это поле может принимать одно из значений, возвращаемых функциями в типовых конфигурациях:
ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработки<Вид>(). Например, для вида "ПечатнаяФорма" есть функция ВидОбработкиПечатнаяФорма().
Разместил: all4cf Версии: | Дата: 21.07.2017 Прочитано: 25522Похожие FAQ
Еще в этой же категории
Ключевые слова и Изображения
Слова упорядочены по частоте использования в тексте
Изображения
Поговорим об особенностях формирования внешних отчетов в программе 1С Бухгалтерия 8 без применения схемы компоновки информации. За исходную информацию примем необходимость: «Составить отчет по сч. 62 бухучета , в котором в разрезе Контрагентов и их Договоров станут отражаться обороты за определенный период».
Создание внешнего отчета
Прежде всего, перейдем в режим Конфигуратора , выберем подраздел Файл, после кликнем на значок Новый документ или слово Новый, и создадим файл внешнего отчета.
Выберем строку Внешний отчет в перечне. После формирования файлы, укажем его Наименование (допустим, ПростейшийОтвет ) и выполним сохранение на диск. Кроме того, внесем несколько реквизитов вида Дата – КонецПериода и НачалоПериода . Они потребуются для выставления временных рамок при выборке информации в процессе создания отчета.
Создание макета внешнего отчета
Для создания отчета в 1С Бухгалтерия 2.0 понадобится шаблон для вывода информации, или, другими словами, макет, в котором будут составляться таблицы, задаваться необходимые параметры и т.д. Для добавки шаблона кликаем на раздел Макеты, находящийся в дереве мета-данных отчета, после – на Добавить. При формировании макета определяем вид Табличный документ.
В шаблоне – четыре основных части:
- Шапка – в которой станет располагаться название отчета, временной отрезок, за который он создан, шапка таблицы.
- ДанныеКонтрагент – здесь будет находиться информация по контрагентам в таблице.
- ДанныеДоговорКонтрагента – тут мы станем указывать информацию по соглашению с контрагентом, также в таблице.
- Подвал – часть предназначается для указания итоговых параметров по всему отчету для Расхода и Прихода.
Начнем формировать части шаблона. Для этого выделяем необходимое число строк, после чего:
- Нажимаем одновременно сочетание клавиш «N + Shift + Ctrl»;
- Или кликаем на Назначить имя, расположенное в меню Имена в разделе Меню Таблица.
В Шапке прописываем название документа: Обороты сч. 62. Используя инструмент Границы, рисуем шапку отчета, после – задаем параметры. Последние позволяют указывать в отчете необходимые сведения. Но об этом мы поговорим позднее.
Параметр в шаблоне создается путем выбора необходимой ячейки и указания в ней (без пробелов) названия параметра. После нужно будет нажать на ячейку, используя правую кнопку мышки, и в выпавшем списке кликнуть на строчку Свойства. Выберите заполнение Параметр в закладке Макета в свойствах ячейки.
В результате название параметра в ячейке окажется окруженным скобками (<>). Вид получившейся Шапки должен быть таким:
В части ДанныеКонтрагент задаем параметры для указания названия контрагента, и для Расхода и Прихода по сч. 62. С этой целью используем инструмент Границы, оформляя часть как строку таблицы.
В части ДанныеДоговорКонтагент определяем парамаметры для указания названия соглашения, Расхода и Прихода по сч. 62. С этой целью используем инструмент Границы, оформляя часть как строку таблицы. Выполняем незначительный отступ перед параметром ДоговорКонтрагент (разбейте и соедините ячейки, работая с правой кпонкой мышки). Отступ потребуется для того, чтобы в документе было заметно, что строчка по соглашению располагается ниже по иерархии, в сравнении со строчкой по контагенту .
В части Подвал указываем параметры для результатов Расхода и Прихода.
В результате должен появиться шаблон следующего вида:
Создание формы отчета
Форма необходима для появления кнопки Формировать, указания срока формирования и внесения информации. Получить ее можно, перейдя к дереву с мета-данными и выбрав в нем раздел Форма. Кликайте на Добавить. На 1-ой странице конструктора для создания форм никакие корректировки не нужны. Кликайте сразу на Далее.
На новой странице указывайте для размещения на форме два реквизита – КонецПериода и НачалоПериода .
В результате будет показана форма следующего вида:
Этот вид формы нам не подходит, изменим его:
- Перенесем в верхнюю часть панели кнопку Сформировать, пока что расположенную внизу;
- Вытянем форму горизонтально и вертикально;
- Разместим по горизонтили КонецПериода и НачалоПериода ;
- Добавим Поле табличного документа (элемент управления) в форму. Поле потребуется нам для вывода отчета. Укажем его название – ТабДок ;
- Создадим кнопку для определения периода (при клике на нее станет показываться окно выбора необходимого периода). Заниматься написанием программного кода для этой кнопки мы сейчас не станем. Размещаем ее около полей периода.
В результате указанных действий форма выглядит так:
Программирование
Переходить к программированию можно после формирования формы. Выводим окно выбора периода. Нажимаем на кнопку правой кнопкой мышки, переходим в раздел Свойства – здесь выбираем События (в этом меню, используя символ лупы, в модуле формы мы создадим процедуру Кнопка-1Нажатие).
Для переключения между модулем и самой формой можно использовать расположенные в нижней части закладки.
Вызвать окно выбора периода можно, используя стандартный модуль ОбработчикНастройкаПериодаНажатие , расположенный в меню РаботаСДиалогами . Здесь в качестве параметров необходимо передать отчетные реквизиты КонецПериода и НачалоПериода .
Приступаем к программированию – нам нужен код для формирования и вывода отчета. Используем уже имеющуюся процедуру КнопкаСформироватьНажатие . Она станет осуществляться при клике на Сформировать.
Прежде всего, нам нужна переменная для поля таблицы-документа, в котором будут указываться данные.
ТабДок = ЭлементыФормы . ТабДок
Создался шаблон. Используя ПолучитьМакет (< ИмяМакета >), в параметр ему присвоим имя шаблона. При существовании такого шаблона, система отыщет его.
Макет = ПолучитьМакет («Макет»)
Оформляем переменные для всех областей шаблона. Используем макет ПолучитьОбласть (< ИмяОбласти >).
ОбластьШапка = Макет. ПолучитьОбласть («Шапка»)
ОбластьПодвал = Макет. ПолучитьОбласть («Подвал»);
ОбластьДанныеДоговор =Макет. ПолучитьОбласть (« ДанныеДоговор »)
ОбластьДанныеКонтрагент = Макет. ПолучитьОбласть (« ДанныеКонтрагент »).
Проводим очистку поля таблицы-документа. После этого каждый новый сформированный отчет станет удалять прежнюю информацию.
По завершению инициализации переменных, начинаем по очереди заполнять и выводить части шаблона – с Шапки. У Шапки есть КонецПериода и НачалоПериода – зададим тут показатели периода формирования документа. С этой целью используем Параметры области макета.
КонецПериода = ОбластьШапка .Параметры. КонецПериода
НачалоПериода = ОбластьШапка .Параметры. НачалоПериода
Другие действия с частью не нужны: убираем Шапку в поле таблицы-документа.
ТабДок .Вывести( ОбластьШапка )
Пишем запрос для базы данных, который позволит получать обороты по сч. 62 из бух . регистра Хозрасчетный. Указываем переменную для расположения запроса.
Запрос = новый Запрос.
Перенесем необходимые параметры в запрос перед написанием текста. Мы создаем запрос по сч. 62 бухучета , значит, прежде всего, нам нужен параметр для него.
Запрос. УстановитьПараметр («Счет62», ПланыСчетов .Хозрасчетный. НайтиПоКоду («62»)).
Теперь в запрос нужно перенести период создания отчета. Помните, что для периода формирования существуют соответствующие реквизиты. Перенесем их как параметры.
Запрос. УстановитьПараметр (« КонецПериода », КонецПериода )
Запрос. УстановитьПараметр (« НачалоПериода », НачалоПериода )
Используя конструктор запросов, создаем текст запроса. Рекомендуем отказаться от попытки написания запросов вручную, и всегда использовать конструктор, который не может допустить ошибку и опечатку. Вы сэкономите силы и время даже при создании наиболее сложных запросов. В коде указываем:
Далее наводим курсор мышки между кавычками, кликаем правой клавишей мышки и определяем строку Конструктор запроса. Откроется нужное нам окошко.
Сейчас нужно указать необходимую таблицу базы данных утилиты. Наша таблица должна быть виртуальной - Обороты регистра бухгалтерии Хозрасчетный. В окошке конструктора она располагается слева.
Переносим таблицу в часть Таблица и приступим к вводу параметров. Для любой виртуальной таблицы запроса имеется особый комплект параметров, воспользовавшись которыми, можно находить необходимые сведения в главной таблице. В нашем примере главной таблицей будет Регистр бухгалтерии Хозрасчетный. Открываем окошко параметров виртуальной таблицы.
Указываем параметры и периоды , которые ранее переносились в запрос. Для того, чтобы в тексте запроса можно было применить параметр, необходимо перед его названием указывать & (знак амперсанда ).
Теперь нужно оформить условие по сч. 62 бухгалтерского учета. С этой целью ищем УсловиеСчета в параметрах виртуальной таблицы, и пишем условие в нем.
Счет В ИЕРАРХИИ (&Счет62)
Кроме того, можно использовать Конструктор для формирования условий. Кликните на кнопку с 3 точками.
После этого на виртуальную таблицу больше не нужно будет накладывать никаких условий. Дальше кликаем на кнопку ОК, расположенную в окошке с параметрами виртуальной таблицы. После – определяем необходимые нам поля из таблички Хозрасчетной.Обороты. в частности требуются Расход и Приход, Договор контрагента и Контрагент. Просмотреть перечень полей, возможных в выбранной сейчас таблице, можно, кликнув на значок «+» (он располагается около наименования таблицы). Переносим необходимые поля в правую часть конструктора запросов (название части аналогичное – ПОЛЯ). Если вы перейдете в план счетов бухучета , то обнаружите, что для сч. 62 аналитика по ДоговоруКонтрагента — Субконто2, а по Контрагенту — это Субконто1.
Соответственно, из полей виртуальной таблички нам нужны Субконто2 и Субконто1. В связи с необходимостью Расхода и Прихода по сумме, дополнительно треуются поля СуммаОборотКт и СуммаОборотДт .
Оформив наименования определенных сейчас полей. С этой целью необходимо открыть меню Объединения/Псевдонимы, и указать необходимые названия полей.
В связи с тем, что в формируемом нами отчете информация станет указываться в соответствии с иерархией (соглашения с контрагентами будут выходить на уровне, перед которым будет располагаться уровень самих контрагентов), нужно настроить демонстрацию информации в иерархии, используя Итоги. Открываем подраздел Итоги в конструкторе. Переносим в поля группировок один за другим Контрагент и ДоговорКонтрагента , далее - итоговые Приход и Расход.
Все необходимые процедуры в редакторе выполнены. Остается кликнуть на кнопку ОК и убедиться в том, что в программном коде отражается текст только что сформированного запроса. Вид текста должен быть следующим:
| ХозрасчетныйОбороты .Субконто1 КАК Контрагент,
| ХозрасчетныйОбороты .Субконто2 КАК ДоговорКонтрагента ,
| ХозрасчетныйОбороты . СуммаОборотДт КАК Приход,
| ХозрасчетныйОбороты . СуммаОборотКт КАК Расход
| РегистрБухгалтерии .Хозрасчетный.Обороты(& НачалоПериода , & КонецПериода , , Счет В ИЕРАРХИИ (&Счет62), , , , ) КАК ХозрасчетныйОбороты
По окончанию формирования запроса, необходимо оформить части Подвал, ДанныеДоговорКонтрагент и ДанныеКонтрагент . Все указанные части нужно оформлять, указывая информацию, полученную при проведении запроса. В связи с тем, что в запросе есть группирование (в частности, ДоговорКонтрагента и Контрагент), указываем для него информацию таким путем:
ВыборкаКонтрагент = Запрос.Выполнить().Выбрать( ОбходРезультатаЗапроса . ПоГруппировкам );
В результате у нас будут записи с результатом по каждому контрагенту.
Прежде, чем обходить информацию выборки, используя цикл, инициализируем переменные, которые предназначаются для расчета всех результатов отчета:
Для корректного вывода данных с учетом иерархии и разворотами по знаку «+», указываем начало автоматической группировки строчек документа-таблицы:
Все предварительные работы завершены. Следует начать обходить итоги запроса. Для обхода потребуется использовать цикл Пока:
Пока ВыборкаКонтрагент .Следующий() Цикл
Аннулируем параметры Расход и Приход области ДанныеКонтрагент в самом начале цикла. Что это нам даст? Предположим, что по поставщику, назовем его Х, расход составляет 10, а приход 20. У следующего за ним поставщика, назовем его Н, расход и приход отсутствуют полностью. При аннулировании параметров Расхода и Прихода в такой ситуации в строке по поставщику Н окажутся данные поставщика Х – расход 10 и приход 20.
ОбластьДанныеКонтрагент .Параметры.Приход = 0;
ОбластьДанныеКонтрагент .Параметры.Расход = 0;
Теперь оформляем данными элемента выборки часть ДанныеКонтрагент
ЗаполнитьЗначенияСвойств ( ОбластьДанныеКонтрагент .Параметры, ВыборкаКонтрагент );
Оформив данные, можно выводить часть в Табличный документ. Т.к. мы работаем с автоматическим группированием строчек, необходимо определить степень строки в группировке (в нашем случае у отчета окажется 2 степени, для договоров контрагентов – второго уровня, для самих контрагентов – первого уровня).
ТабДок .Вывести( ОбластьДанныеКонтрагент ,1);
После для указанного контрагента нужно выполнить выборку по его соглашениям:
ВыборкаДоговорКонтрагента = ВыборкаКонтрагент .Выбрать( ОбходРезультатаЗапроса . ПоГруппировкам );
Используем цикл Пока для выполнения обхода:
Пока ВыборкаДоговорКонтрагента .Следующий() Цикл
Обнуляем параметры Расход и Приход в цикле по соглашениям контрагентов. Оформляем часть ДанныеДоговора из выборки и выносим эту часть на 2-ой уровень записей в таблицу-документ:
ОбластьДанныеДоговор .Параметры.Приход = 0;
ОбластьДанныеДоговор .Параметры.Расход = 0;
ЗаполнитьЗначенияСвойств ( ОбластьДанныеДоговор .Параметры, ВыборкаДоговорКонтрагента );
ТабДок .Вывести( ОбластьДанныеДоговор ,2);
Кроме того, к переменным расчета итоговых показателей по Расходу и Приходу в данном цикле присоединим нынешние показатели.
ИтогоПриход = ИтогоПриход + ВыборкаДоговорКонтрагента .Приход;
ИтогоРасход = ИтогоРасход + ВыборкаДоговорКонтрагента .Расход;
После этого вынос данных в части ДанныеДоговорКонтрагент и ДанныеКонтрагент будет закончен. Потребуется только окончить автоматическую группировку строчек таблицы-документа:
Циклы, ответственные за демонстрацию информации в частях документа ДанныеДоговорКонтрагент и ДанныеКонтрагент , целиком станут иметь следующий вид:
Пока ВыборкаКонтрагент .Следующий() Цикл
ОбластьДанныеКонтрагент .Параметры.Приход = 0;
ОбластьДанныеКонтрагент .Параметры.Расход = 0;
ЗаполнитьЗначенияСвойств ( ОбластьДанныеКонтрагент .Параметры, ВыборкаКонтрагент );
ТабДок .Вывести( ОбластьДанныеКонтрагент ,1);
ВыборкаДоговорКонтрагента = ВыборкаКонтрагент .Выбрать( ОбходРезультатаЗапроса . ПоГруппировкам );
Пока ВыборкаДоговорКонтрагента .Следующий() Цикл
ОбластьДанныеДоговор .Параметры.Приход = 0;
ОбластьДанныеДоговор .Параметры.Расход = 0;
ЗаполнитьЗначенияСвойств ( ОбластьДанныеДоговор .Параметры, ВыборкаДоговорКонтрагента );
ТабДок .Вывести( ОбластьДанныеДоговор ,2);
ИтогоПриход = ИтогоПриход + ВыборкаДоговорКонтрагента .Приход;
ИтогоРасход = ИтогоРасход + ВыборкаДоговорКонтрагента .Расход;
На завершающем этапе необходимо перенести итоговые сведения в часть Подвал и перевести сам Подвал в таблицу-документ:
ОбластьПодвал .Параметры. ИтогоПриход = ИтогоПриход ;
ОбластьПодвал .Параметры. ИтогоРасход = ИтогоРасход ;
ТабДок .Вывести( ОбластьПодвал );
После этого процедура формирования внешнего отчета в программе 1С Бухгалтерия 2.0 версия 8 без применения схемы компоновки данных будет полностью окончена. С этой минуты отчет можно будет создавать, используя рабочий режим утилиты 1С версия 8, и добавлять в справочник ВнешниеОбработки .
Читайте также: