Задача Есть релиз 1.2.22.3 , необходимо перенести фомы баланса (1,2,3,4,5) из релиза 1.2.37 Решение 1) Сохраняем регламентный отчет, как внешний и изменяем у него имя для того, чтобы при загрузке в справочник регламентных отчетов он воспринимался именно, как новый объект. Например, РегламентированныйОтчетФорма3_2010 2) Комментируем во внешнем отчете ряд процедур (несколько снижается функциональность, но непосредственно на формирование и выгрузку не влияет) РегламентированнаяОтчетность.ПередПечатьюРегламентированногоОтчета(ЭтаФорма, Отказ); РегламентированнаяОтчетность.ПередЗаполнениемРегламентированногоОтчета(ЭтаФорма, Отказ); РегламентированнаяОтчетность.ПрорисоватьПодменюПечать
РегламентированнаяОтчетность.ПриИнициализацииФормыРегламентированногоОтчета(ЭтаФорма); РегламентированнаяОтчетность.ПередОткрытиемФормыРегламентированногоОтчета(ЭтаФорма, Отказ); РегламентированнаяОтчетность.ПередВыгрузкойРегламентированногоОтчета(ЭтаФорма, Отказ, ПроверятьБлокировки); РегламентированнаяОтчетность.ОбработкаОповещенияОбИзмененииСтатусаРегламентированногоОтчета(ЭтаФорма, ИмяСобытия, Параметр, Источник); 3)В модуле формы изменяем вызовы в процедуре ПрорисоватьПодменюПечать() на ПрорисоватьПодменюПечатьРегл() - убираем вызовы РегламентированнаяОтчетность.ПрорисоватьПодменюПечать()
4) Сама процедура ПрорисоватьПодменюПечатьРегл() Процедура ПрорисоватьПодменюПечатьРегл(Форма, ДействиеВстроеннаяПечать = Неопределено, ДействиеПечатьМЧБ = Неопределено, ПринудительнаяПрорисовкаКнопокВстроеннойПечати = Ложь) Экспорт ПоследовательностьКнопок = Новый Массив; ПоследовательностьКнопок.Добавить("ПечататьСразу"); ПоследовательностьКнопок.Добавить("ПоказатьБланк"); ПоследовательностьКнопок.Добавить("Разделитель"); ПоследовательностьКнопок.Добавить("ПечататьМашиночитаемыйБланк"); ПоследовательностьКнопок.Добавить("ПоказатьМашиночитаемыйБланк"); // находим панель действий КоманднаяПанельДействий = Форма.ЭлементыФормы.Найти("КоманднаяПанельДействий"); Если КоманднаяПанельДействий = Неопределено Тогда Возврат; КонецЕсли; // находим подменю печати ПодменюПечати = КоманднаяПанельДействий.Кнопки.Найти("ПодменюПечати"); Если ПодменюПечати = Неопределено Тогда Возврат; КонецЕсли; // если встроенная печать предусмотрена в отчете или не предусмотрена внешняя Если ПринудительнаяПрорисовкаКнопокВстроеннойПечати ИЛИ ДействиеВстроеннаяПечать <> Неопределено Тогда Если ПринудительнаяПрорисовкаКнопокВстроеннойПечати ИЛИ (СвойствоОпределено(Форма, "мПечатьБезШтрихкодаРазрешена") И Форма.мПечатьБезШтрихкодаРазрешена = Истина) Тогда Если ПодменюПечати.Кнопки.Найти("ПечататьСразу") = Неопределено Тогда ПодменюПечати.Кнопки.Добавить("ПечататьСразу", ТипКнопкиКоманднойПанели.Действие, "Печатать сразу", ДействиеВстроеннаяПечать); КонецЕсли; Если ПодменюПечати.Кнопки.Найти("ПоказатьБланк") = Неопределено Тогда ПодменюПечати.Кнопки.Добавить("ПоказатьБланк", ТипКнопкиКоманднойПанели.Действие, "Показать бланк", ДействиеВстроеннаяПечать); КонецЕсли; Иначе КнопкаПечататьСразу = ПодменюПечати.Кнопки.Найти("ПечататьСразу"); Если КнопкаПечататьСразу <> Неопределено Тогда ПодменюПечати.Кнопки.Удалить(КнопкаПечататьСразу); КонецЕсли; КнопкаПоказатьБланк = ПодменюПечати.Кнопки.Найти("ПоказатьБланк"); Если КнопкаПоказатьБланк <> Неопределено Тогда ПодменюПечати.Кнопки.Удалить(КнопкаПоказатьБланк); КонецЕсли; КонецЕсли; КонецЕсли; // если внешняя печать не предусмотрена в отчете Если ДействиеПечатьМЧБ <> Неопределено Тогда Если ПодменюПечати.Кнопки.Найти("ПечататьМашиночитаемыйБланк") = Неопределено Тогда ПодменюПечати.Кнопки.Добавить("ПечататьМашиночитаемыйБланк", ТипКнопкиКоманднойПанели.Действие, "Печатать сразу бланк формы с двухмерным штрихкодом PDF417", ДействиеПечатьМЧБ); КонецЕсли; Если ПодменюПечати.Кнопки.Найти("ПоказатьМашиночитаемыйБланк") = Неопределено Тогда ПодменюПечати.Кнопки.Добавить("ПоказатьМашиночитаемыйБланк", ТипКнопкиКоманднойПанели.Действие, "Показать бланк формы с двухмерным штрихкодом PDF417", ДействиеПечатьМЧБ); КонецЕсли; Иначе КнопкаПечататьМашиночитаемыйБланк = ПодменюПечати.Кнопки.Найти("ПечататьМашиночитаемыйБланк"); Если КнопкаПечататьМашиночитаемыйБланк <> Неопределено Тогда ПодменюПечати.Кнопки.Удалить(КнопкаПечататьМашиночитаемыйБланк); КонецЕсли; КнопкаПоказатьМашиночитаемыйБланк = ПодменюПечати.Кнопки.Найти("ПоказатьМашиночитаемыйБланк"); Если КнопкаПоказатьМашиночитаемыйБланк <> Неопределено Тогда ПодменюПечати.Кнопки.Удалить(КнопкаПоказатьМашиночитаемыйБланк); КонецЕсли; КонецЕсли; // добавляем разделитель, если его нет Если ПодменюПечати.Кнопки.Количество() > 2 И ДействиеПечатьМЧБ <> Неопределено И ДействиеВстроеннаяПечать <> Неопределено Тогда Разделитель = ПодменюПечати.Кнопки.Найти("Разделитель"); Если Разделитель = Неопределено Тогда ПодменюПечати.Кнопки.Вставить(2, "Разделитель", ТипКнопкиКоманднойПанели.Разделитель); //Иначе // ИндексРазделителя = ПодменюПечати.Кнопки.Индекс(Разделитель); // ПодменюПечати.Кнопки.Сдвинуть(Разделитель, 2 - ИндексРазделителя); КонецЕсли; КонецЕсли; // сортируем кнопки НомерСледующейКнопки = 0; Для ИндексКнопки = 0 По ПоследовательностьКнопок.Количество() - 1 Цикл ТекКнопка = ПодменюПечати.Кнопки.Найти(ПоследовательностьКнопок[ИндексКнопки]); Если ТекКнопка = Неопределено Тогда Продолжить; КонецЕсли; ПодменюПечати.Кнопки.Сдвинуть(ТекКнопка, НомерСледующейКнопки - ПодменюПечати.Кнопки.Индекс(ТекКнопка)); НомерСледующейКнопки = НомерСледующейКнопки + 1; КонецЦикла; Для Каждого ЭлКнопка Из ПоследовательностьКнопок Цикл КонецЦикла; КонецПроцедуры 5) Для того, чтобы внешний регламентый отчет мог быть проверен и выгружен, необходимо внести изменения в модуль формы документа ВыгрузкаРегламентированныхОтчетов Процедура ПроверитьОтчеты() ... //Определим список отчетов, которые должны выгружаться в формате <> Перечисления.ПорядкиОкругленияОтчетности.Окр1 ОтчетыСохраненныеСНевернымОркуглением = Новый СписокЗначений; ОтчетыБаланса = Новый СписокЗначений; ОтчетыБаланса.Добавить("РегламентированныйОтчетБаланс"); ОтчетыБаланса.Добавить("РегламентированныйОтчетБаланс_2010");//<БИОСТАР> ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма2"); ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма2_2010");//<БИОСТАР> ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма3"); ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма3_2010");//<БИОСТАР> ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма4"); ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма4_2010");//<БИОСТАР> ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма5"); ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма5_2010");//<БИОСТАР> ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма6");
... КонецПроцедуры Процедура СформироватьТекстыВыгрузки(ПечатаемыеЛисты = Неопределено) ... ОТВЕЧАЕТ ЗА ВЫГРУЗКУ ОТЧЕТА //Определим список отчетов, которые должны выгружаться в формате <> Перечисления.ПорядкиОкругленияОтчетности.Окр1 ОтчетыСохраненныеСНевернымОркуглением = Новый СписокЗначений; ОтчетыБаланса = Новый СписокЗначений; ОтчетыБаланса.Добавить("РегламентированныйОтчетБаланс"); ОтчетыБаланса.Добавить("РегламентированныйОтчетБаланс_2010");//<БИОСТАР> ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма2"); ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма2_2010");//<БИОСТАР> ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма3"); ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма3_2010");//<БИОСТАР> ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма4"); ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма4_2010");//<БИОСТАР> ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма5"); ОтчетыБаланса.Добавить("РегламентированныйОтчетФорма5_2010");//<БИОСТАР>
... КонецПроцедуры 6) Внести новый внешний регламентный отчет в справочник РегламентныеОтчеты |