Имя: Пароль:
1C
1С v8
Программная установка флага СуммаВключаетНДС
0 sweety-twetty
 
22.06.12
16:10
Здравствуйте! Надеюсь на Вашу помощь. При попытке установить значение СуммаВключаетНДС = Ложь результат проведения документа разительно отличается от того, который получается при снятии данного флажка вручную. Подскажите,в чем может быть причина.Заранее спасибо за ответы и советы)

Процедура Заполнение()
Докум = Документы.РеализацияТоваровУслуг.НайтиПоНомеру(Док.Номер,Док.Дата);

Форма = Докум.ПолучитьФорму("ФормаДокумента");
ДокумДляЗаписи=Докум.ПолучитьОбъект();
ДокумДляЗаписи.СуммаВключаетНДС = Ложь;

ТЧ = ДокумДляЗаписи.Товары;
УчитыватьУслуги = НЕ (ДокумДляЗаписи.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером);
Для Каждого Строка из ТЧ цикл
Строка.Цена = Ценообразование.ПересчитатьЦенуПриИзмененииФлаговНалогов(Строка.Цена, Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры, Истина,ДокумДляЗаписи.УчитыватьНДС,Ложь, Ценообразование.ПолучитьСтавкуНДС(Строка.Номенклатура.СтавкаНДС));
Сообщить(Строка.Цена);

Форма.ЭлементыФормы.Всего.Значение = ОбщегоНазначения.ФорматСумм(Ценообразование.ПолучитьСуммуДокументаСНДС(ДокумДляЗаписи, "Товары")+?(УчитыватьУслуги,Ценообразование.ПолучитьСуммуДокументаСНДС(ДокумДляЗаписи, "Услуги"),0));
Форма.ЭлементыФормы.ВсегоНДС.Значение = ОбщегоНазначения.ФорматСумм(ДокумДляЗаписи.Товары.Итог("СуммаНДС")+?(УчитыватьУслуги,ДокумДляЗаписи.Услуги.Итог("СуммаНДС"),0));

КонецЦикла ;
ДокумДляЗаписи.Записать(РежимЗаписиДокумента.Проведение);
КонецПроцедуры

Док в данном случае реквизит формы обработки
1 Svirepy
 
22.06.12
16:30
Что значит "разительно отличается"? Конкретно?
2 rbcvg
 
22.06.12
16:31
а фото будет?
3 salvator
 
22.06.12
16:33
(0) Видимо то, что Вы делаете в обработке и что делает программа по-умолчанию при снятия флажка - две большие разницы.
4 sweety-twetty
 
22.06.12
16:43
Спасибо большое,что откликнулись)

(1) разница сумм документа при снятии флажка вручную может составить до 5 грн, при том как в данной обработке эта разница составляет около 50 грн.

(3) Я тоже это понимаю, но я же пересчитываю цены строкой

Строка.Цена = Ценообразование.ПересчитатьЦенуПриИзмененииФлаговНалогов(Строка.Цена, Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры, Истина,ДокумДляЗаписи.УчитыватьНДС,Ложь, Ценообразование.ПолучитьСтавкуНДС(Строка.Номенклатура.СтавкаНДС));

и они по значениям равны тем, которые устанавливаються при ручном снятии флажка, но сумма документа после обработки не равна сумме после изменения реквизита руками
5 AmoreMe
 
22.06.12
16:44
(Сумма = Всего) ---> флаг установлен НДС в т.ч.  (Сумма + СуммаНДС = Всего) ---> флаг сброшен НДС сверху
6 AmoreMe
 
22.06.12
16:45
Этот флаг для удобства запонения из первички...
7 AmoreMe
 
22.06.12
16:46
можете заполнить тч и проверить потом проводки (только корректней с суммами, а то авторасчет вас обманет)
8 BigShmax
 
22.06.12
16:47
фоту тока я не вижу?
9 sweety-twetty
 
22.06.12
16:49
(8) Нет, не только Вы, к сожалению, я в данный момент на работе, поэтому решить вопрос с фото не могу
10 AmoreMe
 
22.06.12
16:51
Что не только?
11 AmoreMe
 
22.06.12
16:51
При правильном заполнении суммы в проводках не изменятся, весь учет ведется от проводок!
12 palpetrovich
 
22.06.12
16:52
(4) 5 и 50 это на какой сумме документа?
что за конфигурация?
(9) эту отмазку мы уже читали :)
13 AmoreMe
 
22.06.12
16:52
Спросите у своего бухгалтера если он у вас дружит с головой!
14 palpetrovich
 
22.06.12
16:58
и это, в (4) СуммаВключаетНДС = Ложь, ЦенаВключаетНДС = Истина - так действительно надо?
15 AmoreMe
 
22.06.12
17:01
ЦенаВключаетНДС если мы покупаем например материалы для собственного производства и имеем право включить НДС в стоимость!!! Скорее всего это не этот случай :)
16 sweety-twetty
 
22.06.12
17:02
(12)Простите за неполные сведения , "Управление производственным предприятием для Украины" ,на общей сумме, это не отмазка
(13) а если не дружит?)))
(14) Не уверена, но при отладке в табло в таком случае Строка.цена совпадала с той которая нужна
17 AmoreMe
 
22.06.12
17:02
Вернее флаг НДСВключатьВСтоимиость вот он действительно влияет на проводки.
18 AmoreMe
 
22.06.12
17:03
Если не дружит придется осваивать бух учет самой и учить Буха!
19 palpetrovich
 
22.06.12
17:10
(16) "сумма"  - в смысле цифра
"СуммаВключаетНДС = Ложь, ЦенаВключаетНДС = Истина" - это из "Истина,ДокумДляЗаписи.УчитыватьНДС,Ложь," в (4)
впрочем ладно, пора и домой :)
20 sweety-twetty
 
22.06.12
17:14
Насколько я понимаю, эти реквизиты документа заполняються из общей формы "Цены и валюты", и там их тип Булево
21 Serg_1960
 
22.06.12
17:42
У меня большое сомнение вызывают параметры. Особенно - последний. Ставку нужно брать не "по умолчанию" из номенклатуры, а ту что указана в строке документа. И использование параметров-констант подозрительно - они тоже должны браться из документа.

Лучше так написать:

Строка.Цена = Ценообразование.ПересчитатьЦенуПриИзмененииФлаговНалогов(
             (Строка.Цена,
             Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры,
             ДокумДляЗаписи.ТипЦен.ЦенаВключаетНДС,
             ДокумДляЗаписи.УчитыватьНДС,
             ДокумДляЗаписи.СуммаВключаетНДС,
             Ценообразование.ПолучитьСтавкуНДС(Строка.СтавкаНДС));
22 Serg_1960
 
22.06.12
17:48
И учтите:

В конфигурации алгоритм пересчета запускается при изменении реквизита, а у вас тут "облом": сколько раз вызвали обработку - столько раз она вам и будет уменьшать/увеличивать цену :(
23 sweety-twetty
 
22.06.12
17:54
Данная обработка будет запускаться разово,лишь для того,чтобы не исправлять уже внесенные документы
24 Serg_1960
 
22.06.12
17:59
(23) Защита от дурака всё рано нужна:
...
Если ДокумДляЗаписи.СуммаВключаетНДС = Ложь Тогда
  Возврат;
КонецЕсли;
...
25 Serg_1960
 
22.06.12
18:04
И не по теме: начало алгоритма - нож по сердцу :) Напишите проще:

ДокумДляЗаписи = Док.ПолучитьОбъект();
Если ДокумДляЗаписи.СуммаВключаетНДС = Ложь Тогда
  Возврат;
Иначе
  ДокумДляЗаписи.СуммаВключаетНДС = Ложь;
КонецЕсли;

Форма = ДокумДляЗаписи.ПолучитьФорму("ФормаДокумента");
...
26 sweety-twetty
 
22.06.12
18:20
К сожалению, все равно при выполнении процедур обработки сумма меняется иначе, нежели при ручном снятии флага.Надеюсь на еще какие-то советы
27 sweety-twetty
 
22.06.12
18:27
(25) Эта кракозябра получилась в следствии многострадальных проб написать что-то, что будет работать так как нужно=)
28 sweety-twetty
 
25.06.12
09:50
Вопрос остался не решенным,прошу помощи
29 sweety-twetty
 
25.06.12
10:44
Up
30 Jaffar
 
25.06.12
10:46
без фотки - не взлетит :-(