Каталог решений - Заполнение реквизитов документов из предыдущего документа

Заполнение реквизитов документов из предыдущего документа

Заполнение реквизитов документов из предыдущего документа

В наличии

Функция для автоматического заполнения реквизитов документов.

Категория:

Описание

В типовых в 8-ке есть механизм, который запоминает предыдущие выбранные значения в документах и автоматически подставляет их при создании новых. Удобно и полезно. 

Вспомнилось, что такую же вещь мы делали когда-то для своих конфигураций еще на 1С 7.7. 

С точки зрения затрат — минимум, но благодарности от бухгалтеров — максимум. 

Для начала пример использования: 

Склад = глВзятьРеквизитИзПредыдущегоДокумента(Вид(),ДатаДок,"Склад");

ОтпускРазрешил = глВзятьРеквизитИзПредыдущегоДокумента(Вид(),ДатаДок,"ОтпускРазрешил");

// Номер бланка строгой отчетности. 

Номер            = Число(глВзятьРеквизитИзПредыдущегоДокумента(Вид(),ДатаДок,"Номер")) + 1; 


//В процедуре ВводНаОсновании(), когда ряд реквизитов уже заполнен из основания, или просто в процедуре, например, ВыборКонтрагента

    ДеталиПлатежа = глВзятьРеквизитИзПредыдущегоДокумента(Вид(),ДатаДок,"ДеталиПлатежа","Контрагент",Контрагент);



//Ну и сама функция.

 

//***************************************************************************
Функция глВзятьРеквизитИзПредыдущегоДокумента(ВидДокумента,ДатаДокумента,НазваниеРеквизита,УсловиеИмя="",УсловиеЗначение="",НомерСтроки = 0) Экспорт
    Рез = "";    
    Док = СоздатьОбъект("Документ."+ВидДокумента);
    Док.ОбратныйПорядок(1);
    Док.ВыбратьДокументы(,ДатаДокумента);
    Пока Док.ПолучитьДокумент() = 1 Цикл
        Если ПустоеЗначение(УсловиеИмя) = 0 Тогда
            Если Док.ПолучитьАтрибут(УсловиеИмя)<>УсловиеЗначение Тогда 
                Продолжить;
            КонецЕсли;
        КонецЕсли;
        Если НомерСтроки <> 0 Тогда
            Док.ПолучитьСтрокуПоНомеру(НомерСтроки);
        КонецЕсли;
        Рез = Док.ПолучитьАтрибут(НазваниеРеквизита);
        Прервать;
    КонецЦикла;
    Возврат Рез;
КонецФункции        
//***************************************************************************

Список реквизитов определяется экономикой и логикой, поэтому универсального заполнения всего и вся не делали. 

Проверки на проведенный документ нет — потому что ряд документов в базе не проводится.

Можно добавить проверку на пометку на удаление, но это кусок из живой конфигурации, без "фотошопа". 

Цель публикации — увидел, сказал "о, надо брать" и сделать ctrl+c и ctrl+v.

Ну и попробовать первую публикацию на Инфостарт 🙂 

has been added to your cart:
Оформление заказа