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

Хранилище

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

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



> Обход бухгалтерских итогов          
vadim007 Подменю пользователя
сообщение 17.10.11, 6:52
Сообщение #1

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Мне нужно получить данные в разрезе Контрагентов, Заказов, и Счетов.
Для отбора Контрагентов и Заказов используем субконто:
БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
БИ.ИспользоватьСубконто(ВидыСубконто.Заказы);

А вот для выбора счетов можно использовать как бы два варианта обхода результатов запроса:
Вариант1:
БИ.ВыбратьСчета();
Пока БИ.ПолучитьСчет() = 1 Цикл
    БИ.ВыбратьСубконто(1);
    Пока БИ.ПолучитьСубконто(1) = 1 Цикл
        БИ.ВыбратьСубконто(2);
        Пока БИ.ПолучитьСубконто(2) = 1 Цикл
            ....

Вариант2:
БИ.ВыбратьСубконто(1);
Пока БИ.ПолучитьСубконто(1) = 1 Цикл
     БИ.ВыбратьСубконто(2);
     Пока БИ.ПолучитьСубконто(2) = 1 Цикл
          БИ.ВыбратьСчета();
          Пока БИ.ПолучитьСчет() = 1 Цикл
              ....

Какой вариант лучше? Или что в лоб, что по лбу?

nysysimara Подменю пользователя
сообщение 17.10.11, 7:02
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

Для конечного результата по-моему одинаково, тут надо выбирать в зависимости от дополнительных сумм которые можно получить:
в первом варианте - итог по счету в целом, по счету+Контрагент
во втором - итог по контрагенту без разреза счетов, по контрагенту+заказ


Signature
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП)
1С Предприятие 8.3: Бух.предприятия 3.0 + самописка
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Кроме высшего образования, нужно иметь хотя бы среднее соображение

alex040269 Подменю пользователя
сообщение 17.10.11, 9:08
Сообщение #3

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

По моему Вариант 2 лучше. Зачем выбирать все счета? Второй вариант выберет только субконто, на котором есть остатки и счета, на которых есть остатки по данному субконто.


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

vadim007 Подменю пользователя
сообщение 17.10.11, 13:36
Сообщение #4

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Я также остановился на втором варианте.
Еще вопрос в продолжение темы: как узнать дату операции (проводки), которая выбирается в текущей момент?
Я сначала использовал дату Заказа, но это неверно. Например, Заказ=СчетФактура от 12.08.11, а проводка сделана БанковскойВыпиской от 10.10.11.
Можно "выйти" на БВ через подчиненные документы СФ, но это как-то через ж. Может есть более правильный способ?

mister-x Подменю пользователя
сообщение 17.10.11, 13:46
Сообщение #5

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1422 раз
Рейтинг: 0

Цитата
как узнать дату операции (проводки), которая выбирается в текущей момент?
зробити вибірку по періодах: проводка або операція
ВыполнитьЗапрос(<НачалоПериода>,<КонецПериода>,<Счет>,<КоррСчет>,<Валюта>,<ТипИтогов>,<Периодичность>,<ТипСуммы>)

Периодичность

vadim007 Подменю пользователя
сообщение 17.10.11, 14:57
Сообщение #6

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

А как это будет выглядеть в коде второго варианта?

mister-x Подменю пользователя
сообщение 17.10.11, 15:28
Сообщение #7

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1422 раз
Рейтинг: 0

ИтОстаток.ВыполнитьЗапрос(..."Проводка"...); // ИтОстаток.ВыполнитьЗапрос(..."Операция"...);
БИ.ВыбратьСубконто(1);
Пока БИ.ПолучитьСубконто(1) = 1 Цикл
     БИ.ВыбратьСубконто(2);
     Пока БИ.ПолучитьСубконто(2) = 1 Цикл
          БИ.ВыбратьСчета();
          Пока БИ.ПолучитьСчет() = 1 Цикл
Пока БИ.ПолучитьСчет()=1 Цикл

БИ.выбратьПериоды();
пока БИ.получитьПериод()=1 цикл
....

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


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

 

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