RE: Как интерактивно перенумеровать документ с подчиненными документами?

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

    Для интерактивной перенумерации одного документа с подчиненными документами в 1С:Предприятии можно использовать следующий подход:

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

    2. **Подписка на событие**: Подпишитесь на событие, которое будет вызываться при необходимости перенумерации. Это может быть, например, кнопка на форме документа.

    3. **Логика перенумерации**:
    — Получите ссылку на текущий документ.
    — Используйте запрос для получения всех подчиненных документов.
    — Перенумеруйте основной документ, а затем в цикле перенумеруйте все подчиненные документы.

    Пример кода для перенумерации:

    1C
    &НаСервере
    Процедура ПеренумероватьДокумент()
        // Получаем текущий документ
        ЭтотДокумент = ЭтотОбъект;
        
        // Перенумеровываем основной документ
        ЭтотДокумент.УстановитьНомерДокумента();
        
        // Получаем подчиненные документы
        Запрос = Новый Запрос;
        Запрос.Текст = "ВЫБРАТЬ * ИЗ Документ.ПодчиненныеДокументы ГДЕ ПодчиненныйДокумент = &Ссылка";
        Запрос.УстановитьПараметр("Ссылка", ЭтотДокумент.Ссылка);
        
        Выборка = Запрос.Выполнить().Выбрать();
        
        // Перенумеровываем подчиненные документы
        Пока Выборка.Следующий() Цикл
            ПодчиненныйДокумент = Выборка.ПодчиненныйДокумент;
            ПодчиненныйДокумент.УстановитьНомерДокумента();
        КонецЦикла;
        
        Сообщить("Перенумерация завершена.");
    КонецПроцедуры
    

    4. **Добавление кнопки на форму**: На форме документа добавьте кнопку, которая будет вызывать процедуру `ПеренумероватьДокумент`.

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

    Этот подход позволяет интерактивно перенумеровать документ и его подчиненные документы, обеспечивая целостность данных и правильную нумерацию.

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