Сообщение EdArn » 29 авг 2011, 11:05
Доброго времени суток!
1. В программе есть механизм регистрации внешних печатных форм...есть, но не рабочий
но чтобы заработал этот механизм в документе, предлагаю в: глДокументы.глОткрытьВнешнююПечатнуюФорму(Ссылка, ИмяФормы)
вместо: Обработка.Объект = Ссылка;
вставить: Обработка.СсылкаНаОбъект = Ссылка;
далее есть желание подключить дополнительный внешний отчет (*.erf), предлагаю в: Справочник.ВнешниеОбработки.Форма в процедурах изменить фильтр
вместо: ДиалогФайла.Фильтр = "Внешняя обработка(*.epf)|*.epf";
вставить: ДиалогФайла.Фильтр = "Внешняя обработка(*.epf;*.erf)|*.epf;*.erf";
и в Процедуре ДействияФормыОткрыть(Кнопка)
вместо: ИмяФайла = ПолучитьИмяВременногоФайла("epf");
Попытка
ДвоичныеДанные.Записать(ИмяФайла);
Обработка = ВнешниеОбработки.Создать(ИмяФайла);
Обработка.ПолучитьФорму().Открыть();
УдалитьФайлы(ИмяФайла);
Исключение
вставить: ИмяФайла = ПолучитьИмяВременногоФайла();
//ИмяФайла = ПолучитьИмяВременногоФайла("erf");
Попытка
ДвоичныеДанные.Записать(ИмяФайла);
Обработка = ВнешниеОтчеты.Создать(ИмяФайла);
//эд+
Если Обработка.СхемаКомпоновкиДанных = Неопределено Тогда
Обработка = ВнешниеОбработки.Создать(ИмяФайла);
КонецЕсли;
//эд-
Обработка.ПолучитьФорму().Открыть();
УдалитьФайлы(ИмяФайла);
Исключение
2. В релизе конфигурации 2.1.1.20 если в роли пользователя задан доступ не ко всем залам, по коду во FrontOffice не зайти, ругается:
{Обработка.FrontOffice.Форма.Залы(144)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
предлагаю: в Процедуре ЗаполнитьЗал()
вместо: // Получим залы
Запрос = Новый Запрос;
вставить: // Получим залы
// Запрос = Новый Запрос;
3. В Документ.АвансовыйОтчет сделать доработку, не отслеживается остаток подотчета по сотрудникам, в том случае, если сумма , взятая в подотчет была израсходована не полностью или был перерасход предлагаю: в Процедуре РасчетИтоговойСуммыДокумента()
вместо: Сумма = Расчеты.Итог("Израсходовано");
глДокументы.ВывестиСуммуДокумента(ЭтотОбъект, ЭтаФорма);
вставить: //Сумма = Расчеты.Итог("Израсходовано"); // эд
глДокументы.ВывестиСуммуДокумента(ЭтотОбъект, ЭтаФорма);
// эд+
Стр = ЭлементыФормы.Расчеты.ТекущаяСтрока;
Если Стр = Неопределено Тогда
Иначе
Стр.Израсходовано = ЭтотОбъект.Сумма;
КонецЕсли;
// эд-
и, конечно в печатной форме: Процедура мПечатьАО()
вместо: СуммаНачальногоОстатка = глСобытия.глПодотчет(Сотрудник,Организация,Дата)-Расчеты.Итог("Сумма");
Секция.Параметры.НачальныйОстаток = ?(СуммаНачальногоОстатка>0,СуммаНачальногоОстатка,0);
вставить: СуммаНачальногоОстатка = глСобытия.глПодотчет(Сотрудник,Организация,Дата)-Расчеты.Итог("Сумма");
//эд+
Если СуммаНачальногоОстатка = 0 тогда
Иначе
СуммаНачальногоОстатка = глСобытия.глПодотчет(Сотрудник,Организация,Дата);
КонецЕсли;
//эд-
Секция.Параметры.НачальныйОстаток = ?(СуммаНачальногоОстатка>0,СуммаНачальногоОстатка,0);
С Уважением, Эд