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

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

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

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

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

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

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

> Подскажите, как быстрее отобрать и исключить из цикла документы, в которых был зачтен аванс?<br>> <br><br>подробнее задачу : для чего всё это !?<br><br><br>

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

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

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

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

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

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

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

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

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

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

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

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

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

Читают тему:

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