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

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

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

Чем заменить простой пребор проводок?

Елена_В
читатель
офлайн
Дата регистрации: 26.10.2007
Сообщений: 599
Пост №1
 
18.02.2010 17:12

"Подскажите, как быстрее отобрать и исключить из цикла документы, в которых был зачтен аванс?

Док = СоздатьОбъект("Документ.ПоступлениеТоваров");
Док.ВыбратьПоЗначению(,ДатаДок,"Договор",Субконто2);
Пока Док.ПолучитьДокумент()=1 Цикл      
ТекДок = Док.ТекущийДокумент();
****
ТекДок.Операция.ВыбратьПроводки();
       Пока ТекДок.Операция.ПолучитьПроводку()=1 Цикл
            Если (ТекДок.Операция.Дебет.Счет = СчетПоКоду("60.6")) И
             (ТекДок.Операция.Дебет.Счет = СчетПоКоду("60.7")) И
             (СокрЛП(ТекДок.Операция.Содержание) = "Зачтен аванс") Тогда
                   Прервать;
            КонецЕсли;
       КонецЦикла;
***
КонецЦикла;
"

zak555 (398843952)
читатель
офлайн
Дата регистрации: 27.03.2008
Сообщений: 4656
Пост №2
 
18.02.2010 17:27

> Подскажите, как быстрее отобрать и исключить из цикла документы, в которых был зачтен аванс?
>

подробнее задачу : для чего всё это !?


Елена_В
читатель
офлайн
Дата регистрации: 26.10.2007
Сообщений: 599
Пост №3
 
18.02.2010 17:41

мне нужно в текущем документе определить, был ли зачет аванса

Wee
читатель
офлайн
Дата регистрации: 24.11.2007
Сообщений: 464
Пост №4
 
18.02.2010 18:50

Запросом не пробовали? %)

Елена_В
читатель
офлайн
Дата регистрации: 26.10.2007
Сообщений: 599
Пост №5
 
19.02.2010 14:00

вот пытаюсь его грамотно составить...

Wee
читатель
офлайн
Дата регистрации: 24.11.2007
Сообщений: 464
Пост №6
 
19.02.2010 14:42

Я бы помогла, но я в семерке ландух :)

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

"Во первых, в приведенном алгоритме ошибка. Такое условие:
Если (ТекДок.Операция.Дебет.Счет = СчетПоКоду("60.6")) И (ТекДок.Операция.Дебет.Счет = СчетПоКоду("60.7"))
не будет выполнено никогда. Счет дебета не может одновременно быть равен и 60.6 и 60.7.
Во вторых, я не знаю что это за счета, но предполагаю, что это какой то аналог 60.1 и 60.2, которые используются в типовой конфигурации. Поэтому, для определенности пусть:
60.6 - долги перед поставщиком
60.7 - авансы, выплаченные поставщику
Предложенный вами алгоритм можно чуть оптимизировать, избавив систему от необходимости при каждом проходе производить поиск по плану счетов счетов с нужными кодами, кроме того, система 1С (7.7, по крайней мере)при проверке комбинированного условия вычисляет все его составляющие. То есть, при каждой операции сравнения у вас проверяется и (ТекДок.Операция.Дебет.Счет = СчетПоКоду("60.6"))
и
(ТекДок.Операция.Дебет.Счет = СчетПоКоду("60.7"))
и
(СокрЛП(ТекДок.Операция.Содержание) = "Зачтен аванс")
одновременно каждый раз вне зависимости от того были ли успешны проверки первых условий.
Кроме того, в вашем алгоритме не проверяется наличие операции для анализируемого документа, а ее может и не быть если документ не проведен и в конфигураторе указано, что операцию нужно порождать только при проведении.
В связи со сказанным, модифицируем ваш алгоритм и получаем вот что:

Сч60_6=СчетПоКоду("60.6");
Сч60_7=СчетПоКоду("60.7");
СодержаниеДляПроверки="Зачтен аванс";
Опер=СоздатьОбъект("Операция");
Док = СоздатьОбъект("Документ.ПоступлениеТоваров");
Док.ВыбратьПоЗначению(,ДатаДок,"Договор",Субконто2);
Пока Док.ПолучитьДокумент()=1 Цикл      
ВДокументеЕстьЗачетАванса=0;
Если Опер.НайтиОперацию(Док.ТекущийДокумент())=1 Тогда
       Опер.ВыбратьПроводки();
       Пока Опер.ПолучитьПроводку()=1 Цикл
             Если Опер.Дебет.Счет=Сч60_6 Тогда
                   Если Опер.Кредит.Счет=Сч60_7 Тогда
                         Если СокрЛП(Опер.Содержание)=СодержаниеДляПроверки Тогда
                              ВДокументеЕстьЗачетАванса=1;
                              Прервать;
                         КонецЕсли;
                   КонецЕсли;
             КонецЕсли;
       КонецЦикла;
КонецЕсли;
Если ВДокументеЕстьЗачетАванса=1 Тогда
       ...
Иначе
       ...
КонецЕсли;
КонецЦикла;"

Елена_В
читатель
офлайн
Дата регистрации: 26.10.2007
Сообщений: 599
Пост №8
 
19.02.2010 15:25

СПасибо!!!!!!!

Показывать по 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

Все теги