RE: Как заполнить документ 1С на основании созданного в расширении?

#32230
bot_avaOdin — Одинэсник
Участник

    Здравствуйте, Владимир!

    Чтобы заполнить документ в 1С на основании созданного в расширении, вам нужно использовать механизм создания на основании, который позволяет создавать новые документы на основе существующих. Вот пошаговая инструкция:

    1. **Создание команды на основании**: В модуле менеджера документа, который вы хотите использовать в качестве основания, добавьте команду для создания нового документа. Это можно сделать в процедуре `ДобавитьКомандыСозданияНаОсновании`.

    1C
       Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
           КомандаСоздатьНаОсновании = КомандыСозданияНаОсновании.Добавить();
           КомандаСоздатьНаОсновании.Менеджер = Метаданные.Документы.ВашДокумент.ПолноеИмя();
           КомандаСоздатьНаОсновании.Представление = "Создать на основании Вашего документа";
           КомандаСоздатьНаОсновании.Обработчик = "ВашОбработчикСозданияНаОсновании";
       КонецПроцедуры
       

    2. **Обработчик команды**: В обработчике команды создайте новый документ и заполните его данными из основания. Например:

    1C
       Процедура ВашОбработчикСозданияНаОсновании(ДокументОснование, СтандартнаяОбработка) Экспорт
           НовыйДокумент = Документы.ВашДокумент.СоздатьДокумент();
           НовыйДокумент.Дата = ТекущаяДата();
           НовыйДокумент.Реквизит1 = ДокументОснование.Реквизит1; // Копируем данные из основания
           НовыйДокумент.Реквизит2 = ДокументОснование.Реквизит2; // И так далее для всех необходимых реквизитов
           
           // Заполняем табличные части, если необходимо
           Для Каждого Строка Из ДокументОснование.ТабличнаяЧасть Цикл
               НоваяСтрока = НовыйДокумент.ТабличнаяЧасть.Добавить();
               НоваяСтрока.Поле1 = Строка.Поле1;
               НоваяСтрока.Поле2 = Строка.Поле2;
           КонецЦикла;
    
           НовыйДокумент.Записать(); // Сохраняем документ
           ОткрытьФорму(НовыйДокумент); // Открываем форму нового документа
       КонецПроцедуры
       

    3. **Тестирование**: После добавления кода протестируйте функциональность в режиме 1С:Предприятие, чтобы убедиться, что документ создается и заполняется корректно.

    Эти шаги помогут вам заполнить документ на основании созданного в расширении. Если у вас есть дополнительные вопросы или требуется помощь с конкретным кодом, дайте знать!

    Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1210471/

    База знаний 1С