Бухгалтерский учет, налогообложение, отчетность, МСФО, анализ бухгалтерской информации, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Наличие оборота у контрагента

Санчо
читатель
офлайн
Дата регистрации: 19.01.2009
Сообщений: 7
Пост №1
 
21.01.2009 14:55

"Уважаемые Дамы и Господа!
Есть вот такая обработка, как правильно использовать ДО или КО чтобы выводились только те контрагенты, у которых есть оборот по 60, 62 и 76 счёту?
Заранее спасибо!


Процедура Сформировать()
ОчиститьОкноСообщений();
БИ = СоздатьОбъект ("БухгалтерскиеИтоги");
Спр = СоздатьОбъект ("Справочник.Контрагенты");
Таб = СоздатьОбъект("Таблица");      
БИ.Рассчитать (НачДата,КонДата,"60,62,76");
Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Шапка");
Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
Спр.ВыбратьЭлементы();
БИ.ИспользоватьРазделительУчета(РазделительУчета);
Пока Спр.ПолучитьЭлемент() = 1 Цикл
Если Спр.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
КодКонтрагента = Спр.Код;
Состояние("Обрабатывается элемент: " + Спр.Наименование);
С60КК = БИ.СКК ("60",,,Спр.ТекущийЭлемент());
С60КД = БИ.СКД ("60",,,Спр.ТекущийЭлемент());
С60КК = С60КД - С60КК;
С62КК = БИ.СКК ("62",,,Спр.ТекущийЭлемент());
С62КД = БИ.СКД ("62",,,Спр.ТекущийЭлемент());
С62КК = С62КД - С62КК;
С76КК = БИ.СКК ("76",,,Спр.ТекущийЭлемент());
С76КД = БИ.СКД ("76",,,Спр.ТекущийЭлемент());
С76КК = С76КД - С76КК;
Таб.ВывестиСекцию("Строка_1");
КонецЦикла;
Таб.Показать("Таблица", """");
КонецПроцедуры
"

Vladko
активный пользователь
офлайн
Дата регистрации: 27.08.2007
Сообщений: 2363
Пост №2
 
21.01.2009 15:10

Код "кривоват". Я бы порекомендовал воспользоваться бухгалтерским запросом. В конфигураторе есть конструктор бух.запроса.

Санчо
читатель
офлайн
Дата регистрации: 19.01.2009
Сообщений: 7
Пост №3
 
21.01.2009 15:12

Согласен, кривоват, это моя первая обработка...

А нельзя как-то вставить эелемент выборки по наличию оборота?

Vladko
активный пользователь
офлайн
Дата регистрации: 27.08.2007
Сообщений: 2363
Пост №4
 
21.01.2009 15:22

"....
С60КК = БИ.СКК ("60",,,Спр.ТекущийЭлемент());
С60КД = БИ.СКД ("60",,,Спр.ТекущийЭлемент());
С60КК = С60КД - С60КК;
С60КО = БИ.КО ("60",,,Спр.ТекущийЭлемент());
С60ДО = БИ.ДО ("60",,,Спр.ТекущийЭлемент());
....
Если (С60КО<>0) ИЛИ (С60ДО<>0) тогда
//попадут в условие только имеющие оборот
Таб.ВывестиСекцию("Строка_1");
.....
КонецЕсли;

про 62 и 76 аналогично. Добавить их в условие выше.

кстати:
>БИ.Рассчитать (НачДата,КонДата,"60,62,76");
> Таб.ИсходнаяТаблица("Таблица");
> Таб.ВывестиСекцию("Шапка");
> Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
> Спр.ВыбратьЭлементы();
> БИ.ИспользоватьРазделительУчета(РазделительУчета);
лучше так:
БИ.ИспользоватьРазделительУчета(РазделительУчета);
БИ.Рассчитать (НачДата,КонДата,"60,62,76");
Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Шапка");
Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
Спр.ВыбратьЭлементы();


"

Санчо
читатель
офлайн
Дата регистрации: 19.01.2009
Сообщений: 7
Пост №5
 
21.01.2009 15:43

Спасибо огромное! Вы очень помогли!

А обработка выполняется долго из-за кривоватого кода?

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3077
Пост №6
 
21.01.2009 15:59

"мой вариант:
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Сч60=СчетПоКоду("60");
Сч62=СчетПоКоду("62");
Сч76=СчетПоКоду("76");
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
БИ.ВыполнитьЗапрос(НачДата,КонДата,"60,62,76");
БИ.ВыбратьСубконто(1);
Пока БИ.ПолучитьСубконто(1)=1 Цикл
Если (БИ.ДО()<>0) ИЛИ (БИ.КО()<>0) Тогда
      Таб.ВывестиСекцию("Строка");
КонецЕсли;
КонецЦикла;

Таб.Опции(0,0,0,0);
Таб.Показать("Таблица", """");

и в таблице в ячейках секции "Строка" пишем формулы:
БИ.СНД(Сч60);
БИ.ДО(Сч60);
БИ.КО(Сч60);
БИ.СКД(Сч60);
..."

Vladko
активный пользователь
офлайн
Дата регистрации: 27.08.2007
Сообщений: 2363
Пост №7
 
21.01.2009 16:13

"> А обработка выполняется долго из-за кривоватого кода?
Да, там же перебирается весь справочник контрагентов, а при использовании бух.запроса будут только те контрагенты, которые присутствуют в оборотках.
Выше написан код с бух.запросом, но забыто упоминанание про РАЗДЕЛИТЕЛЬ УЧЕТА ;-)"

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Учет, налогообложение, автоматизация
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • ЕГАИС
Предложения партнеров
Обучение пользователей продуктов 1С

1С бесплатно 1С-Отчетность 1С:ERP Управление предприятием 1С:Бесплатно 1С:Бухгалтерия 8 1С:Бухгалтерия 8 КОРП 1С:Бухгалтерия автономного учреждения 1С:Бухгалтерия государственного учреждения 1С:Бюджет муниципального образования 1С:Бюджет поселения 1С:Вещевое довольствие 1С:Деньги 1С:Документооборот 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и кадры государственного учреждения 1С:Зарплата и управление персоналом 1С:Зарплата и управление персоналом КОРП 1С:Комплексная автоматизация 8 1С:Лекторий 1С:Предприятие 1С:Предприятие 7.7 1С:Предприятие 8 1С:Розница 1С:Управление нашей фирмой 1С:Управление производственным предприятием 1С:Управление торговлей 1СПредприятие 8

Все теги