RE: Как автоматизировать заполнение операций по счетам 3387 и 1210 в 1С?

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

    Привет, Aza!

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

    1. **Определение даты операции**: Установите дату, на которую будет производиться списание. Это может быть последняя дата месяца.

    2. **Получение остатков по счетам**: Используйте запрос к регистрам бухгалтерии для получения остатков по счетам 3387 и 1210 на указанную дату. Это можно сделать с помощью запроса к регистру «Остатки по счетам».

    3. **Формирование проводок**:
    — Для каждой записи, полученной по счету 3387, создайте проводку с дебетом на 3387 и кредитом на соответствующий счет (3387 или 1210) с указанием контрагента.
    — Убедитесь, что контрагент для дебета всегда будет «Продамус ООО».

    4. **Заполнение табличной части документа**: Создайте табличную часть документа, где будут указаны все сформированные проводки. Каждая проводка должна содержать:
    — Дебет: 3387 (всегда)
    — Кредит: 3387 или 1210 (в зависимости от остатка)
    — Контрагент: «Продамус ООО»
    — Сумма: остаток по соответствующему счету

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

    Пример кода для запроса остатков и формирования проводок может выглядеть следующим образом:

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

    Этот код является примером и может потребовать доработки в зависимости от вашей конфигурации и структуры данных.

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

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