INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Голубицкий Сергей | Партнёр | BG Group

«Управление быстрыми изменениями или простые советы руководителям компаний»

1. В качестве пролога, или Определяемся с понятиями - Определяем что изменять; - Характеристики объекта; - Сроки; - Кто Заказчик, а кто Исполнитель; 2. Вы как руководитель должны хотеть - Заинтересованность руководителя компании; - Формальность или желание перемен; 3. Назначить крайнего... или буйного - Назначение РП - Определение полномочий, функций, ответственности. 4. Изложите свой великий замысел на бумаге - Описание Заказчиком с РП хотелок автоматизации; - Ограничение времени и объёмов документа. 5. Лучше меньше, да работающее - Дробите большие задачи; - Каждый блок должен давать работающий результат; - Лучше быть спринтером, чем марафонцем 6. Внедрение. Все довольны? Ничего не работает! - После автоматизации кто-то получает блага, а кому-то - доп.нагрузка; - Мотивация недовольных; 7. Документируем. Или все забудут, как это работает - Не забываем описывать новый функционал; - Ограничиваем время и объёмы; - Для правильных компаний – не забыть про документирование программного кода 8. Выбираем следующую ступеньку - Что автоматизируем дальше? - Принципы те же! 9. Эпилог - Кайдзен - основа постоянных изменений; - Основной посыл: маленькими частями с функционалом, который приносит пользу.

Печать исполнителя при формировании Справки 0504833 в БГУ 2.0

Печать - Справки

0
При переходе на БГУ 2.0 столкнулся с тем, что в Справках 0504833 необходимо вручную забивать данные о ФИО и должности исполнителя. Странно конечно, но в БГУ 1.0 этот момент реализован.
Предлагаю решение...

 

Покопавшись в конфигурации, обнаружил, что формирование справки происходит в менеджере печати документа ОперацияБух. А на остальных документах навесили данный менеджер печати в общем модуле: ОбщегоНазначенияБГУ:

                

// Бухгалтерская справка
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати  = "Документ.ОперацияБух";
КомандаПечати.Идентификатор  = "Справка0504833_173";
КомандаПечати.Представление = НСтр("ru = 'Справка ф. 0504833'");
КомандаПечати.Порядок            = 99;
КомандаПечати.ПроверкаПроведенияПередПечатью              = Истина;

Т.к. и Менеджер Печати, и данный Общий модуль – серверный, то вызовы типа ВвестиЗначение с выбором сотрудника здесь не работают.  Поэтому пошел в другом направлении: поменял немного ОбщуюФорму «ПечатьДокументов», в которую выводится результирующий ТабличныйДокумент.


1. Добавил новый реквизит Сотрудник рядом с кнопкой Печать

 

 

 

2. В процедуру ПриИзменении данного поля внес следующий код:

&НаКлиенте
Процедура СотрудникПриИзменении(Элемент)
                      
Область = ЭтотОбъект.ПечатнаяФорма1.НайтиТекст("Исполнитель"); // найдем поле Исполнитель в табличном документе
                       Если ТипЗнч(Область)=Тип("Неопределено") Тогда
                                               Сообщить("В печатной форме нет поля Исполнитель!"); // так на всякий случай
                       Иначе
                                               ДанныеСотрудника=ПолучитьНаСервереДанныеСотрудника();
                                               НомерСтроки=лев(Область.Имя,Найти(область.Имя,"C")-1); //запомнили номер строки с Исполнителем
                                               ЭтотОбъект.ПечатнаяФорма1.Область(Номерстроки+"C9").текст=ЭтотОбъект.Сотрудник; //пишем ФИО
                                               ЭтотОбъект.ПечатнаяФорма1.Область(Номерстроки+"C3").текст=ДанныеСотрудника.Должность; // пишем Должность
 
                       КонецЕсли;                                          
КонецПроцедуры
&НаСервере
Функция ПолучитьНаСервереДанныеСотрудника()  // Здесь получим должность. Скопировал из какого-то модуля
                       ДанныеСотрудника = Новый Структура("СсылкаНаОбъект, Период, Должность", ЭтотОбъект.Сотрудник, ТекущаяДата());
                       Справочники.Сотрудники.ПолучитьДанныеСотрудника(ДанныеСотрудника);
                       возврат Данныесотрудника;   
КонецФункции

 

3. В конце процедуры НастроитьВидимостьЭлементовФормы модуля Формы  внес следующие строки:

Если не(лев(ЭтотОбъект.Параметры.ИменаМакетов,14)="Справка0504833") Тогда // чтобы не отображать поле Сотрудник, если печатаем не Справку,а что-то другое
                       Элементы.Сотрудник.Видимость=ложь;
КонецЕсли

 

Проверяем

 

 

Сразу оговорюсь, что программист из меня… посредственный. Больше занимаюсь  учетом.  Вполне допускаю наличие  более изящного варианта, но главное для меня – задача решена, пусть и временно. В более поздних релизах, наверное, 1С-ники  исправят эту проблемку. На этом все – пинайте.

P.S. в обработке прикреплена ОбщаяФорма.ПечатьДокументов  для редакции 2.0.41.16 Можно просто заменить ее в рабочей базе.

Версия 2 содержит переработанные модули для более удобного добавления других печатных форм (по умолчанию: Приходный ордер МЗ, треб. накладная, Справки бухгалтерские)

 

 

0

Скачать файлы

Наименование Файл Версия Размер
Печать подписи и должности БГУ 2.0.43.18
.epf 30,14Kb
02.05.16
4
.epf 2 30,14Kb 4 Скачать
Печать подписи и должности
.epf 27,94Kb
02.05.16
2
.epf 1 27,94Kb 2 Скачать

См. также

Сортировка: Древо
В этой теме еще нет сообщений.
Оставьте свое сообщение