arefaste/1C_Forums huggingface dataset:
Приветствую, Форумчане!
УПП, полный перепис, адаптация под УФ

Имеется справочник "НастройкиВыгрузки".
В справочнике есть реквизиты:
"ПутьКФайлу" (строка)
"ВнешнийОтчет" (тип: ХранилищеЗначения)

На форме справочника есть кнопка выбора внешнего отчета "Выбрать отчет": открывает диалог выбора файла, выбирает внешний отчет. Код нажатия кнопки:

```1c
    &НаКлиенте
    Процедура ВыбратьОтчет(Команда)
    ЗначениеВозврата = ВыбратьФайл () ;
    ИмяФайлаЗнешнейОбработки = ЗначениеВозврата.ПолноеИмяФайлаОбработки;
    Объект.ПутьКФайлу = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяФайлаВнешнейОбработки)); ВыбратьОтчетНаСервере();
    КонецПроцедуры
```

Зачем-то используется процедура

```1c
    Процедура ВыбратьОтчетНаСервере()

    ОтчетДвоичныеДанные = ПолучитьИзВременногоХранилища(Объект.ПутьКФайлу);
    ПутьКЗнешнемуФайлу = ПолучитьИмяЗременногоФайла (" . erf ") ;

    Попытка
    ОтчетДвоичныеДанные.Записать(ПутьКВнешнемуФайлу);
    ВнешняяОбработка = ВнешниеОтчеты.Создать(ПутьКВнешнемуФайлу);
    Исключение
    СообщениеОшибки = "....."
    КонецПопытки;
    Объект.ПутьКФайлу = ПоместитьВоВременнсеХранилище(Новый ХранилищеЗначения(ОтчетДвоичныеДанные));

    КонецПроцедуры
```

перед записью справочника:

```1c
    &НаСервере
    Процедура ПередЗалисью (Отказ)

    Если НЕ ПустаяСтрока(ПутьКФайлу) Тогда
    ВнешнийОтчет = ПолучитьИзВременногоХранилища(ПутьКФайлу);
    УдалитьИзВременногоХранилища(ПутьКФайлу);
    ПутьКФайлу = ";
    КонецЕсли;

    КонецПроцедуры
```

Проблема заключается в том, что реквизит "ВнешнийОтчет" сохраняется только после 3-х кратного выбора файла внешней обработки. Т.е. нужно 3-жды выбрать обработку и сохранить, и тогда "ВнешнийОтчет" принимает какое-то значение (показывает отладчик как двоичные данные FF 00 DD...)

Никак не могу понять почему нужно выбрать и сохранить 3-и раза. Подскажите, что может быть?
---
нужно добавить уникальный идентификатор. В данном случае подойдет уникальный идентификатор формы.

```1c
    Объект.ПутьКФайлу = ПоместитьВоВременнсеХранилище(Новый ХранилищеЗначения(ОтчетДвоичныеДанные), ЭтотОбъект.УникальныйИдентификатор);
```
---
Объект.ПутьКФайлу = ПоместитьВоВременнсеХранилище(Новый ХранилищеЗначения(ОтчетДвоичныеДанные));
Явно не хватает указания идентификатора при помещении во временное хранилище. Вот оно и очищается.

Да и сам код... масло масляное.
Процедура ВыбратьОтчетНаСервере совсем лишняя.
---
Я сам так и не понял до конца смысл этого кода.

Что значит "Явно не хватает указания идентификатора при помещении во временное хранилище."?

Что нужно добавить?
---
нужно добавить уникальный идентификатор. В данном случае подойдет уникальный идентификатор формы.

```1c
    Объект.ПутьКФайлу = ПоместитьВоВременнсеХранилище(Новый ХранилищеЗначения(ОтчетДвоичныеДанные), ЭтотОбъект.УникальныйИдентификатор);
```
---
Шайтан!!! Вроде сохранилось с первого раза. Только "ЭтотОбъект" дало ошибку, т.к. это на клиенте (наверное).
Но без него отладчик показал, что данные заполнены.
---
ЭтотОбъект можно и опускать. Но странно, что на него ошибку выдало. В модуле формы УФ ЭтотОбъект равнозначен ЭтаФорма.
Хочу реализовать сохранение введенного значения в поле, чтобы при следующем открытии обработки не пришлось заново выбирать сотрудников.

Пробовал вот так сделать, но что-то не выходит:
&НаСервере
Процедура ВосстановитьНастройки()
    КлючНастроек = "ПечатьПриказаНаСтажировку";
    ЗначениеНастроек = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("ПечатьПриказаНаСтажировку", КлючНастроек);
    Если ТипЗнч(ЗначениеНастроек) = Тип("Соответствие") Тогда
        Объект.ФИОНаставник.Загрузить(ЗначениеНастроек.Получить("ФИОНаставник"));
    КонецЕсли;

КонецПроцедуры

&НаСервере
Процедура СохранитьНастройки()

 КлючНастроек = "ПечатьПриказаНаСтажировку";
    Настройки = Новый Соответствие;

    Настройки.Вставить("ФИОНаставник", Объект.ФИОНаставник.Выгрузить());

    ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("ПечатьПриказаНаСтажировку", КлючНастроек, Настройки);

КонецПроцедуры
---
Убрать все. В свойствах формы выбрать "АвтоматическоеСохранениеДанныхФормыВНастройках"
---
https://prnt.sc/26mc9gx
---
Убрать все. В свойствах формы выбрать "АвтоматическоеСохранениеДанныхФормыВНастройках"
---
Укажите точный путь, если есть возможность, то со скринами. Я просто ранее искал это, ничего не нашел.
---
https://prnt.sc/26mc9gx
---
Посмотри свойства элементов формы. Сохраняемые данные, галочку поставь.
---
Этого меню у меня не было, я думал свойство формы по-другому открывается. Но, а так, чтобы добраться до этих галочек с сохранением, нужно было включить "АвтоматическоеСохранениеДанныхВНастройках", как описали выше.
Коллеги, что может быть?
Регистрирую comcntr.dll через regsvr32 - операция проходит успешно.
При создании COM объекта с помощью с = новый ComОбъект("V83.COMConnector") выпадает ошибка, будто библиотека не зарегистрирована (-2147221005(0x800401F3): Недопустимая строка с указанием класса)
Что я пытался сделать:
 - Снимал регистрацию ранее зарегистрированных библитек
 - Регистрировал библиотеку из платформ обоих разрядностей
 - Вызывал создание COM-объекта из под платформ обоих разрядностей
---
Проблема была в том, что удалил не те элементы реестра, из за чего все это было "сломано"
Помогла статья https://efsaver.ru/docs/registraciya-com-komponenty-1s-predpriyatiya-comcntr-dll-v83-comconnector.html
---
Проблема была в том, что удалил не те элементы реестра, из за чего все это было "сломано"
Помогла статья https://efsaver.ru/docs/registraciya-com-komponenty-1s-predpriyatiya-comcntr-dll-v83-comconnector.html
---
Попробуйте зарегистрировать с правами администратора. Если с ними и регистрировали - тогда без них.
---
Уже разобрался - у меня была повреждена ветка реестра
В Ячейках устанавливается значение и формат следующим образом:

```1c
    ФорматСумма = "# ##0";
    Зн = Обл.Значение;
    Cell.NumberFormat = ФорматСумма;
    Cell.Value = Зн;
```

Но после сохранения, открыв Excel виду такой формат: "#\ ##0", вместо "# ##0"

Как победить?
---
При записи макроса в Excel выяснилось, что надо устанавливать формат в виде: "#,##0", т.е. в итоге код выглядит:

```1c
    ФорматСумма = "#,##0";
    Зн = Обл.Значение;
    Cell.NumberFormat = ФорматСумма;
    Cell.Value = Зн;
```
---
При записи макроса в Excel выяснилось, что надо устанавливать формат в виде: "#,##0", т.е. в итоге код выглядит:

```1c
    ФорматСумма = "#,##0";
    Зн = Обл.Значение;
    Cell.NumberFormat = ФорматСумма;
    Cell.Value = Зн;
```
Скажите, в табличной части Продукция документа ОтчетПроизводстваЗаСмену должна быть только одна НоменклатурнаяГруппа ?
---
в общем случае ТЧ распределения материалов может быть пустой. заполняется она в том случае, когда требуется выполнить распределение конкретных материалов на конкретную продукцию.
---
В соседнем форуме логически объяснили, что раз НГ = реквизит ТЧ Продукция, то их может быть много,
возникает встречный вопрос:
Но тогда НоменклатурнаяГруппа из ТЧ распределения (материалы, прочие, ...) должна повторять список НГ ?
В смысле, может какой-нибудь НГ из ТЧ Продукция не быть в ТЧ распределение материалов, прочих затрат) ?
---
в общем случае ТЧ распределения материалов может быть пустой. заполняется она в том случае, когда требуется выполнить распределение конкретных материалов на конкретную продукцию.
---
может какой-нибудь НГ из ТЧ Продукция не быть в ТЧ распределение материалов, прочих затрат)
Тогда и распределения не будет и это увидите в ОСВ по 20 счету
Привет всем! раньше как то не сталкивался. Прошу подсказать.
Есть форма, на ней таблица. Необходимо в расширении добавить обработчик "ПриИзменении", но форму при этом заимствовать в расширение не желательно. делаю следующее:
1. Помещаю в расширение

```1c
    ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
```

2. В этой процедуре назначаю обработчик

```1c
    Если Форма.ИмяФормы = "НужнаяМнеФорма" Тогда
    Товары = Форма.Элементы.Товары;
    Товары.УстановитьДействие("ПриИзменении", "РасширениеОбщийМодульКлиент.ПриИзменении");
    КонецЕсли;
```

3. В расширение добавляю общий модуль с признаком "Клиент" и в него процедуру

```1c
    Процедура ПриИзменении(Элемент) Экспорт
    КонецПроцедуры
```

В итоге в отладке в добавленную процедуру ПриИзменении не попадаем. Вопрос, что не так? Есть предположения, или может быть решение?)
---
похоже что так не будет работать, вот разбор ситуации https://infostart.ru/1c/articles/199480/
---
Вы же сами пишите, что обработчик "ПриИзменении" находится в форме
Как вы можете вне формы его поменять?
---
Есть подозрение, что в обработчик события можно добавить только процедуры указанной формы. Мне просто не встречался вариант, что можно указать некоторый клиентский ОМ.
Кроме того, что показывает отладчик в самом конце процедуры ПриСозданииНаСервере указанной формы. по таблице если применить ПолучитьДействие?
---
ПолучитьДействие("ПриИзменении") корректно показывает назначенную процедуру общего модуля
---
похоже что так не будет работать, вот разбор ситуации https://infostart.ru/1c/articles/199480/
---
но в этой же статье изложено и решение, вывернуться можно если очень нужно
Добрый день, есть кнопка на форме, которой присвоено сочетание клавиш, чтобы при нажатии на клавиатуру выполнялся определённый код, хочу скрыть кнопку на форме, если использовать Видимость = Ложь, то сочетание клавиш перестает работать и по нажатию ничего не происходит.
Подскажите как быть, и не могли бы вы рассказать про другие способы перехвата нажатия клавиш.
---
Добавьте страницы на форму, на 1 странице разместите то что должно быть видимым, а на 2 вашу кнопку.
И отключите вывод заголовков страниц.
Возможно сработает.

Если форма управляемая - можете во все действия засунуть кнопку.
---
На вот, развлекайся.
Если что, никаких команд в меню все действия или еще не будет.
---
Если формы обычные, то ее можно уменьшить до самых маленьких размеров, очистить заголовок и "закинуть" куда-нибудь. Мы размещали ее на заголовке колонки таблицы - реально не видно, но она есть, сочетание клавиш работает )
---
Добавьте страницы на форму, на 1 странице разместите то что должно быть видимым, а на 2 вашу кнопку.
И отключите вывод заголовков страниц.
Возможно сработает.

Если форма управляемая - можете во все действия засунуть кнопку.
---
На вот, развлекайся.
Если что, никаких команд в меню все действия или еще не будет.
---
Для ОФ , там всё еще проще.
Добрый день.
Конфигурация УПП 1.3.171
Покривела форма реализации после обновления. Нижняя граница поднялась вверх. Конфигурация с изменениями.
Ранее больше с управляемыми формами сталкивался.
Что может быть.
---
Привязки ЭУ на форме необходимо "покрутить".
---
Задублировался реквизит формы. На форме оказался реквизит без привязок.
Жёлтым маркером выделен правильный, по какой-то причине съехал вверх. Красной стрелкой его дубликат без привязок из-за которого форму повело.
---
ПКМ - восстановить положение окна...
---
Не работает.
---
Привязки ЭУ на форме необходимо "покрутить".
---
Можно поподробнее. Не было опыта с привязками формы столкнуться.
---
Задублировался реквизит формы. На форме оказался реквизит без привязок.
Жёлтым маркером выделен правильный, по какой-то причине съехал вверх. Красной стрелкой его дубликат без привязок из-за которого форму повело.
Подскажите как сделать итоги в группировке по колонке "Необходимый объем в единицах отчетов", если я в СКД в "Ресурсах" выбираю эту колонки то она переносится в конец отчета, а хотелось бы чтобы она осталась на месте.
---
На вкладке "Другие настройки" найдите строку "Авто позиция ресурсов", и поставьте в положение "Не использовать". Тогда ресурс не будет в конец перемещаться.
---
Упорядочи выводимые поля на последней вкладке.
---
Скрин структуры СКД хотя бы прикрепите.
---
На вкладке "Другие настройки" найдите строку "Авто позиция ресурсов", и поставьте в положение "Не использовать". Тогда ресурс не будет в конец перемещаться.
---
Спасибо большое помогло
Добрый день.
Есть такой код

```1c
    бухСФВыдан = БазаОле.CreateObject("Документ.СчетФактура");
    Выборка = Документы.СчетФактураВыданный.Выбрать(НачалоДня(Отчет.НачалоПериода), КонецДня(Отчет.КонецПериода));
    бухСФВыдан.ВыбратьДокументы(НачалоДня(Отчет.НачалоПериода), КонецДня(Отчет.КонецПериода));
    Пока Выборка.Следующий() Цикл
    сообщить(Выборка);
    сообщить(ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Выборка.Номер));
    Если бухСФВыдан.НайтиПоНомеру(ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Выборка.Номер),Выборка.Дата) = 0 Тогда
    сообщить("Не нашли документ - " + Выборка); Продолжить;
    КонецЕсли;
    Если Выборка.ДокументыОснования.Количество() > 1 Тогда
    сообщить("У документа несколько оснований (испр. невозможно) - " + Выборка); Продолжить;
    КонецЕсли;
    КонецЦикла;
```

На втором доке пишет - Поле объекта не доступно для записи (Дата)
Вроде ничего не пытаюсь записывать.
Чего я не вижу?
---
Возможно, в функции НайтиПоНомеру при выходе происходит неявный возврат значений в её параметры (видимо, они передаются туда по ссылке, а не по значению).
Вариант решения: закиньте номер и дату в переменные и в процедуру Найти() передайте переменные, а не реквизиты выборки.

```1c
    ...
    Номер = Выборка.Номер;
    Дата = Выборка.Дата;
    ... бухСФВыдан.НайтиПоНомеру(ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Номер), Дата) ...
    ...
```
---
По коду ошибки вроде бы нет.
---
У вас тут процедуры, в которых мы не видим, что происходит. Сделайте "остановку по ошибке" и увидите на что ругается.
---
Спасибо. Редко пишу, забываю про остановку по ошибке.
Ругается конкретно на
Если бухСФВыдан.НайтиПоНомеру(ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Выборка.Номер),Выборка.Дата) = 0 Тогда
Но почему?
---
Если что у меня в коде уже
Если бухСФВыдан.НайтиПоНомеру(Прав(СокрЛП(Выборка.Номер),5),Выборка.Дата) = 0 Тогда
т.е. префиксация объектов ни причем
---
И на эту строку продолжает ругаться?
---
да
---
Возможно, в функции НайтиПоНомеру при выходе происходит неявный возврат значений в её параметры (видимо, они передаются туда по ссылке, а не по значению).
Вариант решения: закиньте номер и дату в переменные и в процедуру Найти() передайте переменные, а не реквизиты выборки.

```1c
    ...
    Номер = Выборка.Номер;
    Дата = Выборка.Дата;
    ... бухСФВыдан.НайтиПоНомеру(ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Номер), Дата) ...
    ...
```
---
Спасибо. Получилось.
---
И да, вы правы, она возвращает значения параметров. дата до - 26.10.2021 12:00:08, дата после 26.10.2021 0:00:00.
Еще раз спасибо, времени бы точно уйму потерял.
---
А выдаст ли ошибку код "Сообщить(Выборка.Дата);" ?
Исходные данные: есть обработка, встроенная в конфигурацию. У обработки 2 формы и есть табличная часть.
Необходимо при закрытии дочерней формы в первую передавать параметр, чтобы у неё тоже заполнить эту табличную часть. Как его потом получить?

```1c
    // В основной форме открываем дочернюю

    Форма = ЭтотОбъект.ПолучитьФорму("ФормаНастроек");
    Форма.Открыть();

    // В дочерней форме:

    Процедура ЗаполнениеТЧ()
    Строка = Объект.МояТаблица.Добавить();
    // ...
    КонецПроцедуры

    &НаКлиенте
    Процедура КомандаГотовоЗавершение(Ответ, ДополнительныеПараметры) Экспорт

    ПараметрыЗакрытия = Новый Структура("МояТаблица", МояТаблица);
    Если Ответ = КодВозвратаДиалога.Да Тогда
    ЭтаФорма.Закрыть(ПараметрыЗакрытия);
    КонецЕсли;

    КонецПроцедуры
```

Как потом получить в основной форме ПараметрыЗакрытия?
---
Если запрещено открывать модальные окна, тогда использовать владельца и обработка в обработчике "ОбработкаВыбора"

```1c
    ОткрытьФорму("ФормаНастроек", ПараметрыОткрытияПриНеобходимости, ВладелецФормыВЧейОбработчикПрилетитУправление);
```
---
Если запрещено открывать модальные окна, тогда использовать владельца и обработка в обработчике "ОбработкаВыбора"

```1c
    ОткрытьФорму("ФормаНастроек", ПараметрыОткрытияПриНеобходимости, ВладелецФормыВЧейОбработчикПрилетитУправление);
```
---
Второй вариант конечно лучше.
---
Например, можно так:

```1c
    Форма = ЭтотОбъект.ПолучитьФорму("ФормаНастроек");
    ПараметрыЗакрытия = Форма.ОткрытьМодально();
```

Это если у вас разрешено открывать модальные окна.
---
1. Используйте ОткрытьФорму вместо комбинации ПолучитьФормы и Открыть.
2. При открытии дочерней формы нужно передать в неё ОписаниеОповещения, которое будет вызвано автоматически при закрытии этой дочерней формы, см. описание процедуры.

(2) Сегодня модальные окна разрешены, а завтра после обновления будут запрещены или нужно будет работать в браузере, так что лучше сразу писать без модальности.
---
У формы есть метод "Закрыть", в его параметр передвайте, все что нужно.

Закрыть(МоиДанные)

В родительской форме, при открытии укажите описание оповещения о закрытии, где будете обрабатывать полученный результат
Обычное приложение отчет с СКД и сохраненными параметрами, которые выведены на форму. Подскажите как загрузить эти параметры при открытии формы.
---
если у формы включено свойство "Сохранять значения" и "ВосстанавливатьЗначенияПриОткрытии" и перечислены сохраняемые значения, то они автоматически восстанавливаются при открытии.

если нужно получить из настроек СКД, то можно при открытии считать

```1c
    КоллекцияПараметров = КомпоновщикНастроек.ПолучитьНастройки().ПараметрыДанных.Элементы;
```
---
если у формы включено свойство "Сохранять значения" и "ВосстанавливатьЗначенияПриОткрытии" и перечислены сохраняемые значения, то они автоматически восстанавливаются при открытии.

если нужно получить из настроек СКД, то можно при открытии считать

```1c
    КоллекцияПараметров = КомпоновщикНастроек.ПолучитьНастройки().ПараметрыДанных.Элементы;
```
---
спасибо
Здорово, мужики! Мы тут недавно обновились на платформу 8.3.20.1613, после чего некоторые обработки, в частности подбор номенклатуры начали медленнее работать. Немного почесав затылки мы выяснили, что динамические списки начали обновляться при изменении любого реквизита на форме, причём никак не связанного с этими самыми динамическими списками, в случае, если в списке пользователь установил какой либо отбор. Чтобы было понятнее, во вложении упрощённая обработка для демонстрации такой особенности. Для её работы в конфигурации должен быть документ "Заказ клиента", с табличной частью "Товары" и с реквизитами этой табличной части "Номенклатура" и "Количество упаковок". В конфигурациях УТ, ЕРП и Комплексная это всё есть. Для примера, если просто запустить обработку и начать менять реквизит "Числовой реквизит никак не связанный с динамическим списком", список обновляться не будет. Но если в списке установить отбор по какой нибудь номенклатуре и начать менять вышеуказанный реквизит, то при каждом изменении платформа будет выполнять запрос для обновления этого списка, что легко можно заметить во-первых, по небольшому притормаживанию после ввода цифры и нажатия клавиши "Enter", во вторых, по тому факту, что в отладчик после этих действий попадает в событие "СписокЗаказовПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)". И теперь вопрос: как нибудь можно сделать, чтобы при установленном отборе в динамическом списке при изменении реквизита на форме платформа не обновляла этот самый список? Извините, целый опус конечно получился, но объяснить короче не удалось.
---
Линия консультации - v8 собака 1c.ru - на этот адрес пишут при обнаружении ошибок в платформе/конфигурациях для регистрации ошибок.
---
Попробуйте у элемента списка изменить свойство "ОбновлениеПриИзмененииДанных" на "Не обновлять"
---
Попробовал, ничего не изменилось. При установленном отборе, запрос из списка также выполняется при изменении реквизита на форме.
---
Сейчас проверил на УТ - работает без торможений.
У меня платформа 8.3.18.1334
Может быть в ней дело.
---
Отбор поставили как на рисунке?
---
Да
---
Спасибо, надо наверное тоже на 18 перейти пока. Хотя непонятно, может теперь так во всех последующих версиях платформы будет.
---
Напишите на v8 о проблеме.
---
Что такое v8?
---
Линия консультации - v8 собака 1c.ru - на этот адрес пишут при обнаружении ошибок в платформе/конфигурациях для регистрации ошибок.
---
А может это не ошибка а новая возможность платформы, которая будет теперь во всех последующих версиях?
---
Могут и так ответить. Но если не спросить, то и ответа никакого не будет.
---
Всем спасибо за ответы, господа, тема закрыта.
Доброго времени суток. Столкнулся с такой проблемой: в офисе 1с - ка работает нормально, но при попытке подключения через удаленный рабочий стол не могу зайти в конфигурацию, выдает ошибку "Не обнаружена лицензия". Ключ стоит аппаратный , в настройках галочка "Использовать аппаратную лицензию" включена. Подскажите, пожалуйста, куда копать.
---
Попробую стать телепатом...
Используется локальный ключ, который не доступен по сети и в RDP.
Программная лицензия такого ограничения не накладывает.
Сетевой ключ также доступен в RDP.
---
Если это однопользовательская версия 1С вот с таким фиолетовым ключом (HL Pro или H4M1),

то при подключении через удаленный рабочий стол он работать и не должен.
---
Попробую стать телепатом...
Используется локальный ключ, который не доступен по сети и в RDP.
Программная лицензия такого ограничения не накладывает.
Сетевой ключ также доступен в RDP.
---
Если это однопользовательская версия 1С вот с таким фиолетовым ключом (HL Pro или H4M1),

то при подключении через удаленный рабочий стол он работать и не должен.
Здравствуйте коллеги! Столкнулся с такой задачей. У нас есть документ, в нем форма. Есть команда печати которая отрабатывает всё нормально, но она расположена в командной панели формы.
Задача в следующем. В форме есть группа таблиц. хочу сделать следящее, при переходам по таблицам, в их командной панели разместить кнопку печати, при нажатии на которую будет происходить операция нажатия команды формы.

Как мы знаем, команду формы мы не можем размещать в командной панели таблицы. В интернете не нашёл похожих решений.....
---
Создать свою кнопку и повесить на нее что-то типа такого:

```1c
    ТабДокумент = ПечатьДокумента();
    Коллекция = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("Макет");
    СтруктураКоллекции = Коллекция.Получить(0);
    СтруктураКоллекции.ТабличныйДокумент = ТабДокумент;
    УправлениеПечатьюКлиент.ПечатьДокументов(Коллекция,,ЭтаФорма);
```

Где ПечатьДокумента() - функция, возвращающая табличный документ.
---
Создать свою кнопку и повесить на нее что-то типа такого:

```1c
    ТабДокумент = ПечатьДокумента();
    Коллекция = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("Макет");
    СтруктураКоллекции = Коллекция.Получить(0);
    СтруктураКоллекции.ТабличныйДокумент = ТабДокумент;
    УправлениеПечатьюКлиент.ПечатьДокументов(Коллекция,,ЭтаФорма);
```

Где ПечатьДокумента() - функция, возвращающая табличный документ.
---
Я бы скопипастил код из модуля команды и прикрутил бы его к своей кнопке, обработав напильником.
---
Ручками перетянуть ее же?
---
Простите, а вы пробовали так? Такие трюки не проходят, это две совершенно разные команды. Глобальную команда не перетащишь мышкой на форму)