Иллюстрированный самоучитель по языку системы 1С:Предприятие

Общие методы регистров

ВыбратьДвиженияДокумента

Выбрать все движения регистра по документу.

Синтаксис:

ВыбратьДвиженияДокумента(<Документ>)

Англоязычный синоним:

SelectDocActs

Параметры:

<Документ> Значение типа Документ.

Возвращаемое значение:

Число: 1 – если действие выполнено и в выборке есть хотя бы один элемент; 0 – если действие не выполнено или в выборке нет ни одного элемента.

Описание:

Метод ВыбратьДвиженияДокумента инициирует выбор всех движений регистра по указанному документу <Документ>.

Собственно выбор первого и последующих движений регистра осуществляется функцией ПолучитьДвижение.

Пример:

Процедура Взаиморасчеты(ВыбКлиент, ДатаНачало, ДатаКонец)

// Создание Таблицы для выходного отчета

Заг = "Неизвестно.";

Таб = СоздатьОбъект("Таблица");

Клн = СоздатьОбъект("Справочник.Клиенты");

Клн.ИспользоватьДату(ДатаКонец);

Док = СоздатьОбъект("Документ");

Рег = СоздатьОбъект("Регистр.Взаиморасчеты");

Рег1 = СоздатьОбъект("Регистр.Взаиморасчеты");

Рег.ВременныйРасчет();

РассчитатьРегистрыНа(ДатаКонец);

Если ВыбКлиент.Выбран() = 0 Тогда

//Без условий

Заг = "По всем клиентам.";

ИначеЕсли ВыбКлиент.ЭтоГруппа() = 1 Тогда

Клн.ВключатьПодчиненные(ВыбКлиент);

Клн.ИспользоватьРодителя(ВыбКлиент);

Заг = "По клиентам группы " + ВыбКлиент.Наименование;

Иначе

Предупреждение("Выберите группу клиентов!");

Возврат;

КонецЕсли;

Таб.ВывестиСекцию("Отчет");

Клн.ВыбратьЭлементы();

Пока Клн.ПолучитьЭлемент() > 0 Цикл

Если Клн.ЭтоГруппа() = 1 Тогда

Таб.ВывестиСекцию("Группа");

Иначе

Рег.Клиент = Клн.ТекущийЭлемент();

Рег.ОстаткиПолучить();

Баз_сум = Рег.СуммаБазовая;

Вал_сум = Рег.СуммаВалютная;

Таб.ВывестиСекцию("Клиент");

// цикл по всем документам

Док.ВыбратьДокументы(ДатаНачало, ДатаКонец);

Пока Док.ПолучитьДокумент() > 0 Цикл

// отфильтруем документы

Если (Док.Вид() = "Перемещение") ИЛИ (Док.Вид() = "Счет") ИЛИ

(Док.Вид() = "Списание") ИЛИ

(Док.Вид() = "РучноеИзмОстатка") Тогда

// Эти Документы не изменяют Взаиморасчеты

Продолжить;

КонецЕсли;

// выберем все движения регистра по документу

Рег1.ВыбратьДвиженияДокумента(Док.ТекущийДокумент());

Пока Рег1.ПолучитьДвижение() > 0 Цикл

Если Строка(Рег1.Клиент.Код) <> Строка(Клн.Код) Тогда

// не тот клиент

Продолжить;

КонецЕсли;

Дв_Баз_Сум = Рег1.СуммаБазовая;

Дв_Вал_Сум = Рег1.СуммаВалютная;

Если Рег1.Приход = 1 Тогда

Таб.ВывестиСекцию("Приход");

Иначе

Таб.ВывестиСекцию("Расход");

КонецЕсли;

КонецЦикла;

КонецЦикла;

КонецЕсли;

КонецЦикла;

//Вызов выходного отчета в окно просмотра и редактирования.

Таб.ТолькоПросмотр(1);

Таб.Опции(0, 0, 4, 0);

Таб.Показать("Взаиморасчеты с клиентами", "");

ВыбКлиент = 0;

КонецПроцедуры

См. также: ПолучитьДвижение.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.