В добавлении новых объектов конфигурации для типовых конфигураций для 8.3 (УТ, БП и т д.) существует несколько особенностей:
1. Добавлен справочник "Идентификаторы объектов метаданных", предназначенный для хранения списка объектов метаданных.
2. Удалена удобная процедура (для БП 2.0), позволяющая вывести печатную форму в универсальное окно печати
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, Заголовок, НепосредственнаяПечать, Ссылка, ИмяМакета)
Рассмотрим решение данных особенностей на примере документа "Заказ-наряд" для типовой бухгалтерии предприятия 3.0.
1. Разрешим редактирование объектов конфигурации - меню "Конфигурация" - "Поддержка" - "Настройка поддержки". В появившемся окне выбрать "Включить возможность изменения". В следующем окне установить переключатели в состояние "Редактировать с сохранением поддержки"
2. Добавим новый документ "ЗаказНаряд" с необходим списком реквизитов и табличных частей.
3. Добавим формы списка и документа, оформим соответствующим образом.
4. Запустим отладку и попробуем открыть новый документ в режиме "1С: Предприятие"
Будет выдано следующее предупреждение:
Ошибка при выполнении функции ОбщегоНазначения.ИдентификаторОбъектаМетаданных()...
Все возможные способы решения данной ошибки приведены в тексте сообщения. Рассмотрим каждый:
- воспользоваться внешней обработкой "Инструменты разработчика: Обновление вспомогательных данных"
данную обработку можно скачать на ИТС или воспользоваться предлагаемой на инфостарте обработкой http://infostart.ru/public/295372/index.php?ID=295372
Обе обработки интуитивно-понятны:
Рис. Обработка "Инструменты разработчика: Обновление вспомогательных данных"
Рис. Обработка " Обновление справочника Идентификаторы объектов метаданных"
Единственное замечание - обработка с диска ИТС не всегда отрабатывает!
- запустить программу с параметром командной строки 1С: Предприятия 8
"/С ЗапуститьОбновлениеИнформационнойБазы"
Для этого в окне запуска конфигурации нажать кнопку "Изменить" и дойти до последнего окна редактирования:
В дополнительных параметрах запуска прописываем строку /C ЗапуститьОбновлениеИнформационнойБазы. Нажимаем готово.
Обратите внимание что буква "С" в английской раскладке!
Далее запускаем базу в режиме предприятия и ждем обновления конфигурации
- увеличить номер версии конфигурации, чтобы при очередном запуске выполнились процедуры обновления данных информационной базы
Увеличение номера конфигурации осуществляется в свойствах конфигурации.
После изменения версии конфигурации запускаем отладку.
В режиме предприятия подтверждаем легальность получения обновления.
Внимание! Данный способ не работает для УТ 11
5. После проведения одной из перечисленных выше процедур новый документ появится в справочнике метаданных и его возможно будет запустить в режиме "1С: Предприятие".
6. Для вывода печатных форм, в форме документа и в форме списка необходимо прописать следующие процедуры.
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма, Элементы.ГруппаВажныеКоманды); КонецПроцедуры &НаКлиенте Процедура Подключаемый_ВыполнитьКомандуПечати(Команда) УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтаФорма, Объект); КонецПроцедуры
Так как я предлагаю выводить кнопку печати в Группу важных команд, необходимо добавить ее на форме
В модуле менеджера документа требуется прописать процедуры вызова печати и формирования печатной формы
//////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ ПЕЧАТИ // Заполняет список команд печати. // // Параметры: // КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати // Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт // Счет-фактура КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.Идентификатор = "ЗаказНаряд"; КомандаПечати.Представление = НСтр("ru = 'Заказ-наряд'"); КомандаПечати.СписокФорм = "ФормаСписка,ФормаДокумента"; КонецПроцедуры // Сформировать печатные формы объектов // // ВХОДЯЩИЕ: // ИменаМакетов - Строка - Имена макетов, перечисленные через запятую // МассивОбъектов - Массив - Массив ссылок на объекты которые нужно распечатать // ПараметрыПечати - Структура - Структура дополнительных параметров печати // // ИСХОДЯЩИЕ: // КоллекцияПечатныхФорм - Таблица значений - Сформированные табличные документы // ПараметрыВывода - Структура - Параметры сформированных табличных документов // Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина; Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ЗаказНаряд") Тогда ВключатьУслуги = Ложь; УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ЗаказНаряд", "Заказ-наряд", ПечатьДокумента(МассивОбъектов, ОбъектыПечати),,"ЗаказНаряд"); КонецЕсли; ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода); КонецПроцедуры // Функция формирует табличный документ с печатной формой накладной, // // Возвращаемое значение: // Табличный документ - печатная форма накладной // Функция ПечатьДокумента(МассивОбъектов, ОбъектыПечати) Экспорт ...; Возврат ТабличныйДокумент; КонецФункции
7. Запустим отладку и проверим вид кнопки печати в режиме "1С: Предприятие"
8. Для добавления возможности печати дополнительных внешних форм необходимо добавить возможность вызова команды "Дополнительные печатные формы объекта".
Для этого в общих командах корректируем тип параметров команды, добавив в него ссылку на наш документ
В формах списка и документа на закладке "Командный интерфейс" отобразится использование данной команды
9. При добавлении внешней печатной формы меню печати будет выглядеть следующим образом