1С перебор строк табличной части документа

Как перебрать все строки в таблице документа 1С? Без использования запроса.

Как перебрать все строки в таблице документа 1С? Без использования запроса.
Ранее мы выводили данные из табличной части документа при помощи запроса.
В этой статье рассмотрим операторы Цикла.
Циклы применяются для выполнения каких либо повторяющихся действий.
Задача: Требуется перебрать все строки в таблице документа.

1. Перебираем строки с помощью цикла Для каждого.
Записывается:

ТекСтрока — переменная,
КоллекцияСтрок — коллекция значений.
Тогда наш пример запишем так:

ВыбДокумента- реквизит на форме. То есть конкрентный выбранный документ.
Товары — табличная часть выбранного документа.

2. Перебираем строки с помощью цикла Пока.
Записывается:

л — счетчик, который увеличивается на 1.
КолСтрок — максимальное количество итераций.

Тогда наш пример запишем так:

где:
ВыбДокумента- реквизит на форме. То есть конкрентный выбранный документ.
Товары — табличная часть выбранного документа.
3. Перебираем строки с помощью цикла Для.
Записывается:

л — счетчик, увеличивается на 1.
КолСтрок — максимальное количество итераций.
Тогда наш пример запишем так:

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

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

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

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

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

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

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

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

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

Читайте также:  Что делать если пробел не работает

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

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

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

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

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

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

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

// Пример 1

// Документы

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

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

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

// Пример 2

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

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

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

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

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

КонецЦикла;

// Пример 3

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

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

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

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

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

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

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

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

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

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

//Пример 4

// Выбрать()

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

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

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

//Пример 5

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

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

Читайте также:  Что значит монтируем образ

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

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

//Пример 6

// Ссылка

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

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

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

//Пример 7

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

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

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

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

// Пример 8

// Ссылка

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

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

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

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

//Пример 9

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

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

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

| следующая лекция ==>
Объекты встроенного языка для работы с документами | Перечисления

Дата добавления: 2014-01-14 ; Просмотров: 376 ; Нарушение авторских прав? ;

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Документы

Описание:

Документ – одно из основных понятий системы 1С:Предприятие. При помощи документов организуется ввод в систему информации о совершаемых хозяйственных операциях, а также ее просмотр и корректировка.

В большинстве своем документы, которые создаются в процессе настройки конфигурации задачи, являются электронными аналогами стандартных бумажных документов, являющихся основаниями для тех или иных учетных действий или расчетов. Тем не менее, использование этого типа данных может выходить далеко за рамки простой фиксации изменений, внесенных в учетные регистры.

Структура каждого конкретного вида документа определяется при его создании в конфигураторе. У любого вида документа существуют реквизиты, которые создаются автоматически – это "Дата" и "Номер". Номер создается, если при конфигурировании длина номера указана больше 0. Другие реквизиты документа определяются в конфигураторе отдельно для каждого создаваемого вида документа.

Документы в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Читайте также:  1С глобальная переменная на сервере
Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Оцените статью
Добавить комментарий

Adblock detector