Учет доверенностей

В расходных документах есть необходимость проставления доверенности. Но заносить каждый раз одни и те же данные бывает утомительно. особенно при больших оборотах.

 

 

Создается

1. Справочник  ГенДов с полями «От» (Дата), «Срок» (Дата) , «Кому» (Строка)

Подчиненность —  «Клиент», Уровень — 1

2. Модифицируется форма Элемента «Клиент» — вставляется ТаблицаЗначений «ГенДов» и добавляется код

 

 

// =========================================================

Функция Ген_Дов()

    ГенДов.УдалитьСтроки();

           Спр = СоздатьОбъект(«Справочник.ГенДов»);

           Спр.ИспользоватьВладельца(ТекущийЭлемент());

            Спр.ВыбратьЭлементы();

            Пока Спр.ПолучитьЭлемент() = 1 Цикл

                        Если (Спр.ТекущийЭлемент().ПометкаУдаления() = 0) Тогда

                                   ГенДов.НоваяСтрока();

                                   ГенДов.Номер = Спр.ТекущийЭлемент().Наименование;

                                   ГенДов.От = Спр.ТекущийЭлемент().Дата;

                                   ГенДов.До = Спр.ТекущийЭлемент().Срок;

                                   ГенДов.ФИО= Спр.ТекущийЭлемент().ФИО;

                        КонецЕсли;

            КонецЦикла;

    Возврат «»;

КонецФункции


3. Рядом в форме вставляется кнопка с кодом «ОткрытьФорму(«Справочник.ГенДов»)»

 

4. В теле модуля Расходного Документа находится процедура печати и в нее добавляется следующее

    ГенДов=«»;

    Спр = СоздатьОбъект(«Справочник.ГенДов»);

            Спр.ИспользоватьВладельца(Клиент);

            Спр.ВыбратьЭлементы();

            Пока Спр.ПолучитьЭлемент() = 1 Цикл

                        Если (ТекущаяДата() >= Спр.ТекущийЭлемент().Дата) И (ДатаДок <= Спр.ТекущийЭлемент().Срок) Тогда

                                   ГенДов=ГенДов + СокрЛП(Спр.ТекущийЭлемент().Наименование) + » від «+Спр.ТекущийЭлемент().Дата + » на «+СокрЛП(Спр.ТекущийЭлемент().ФИО) + «;»; //+»№ «

                                   Если (Нрег(Сред(ГенДов,1,3))<>«за «) Тогда

                                               ГенДов=«За «+ГенДов;

                                   КонецЕсли;

                        КонецЕсли;

            КонецЦикла;

 

            Если ПустоеЗначение(ГенДов)=1

                        Тогда ГенДов=«Отримав » + СокрЛП(Получил) + » за дов. «+СокрЛП(ДовСерия) +» № «+ СокрЛП(ДовНомер) + » від «+ ДовДата;

//                      Иначе ГенДов=»за ген.дов.№ » + Клиент.ГенДов.Получить(ДатаДок).Наименование + » від «+ Клиент.ГенДов.Получить(ДатаДок).Дата +» на «+ Клиент.ГенДов.Получить(ДатаДок).ФИО;

            КонецЕсли;

 

Место вывода в документе этой переменной, мне кажется, несложно..

Заполняется либо паспортными данными, либо собственно доверенностями.

 

Для «обычных» доверенностей рекомендую добавить в «Клиенте» 2 полясчетчики

1.- Кво полученных доверенностей

2. — Кво отгруженных накладных.

Автоинкрементация процесс несложный, выполняемый при проведении документа (с проверкой предыдущего состояния).

 

Процедура ОбработкаПроведения()

…..

    Если Проведен()=0 Тогда

        ТекКлиент = СоздатьОбъект(«Справочник.Клиенты»);

        Если ТекКлиент.НайтиЭлемент(Клиент)<>0 Тогда

            ТекКлиент.СчетчикРН=Клиент.СчетчикРН + 1;

            ТекКлиент.Записать();

        КонецЕсли;

    КонецЕсли;

……

 

В моем случае пришлось еще модифицировать глобальный подуль процедуры отмены проведения

Например

Процедура ПриОтменеПроведенияДокумента(Конт)

…..

    Если Конт.ТекущийДокумент().Вид() = «РасходнаяНакладная» Тогда

        ТекКлиент = СоздатьОбъект(«Справочник.Клиенты»);

        Если ТекКлиент.НайтиЭлемент(Конт.ТекущийДокумент().Клиент)<>0 Тогда

            ТекКлиент.СчетчикРН=Конт.ТекущийДокумент().Клиент.СчетчикРН 1;

            ТекКлиент.Записать();

        КонецЕсли;

…..

 

Процедура ПриУдаленииДокумента(Докум, Режим)

…..

   Если Докум.Вид() = «РасходнаяНакладная» Тогда

        ТекКлиент = СоздатьОбъект(«Справочник.Клиенты»);

        Если ТекКлиент.НайтиЭлемент(Докум.Клиент)<>0 Тогда

            ТекКлиент.СчетчикРН=Докум.Клиент.СчетчикРН 1;

            ТекКлиент.Записать();

        КонецЕсли;

    КонецЕсли;

…..

Аналогично решается вопрос с инкрементацией дополнительного документа — Входящая доверенность.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *