Процедура Взаиморасчеты(ВыбКлиент, ДатаНачало, ДатаКонец) // Создание Таблицы для выходного отчета Заг = "Неизвестно."; Таб = СоздатьОбъект("Таблица"); Клн = СоздатьОбъект("Справочник.Клиенты"); Клн.ИспользоватьДату(ДатаКонец); Док = СоздатьОбъект("Документ"); Рег = СоздатьОбъект("Регистр.Взаиморасчеты"); Рег1 = СоздатьОбъект("Регистр.Взаиморасчеты"); Рег.ВременныйРасчет(); РассчитатьРегистрыНа(ДатаКонец); Если ВыбКлиент.Выбран() = 0 Тогда //Без условий Заг = "По всем клиентам."; ИначеЕсли ВыбКлиент.ЭтоГруппа() = 1 Тогда Клн.ВключатьПодчиненные(ВыбКлиент); Клн.ИспользоватьРодителя(ВыбКлиент); Заг = "По клиентам группы " + ВыбКлиент.Наименование; Иначе Предупреждение("Выберите группу клиентов!"); Возврат; КонецЕсли; Таб.ВывестиСекцию("Отчет"); Клн.ВыбратьЭлементы(); Пока Клн.ПолучитьЭлемент() > 0 Цикл Если Клн.ЭтоГруппа() = 1 Тогда Таб.ВывестиСекцию("Группа"); Иначе Рег.Клиент = Клн.ТекущийЭлемент(); Рег.ОстаткиПолучить(); Баз_сум = Рег.СуммаБазовая; Вал_сум = Рег.СуммаВалютная; Таб.ВывестиСекцию("Клиент"); // цикл по всем документам Док.ВыбратьДокументы(ДатаНачало, ДатаКонец); Пока Док.ПолучитьДокумент() > 0 Цикл // отфильтруем документы Если (Док.Вид() = "Перемещение") ИЛИ (Док.Вид() = "Счет") ИЛИ (Док.Вид() = "Списание") ИЛИ (Док.Вид() = "РучноеИзмОстатка") Тогда // Эти Документы не изменяют Взаиморасчеты Продолжить; КонецЕсли; // выберем все движения регистра по документу Рег1.ВыбратьДвиженияДокумента(Док.ТекущийДокумент()); Пока Рег1.ПолучитьДвижение() > 0 Цикл Если Строка(Рег1.Клиент.Код) <> Строка(Клн.Код) Тогда // не тот клиент Продолжить; КонецЕсли; Дв_Баз_Сум = Рег1.СуммаБазовая; Дв_Вал_Сум = Рег1.СуммаВалютная; Если Рег1.Приход = 1 Тогда Таб.ВывестиСекцию("Приход"); Иначе Таб.ВывестиСекцию("Расход"); КонецЕсли; КонецЦикла; КонецЦикла; КонецЕсли; КонецЦикла; //Вызов выходного отчета в окно просмотра и редактирования. Таб.ТолькоПросмотр(1); Таб.Опции(0, 0, 4, 0); Таб.Показать("Взаиморасчеты с клиентами", ""); ВыбКлиент = 0; КонецПроцедуры
// Пример 1 РегДоходы = СоздатьОбъект("Регистр.Доходы"); ТабЗнач = СоздатьОбъект("ТаблицаЗначений"); РегДоходы.ВыгрузитьИтоги(ТабЗнач); ТабЗнач.ВыбратьСтроки(); Пока ТабЗнач.ПолучитьСтроку()=1 Цикл Сообщить("Товар " + Строка(ТабЗнач.Товар) + " на складе " + Строка(ТабЗнач.Склад) + " кол-во: " + Строка(ТабЗнач.Количество) + " стоимость: " + Строка(ТабЗнач.Стоимость) + КонецЦикла; // Пример 2 Функция ВыбратьКредит(ВыбКлиент) Список = СоздатьОбъект("ТаблицаЗначений"); Рег = СоздатьОбъект("Регистр.ТоварныйКредит"); Рег.УстановитьФильтр(ВыбКлиент, ); Рег.ВыгрузитьИтоги(Список, 1); Возврат Список; КонецФункции