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

04.02.19

Разработка - Универсальные функции

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

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

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

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

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

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

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

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

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


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

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



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

 

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

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

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

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

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

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

Заполнение реквизит автоматически документ

См. также

Универсальные функции Программист Платформа 1С v7.7 Россия Абонемент ($m)

В библиотеку собраны различные функции по работе с документами, журналами, типами данных, строками, датой и временем, таблицами значений, Excel, файлами, XML, JSON, Http-сервисами, SMTP серверами и т.п.

1 стартмани

22.12.2023    1370    14    user706545_kseg1971    0    

5

Универсальные функции Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Получение реквизитов контрагентов из 1С:Контрагент для старых конфигураций под 1с 7.7.

25.04.2022    2337    zhenyat    7    

8

Универсальные функции Программист Платформа 1С v7.7 Россия Бесплатно (free)

Функция выводит таблицу значений в табличный документ. (v7.7) Особенно полезно при отладке. Не нужно вносить изменения в код, вызываем функцию как вычисляемое выражение при останове. Если таблица обрабатывается в несколько этапов, можно вывести её после каждого и визуально проследить эволюцию.

30.06.2021    5137    Zoltan_Black    11    

2

Универсальные функции Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Установка принтера по умолчанию в 1С 7.7. Обработка может быть полезна в том случае, когда нужно установить принтер по умолчанию, а доступа к рабочему столу нет (например, терминальный режим без рабочего стола или remoteApp)

1 стартмани

13.02.2019    13932    4    alsen    3    

5

Универсальные функции Программист Платформа 1С v7.7 Конфигурации 1cv7 1С:Комплексная 7.7 Абонемент ($m)

Предлагается набор функций 1с 7.7 для формирования строки json стандартными средствами.

1 стартмани

10.12.2018    10766    malovandrey    7    

19

Универсальные функции Работа с интерфейсом Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

В статье дано описание создания индикатора на форме в среде разработки 1С:Предприятие 7.7 исключительно типовыми средствами.

1 стартмани

27.09.2016    18886    2    HAMMER_59    6    

2

Информационная безопасность Универсальные функции Программист Платформа 1С v7.7 Бесплатно (free)

При использовании терминалок для удаленных баз, иногда при входе в базу данных необходимо исключить возможность входа пользователей с компьютеров с другим часовым поясом. Например, работают в Новосибирской базе с временем UTC +6 и пытаются зайти в базу с UTC +3.

16.05.2016    13081    kudenzov    3    

10
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DrAku1a 1745 07.02.19 09:09 Сейчас в теме
Т.е. если надо заполнить 10 реквизитов - то 10 раз ищем предыдущий документ?! Жесть...
2. Иваныч 23 10.03.21 11:58 Сейчас в теме
Возьмем попробуем. Заочно плюс ставлю. Любая разработка имеет право на существование
Оставьте свое сообщение