Перебор документов.
Поиск документа.
Создание, сохранение и проведение документа.
ДокПрием.Новый();
ДокПрием.ФИО = "Иванов Иван Иванович";
ДокПрием.Оклад = 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
// ПолучитьОбъект()
//Пример: Удалить все документы ПриходнаяНакладная
Выборка=Документы.ПриходнаяНакладная.Выбрать();
Выборка.ПолучитьОбъект().Удалить();
КонецЦикла;