Имя: Пароль:
1C
1C 7.7
v7: Выгружаются неправильные суммы в документах из 7.7
0 Vigor06
 
02.03.15
09:55
Доброго дня!
Есть самописная обработка по выгрузке доков из ТиС 7.7 и загрузке потом в КА 7.7
Почему-то в определенный момент при выгрузке в документе указанны одни суммы НДС (10 и 18%),а в файле с выгрузкой - другие.
Проверял отладчиком - там до момента выгрузки значения строки одна сумма,а в момент выгрузки - другая.

Вообще база SQL-ная, но я работаю с файловой выгрузкой. есть подозрение,что началось это после свертки базы в новую.
Но остатки все сходятся, в отчетах суммы верные,а в выгрузке - другие((

пробовал ТиС раза 3 прогонять - не помогает

Хэлп(
1 ДенисЧ
 
02.03.15
09:56
Ключевое слово - самописная. Ковыряй в эту сторону
2 ЕруФдуч
 
02.03.15
09:57
смотри, что конкретно выгружает в выгрузке (суммы из регистра, суммы из док и т д ) и как. Что за КА 7.7 ?
3 Vigor06
 
02.03.15
10:06
(1) Раньше все выгружалось хорошо, проблем не было.Обработка не менялась с 2010 года.
4 ДенисЧ
 
02.03.15
10:07
(3) Готовь три конверта тогда.
5 Vigor06
 
02.03.15
10:07
(2) Данные берутся из самого документа непосредственно.
6 Vigor06
 
02.03.15
10:08
(2)Комплексная Автоматизация
7 mikecool
 
02.03.15
10:08
(5) а для выгрузки откуда берутся?
8 ДенисЧ
 
02.03.15
10:09
(6) Комплексная автоматизация 77 ???
9 Масянька
 
02.03.15
10:09
(5) "Другие цифры" - насколько другие?
10 VladZ
 
02.03.15
10:11
(3)  А данные? А алгоритм работы этих документов?

Возможно раньше цены были с НДС, а теперь без НДС. Или наоборот.
11 Vigor06
 
02.03.15
10:12
(7) так из документов же)
12 Vigor06
 
02.03.15
10:13
(8) На мне суть куда это потом будет загружаться,нам важно - откуда и как
13 Vigor06
 
02.03.15
10:14
(9) например,вместо сумм 2826,91 и 1610,00 выгружаются 2750,64 и 1655,48
14 Vigor06
 
02.03.15
10:15
(10) Данные берутся из документов. В документе они одни,в файле выгрузки - другие
15 Масянька
 
02.03.15
10:15
(13) Суммы берутся из док-та или пересчитываются?
16 mikecool
 
02.03.15
10:16
(15) вот ты чудак человек! сказано же тебе - дерево там такое!!!
17 Масянька
 
02.03.15
10:18
(16) Ты видел это дерево? Или только слышал о нем?
18 Vigor06
 
02.03.15
10:18
(15) просто берутся
Например:

    Пока т.ПолучитьСтроку()<>0 Цикл
        стр="СТРОКА"+Разделитель+
            ПолучитьПредставлениеЭлемента(т.Вид)+Разделитель+
            ПолучитьКодноменклатурыПоВиду(т.Вид)+Разделитель+
            ПолучитьПредставлениеЭлемента(т.Прод)+Разделитель+
            ПолучитьПредставлениеЭлемента(т.СтавкаНДС)+Разделитель+
            ПолучитьПредставлениеЭлемента(т.СуммаНДС)+Разделитель+
            ПолучитьПредставлениеЭлемента(т.Сумма)+Разделитель;
        текст.ДобавитьСтроку(стр);
    КонецЦикла;        

в "ПолучитьПредставлениеЭлемента" имеем

Если тип="Строка" Тогда
зн=ПреобразоватьСтроку(зн);    
КонецЕсли;


"Преобразоватьстроку" работает так:
Функция ПреобразоватьСтроку(стр)
    стр=СтрЗаменить(стр,РазделительСтрок," ");
    Возврат стр;
КонецФункции
19 Мимохожий Однако
 
02.03.15
10:20
Смотри как заполнен объект т.
20 Масянька
 
02.03.15
10:35
(18) Сливается все в одну строку: число в строку, потом обратно - тут может собака порыться.
Все параметры (которые сливаются) есть (например, если нет какого параметра - происходит смещение и тупо берется не та сумма)?
21 lavalit
 
02.03.15
10:44
Вообще то складыввать строку с числом... стремно как то....
согласен с (20) надо бы число представлять как строку.
Разделитель какой пользуешь для отделения значений?
22 Злопчинский
 
02.03.15
10:46
Блин
Мир тупеет на глазах
23 Vigor06
 
02.03.15
11:12
Наврал я Вам.Пропустил строку.
Данные он берет из регистра

Функция ПолучитьТаблицуДвижений(док,приход)
    т=СоздатьОбъект("ТаблицаЗначений");
    т.НоваяКолонка("Вид","Перечисление.СтатусыПартии");
    т.НоваяКолонка("СтавкаНДС","Перечисление.СтавкиНДС");
    т.НоваяКолонка("Сумма","Число",15,2);
    т.НоваяКолонка("СуммаНДС","Число",15,2);
    т.НоваяКолонка("Прод","Число",15,2);
    рег=СоздатьОбъект("Регистр.ПартииНаличие");
    рег.ВыбратьДвиженияДокумента(док);
    Пока рег.ПолучитьДвижение()<>0 Цикл  
        Если рег.Приход<>приход Тогда Продолжить; КонецЕсли;    
        Если рег.СтатусПартии=Перечисление.СтатусыПартии.Т_ВРознице Тогда Продолжить; КонецЕсли;    
        т.НоваяСтрока();
        т.Вид        =рег.СтатусПартии;
        Если док.Вид()="ВозвратОтПокупателя" Тогда
            т.Прод        =рег.ПродСтоимость;
            т.СтавкаНДС    =рег.Номенклатура.СтавкаНДС;
            т.СуммаНДС    =т.Прод*?(док.СуммаВклНДС=1,глВыделяемыйНДС(т.СтавкаНДС),глНачисляемыйНДС(т.СтавкаНДС));;
            т.Сумма        =рег.СуммаБезНДС;
        ИначеЕсли (док.Вид()="СписаниеТМЦ") ИЛИ (док.Вид()="КомплектацияТМЦ") Тогда
            т.Сумма        =рег.СуммаРуб;
            т.СтавкаНДС    =ПолучитьСтавкуНДС(рег.СуммаРуб,рег.СуммаБезНДС,рег.Номенклатура);
            т.СуммаНДС    =рег.СуммаРуб-рег.СуммаБезНДС;
        ИначеЕсли приход=1 Тогда // приход
            т.Сумма        =рег.СуммаРуб;
            т.СтавкаНДС    =ПолучитьСтавкуНДС(рег.СуммаРуб,рег.СуммаБезНДС,рег.Номенклатура);
            т.СуммаНДС    =рег.СуммаРуб-рег.СуммаБезНДС;
        Иначе                 // расход
            т.Прод        =рег.ПродСтоимость;
            т.СтавкаНДС    =рег.Номенклатура.СтавкаНДС;
            т.СуммаНДС    =т.Прод*?(док.СуммаВклНДС=1,глВыделяемыйНДС(т.СтавкаНДС),глНачисляемыйНДС(т.СтавкаНДС));;
            т.Сумма        =рег.СуммаБезНДС;
        КонецЕсли;    
    КонецЦикла;
    т.Свернуть("Вид,СтавкаНДС","Сумма,СуммаНДС,Прод");
    т.Сортировать("Вид,СтавкаНДС");
    Возврат т;    
КонецФункции


Документы перепровел,последовательность восттановил - нулевой результат(
24 Vigor06
 
02.03.15
11:13
(21) используется "~"
25 Масянька
 
02.03.15
11:14
(23) Брехун :))))
И что в регистре (цифры какие)?
26 Vigor06
 
02.03.15
11:33
(25)Получается,что в документе так  http://gyazo.com/4aa794177816181c60164780aae60924

а в регистре так
http://gyazo.com/7408d527b1426a15a13f6cdf5f93e90b
27 Мимохожий Однако
 
02.03.15
11:38
(26)А в выходном файле? Отладчик пытался включить?
28 Vigor06
 
02.03.15
11:41
(27) не дурак) вы выходном файлке он формирует ТЗ,сворачивает ее и получается вот что
http://gyazo.com/7901a552888a840e6a914650eaa68ac2
29 Vigor06
 
02.03.15
11:43
это не отладчик, но не суть
30 Vigor06
 
02.03.15
11:44
в отладчике вот так
http://gyazo.com/73e727f431fda47caa561e3d03d78857
31 Мимохожий Однако
 
02.03.15
11:51
В порядке эксперимента... Закомментируй т.Свернуть и посмотри родные цифры. Возможно, есть нулевые суммы, которые накладываются этим методом.
32 Vigor06
 
02.03.15
12:06
(31) в отладчике вот так...Как я понял,нужная нам - последняя строка
http://gyazo.com/a276eb19e61e8a214789a4e0bbf35fbd


Пустых нет
33 Мимохожий Однако
 
02.03.15
13:02
Эта "нужная" строка правильная? в файл попадает?
34 Vigor06
 
02.03.15
13:21
(33)В файл попадает строка(если мы не сворачиваем)

СТРОКА~Т_Купленный~00000014~29.87~НДС18~4.56~28.81~

Вроде все верно,но значит где то что то не совпадает,раз итоговые суммы расходятся
35 Vigor06
 
02.03.15
13:36
нашел!Не все просмотрел,но пример нашел
В документе в строке №8 сумма 68.92, Ставка НДС 18% СуммаНДС 10,51

В документе сумма  68,92, Ставка НДС 10% ,сумма нДС 6,27

В регистре вообще такая х-ня
http://gyazo.com/be2e9622142490e9b9c400bea703c8f0
36 Vigor06
 
02.03.15
13:39
37 Масянька
 
02.03.15
13:45
(35) (36) НДС с сумме или сверху?
38 Vigor06
 
02.03.15
14:20
(37) в документе  - "В т.ч"
39 Масянька
 
02.03.15
14:24
(38) Это - "в сумме". Считай: Сумма*18/118 = твой НДС.
По твоим цифрам (35) - нормально считается НДС.
40 Vigor06
 
02.03.15
14:34
(39)А то,что разные ставки НДС там  - Вас не смущает?))

В обработке же сумма НДС рассчитывается относительно константы документа "СуммаВклНдс"
То есть сумму НДС он не переносит,а высчитывает

т.СуммаНДС    =т.Прод*?(док.СуммаВклНДС=1,глВыделяемыйНДС(т.СтавкаНДС),глНачисляемыйНДС(т.СтавкаНДС));;
41 Масянька
 
02.03.15
14:43
(40) Нет, не смущает. Вполне допустимы разные ставки НДС в одном документе.
А константа "СуммаВклНДС" определяет: в сумме НДС или сверху.
"т.СтавкаНДС" - должна браться из обрабатываемой строки.
42 Vigor06
 
02.03.15
14:48
(41)ненене,уважаемая)То,что в одном документе - это ясно.
Но у нас в документе ставка номенклатуры 18%,а в документ почему то выгружается 10%
43 Масянька
 
02.03.15
14:51
(42) А это уже - проблемы обработки, которая выгружает.
Вы, уважаемый, сначала клялись и божились, что суммы выгружаются из док-та. А оказалось - из регистра.
Я не удивлюсь, если и ставка НДС выгружается, например, из номенклатуры (справочника).
Так что - Пилите, Шура, пилите (С)
44 Vigor06
 
02.03.15
14:51
Ставка НДС берется из номенклатуры т.СтавкаНДС    =рег.Номенклатура.СтавкаНДС;
45 Vigor06
 
02.03.15
14:52
(43) так дело в том,что еще пару месяцев назад все выгружалось и сходилось!
Проблемы вылезла совсем недавно(подозреваю,что после свертки)
46 Vigor06
 
02.03.15
14:52
Причем сходилось и выгружалось с помощью этой же обработки,которую уже несколько лет не допиливали
47 Pahomich
 
02.03.15
14:53
(45) Справочники НДС покопай в обоих базах
48 Масянька
 
02.03.15
15:00
(45) Большой, а в деда Мороза веришь (С)
Пилите, Шура, пилите (С)
49 VladZ
 
02.03.15
19:56
(45) "подозреваю,что после свертки". Гадать лучше всего на кофейной гуще. Миллион причин сразу найдется.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой