Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Бух. итоги в обратном направлении          
Vofka Подменю пользователя
сообщение 20.07.10, 9:31
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Есть запрос по бух. итогам:

Ит.ВыполнитьЗапрос(НаДатуНач, НаДатуКон, "361", "", , 3, 2);


Дальше идут определенные действия, расчеты и:

Ит.ВыбратьПериоды(,,,);
Пока Ит.ПолучитьПериод(,) = 1 Цикл
...
КонецЦикла;


Так вот в этой выборке я получаю операции в порядке от НаДатуНач до НаДатуКон. А мне надо наоборот. Т.е., чтобы операции в цикле перебирались от НаДатуКон до НаДатуНач.

Можно так сделать?

Zaval Подменю пользователя
сообщение 20.07.10, 10:05
Сообщение #2

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Можно в цикле перебирать даты начала периодов от ДатаКон до ДатаНач и указывать их в ПолучитПреиод() вторым параметром.

Vofka Подменю пользователя
сообщение 20.07.10, 10:18
Сообщение #3

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Т.е. так (не могу сейчас проверить):

Ит.ВыполнитьЗапрос(НаДатуНач, НаДатуКон, "361", "", , 3, 2);
...
Ит.ВыбратьПериоды(,,,);
Пока Ит.ПолучитьПериод(,НаДатуКон) = 1 Цикл
...
КонецЦикла;

?

Zaval Подменю пользователя
сообщение 20.07.10, 11:26
Сообщение #4

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Если НаДатуНач и НаДатуКон пред выполнением запроса программно корректируются под целое число периодов(или период - день), то можно так:
Ит.ВыбратьПериоды(,,,);
текПериод = ДобавитьМесяц(НаДатуКон, -1); // начало последнего периода для месяца, для дня: текПериод = текПериод - 1;
Пока текПериод >= НаДатуНач Цикл
    Ит.ПолучитьПреиод(, текПериод);
    ....
    текПериод = ДобавитьМесяц(текПериод, -1); // аналогично

КонецЦикла;


Если же даты как есть - тогда проще будет скопировать результат запроса, свернуть по периодам, отсортировав по убыванию и перебирать в цикле, передавая в Ит.ПолучитьПреиод(). Это будет работать при любом раскладе.

MATEVI Подменю пользователя
сообщение 20.07.10, 13:24
Сообщение #5

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2203
Из: Одесса
Спасибо сказали: 968 раз
Рейтинг: 796.3

Я бы тоже работал с таблицей значений и ее сортировкой.

Fynjy Подменю пользователя
сообщение 21.07.10, 8:12
Сообщение #6

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

А зачем? Как вариант работать с бухитогами черным запросом, там есть обратная сортировка ...


Signature

Vofka Подменю пользователя
сообщение 21.07.10, 9:05
Сообщение #7

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Цитата
Если же даты как есть

Да, как есть.

Цитата
передавая в Ит.ПолучитьПреиод()

Передавая что?

MATEVI, примеры приветствуются smile.gif

Fynjy, тоже хотелось бы подробней

Zaval Подменю пользователя
сообщение 21.07.10, 9:57
Сообщение #8

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Если передавать в ПолучитьПериод() вторым параметром дату начала периода, то получишь итоги по этому периоду....
Из копии результата запроса получаешь список периодов в нужном порядке, и....

ЗЫ. В отпуск тебе пора.

Спасибо сказали: Vofka,

Fynjy Подменю пользователя
сообщение 21.07.10, 15:50
Сообщение #9

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

Не пинать рисовал быстро конструктором ...
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |ОбрабатыватьДокументы все;
    |Дебет = Операция.Дебет.Счет;
    |Счет = Операция.Кредит.Счет;
    |Сумма = Операция.Сумма;
    |Контрагенты = Операция.Субконто.Контрагенты;
    |Функция СуммаСНД = СНД(Сумма);
    |Функция СуммаДО = ДО(Сумма);
    |Функция СуммаКО = КО(Сумма);
    |Функция СуммаСКД = СКД(Сумма);
    |Группировка День;
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    Пока Запрос.Группировка(1,-1) = 1 Цикл
        // Заполнение полей Документ
        Таб.ВывестиСекцию("Документ");
    КонецЦикла;


Signature

Спасибо сказали: Vofka,

Acid Подменю пользователя
сообщение 22.07.10, 8:56
Сообщение #10

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 2104
Из: Занзибар
Спасибо сказали: 379 раз
Рейтинг: 0

FIFO / LIFO
Ит.ВыполнитьЗапрос(,ДатаДок,СчетТМЦ,,,1,,5);
Если Константа.МетодСписанияТМЦ.Получить(ДатаДок)=Перечисление.МетодСписанияТМЦ.FIFO Тогда
     Ит.ВыбратьСубконто(2);
ИначеЕсли Константа.МетодСписанияТМЦ.Получить(ДатаДок)=Перечисление.МетодСписанияТМЦ.LIFO Тогда
     Ит.ВыбратьСубконто(2,,,,,,1);
КонецЕсли;


Signature

Документируйте Код! мать вашу...


Спасибо сказали: Vofka,

Vofka Подменю пользователя
сообщение 22.07.10, 13:56
Сообщение #11

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Спасибо всем кто ответил!
Ещё не пробовал. Попробую, отпишу

Acid, мне надо не в ВыбратьСубконто, а в ПолучитьПериод

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.06.25, 21:28
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!