Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

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

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

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

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

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

Vladko
читатель
офлайн
Дата регистрации: 27.08.2007
Сообщений: 2649
Пост №2
 
21.01.2009 15:10

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

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

Согласен, кривоват, это моя первая обработка...<br><br>А нельзя как-то вставить эелемент выборки по наличию оборота?

Vladko
читатель
офлайн
Дата регистрации: 27.08.2007
Сообщений: 2649
Пост №4
 
21.01.2009 15:22

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

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

Спасибо огромное! Вы очень помогли!<br><br>А обработка выполняется долго из-за кривоватого кода?

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

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

Vladko
читатель
офлайн
Дата регистрации: 27.08.2007
Сообщений: 2649
Пост №7
 
21.01.2009 16:13

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

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

Читают тему:

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