Имя: Пароль:
1C
1С v8
Как подменить типовую печатную форму внешней в Бухгалтерии 3.0?
0 Grand Жучара
 
06.12.13
17:29
В 2.0 можно выбрать, какую команду печати подменить
В конфигурациях на БСП эту возможность решили убрать?
не могу найти
1 Grand Жучара
 
06.12.13
17:30
чатик, не подведи
2 dclxvi
 
06.12.13
17:32
(1) Название сделать одинаковым?
3 MaxS
 
06.12.13
17:35
Как-то сделал Акт и он подменил типовую форму. Пришлось имя обработки и что-то в модуле обработки переименовать.
4 Grand Жучара
 
06.12.13
18:39
Разобрался. Нужно, чтобы в колонке "Идентификатор" ТОЧНО совпадало имя печатной формы. Типовое имя команды печати можно поймать в отладчике. Для печатной формы "Акт о приеме оборудование (ОС-14)" документа Поступление товаров услуг это, например, "ОС14".



Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = Новый Структура;

    МассивНазначений = Новый Массив;
    
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");

    МассивНазначений.Добавить("Документ.ПоступлениеТоваровУслуг");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    
    
    ПараметрыРегистрации.Вставить("Наименование", "Поступление товаров услуг: печатные формы");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);

    ПараметрыРегистрации.Вставить("Версия", "1.0");    
    ПараметрыРегистрации.Вставить("Информация", "Дополнительные печатные формы к документу 'Поступление товаров и услуг'");
    
    // Создадим таблицу команд (подробнее смотрим ниже)
    ТаблицаКоманд = Получить_Таблицу_Команд();
    
    // Добавим команду в таблицу    
    ДобавитьКоманду(ТаблицаКоманд, "[внеш] М-4 (Приходный ордер)", "М4", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ДобавитьКоманду(ТаблицаКоманд, "[внеш] ОС-14 (Акт о приеме оборудования)", "ОС14", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ДобавитьКоманду(ТаблицаКоманд, "[внеш] Приходная накладная", "Накладная", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ДобавитьКоманду(ТаблицаКоманд, "[внеш] ТОРГ-12 (Товарная накладная за поставщика с услугами)", "ТОРГ12", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ДобавитьКоманду(ТаблицаКоманд, "[внеш] ТОРГ-12 (Товарная накладная за поставщика)", "ТОРГ12_БезУслуг", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ДобавитьКоманду(ТаблицаКоманд, "[внеш] ТОРГ-4 (Акт о приемке товара без счета поставщика)", "ТОРГ4", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    
    
    // Сохраним таблицу команд в параметры регистрации обработки
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
    // Теперь вернем системе наши параметры
    Возврат ПараметрыРегистрации;
КонецФункции

Функция   Получить_Таблицу_Команд()


   Команды = Новый ТаблицаЗначений;

   // Как будет выглядеть описание печатной формы для пользователя
   Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));

   // Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
   Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));

   // Тут задается, как должна вызваться команда обработки
   // Возможные варианты:
   // - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
   // - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки
   // - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки
   Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));

   // Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
   Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));

   // Для печатной формы должен содержать строку ПечатьMXL
   Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
   Возврат Команды;
    
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    
  // Добавляем команду в таблицу команд по переданному описанию.
  // Параметры и их значения можно посмотреть в функции Получить_Таблицу_Команд
  НоваяКоманда = ТаблицаКоманд.Добавить();
  НоваяКоманда.Представление = Представление;
  НоваяКоманда.Идентификатор = Идентификатор;
  НоваяКоманда.Использование = Использование;
  НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
  НоваяКоманда.Модификатор = Модификатор;

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

5 MaxS
 
11.12.13
13:13
(4) в последних БП (и БСП)
функция СведенияОВнешнейОбработке()  упрощена, инициализация происходит в общих модулях...
Уже не требуется описывать функции Получить_Таблицу_Команд() и т.п.
Основная теорема систематики: Новые системы плодят новые проблемы.