1С Предприятие 7.7. Документация

       

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


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

Синтаксис:

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

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

SelectDocActs

Параметры:



<Документ>

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

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

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

Описание:

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

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

Пример:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   Иначе

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

      Возврат;

   КонецЕсли;

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

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

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

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

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

      Иначе

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

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

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

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

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

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

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


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

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

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

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

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

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

               Продолжить;

            КонецЕсли;

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

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

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

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

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

                  Продолжить;

               КонецЕсли;

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

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

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

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

               Иначе

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

               КонецЕсли;

            КонецЦикла;

         КонецЦикла;

      КонецЕсли;

   КонецЦикла;

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

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

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

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

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

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

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


Содержание раздела