Как программно создать документ в 1С 8.x (пример)

create doc

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

Давайте рассмотрим все по порядку:

//Создаем документ
НашДокумент = Документы.РеализацияТоваровУслуг.СоздатьДокумент();

При помощи метода «СоздатьДокумент», который говорит сам за себя  мы добавляем документ. Далее Заполняем все его основные реквизиты. При чем номер документа заполнять не нужно. Он появится автоматически после записи документа.

//Заполняем основные реквизиты
НашДокумент.Дата = ТекущаяДата();
НашДокумент.Организация = Справочники.Организации.НайтиПоНаименованию(«Восток ООО»);
НашДокумент.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(«ОйлТрейд»);
НашДокумент.Склад = Справочники.Склады.НайтиПоНаименованию(«Ток»);
НашДокумент.СпособЗачетаАвансов = Перечисления.СпособыЗачетаАвансов.Автоматически;

В документах «Реализация товаров и услуг» присутствует табличная часть, в которой хранится иформации о наименовании товара, его количестве,цене и сумме. Давайте заполним её.

//Заполняем табличную часть документа
Товары = НашДокумент.Товары;

Строка = Товары.Добавить();
Строка.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(«Лен(семена льна)»);
Строка.Количество = 27 460;
Строка.Цена = 22,05;
Строка.Сумма = Строка.Количество*Строка.Цена;

Строка = Товары.Добавить();
Строка.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(«Лен 2015г.»);
Строка.Количество = 420;
Строка.Цена = 22,05;
Строка.Сумма = Строка.Количество*Строка.Цена;

И записываем наш документ в информационную базу

НашДокумент.Записать();

 

Конечно если Вам необходимо произвести действия, описанные в начале статьи, то нам необходимо дописать процедуру считывания данных с excel и при помощи циклов выводить данные в отдельный документ.  Посмотреть, что у нас вышло, мы можем открыв наш созданный документ:

Realizacia tovara

 

Обсуждение: 2 комментария
  1. Александр:

    В конфигурации «Розница» (1с 8.3) этот пример приводит к неожиданным результатам : в табличной части заполняются все данные, кроме количества. Причем, после записи строки я вывожу сообщение о количестве. Правильное количество присутствует в сообщении. Но когда открываешь форму документа во всех строках табличной части количество не заполнено. Оно не равно нулю,оно просто не заполнено

    • admin:

      Посмотрите, что в отладчике присваивается реквизиту количество из табличной части. Типы данных соответствуют? Число и там и там?

Поделитесь своим мнением

Свежие записи
Советы и помощь программиста в 1с © 2018 ·   Войти   · Наверх