При разработке новых документов в расширениях для конфигурации 1С:Бухгалтерия предприятия 3.0 разработчики часто сталкиваются с тем, что стандартная кнопка «Дт/Кт» (просмотр проводок и движений) не появляется на форме автоматически. Попытки добавить новый документ в состав стандартной общей команды ПоказатьДвиженияДокумента обычно заканчиваются ошибкой платформы. В этой статье мы подробно разберем, почему это происходит, и рассмотрим несколько способов решения задачи: от «быстрого» метода до реализации по стандартам БСП.
Проанализируем техническую причину проблемы. В платформе 1С:Предприятие 8.3 существует жесткое ограничение: если общая команда принадлежит основной конфигурации, вы не можете расширить ее свойство Тип параметра команды, добавив в него объект, который существует только в расширении. Платформа воспринимает это как попытку изменения структуры базового типа данных, что приводит к конфликту метаданных. Именно поэтому при попытке «галочкой» добавить ваш документ в состав типа команды ПоказатьДвиженияДокумента система выдает ошибку о несоответствии значений.
Если вам нужно оперативно вывести кнопку на форму, не прибегая к сложным манипуляциям с общими модулями, можно воспользоваться методом ручного создания команды. Рассмотрим этот процесс по шагам.
Во-первых, откройте форму вашего документа в расширении. Перейдите на вкладку Команды и создайте новую команду формы, например, с именем ПоказатьДвижения. Перетащите эту команду на командную панель формы. В свойствах кнопки можно установить стандартную картинку (обычно это Картинка.ЖурналПроводок или системная картинка, ассоциирующаяся с движениями).
Во-вторых, создадим обработчик этой команды. Проанализируем программный код, который позволит вызвать стандартную форму движений:
&НаКлиенте
Процедура ПоказатьДвижения(Команда)
// Подготавливаем параметры для открытия формы корректировки движений
ПараметрыФормы = Новый Структура("ДокументДвижений", Объект.Ссылка);
// Открываем форму специализированной обработки
ОткрытьФорму("Обработка.КорректировкаДвижений.Форма", ПараметрыФормы, Команда, Команда);
КонецПроцедуры
В данном примере мы используем обращение к обработке КорректировкаДвижений. Это рабочий вариант, который открывает стандартный интерфейс просмотра проводок. Однако стоит помнить, что этот метод является «силовым» и может не учитывать некоторые проверки прав доступа или специфические режимы работы документа (например, если документ не проведен).
Типовая конфигурация 1С:Бухгалтерия предприятия 3.0 построена на базе БСП и активно использует программное формирование командного интерфейса. Чтобы кнопка появилась «по стандарту», мы можем вызвать методы общего назначения. Разберем, как это реализовать.
В модуле формы вашего документа найдите или создайте процедуру ПриСозданииНаСервере. Нам потребуется вызвать метод типового модуля ОбщегоНазначенияБП. Пропишем следующий код:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Стандартный вызов создания команды движений
// Параметры: ЭтаФорма, КомандыФормы, ИмяГруппыДляРазмещения
ОбщегоНазначенияБП.СоздатьКомандуПоказатьДвижения(ЭтотОбъект, КомандыФормы, "ГруппаВажные");
КонецПроцедуры
Использование этого метода позволяет системе автоматически вставить стандартную кнопку в нужную группу (например, ГруппаВажные), соблюдая общий стиль интерфейса программы.
Даже если код написан верно, кнопка может не появиться или не работать, если не соблюдены базовые условия конфигурации. Выясним, что еще необходимо проверить:
Хозрасчетный (или других регистров, движения по которым вы хотите видеть). Если документ ничего не «двигает», кнопка может быть скрыта системой автоматически.ПриОпределенииСпискаДокументовСДвижениями. Используйте аннотацию &После:
&После("ПриОпределенииСпискаДокументовСДвижениями")
Процедура Расш1_ПриОпределенииСпискаДокументовСДвижениями(СписокДокументов)
// Добавляем наш тип документа в общий массив
СписокДокументов.Добавить(Метаданные.Документы.МойНовыйДокумент);
КонецПроцедуры
Проанализируем ситуацию, когда код внедрен, но кнопка все равно не отображается. Рассмотрим настройки командного интерфейса. В редакторе формы документа перейдите на вкладку Командный интерфейс. Убедитесь, что для созданной вами команды или для стандартных групп команд установлена галочка Видимость. Часто при добавлении объектов через расширение платформа сбрасывает флаги видимости для новых элементов управления.
Также важно убедиться, что у пользователя есть права на чтение регистра Хозрасчетный и на сам документ в рамках расширения. Если прав недостаточно, механизмы БСП могут автоматически скрыть кнопку просмотра движений в целях безопасности.
Для реализации кнопки «Дт/Кт» в расширении 1С:Бухгалтерии 3.0 мы рекомендуем не пытаться модифицировать состав типов стандартной общей команды из-за ограничений платформы. Наиболее правильным путем будет использование программного метода ОбщегоНазначенияБП.СоздатьКомандуПоказатьДвижения в процедуре ПриСозданииНаСервере в сочетании с регистрацией документа в списке документов с движениями через переопределяемый модуль. Это обеспечит корректную работу интерфейса и стабильность расширения при обновлениях основной конфигурации.