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

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

    Для программного создания документа «Операция» в 1С (например, «ОперацияБух») используется следующий алгоритм:

    1C
    // Создаем новый документ
    ДокОперация = Документы.ОперацияБух.СоздатьДокумент();
    
    // Заполняем основные реквизиты
    ДокОперация.Дата = ТекущаяДата(); // или нужная дата
    ДокОперация.Организация = Справочники.Организации.НайтиПоНаименованию("Название организации");
    ДокОперация.Ответственный = Справочники.Пользователи.ТекущийПользователь();
    ДокОперация.Содержание = "Описание операции";
    ДокОперация.Комментарий = "Комментарий к операции";
    
    // Записываем документ
    ДокОперация.Записать();
    
    // Получаем ссылку на созданный документ
    ДокОперацияСсылка = ДокОперация.Ссылка;
    
    // Создаем набор записей регистра бухгалтерии (пример для регистра "Хозрасчетный")
    РегХозрасчетный = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    РегХозрасчетный.Отбор.Регистратор.Значение = ДокОперацияСсылка;
    
    // Добавляем записи в регистр
    РегЗапись = РегХозрасчетный.Добавить();
    РегЗапись.Период = ДокОперация.Дата;
    РегЗапись.Регистратор = ДокОперацияСсылка;
    РегЗапись.Организация = ДокОперация.Организация;
    РегЗапись.Содержание = ДокОперация.Содержание;
    РегЗапись.СчетДт = "10.01"; // пример счета дебета
    РегЗапись.СчетКт = "60.01"; // пример счета кредита
    РегЗапись.Сумма = 1000;
    
    // Устанавливаем субконто, если необходимо
    БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, "Контрагенты", Справочники.Контрагенты.НайтиПоНаименованию("Поставщик"));
    БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, "Подразделения", Справочники.Подразделения.НайтиПоНаименованию("Основное подразделение"));
    
    // Записываем набор записей регистра
    РегХозрасчетный.Записать();
    

    Обратите внимание:

    — Названия документов и регистров могут отличаться в вашей конфигурации.
    — Для заполнения субконто используйте функцию `БухгалтерскийУчет.УстановитьСубконто`.
    — Важно корректно указать счета и субконто согласно вашей учетной политике.
    — Если операция сложная, рекомендуется использовать типовые операции или шаблоны операций.

    Рекомендую посмотреть здесь:
    https://helpf.pro/faq/view/813.html
    https://infostart.ru/1c/articles/137072/

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