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

Как заполнить докум...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

1с заполнить документ на основании которых создан в расширении



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

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

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

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

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

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

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

       НовыйДокумент.Записать(); // Сохраняем документ
       ОткрытьФорму(НовыйДокумент); // Открываем форму нового документа
   КонецПроцедуры
   

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

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

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



   
ОтветитьЦитата