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

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

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

7.7 ТИС для Украины Отчет по скидкам

maestro_voln
читатель
офлайн
Дата регистрации: 04.03.2009
Сообщений: 289
Пост №1
 
04.12.2009 11:39

"Почемуто значение цены берет с рабочей даты, а я вроде как указываю по дате документа Цены.ИспользоватьДату(Док.ДатаДок)<br>Помогите разобраться<br><br><br>Процедура Сформировать() <br> СуммаОбщПоДок=0;<br> СуммаОбщПоСпр=0; <br> РазницаОбщ=0; <br> Таблица=СоздатьОбъект("Таблица");<br> Таблица.ИсходнаяТаблица("Отчет");<br> Док=СоздатьОбъект("Документ");<br> Док.ИспользоватьЖурнал("РасходныеНакладные");<br> Док.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода); <br> ПечКонтрагент="По контрагенту "+ВыбКонтрагенты.ПолнНаименование;<br> Таблица.ВывестиСекцию("шапка");<br> Пока Док.ПолучитьДокумент()=1 Цикл<br> Если Док.Контрагент=ВыбКонтрагенты Тогда <br> номердок= Док.НомерДок;<br> Док.ВыбратьСтроки(); <br> СуммаПоДок=0;<br> СуммаПоСправочнику=0;<br> Пока Док.ПолучитьСтроку()=1 Цикл<br> Цены=СоздатьОбъект("Справочник.Цены");<br> Цены.ИспользоватьДату(Док.ДатаДок);<br> Цены.ИспользоватьВладельца(Док.Товар.ТекущийЭлемент());<br> ТипЦены= Док.КатегорияЦен;<br> Цены.НайтиПоРеквизиту("КатегорияЦены",ТипЦены,0); <br> СуммаПоСправочнику=СуммаПоСправочнику+(Док.Количество*Цены.цена); <br> СуммаПоДок=СуммаПоДок+(Док.Количество*Док.ЦенаСНДС); <br> Разница=СуммаПоСправочнику-СуммаПоДок;<br> РазницаПроц=Окр(СуммаПоСправочнику/СуммаПоДок*100-100,2,1);<br> КонецЦикла;<br> СуммаОбщПоДок=СуммаОбщПоДок+СуммаПоДок;<br>        СуммаОбщПоСпр=СуммаОбщПоСпр+СуммаПоСправочнику; <br> РазницаОбщ=РазницаОбщ+Разница;<br> Таблица.ВывестиСекцию("Документ");<br> КонецЕсли;<br>КонецЦикла; <br>РазницаОбщПроц=Окр(СуммаОбщПоСпр/СуммаОбщПоДок*100-100,2,1);<br> Таблица.ВывестиСекцию("Итоги");<br> Таблица.Показать("Отчет"); <br>КонецПроцедуры<br>"

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №2
 
04.12.2009 11:56

"А если использовать:<br>Цены.ИспользоватьДату(Док.ДатаДок, 1);"

maestro_voln
читатель
офлайн
Дата регистрации: 04.03.2009
Сообщений: 289
Пост №3
 
04.12.2009 12:47

тоже самое<br>

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №4
 
04.12.2009 13:16

"За "Цены=СоздатьОбъект("Справочник.Цены")" внутри цикла "Пока Док.ПолучитьСтроку()=1 Цикл" пожизненный эцих с гвоздями :)<br><br>В общем, надо так:<br>Процедура Сформировать() <br> СуммаОбщПоДок=0;<br> СуммаОбщПоСпр=0; <br> РазницаОбщ=0; <br> Таблица=СоздатьОбъект("Таблица");<br> Таблица.ИсходнаяТаблица("Отчет");<br> Цены=СоздатьОбъект("Справочник.Цены");<br> Док=СоздатьОбъект("Документ");<br> Док.ИспользоватьЖурнал("РасходныеНакладные");<br> Док.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода); <br> ПечКонтрагент="По контрагенту "+ВыбКонтрагенты.ПолнНаименование;<br> Таблица.ВывестиСекцию("Шапка");<br> Пока Док.ПолучитьДокумент()=1 Цикл<br>       Если Док.Контрагент=ВыбКонтрагенты Тогда <br>             номердок = Док.НомерДок;<br>             Док.ВыбратьСтроки(); <br>             СуммаПоДок=0;<br>             СуммаПоСправочнику=0;<br>             Пока Док.ПолучитьСтроку()=1 Цикл<br>                   СуммаПоСправочникуПоСтроке=0;<br>                   Цены.ИспользоватьВладельца(Док.Товар);<br>                   Если Цены.НайтиПоРеквизиту("КатегорияЦены",Док.КатегорияЦен,0)=1 Тогда<br>                         СуммаПоСправочникуПоСтроке=(Док.Количество*Цены.Цена.Получить(Док.ДатаДок));<br>                   КонецЕсли;<br>                   СуммаПоСправочнику=СуммаПоСправочнику+СуммаПоСправочникуПоСт­роке;<br>                   СуммаПоДок=СуммаПоДок+(Док.Количество*Док.ЦенаСНДС); <br>                   Разница=СуммаПоСправочнику-СуммаПоДок;<br>                   РазницаПроц=Окр(СуммаПоСправочнику/СуммаПоДок*100-100,2,1);<br>             КонецЦикла;<br>             СуммаОбщПоДок=СуммаОбщПоДок+СуммаПоДок;<br>             СуммаОбщПоСпр=СуммаОбщПоСпр+СуммаПоСправочнику; <br>             РазницаОбщ=РазницаОбщ+Разница;<br>             Таблица.ВывестиСекцию("Документ");<br>       КонецЕсли;<br> КонецЦикла; <br> РазницаОбщПроц=Окр(СуммаОбщПоСпр/СуммаОбщПоДок*100-100,2,1);<br> Таблица.ВывестиСекцию("Итоги");<br> Таблица.Показать("Отчет"); <br>КонецПроцедуры<br>"

maestro_voln
читатель
офлайн
Дата регистрации: 04.03.2009
Сообщений: 289
Пост №5
 
04.12.2009 13:26

на счет "За "Цены=СоздатьОбъект("Справочник.Цены")" внутри цикла "Пока Док.ПолучитьСтроку()=1 Цикл" пожизненный эцих с гвоздями :)", полностью согласен (невнимательность)<br>а переменные я описывал чтобы самому было понятней(в процессе разработки)<br>По вашему коду вобще какаета фигня получилась<br>а чем собственно отличается ИспользоватьДату от Получить?<br>

maestro_voln
читатель
офлайн
Дата регистрации: 04.03.2009
Сообщений: 289
Пост №6
 
04.12.2009 13:31

Вы переменную в начале цыкла установили СуммаПоСправочникуПоСтроке=0 , поэтому ее значение равнялось последней позиции в списке<br>я исправил, получилось тоже что и у меня

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

> СуммаПоСправочникуПоСтроке=0 , поэтому ее значение равнялось последней позиции в списке я исправил<br><br>Не исправляйте, смотрите еще разок что там у меня написано.<br><br>Кстати, а это нормально, что у вас СуммаПоСправочнику идет внутри цикла перебора строк? У вас же не по отдельной позции разницы считаются, а вообще как то накопительно...

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №8
 
04.12.2009 13:53

"Вроде бы я понял что вы задумали, попробуйте вот такой вариант:<br>Процедура Сформировать() <br> СуммаОбщПоДок=0;<br> СуммаОбщПоСпр=0; <br> РазницаОбщ=0; <br> Таблица=СоздатьОбъект("Таблица");<br> Таблица.ИсходнаяТаблица("Отчет");<br> Цены=СоздатьОбъект("Справочник.Цены");<br> Док=СоздатьОбъект("Документ");<br> Док.ИспользоватьЖурнал("РасходныеНакладные");<br> Док.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода); <br> ПечКонтрагент="По контрагенту "+ВыбКонтрагенты.ПолнНаименование;<br> Таблица.ВывестиСекцию("Шапка");<br> Пока Док.ПолучитьДокумент()=1 Цикл<br>       Если Док.Контрагент=ВыбКонтрагенты Тогда <br>             номердок = Док.НомерДок;<br>             Док.ВыбратьСтроки(); <br>             СуммаПоДок=0;<br>             СуммаПоСправочнику=0;<br>             Пока Док.ПолучитьСтроку()=1 Цикл<br>                   Цены.ИспользоватьВладельца(Док.Товар);<br>                   Если Цены.НайтиПоРеквизиту("КатегорияЦены",Док.КатегорияЦен,0)=1 Тогда<br>                        СуммаПоСправочнику=СуммаПоСправочнику+(Док.Количество*Цены.Цена.Получить(Док.ДатаДок));<br>                   КонецЕсли;<br>                   СуммаПоДок=СуммаПоДок+(Док.Количество*Док.ЦенаСНДС); //а в документе нет реквизита "Сумма"?<br>             КонецЦикла;<br>             СуммаОбщПоДок=СуммаОбщПоДок+СуммаПоДок;<br>             СуммаОбщПоСпр=СуммаОбщПоСпр+СуммаПоСправочнику; <br>             Разница=СуммаПоСправочнику-СуммаПоДок;<br>             РазницаОбщ=РазницаОбщ+Разница;<br>             Таблица.ВывестиСекцию("Документ");<br>       КонецЕсли;<br> КонецЦикла; <br> РазницаОбщПроц=Окр(СуммаОбщПоСпр/СуммаОбщПоДок*100-100,2,1);<br> Таблица.ВывестиСекцию("Итоги");<br> Таблица.Показать("Отчет"); <br>КонецПроцедуры<br>"

maestro_voln
читатель
офлайн
Дата регистрации: 04.03.2009
Сообщений: 289
Пост №9
 
04.12.2009 14:14

тоже что и у меня<br>

maestro_voln
читатель
офлайн
Дата регистрации: 04.03.2009
Сообщений: 289
Пост №10
 
04.12.2009 14:17

СуммаПоСправочнику у меня не внутри а перед циклом, а вот у Вас внутри

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

Читают тему:

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