Перебор документов.

Поиск документа.

Создание, сохранение и проведение документа.

ДокПрием.Новый();
ДокПрием.ФИО = "Иванов Иван Иванович";
ДокПрием.Оклад = 5000;
ДокПрием.Записать();

//программное проведение документа
ДокПрием.Провести();

ДокПрием.НайтиДокумент(Док);
ДокПрием.НайтиПоНомеру(123)

Удаление документа.

ДокПрием.Удалить(0); //пометка на удаление
ДокПрием.Удалить(1); //непосредственное удаление

//можно проверить, помечен ли документ на удаление
//функция возвращает 1 - если помечен, 0 - если нет
Пометка = ДокПрием.ПометкаУдаления();

ДокПрием.ВыбратьДокументы(дата1, дата2); //можно задать период выборки
Пока ДокПрием.ПолучитьДокумент()=1 Цикл
......<действия с текущим документом>
КонецЦикла;

Табличная часть документа.
Перебор строк, добавление и удаление строк табличной части документа..

//перебор строк табличной части
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку()=1 Цикл
...
КонецЦикла;

//добавление строки
Док.НоваяСтрока();
Док.РеквизитТаблЧасти = Значение;

//удаление строки
Док.УдалитьСтроку();

 

Предопределенные процедуры.
Такие процедуры вызываются системой 1С при наступлении определенных событий в форме журнала документов. Фактически это обработчики событий.

Предопределенная процедура Описание
ПриУстановкеОтбора() Срабатывает при установке отбора кнопкой на панели инструментов или выбором закладки отбора. Здесь можно проверить права доступа или сделать что-нибудь еще.
ПриУстановкеИнтервала() Предопределенная процедура при установке интервала журнала.
ПриВыбореСтроки(ФлагОбработки) Срабатывает при двойном щелчке на документе или при нажатии ENTER. Режим обработки выбора строки предопределенной процедурой ПриВыбореСтроки включается при помощи метода Форма.ОбработкаВыбораСтроки(1).

 

Примеры использования объектов:

 

// Пример 1

// Документы

// Пример: вывести все типы ссылок на элементы справочников, существующих в //конфигурации

Массив = Докуметы.ТипВсеСсылки().Типы();

Для Каждого ОчереднойТип из Массив Цикл

Сообщить(ОчереднойТип);

КонецЦикла;

 

// Пример 2

// .<имя документа>

// [<имя документа>]

// Для Каждого… Из … Цикл … КонецЦикла;

// Пример: Открыть форму нового документа ОказаниеУслуги для интерактивного //заполнения

Форма = Документы['ОказаниеУслуги'].ПолучитьФормуНовогоДокумента();

Форма.Открыть();

 

// Пример: Открыть формы списка всех документов, существующих в конфигурации

Для Каждого ОчереднойДокумент Из Документы Цикл

Форма = ОчереднойДокумент.ПолучитьФормуСписка();

Форма.Открыть();

КонецЦикла;

// Пример 3

// НайтиПоНомеру()

// НайтиПоРеквизиту()

// ПустаяСсылка()

 

//Пример: Проверить, проведен ли документ ПриходнаяНакладная с номером 3

Если Документы.ПриходнаяНакладная.НайтиПоНомеру(3).Проведен тогда

Сообщить('Документ с номером 3 проведен');

КонецЕсли;

 

//Пример: Проверить, что во всех документах ПриходнаяНакладная заполнен реквизит //Склад

ПустаяСсылкаСклада = Справочники.Склады.ПустаяСсылка();

Если Не Документы.ПриходнаяНакладная

.НайтиПоРеквизиту('Склад', ПустаяСсылкаСклада.Пустая() тогда

Сообщить('Есть документы, у которых не заполнен реквизит Склад');

КонецЕсли;

 

//Пример 4

// Выбрать()

 

// Пример: Выбрать все документы ПриходнаяНакладная за текущий месяц

Выборка = Документы.ПриходнаяНакладная

.Выбрать(НачалоМесяца(ТекущаяДата(), КонецМесяца(ТекущаяДата()));

Пока Выборка.Следующий() Цикл

Сообщить(Выборка);

КонецЦикла;

 

//Пример 5

// СоздатьДокумент()

//Пример: Создать новый документ ПриходнаяНакладная

НовыйДокумент = Документы.ПриходнаяНакладная.СоздатьДокумент();

НовыйДокумент.Дата = ТекущаяДата();

НовыйДокумент.Склад = Справочники.Склады.Основной;

//Заполнить табличную часть

НоваяСтрокаТабличнойЧасти = НовыйДокумент.Материалы.Добавить();

НоваяСтрокаТабличнойЧасти.Материал = Справочники.НоменклатураНайтиПоКоду(6);

НоваяСтрокаТабличнойЧасти.Количество = 10;

НоваяСтрокаТабличнойЧасти.Цена = 22.5;

НоваяСтрокаТабличнойЧасти.Сумма = 225;

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

 

//Пример 6

// Ссылка

//Пример: В модуле объекта вызвать процедуру проверки заполнения реквизитов документа

Если Не ПроверитьЗаполнениеРеквизитов(ЭтотОбъект.Ссылка) тогда

Сообщить('Реквизиты документа не заполнены!');

КонецЕсли;

 

 

//Пример 7

// ПолучитьОбъект()

// Скопировать()

//Пример: Пометить документы на удаление

НенужныйДокумент = Документы.ОказаниеУслуги

.НайтиПоНомеру(13).ПолучитьОбъект();

НенужныйДокумент.УстановитьПометкуУдаления(Истина);

 

// Пример 8

// Ссылка

//Сформировать список ссылок на все документы ПриходнаяНакладная за текущий месяц

СписокНакладных = Новый СписокЗначений;

Выборка = Документы.ПриходнаяНакладная

.Выбрать(НачалоМесяца(ТекущаяДата()), КонецМесяца(ТекущаяДата()));

Пока Выборка.Следующий() Цикл

СписокНакладных.Добавить(Выборка.Ссылка);

КонецЦикла;

//Пример 9

// ПолучитьОбъект()

//Пример: Удалить все документы ПриходнаяНакладная

Выборка=Документы.ПриходнаяНакладная.Выбрать();

Выборка.ПолучитьОбъект().Удалить();

КонецЦикла;