Имя: Пароль:
1C
 
Не встает сумма НДС в ТЧ программно созданного ЗаказаПостащику УТ 10.3
,
0 Krasotka
 
05.05.22
10:22
Код такой, все встает, сумма НДС только 0 везде. Как исправить?    

    новСтрДок = ДокЗаказПоставщику.Товары.Добавить();
            новСтрДок.Номенклатура         = тздлязаказа[Стр][1];
            новСтрДок.Количество         = тздлязаказа[Стр][14+НомОрг];
            новСтрДок.цена= ЦенаЗакупа(тздлязаказа[Стр][1],этотобъект.Поставщик);
            новСтрДок.ЕдиницаИзмерения     = новСтрДок.Номенклатура.ЕдиницаХраненияОстатков;
            новСтрДок.Коэффициент         = новСтрДок.ЕдиницаИзмерения.Коэффициент;
            ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(новСтрДок, ДокЗаказПоставщику);
            ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(новСтрДок, ДокЗаказПоставщику, "Прибретение");
            СтруктураШапкиДокумента = Новый Структура("Контрагент, ТипЦен, ДоговорКонтрагента, ДатаДокумента, ВалютаДокумента, УчитыватьНДС, СуммаВключаетНДС",
            ДокЗаказПоставщику.Контрагент, ДокЗаказПоставщику.ТипЦен, ДокЗаказПоставщику.ДоговорКонтрагента, ДокЗаказПоставщику.Дата, ДокЗаказПоставщику.ВалютаДокумента, ДокЗаказПоставщику.УчитыватьНДС, ДокЗаказПоставщику.СуммаВключаетНДС);
            ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПокупкиТабЧасти(новСтрДок, ДокЗаказПоставщику, СтруктураШапкиДокумента , Константы.ВалютаРегламентированногоУчета.Получить());
            ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(новСтрДок, ДокЗаказПоставщику);
            //ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(новСтрДок, ДокЗаказПоставщику);
            новСтрДок.СуммаНДС=новСтрДок.Сумма/120*20;
1 vicof
 
05.05.22
10:24
Ну пройдись отладчиком.
Опять окажется, что реквизиты не все или криво заполняешь
2 Kassern
 
05.05.22
10:25
(0) мои глаза....
в отладке гляньте эту процедуру "ОбработкаТабличныхЧастей" - что она делает.
И проверьте, что ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти - ставку ндс проставила
3 Krasotka
 
05.05.22
10:26
новСтрДок.СуммаНДС=новСтрДок.Сумма/120*20; - вот тут ндс в строке возникает, но после сохранения там 0
4 vicof
 
05.05.22
10:27
Ну пройдись отладчиком по процедурам сохранения
5 Kassern
 
05.05.22
10:28
(3) А там где-нибудь в документе есть реквизит булево, продажа не облагается НДС))
6 Krasotka
 
05.05.22
10:32
(5)
таки да, прописала это и все заработало )
    ДокЗаказПоставщику.СуммаВключаетНДС=Истина;
    ДокЗаказПоставщику.УчитыватьНДС=Истина;
7 Kassern
 
05.05.22
10:33
(6) ну вот, осталось только заполнение ТЧ переписать, чтобы читаемо было и вообще красота будет)
8 Kassern
 
05.05.22
10:34
по любому там есть процедура общего модуля, которая ТЧ заполняет, забыл уже как в 10ут это работает.
9 Krasotka
 
05.05.22
10:36
(8)
Ну он у меня сохраняется и проводится, зачем еще эта процедура?
10 Kassern
 
05.05.22
10:41
(9) затем, чтобы с кодом было приятно работать, чтобы дорабатывать это чудо было гораздо быстрее. Вот вы явно прописали новСтрДок.СуммаНДС=новСтрДок.Сумма/120*20; а завтра бац и на часть товаров нужно будет 10% ставку НДС льготную поставить. Вот эта процедура у вас вообще в пустую работает ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(новСтрДок, ДокЗаказПоставщику);  так как вы явно потом сумму НДС пересчитываете. А она у вас потом может с остальными колонками суммируемыми не сойтись. Вот смысл вам забивать голову и явно все колонки прописывать, когда для вас 1ска штатно предоставляет уже готовую процедуру, где все это учтено?
11 vicof
 
05.05.22
10:41
(9) Чтобы не плакали потом твои последователи
12 PLUT
 
05.05.22
10:42
(11) наеборот спасибо будут говорить. это ж работы непочатый край взять и всё переписывать (рефакторинг...)
13 vicof
 
05.05.22
10:46
(12) Только за это никто платить никто не любит. Типа работает и ладно.
14 PLUT
 
05.05.22
10:55
(13) заплатят, потому что такой код рано или поздно сломается, а чинить (переписывать) бесплатно никто не будет
15 Krasotka
 
05.05.22
11:38
Вы напишите этот код красиво, покажите мастер класс, а то троллить много ума не надо
16 Kassern
 
05.05.22
11:49
(15) в общем модуле ОбработкаТабличныхЧастей есть процедура вида ОбработатьСтрокуТЧ? Или что-то подобное?
17 Kassern
 
05.05.22
11:50
Если есть, то гляньте, что она делает и какие у нее параметры и попробуйте ей заполнить вашу строку ТЧ
18 PLUT
 
05.05.22
12:04
(15)  в (6) некрасиво (нужны пробелы и табуляция)

ДокЗаказПоставщику.СуммаВключаетНДС    = Истина;
ДокЗаказПоставщику.УчитыватьНДС        = Истина;
19 Kassern
 
05.05.22
12:07
(18) вас только это задело?)
А как вам такое?
новСтрДок.Номенклатура         = тздлязаказа[Стр][1];
новСтрДок.Количество         = тздлязаказа[Стр][14+НомОрг];
20 PLUT
 
05.05.22
12:09
(19) красивое
21 Kassern
 
05.05.22
12:09
Почему нельзя просто Для Каждого СтрокаТЗ Из ТЗДляЗаказа Цикл
и уже работать со Строкой ТЗ, а не получать ее каждый раз через тздлязаказа[Стр].
22 Krasotka
 
05.05.22
12:09
(19)
Есть группа компаний на 5 организаций, формируется таблица, где высчитывается, сколько заказать на каждую. Потом организации перебираются в цикле и берется соответствующая колонка для этой организации. Че не так то?
23 Kassern
 
05.05.22
12:12
(22) как минимум в том, что вы несколько раз обращаетесь вот так тздлязаказа[Стр], в этом случае правильно объявить переменную и уже с ней работать.
24 Kassern
 
05.05.22
12:13
Имена переменных тоже надо заводить правильно. Почитайте вот это https://its.1c.ru/db/v8std/content/454/hdoc
25 Kassern
 
05.05.22
12:19
(22) Если я вас правильно понял, то выше должен быть запрос с группировкой по организации как минимум. Далее уже работаете с выборкой с  Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам). Для каждой организации создаете свой заказ поставщику. На последнем уровне выборки просто заполняете табличную часть через БСПшную процедуру. Вот как-то так я вижу оптимальное решение.
26 Kassern
 
05.05.22
12:19
и не нужно будет писать всякие конструкции вида [][] и код будет раза 3 меньше и читаемым
27 Krasotka
 
05.05.22
12:20
У меня неоптимальное решение 5сек отрабатывает, тут всех устраивает. Мало ли что код некрасивый, шпионов отпугнет, если полезут.
28 Kassern
 
05.05.22
12:22
(27) со временем вам самой будет не приятно с таким кодом работать, чем раньше научитесь писать красиво, тем легче вам будет работать с этим кодом и меньше времени будете тратить на поиск косяков.
29 PLUT
 
05.05.22
12:23
(27) от шпионов через вот это нужно ваш код

https://netlenka.org/
30 Krasotka
 
05.05.22
12:25
(29)
Это палка о двух концах, шпионы могут обратиться к владельцу конторы и сказать, что код обфускан, он скажет нормальным сделать... А так не скажут, если просто не понятный.
31 PLUT
 
05.05.22
12:28
(30) > если просто не понятный.

тогда > что код обфускан

и > шпионы могут обратиться к владельцу конторы

Л. - логика
32 Krasotka
 
05.05.22
12:30
(31)
шпионы для меня внешние совместители - подработчики
33 Kassern
 
05.05.22
12:30
(32) жестоко)
34 PLUT
 
05.05.22
12:31
(32) и хренилища конфигурации даже нет?
35 Kassern
 
05.05.22
12:32
а ваши "шпионы" ничего по поводу написания кода не говорят? Или поэтому они для вас шпионы, а не товарищи?)
36 Krasotka
 
05.05.22
12:33
(35)
Какое дело владельцу конторы до красоты кода, главное тут быстрее обработку сделать и цифры чтобы правильные были. Он наезды на красоту кода даже слушать не будет.
37 PLUT
 
05.05.22
12:36
(36) а пояснительная бригада у вас есть? ну там интриги, скандалы, расследования кто проводит, если цыфры неправильные?
38 Kassern
 
05.05.22
12:38
(36) это по началу так, а потом все будет следующим образом, хозе надо поменять логику и на это тратится не рабочий день условный, а 3 дня. А потом еще неделю ковыряется, чтобы все косяки выявить и закостылять их. А потом следующая доработка и все становится еще хуже. И так до тех пор, пока хозя не устанет от постоянных жалоб сотрудников, что 1ска ваша не работает. Потом хозя наймет нового программиста, а тот скажет, что такое не дорабатывается, либо назовет не подъемную сумму, проще будет заново все переписать.
39 Kassern
 
05.05.22
12:39
вам то может и все равно, а страдать в конечно итоге будет бизнес и он куда больше денег потом потратит на исправление этого кода. Если бы хозя знал бы "прикуп", ему было бы не пофиг на костыльный код
40 Kassern
 
05.05.22
12:40
(38) все сведется к тому, что потом будет страшно, что то править, потому что все костыли могут посыпаться, особенно, если надо будет логику сильно поменять.
41 Kassern
 
05.05.22
12:47
да и вы наверное захотите в будущем зарабатывать больше и работать в крупной компании. А там уже придется с пониманием код писать и нагрузка может быть 24/7 базы и активных пользователей может быть за сотню. Поэтому косяки в коде могут на сотни тысяч компанию бить, я уж не говорю про простои. И подобный код из (0) просто не пройдет контроль и не будет добавлен в конфу рабочую. Поэтому лучше сразу себя приучать к порядку)