Разработка и Конфигурация · 10 мин
Как добавить в 1С кнопку закрытия месяца
Как добавить кнопку закрытия месяца в 1С: через расширение, изменение конфигурации или внешнюю обработку. Пошаговая инструкция, код, проверка результата и ошибки.
Кнопка «Закрытие месяца» в типовых конфигурациях 1С (Бухгалтерия, ERP, Комплексная автоматизация) уже существует в виде обработки, но часто требуется вывести её на рабочий стол, в панель раздела или добавить собственную кнопку в форму документа либо журнала. Задача решается тремя способами: настройкой панелей без программирования, расширением конфигурации или изменением основной конфигурации через конфигуратор.
Выбор способа зависит от того, где должна появиться кнопка и есть ли у вас права на изменение конфигурации. Если нужно просто быстрее открывать стандартную обработку закрытия месяца — достаточно настроить панель навигации. Если кнопка должна запускать нестандартный сценарий (например, закрытие месяца по конкретной организации с предварительными проверками) — потребуется расширение и немного кода на встроенном языке.
Ниже разобраны все подходы с конкретными действиями, примером кода и способами проверки результата. Инструкции ориентированы на конфигурации на управляемых формах (режим «Такси»), где работает большинство современных решений 1С.
Определите, какая именно кнопка нужна
Перед изменениями уточните сценарий. В 1С «закрытие месяца» — это не одна операция, а последовательность регламентных операций: расчёт себестоимости, амортизация, закрытие затратных счетов, расчёт налога на прибыль и другие. Стандартная обработка «Закрытие месяца» в Бухгалтерии 8.3 находится в разделе «Операции» и запускает эту последовательность с контролем ошибок.
Отсюда три типовые задачи. Первая — вывести ссылку на существующую обработку в удобное место интерфейса. Вторая — добавить кнопку в форму документа или списка, которая открывает обработку с уже заполненными параметрами (период, организация). Третья — создать полностью свою команду с собственной логикой: проверки, последовательный запуск операций, уведомление о результате.
Как выбрать подход
Способ 1: вывести команду через настройку интерфейса
Самый безопасный вариант, не требующий ни прав разработчика, ни изменения конфигурации. Откройте раздел «Операции», найдите пункт «Закрытие месяца», нажмите на него правой кнопкой мыши и выберите «Добавить в избранное». Ссылка появится в панели избранного и будет доступна из любого раздела.
Для вывода команды в панель навигации другого раздела откройте нужный раздел, нажмите значок настройки панели навигации (шестерёнка рядом с заголовком) и перетащите команду «Закрытие месяца» из списка доступных команд в список видимых. Сохраните настройку. Учтите: настройки панели привязаны к пользователю, поэтому для всей организации операцию придётся повторить на каждом рабочем месте или скопировать настройки через сервис администрирования.
Способ 2: добавить кнопку через расширение конфигурации
Расширение — рекомендуемый способ, потому что конфигурация остаётся на поддержке и продолжает обновляться штатно. Откройте конфигуратор, меню «Конфигурация → Расширения конфигурации», создайте новое расширение с понятным именем, например «КнопкаЗакрытияМесяца». Префикс объектов задайте уникальным, например «Расш1_».
Добавьте в расширение собственную общую команду или заимствуйте форму, в которую нужно встроить кнопку. Для формы: найдите нужную форму в основной конфигурации, добавьте её в расширение, в редакторе формы создайте команду и перетащите её в командную панель. В свойствах команды укажите заголовок «Закрытие месяца» и картинку из общей библиотеки.
В модуле формы напишите обработчик команды. Пример открытия типовой обработки с параметрами:
&НаКлиенте
Процедура Расш1_ЗакрытиеМесяца(Команда)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ПериодРегистрации", НачалоМесяца(ТекущаяДата()));
ОткрытьФорму("Обработка.ЗакрытиеМесяца.Форма", ПараметрыФормы);
КонецПроцедуры
Имена объектов и параметры зависят от конфигурации: в Бухгалтерии 8.3 обработка называется «ЗакрытиеМесяца», в ERP и КА интерфейс закрытия месяца реализован иначе — через обработку «ОперацииЗакрытияМесяца» и связанные механизмы. Точное имя объекта смотрите в дереве конфигурации, ветка «Обработки».
&НаКлиенте
Процедура Расш1_ЗакрытиеМесяца(Команда)
ОткрытьФорму("Обработка.ЗакрытиеМесяца.Форма");
КонецПроцедурыСпособ 3: изменение основной конфигурации
Если расширение не подходит (например, нужно добавить кнопку в объект, не поддерживаемый расширениями, или логика глубоко встроена в типовые механизмы), придётся изменять саму конфигурацию. Откройте конфигуратор, выполните «Конфигурация → Поддержка → Настройка поддержки» и включите возможность изменения, предварительно сделав резервную копию информационной базы.
Дальнейшие действия аналогичны работе с расширением: откройте нужную форму, добавьте команду, разместите кнопку в командной панели, напишите обработчик. Помните, что каждое изменение типового объекта усложняет будущие обновления: при обновлении конфигурации изменённые формы потребуют ручного сравнения и объединения.
Программный запуск закрытия месяца без открытия формы
Иногда кнопка должна не открывать обработку, а сразу запускать операции — например, для регламентного сценария по расписанию. В этом случае обработчик вызывает серверные процедуры типовой логики. В Бухгалтерии 8.3 закрытие месяца выполняется через перепроведение документов «РегламентнаяОперация» с соответствующими видами операций.
Типовой подход — программно создать или найти документы регламентных операций за период и провести их в правильной последовательности. Последовательность критична: сначала амортизация и расчёты, затем закрытие затратных счетов, в конце — расчёт налога на прибыль и реформация баланса (в декабре). Нарушение порядка приводит к ошибкам в расчётах.
Учтите, что прямой вызов внутренних процедур закрытия месяца зависит от версии конфигурации: фирма «1С» меняет состав и сигнатуры экспортных методов между релизами. Поэтому программный запуск требует тестирования после каждого обновления. Более устойчивый вариант — открывать форму обработки и инициировать выполнение через неё, а не дублировать логику.
Проверка результата и права доступа
После добавления кнопки проверьте её в пользовательском режиме под учётной записью с реальными правами, а не под полными правами разработчика. Команда может быть видна, но при выполнении пользователю не хватит прав на обработку или документы регламентных операций. В этом случае либо выдайте нужные роли, либо скройте кнопку для профилей без доступа через настройку видимости команды.
Проверьте также поведение кнопки в тонком клиенте и в веб-клиенте, если они используются: отдельные возможности (например, некоторые виды клиентских вызовов) работают по-разному. Убедитесь, что обработка закрытия месяца открывается с корректным периодом и организацией, а программный запуск (если реализован) корректно отрабатывает на тестовой копии базы за закрытый период.
Как проверить результат
Кнопка видна пользователю с целевой ролью и нажимается без ошибок
Кнопки нет, она неактивна или при нажатии ошибка доступа
Открывается форма закрытия месяца с правильным периодом и организацией
Ошибка «объект не найден» или открывается форма с пустыми параметрами
Расширение применяется, кнопка работает
Расширение отключено флагом безопасности или конфликтует с новой версией формы
Типичные проблемы и их решения
Если расширение не применяется, проверьте, что в его свойствах снят флаг «Безопасный режим» там, где это необходимо, и что пользователь имеет право «Администрирование расширений конфигурации» для публикации. В файловой базе после добавления расширения перезапустите сеанс — изменения подхватываются при новом подключении.
Если кнопка появилась, но форма не открывается, проверьте точное имя объекта через дерево конфигурации и наличие у обработки основной формы. Если обработка открывается, но закрытие месяца не выполняется — проблема уже не в кнопке, а в учётных данных: незакрытые предыдущие периоды, ошибки в проведении документов, незаполненная учётная политика.
Что важно запомнить
Для быстрого доступа к типовой обработке достаточно настройки интерфейса. Для собственной кнопки используйте расширение конфигурации — это сохраняет штатное обновление. Изменение основной конфигурации делайте только с резервной копией и на тестовой базе, а результат проверяйте под учётной записью с реальными правами.
Частые вопросы
Можно ли добавить кнопку закрытия месяца без конфигуратора?
Да, если речь о быстром доступе к существующей обработке: добавьте команду в избранное или в панель навигации раздела через настройку интерфейса. Полноценную новую кнопку в форму документа без конфигуратора добавить нельзя.
Почему расширение отключается после обновления конфигурации?
Чаще всего из-за несовместимости заимствованной формы с новой версией или из-за настроек безопасности. Откройте список расширений, посмотрите статус применения и сообщения об ошибках, затем обновите заимствованные объекты в расширении.
Как сделать кнопку, видимую только бухгалтеру?
Настройте видимость команды по ролям: в свойствах команды или через функциональные опции. Альтернатива — программно управлять видимостью кнопки в обработчике «ПриСозданииНаСервере» формы, проверяя роль текущего пользователя.
Можно ли запускать закрытие месяца автоматически по расписанию?
Да, через регламентное задание, которое программно создаёт и проводит регламентные операции. Такое задание работает только на сервере, требует тщательного тестирования и контроля ошибок, поскольку выполняется без участия пользователя.
Куда добавлять кнопку в 1С:ERP, где интерфейс закрытия месяца другой?
Принцип тот же: найдите в дереве конфигурации объект, реализующий закрытие месяца (в ERP это обработки и документы группы «ЗакрытиеМесяца»), и открывайте его форму из своей команды расширения. Точные имена объектов смотрите в конфигураторе вашей версии.