Имя: Пароль:
1C
1C 7.7
v7: Обращение в запросе к реквизиту док-та основания
, ,
0 Mister-X07
 
05.12.13
18:04
Можно ли в запросе обратиться к реквизиту Контрагент док.основания и если можно - то как? А то  уже забыл...

Есть запрос в рус.торг.

...
|ДокОсновСчВыд = Документ.СчетФактураВыданный.ДокОснование.ТекущийДокумент.Реализация;
    |ДокОсновПрил2 = Документ.Приложение2.ДокОснование.ТекущийДокумент.СчетФактураВыданный;
    |Контрагент = Документ.СчетФактураВыданный.Контрагент, ДокОсновПрил2.Контрагент;

|СуммаСНДС = ДокОсновСчВыд.Сумма;
    |СуммаНДС = ДокОсновСчВыд.СуммаНДС;
    |НДС_ = ДокОсновСчВыд.СуммаНДС;
    |СумСНДС = ДокОсновСчВыд.Сумма;
...
|Функция СуммаБезНДС = Сумма(СумСНДС - СуммаНДС);
    |Функция НДС = Сумма(НДС_);
|Функция СуммаСНДС = Сумма(СумСНДС);
...
+ валюта в прилож.2

вот что мне нужно вытянуть
1 ДенисЧ
 
05.12.13
18:05
Не прокатит
2 Mister-X07
 
05.12.13
18:06
вот этот путь не верный

|ДокОсновСчВыд = Документ.СчетФактураВыданный.ДокОснование.ТекущийДокумент.Реализация;
    |ДокОсновПрил2 = Документ.Приложение2.ДокОснование.ТекущийДокумент.СчетФактураВыданный;

как его правильно задать и возможно ли это?
3 Mister-X07
 
05.12.13
18:07
а как его вытянуть?
4 Mister-X07
 
05.12.13
18:07
добавить реквизит Контрагент и Валюта в Пирлож.2, обработкой его заполнить?
5 Mister-X07
 
05.12.13
18:10
суммы можно своей вытянуть типа

ПолучитьСумму(Документ.СчетФактураВыданный.ДокОснование,СуммаСНДС,СуммаНДС)
и в ней это реализовать а вот Валюта и Контрагент?
6 Mister-X07
 
05.12.13
18:12
точнее ПолучитьСуммуСНДС(Документ.СчетФактураВыданный.ДокОснование) и аналог. ПолучитьСуммуНДС(окумент.СчетФактураВыданный.ДокОснование)
7 Ёпрст
 
05.12.13
18:12
(0) максимум - можно только в условии запроса или при расчете функции.. усё.
8 Mister-X07
 
05.12.13
18:13
тогда вариант (4)
9 Ёпрст
 
05.12.13
18:21
хз, че есть Пирлож.2 у тебя..
10 Ёпрст
 
05.12.13
18:21
И.. тебе этот клиентос зачем ?
Группировку по нему надо, или что ?
11 Mister-X07
 
05.12.13
18:24
не нужно наименование и инн
12 Mister-X07
 
05.12.13
18:25
(9) Пирложение2 ))
13 Mister-X07
 
05.12.13
18:25
Приложение2
14 Mister-X07
 
05.12.13
18:26
(11) не, нужно наименование и инн
15 Mister-X07
 
05.12.13
18:33
короч, валюты не надо, там всегда одна валюта у всех доках
16 Mister-X07
 
05.12.13
18:33
значить переводить сумму в валюту бух.учета не надо, она как  раз такая
17 Ёпрст
 
05.12.13
18:42
Т.е в группировке/переменной нужен ИНН и Наименование клиентоса у дока- основания ?
Так не слепить..
18 Ёпрст
 
05.12.13
18:43
в чорном запросе.
19 Mister-X07
 
05.12.13
18:48
сделал так:

//**********
функция получитьСуммуСНДС(ДокОснов)
    
    СуммаСНДС = глСуммаСчетаФактуры(ДокОснов,СуммаНДС,СуммаНП);
    Возврат СуммаСНДС;
    
конецфункции

//******
функция получитьСуммуБезНДС(ДокОснов)
    
    СуммаСНДС = глСуммаСчетаФактуры(ДокОснов,СуммаНДС,СуммаНП);
    Возврат СуммаСНДС - СуммаНДС;
    
конецфункции


//******
функция получитьСуммуНДС(ДокОснов)
    
    СуммаСНДС = глСуммаСчетаФактуры(ДокОснов,СуммаНДС,СуммаНП);
    Возврат СуммаНДС;
    
конецфункции

сам запрос
...
|ДокОснов = Документ.СчетФактураВыданный.ДокОснование,Документ.Приложение2.ДокОснование;
|Функция СуммаБезНДС = Сумма(получитьСуммуБезНДС(ДокОснов));
    |Функция НДС = Сумма(получитьСуммуНДС(ДокОснов));
    |Функция СуммаСНДС = Сумма(получитьСуммуСНДС(ДокОснов));
20 Mister-X07
 
05.12.13
22:50
Почему-то в запросе суммы округляет к целым числам, вот эти функции

|Функция СуммаБезНДС = Сумма(получитьСуммуБезНДС(ДокОснов));
|Функция НДС = Сумма(получитьСуммуНДС(ДокОснов));
|Функция СуммаСНДС = Сумма(получитьСуммуСНДС(ДокОснов));

напр., в док-те СуммаСНДС = 381.76, в запросе СуммаСНДС = 382.00, аналогично с суммой НДС.

Почему?
21 Mister-X07
 
05.12.13
22:51
для примеру беру док-т Реализация
22 Diter
 
05.12.13
22:57
(20) потому. так всегда

обрабатывай потом при обходе результатов. кроме того ещё бывают случаи когда основание пустое
23 Diter
 
05.12.13
22:57
(+22) умножь на 100 в функции запроса. потом поделишь
24 Mister-X07
 
05.12.13
23:02
(22) "кроме того ещё бывают случаи когда основание пустое"
видел, но разве это правильно, ведь налог.док-ты нужно вводить на основании?
25 Mister-X07
 
05.12.13
23:03
(22) "потому. так всегда"
недокументированная особенность? ))
26 Mister-X07
 
05.12.13
23:05
(23) спс за идею, 7.7 - кака, в 8-ке такого не наблюдал
27 Mister-X07
 
05.12.13
23:07
+(24) клиенту об сообщу, пущай пеняет на себя ))
28 Mister-X07
 
05.12.13
23:08
+(27) клиенту об этом сообщу
29 Diter
 
05.12.13
23:12
(24) в жизни бывает всякое
(26) сам ты... не умеешь не значит "кака". использовать внешние функции в запросе - вот это кака. признак того что или ты неправильно сконструировал базу (регистр) или ты не умеешь по другому.
30 Mister-X07
 
05.12.13
23:13
(25) я когда-то использовал в запросе под функцией свои функции, но только они возвращали целые числа, на счет обработки десятичных дробей не знал
31 Diter
 
05.12.13
23:13
(27) ты никогда не сталкивался с итоговыми налоговыми накладными? или никогда не видел налоговую на конечного?
32 Diter
 
05.12.13
23:14
открой для себя волшебное слово "когда" в строке "Функция" в тесте запроса.
33 Mister-X07
 
05.12.13
23:14
(31) да забыл, спс, учту
34 Mister-X07
 
05.12.13
23:15
(32) спс
35 Mister-X07
 
05.12.13
23:16
(29) базу сконструировал не я
36 Mister-X07
 
05.12.13
23:17
мне ее такую "вручили" ))
37 Mister-X07
 
05.12.13
23:18
(29) "использовать внешние функции в запросе - вот это кака."

это почему?
38 Diter
 
05.12.13
23:18
(35) под твою задачу переделки - пару минут в коде и конфигураторе и обработка чтобы заполнить недостающие реквизиты налоговой. и дальше пригодиться. а вообще - бредово как то. у тебя бух или оперучет?
39 Diter
 
05.12.13
23:19
(37) потому что тормоза и косяки типа "округления".
40 Diter
 
05.12.13
23:19
(+39) и куча непредсказуемых иногда результатов
41 Mister-X07
 
05.12.13
23:20
(39) ну да, я тут недавно нашел косяк с описанием в СП ВыбратьПериоды() в бух.запросе
42 Diter
 
05.12.13
23:21
(41) там и без обхода результатов чудес хватает. и дело не в том что 7.7 а в том что проводки и план счетов а не регистры.
43 Mister-X07
 
05.12.13
23:22
(38) это рус. торговля, нужно заполнить реестр НН такой как бух. для Украины 7.7 и экспортировать в хмл
44 Diter
 
05.12.13
23:23
(43) смешались в кучу. при чем тут украинская бух если все бух на плане счетов и проводках с операциями? а ТиС везде на регистрах?

ну вот и переделай регистр так чтобы в нем было то что надо. потом перепроведи налоговые и получай все что хочешь
45 Diter
 
05.12.13
23:24
тьфу ты... привиделось "регистр" вместо "реестр".
ну так в чем проблема?
46 Diter
 
05.12.13
23:25
самое интересно что в бух украинской и Тис украинской все одинаково при формировании реестра - запрос к НН до группировки "документ" а потом обработка списка документов т.к. в реестре нет необходимости в других каких то группировках.
47 Mister-X07
 
05.12.13
23:26
(46) ТиС русская
48 Diter
 
05.12.13
23:27
деление накладных на виды (выдана плательщику НДС и оставлена у себя, копия или оригинал, нал безнал, резидент неризидент и т.п.) просиходит в реквизитах самой налоговой

вообще правило № 1 для запроса по цепочкам документов (типа "Док.основание.РеквизиОснования...."). попробуй написать запрос не к началу цепочки а к её середине. по аналогии запроса к подчиненному справочнику и получение оттуда владельца. можно документ-родитель получить и из подчиненного документа. так ведь?
49 Diter
 
05.12.13
23:27
(47) да пофик в принципе
50 Mister-X07
 
05.12.13
23:31
нет всех специфических реквизитов в ТиС рос., как в бух. укр. нужных для заполнения реестра НН, короче я посмотрел, что все док-ти идут с суммой с НДС и сделал по дефолту некоторые присвоения, если будут какие-то нюансы, будем добавлять реквизиты и писать обработку или пущай их вносят вручную, если их мало
51 Mister-X07
 
05.12.13
23:34
еще раз спасибо за советы, особенно за нюансы с работой в запросе из своими функциями
52 Diter
 
05.12.13
23:35
удачи
53 Ёпрст
 
06.12.13
08:26
(25) всё задокумментировано.
На 100 умножать и делить не нужно..
всё и так работает, если знать как исправить текст запроса.
54 Ёпрст
 
06.12.13
08:30
Если че, точность функции сумма берётся из первого аргумента, который должен быть переменной запроса, у тебя переменной в вычислении функции нет, точность =0.. вот и "округление"

Добавь в функцию ноль-переменную, и точность функции будет как у этой переменной:

|Вася = Документ.Вася.РеквизитСуммаСНужнойТочностью;
|Функция СуммаБезНДС = Сумма(Вася-Вася+получитьСуммуБезНДС(ДокОснов));
55 ДенисЧ
 
06.12.13
09:16
(53) Можно ссылочку на жкк про документированность? :-)
56 Ёпрст
 
06.12.13
09:20
(55) продал всё что ли ?
57 Ёпрст
 
06.12.13
09:20
Аналогично, кстате, Итог по колонке в ТЧ, в ТЗ работает..
58 ДенисЧ
 
06.12.13
09:21
(56) Нет, но ты таки покажи
59 Mister-X07
 
06.12.13
23:01
(54) откуда такая инфо?
(58) присоединяюсь
60 Mister-X07
 
06.12.13
23:28
может по 7.7 есть тоже своя проф.разработка? а мы то в неведении ))