Имя: Пароль:
1C
1C 7.7
v7: СКД() в запросе даёт 0
,
0 tassman
 
07.11.12
14:13
ВыбСч = СчетПоКоду("10");

ТекстЗапроса1 = "
|Период с '01.03.2012' по ВыбКонПериода;
|ОбрабатыватьОперации Все;
|Сч = Операция.Дебет.Счет;
|КорСч = Операция.КорСчет;
|МХ = Операция.Дебет.МестаХранения.Код;
|НомНомер = Операция.Дебет.Материалы.Код;
|НаимМПЗ = Операция.Дебет.Материалы;
|Колво = Операция.Количество;
|Сум = Операция.Сумма;
|Группировка Сч без групп;
|Группировка КорСч без групп;
|Функция КолДО = ДО(Колво);
|Функция СумДО = ДО(Сум);
|Функция СКДК = СКД(Колво);
|Функция СКДС = СКД(Сум);
//|Группировка МХ без групп;
//|Группировка НомНомер без групп;
//|Группировка НаимМПЗ без групп;
|Условие (Сч в ВыбСч);
|Условие (не(КорСч в ВыбСч));";

Все поля заполняются, кроме СКДК и СКДС, они = 0.
Хотелось бы знать почему?
1 МихаилМ
 
07.11.12
14:15
вполне возможно.
в каких-то релизах была ошибка. по моему в 26.
2 zak555
 
07.11.12
14:16
чем бухЗапрос не нравится ?
3 chief accountant
 
07.11.12
14:32
(0) учи бухзапросы, сабж в топку
4 zak555
 
07.11.12
14:33
(3) только СКДК и СКДС глючат и там
5 chief accountant
 
07.11.12
14:33
(4) не знаю таких
6 пипец
 
07.11.12
14:36
Оо это нечто ;))
7 sidalexsandr
 
07.11.12
14:39
(0) Аргументы у СКД другие,
вот из синтаксис помощника:
СКД(<?>)
Синтаксис:
СКД(<ТипСуммы>)
Назначение:
Возвращает дебетовое сальдо на конец периода.
Параметры:
<ТипСуммы> - Необязательный параметр. Число или строка - тип возвращаемой суммы. Может принимать одно из следующих значений: 1 (''C'') - сумма; 2 (''В'') - валютная сумма; 3 (''К'') - количество. Если параметр не указан, метод возвращает сумму.
8 zak555
 
07.11.12
14:40
(5)

ИспрользоватьСубконто(ВидыСубконто.Договоры,,1,0);
ВыполнитьЗапрос(,ПозКон,,,1,,1);

развёрнутое субконто будет показывать непраильно

кстати, из-за этого СКДК и СКДС в типовых отчётах не применяется
9 chief accountant
 
07.11.12
14:41
(8) не тупи
|Функция СКДК = СКД(Колво);
|Функция СКДС = СКД(Сум);
10 Прохожий
 
07.11.12
14:42
(0) "Черные запросы с бухитогами в семерке не работают" (с) Аксиома № 13
11 НастоящееИмя
 
07.11.12
14:42
Напугался сперва. :) СКД на 7.7 ??? О_о
12 К_Дач
 
07.11.12
14:43
Да скорее всего просто нет там никаких остатков по дебету. Сформируй ОСВ по 10 счету и все станет ясно. Запрос нормально написан.
13 Прохожий
 
07.11.12
14:45
(12) чти (10)
14 chief accountant
 
07.11.12
14:47
(12) этим запросом можно получить остатки по счету 10? Ага
15 К_Дач
 
07.11.12
14:51
(13) пруфлинк в студию

Только что написал вот это:

Процедура Сформировать1()
   Перем Запрос, ТекстЗапроса, Таб;
   
   ВыбСч = СчетПоКоду("84");
                           
   
   //Создание объекта типа Запрос
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать1)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |Сч = Операция.Дебет.Счет;
   |КорСч = Операция.Кредит.Счет;
   |Количество = Операция.Количество;
   |Сумма = Операция.Сумма;
   |Функция КоличествоСКК = СКК(Количество);
   |Функция СуммаСКК = СКК(Сумма);
   |Группировка Сч без групп;
   |Группировка КорСч без групп;
   |Условие(Сч в ВыбСч);
   |"//}}ЗАПРОС
   ;
   // Если ошибка в запросе, то выход из процедуры
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       Возврат;
   КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать1");
   // Заполнение полей "Заголовок"
   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   Пока Запрос.Группировка(1) = 1 Цикл
       // Заполнение полей Сч
       Таб.ВывестиСекцию("Сч");
       Пока Запрос.Группировка(2) = 1 Цикл
           // Заполнение полей КорСч
           Таб.ВывестиСекцию("КорСч");
       КонецЦикла;
   КонецЦикла;
   // Заполнение полей "Итого"
   Таб.ВывестиСекцию("Итого");
   // Вывод заполненной формы
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать1", "");
КонецПроцедуры

отлично все показывает, по всем счетам, где есть СКК
16 zak555
 
07.11.12
14:52
(9) ???
17 К_Дач
 
07.11.12
14:56
+ (15)
СКД тоже работает.

(13) ты вообще сам проверял, прежде чем постить?
18 tassman
 
07.11.12
14:57
(7) Эти аргументы для БИ а не для Запроса.

Можно и с БИ сделать, но как взять обороты по 10 счету со всеми счетами по которым есть проводки (НО кроме операций Д10-К10 и К10-Д10)?
19 К_Дач
 
07.11.12
14:58
ТС, у тебя ошибка в строке
|Условие (не(КорСч в ВыбСч));";

Убери и все заработает
20 chief accountant
 
07.11.12
14:59
(16) Что есть СКДК и СКДС из (8)?
21 К_Дач
 
07.11.12
14:59
(18)
что мешает обойти выборку в цикле и исключить эти провоки?
22 tassman
 
07.11.12
14:59
(19) Это для того чтобы исключить 10-10 обороты
23 chief accountant
 
07.11.12
14:59
(18) легко
24 К_Дач
 
07.11.12
15:01
(22)

В БухЗапросе есть куча фильтров. Читай дядьку с шапочкой, вобщем
25 zak555
 
07.11.12
15:01
опечатался


я про

СНДРС(<?>)
Синтаксис:
СНДРС(<ТипСуммы>)
Назначение:
Возвращает дебетовое развернутое сальдо на начало периода.
Параметры:
<ТипСуммы> - Необязательный параметр. Число или строка - тип возвращаемой суммы. Может принимать одно из следующих значений: 1 (''C'') - сумма; 2 (''В'') - валютная сумма; 3 (''К'') - количество. Если параметр не указан, метод возвращает сумму.
26 К_Дач
 
07.11.12
15:01
Можно и на счет и на коррсчет накладывать фильтры
27 tassman
 
07.11.12
15:02
(21) что мешает обойти выборку в цикле и исключить эти провоки?
в цикле можно. уже так и сделал. Но хотелось бы чтобы они вообще не попадали в запрос вообще
28 chief accountant
 
07.11.12
15:03
(25) какое отношение к сабжу имеет (4)? :), ладно, проехали
29 chief accountant
 
07.11.12
15:04
Вообще-то обсуждали уже Пустой КорСчет. Помогите!
ТС продолжает упорно игнорить бухзапросы, мне пох, пусть велик изобретает
30 К_Дач
 
07.11.12
15:07
(0) в типовой бухне 77 полно примеров бухзапросов. Найди и возьми себе
31 chief accountant
 
07.11.12
15:08
(30) а какже "Запрос нормально написан" из (12)?
32 К_Дач
 
07.11.12
15:10
(31)
это было к (10). В смысле, что оно работает тоже, через какое место - другой вопрос уже
33 tassman
 
07.11.12
15:19
(32) а что в нем не так? что-то упускает? в сравнении с БИ? Если мне нужны все операции имеющиеся и не важно какими кривыми руками они были созданы в БД, мне их нужно выбрать и это ФАКТ! и запрос через "одно место" по твоим словам написанный их прикинь выбирает!
34 Classic
 
07.11.12
15:22
(4)
Все правильно они там показывают. Просто понятие "развернутое сальдо" надо правильно понимать. И то, что по одному счету могут быть разные значения развернутого сальдо
35 Classic
 
07.11.12
15:24
(0)
Интересно, а что ТС подразумевает под "Сальдо конечное дебетовое" в группировке по корсчетам?
36 Classic
 
07.11.12
15:27
(33) Не тупи. Что такое СКД() по отношению к корсчету?
37 chief accountant
 
07.11.12
15:48
(36) сальдо корсчета дебетовое
38 Classic
 
07.11.12
15:58
(37)
:)
39 К_Дач
 
07.11.12
16:00
(33) вот потому и через одно место, потому что бухзапросом можно сразу получить то, что нужно, без всяких постобработок.
40 К_Дач
 
07.11.12
16:00
(37) схема компоновки данных, ыыыы
41 tassman
 
07.11.12
16:07
(37) Вы батенька троль!
С чего ты умник взял, что это "сальдо корсчета дебетовое"
Сальдо Конечное дебет! Открой как там сказали мужичка в шляпке. Хотя наверное вы и есть мужик в шляпе! )
42 tassman
 
07.11.12
16:09
"(33) вот потому и через одно место, потому что бухзапросом можно сразу получить то, что нужно, без всяких постобработок."

Код в студию. Раз без всяких постОбработок!
Блесни умом раз скребёшься! (п.с. к пунктуации не придираться, ОК? троли)
43 tassman
 
07.11.12
16:10
ППЦ! Попросил помочь! Совет добрый! Налетели одни умники прыщавые и тролли. и как всегда ничего по теме...
44 zak555
 
07.11.12
16:17
(43) см. в (2)
45 К_Дач
 
07.11.12
16:24
(43) ты ппц

Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   Ит = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит.ВключатьСубсчета(1);
   Ит.ВыполнитьЗапрос(, ВыбКонПериода, "60",,, 1,, "С");
   Таб.ВывестиСекцию("Шапка");
   Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
   Ит.ВыбратьСчета();
   Пока Ит.ПолучитьСчет() = 1 Цикл
       Таб.ВывестиСекцию("Счет");
   КонецЦикла;
   Таб.ВывестиСекцию("Подвал");
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать","");
КонецПроцедуры


ВыполнитьЗапрос(<НачалоПериода>,<КонецПериода>,<Счет>,<КоррСчет>,<Валюта>,<ТипИтогов>,<Периодичность>,<ТипСуммы>)

<КоррСчет> - необязательный параметр. Значение типа ''Счет'' - корреспондирующий счет, в корреспонденции с которым будут отбираться итоги счета, указанного в параметре <Счет>. Задается значением типа ''Счет'' или объектом типа ''СписокЗначений'', содержащим значения типа ''Счет'',  либо строкой содержащей список кодов счетов, разделенных символом '','' или '';''. Если параметр не указан, будут отбираться итоги в корреспонденции со всеми счетами.
46 zak555
 
07.11.12
16:24
(45) у тебя не будет развёрнутого сальда
47 К_Дач
 
07.11.12
16:25
Кто тролль то? Уже и носом ткнули в книжку
48 zak555
 
07.11.12
16:26
(47) полагаю, что у него в штанах
49 chief accountant
 
07.11.12
16:54
(43) убейся ап стену
50 chief accountant
 
07.11.12
16:57
(47)(48) а мне нравятся дятлы, которые уже больше месяца долбят одни и теже строчки своего гениального кода
51 zak555
 
07.11.12
16:57
(50) это ты про кого ? =)
52 tassman
 
07.11.12
17:00
(45) Представим. С одного склада в другой поступил материал провели по 10счету! Вот мне как раз не нужны итоги по операциям 10 - 10. Я в курсах что можно в СЗ всё затолкать и запросом выбрать. Только мне нужны все счета с которыми контактирует 10счет, кроме его самого. как написать:
Ит.ВыполнитьЗапрос(, ВыбКонПериода, "10",КРОМЕ"10",, 1,, "С"); - как это реализовать?
53 chief accountant
 
07.11.12
17:00
54 tassman
 
07.11.12
17:01
(51) про себя наверное! раз такой агрессивный и нервный.
55 zak555
 
07.11.12
17:02
(52) бухЗапрос по оборотам
56 tassman
 
07.11.12
17:02
(53) хахах! Красава. Ждал, честно ждал! Только у вас уважаемый в своих 4-х стенах человек попытки свести этиту тему к аналогам тех!
57 tassman
 
07.11.12
17:03
(53) да и там истина достигнута в самом конце! А 90% флуд
58 chief accountant
 
07.11.12
17:03
(56) я про код в сабже этих тем есичо
59 tassman
 
07.11.12
17:07
(58)Ну и ? разумного ответа там никто не написал если что. Хотя ответ даал! Можно на все вопросы отвечать СП в помощь или БухЗапрос юзай и т.п.
Господа, вы себе что стату набиваете? Не знаете?! молчите плз.
60 chief accountant
 
07.11.12
17:07
(54) где ты в моих постах заметил нервозность и агрессию? Моё мнение в (29) достаточно ясно?
61 zak555
 
07.11.12
17:07
(59) смотри в (55)
что не понятнло
62 chief accountant
 
07.11.12
17:08
(59) Уж как-нибудь разберемся без тебя - что делать, а чего нет
63 tassman
 
07.11.12
17:10
(61) см в (45) потом в (39) и реализуй без цитирую (39) ", без всяких постобработок."
А (45) тут и ежу понятно... это основа основ
п.с. Жду корку про "ежа"
64 tassman
 
07.11.12
17:12
(62) Серьезно! Ответа та нет! Тут заявляют что не нужны никакие постобработки! Уже 60 сообщений! А результат 0.
65 zak555
 
07.11.12
17:13
tassman ты напиши чётко, что нужно
66 chief accountant
 
07.11.12
17:14
(64) результат "0", потому что ТС уж больно неадекватен
67 tassman
 
07.11.12
17:19
(65) написал в (52). Как ещё понятней?! :)
68 zak555
 
07.11.12
17:22
(67) там мутота написана
остатки не хранятся в разрезах корсчетов

если за период -- то решить просто
69 tassman
 
07.11.12
17:28
Есть склад там пусть "Общий" есть склад "Эмали", на склад "Общий" поступила эмаль, на след. день её передали в склад "Эмали" а затем эти эмали списали (продали не важно).
т.е. операция поступления на склад "Общий":
10Д - 60К
На след день как уже сказал передали со склада "Общий" в склад "Эмали"
т.е. Д10 - Д10
Списали эмали со склада "Эмали" т.е.
т.е. К10 - Д91
Итоги подведу:
______________
10Д - 60К  - вот эта должна попасть в отбор
Д10 - Д10  - вот эта нет!!!
К10 - Д91  - и эта должна попасть!
Доходчиво надеюсь.
70 tassman
 
07.11.12
17:30
(68) да за период. За последние 3-и месяца с указ. даты.
71 Classic
 
07.11.12
17:37
(69)
Делай нормальный бух запрос, в обработке результата убирай движения 10-10.
72 Classic
 
07.11.12
17:40
Без постобработки запросом должно сработать так

|Функция КолДО = ДО(Колво) когда (не(КорСч в ВыбСч));
|Функция СумДО = ДО(Сум) когда (не(КорСч в ВыбСч));

и никакой группировки по Корсчету не надо
73 tassman
 
07.11.12
17:40
(71) Я так и сделал уже. Просто тут утверждали что можно буз всяких обработок сделать...вот я и интересуюсь как!
74 Classic
 
07.11.12
17:42
(73)
Ты в (0) интересуешься о другом

Без постобработки можно сделать в зависимости от задачи. Проводки в бухии как правило регламентированы, соответсвенно ты спокойно можешь задать список необходимых тебе счетов в ВыполнитьЗапрос()
75 Classic
 
07.11.12
17:42
Список необходимых тебе КОРСЧЕТОВ
76 zak555
 
07.11.12
17:43
(69)

выполнитьЗапрос(дата1, дата2, "10", "60,90,91",,2,,5);
77 Classic
 
07.11.12
17:43
А (0) с дополнительными группировками по складу и номенклатуре тебе все равно будет чушь показывать.
Во всяком случае остатки на конец предпериода не будут совпадать с остатками на начало следующего
78 zak555
 
07.11.12
17:43
и сразу КорДо и КорКО видишь свои обороты по сумме и количеству
79 tassman
 
07.11.12
17:43
(75) Согласен. Просто не было времени узнавать. А так то да!
80 Classic
 
07.11.12
17:44
(79)
Завязывай с черными запросами по счетам. Это редкостная жесть
81 tassman
 
07.11.12
17:56
(77) Увы мне как раз и нужно чтобы выбирались номномера и склады. с их оборотами, списаниями, поступлениями.. поэтому и сделал группировку по МХ и НомНомер.

ТекстЗапроса1 = "
|Период с '01.03.2012' по ВыбКонПериода;
|ОбрабатыватьОперации Все;
|Сч = Операция.Дебет.Счет;
|КорСч = Операция.КорСчет;
|МХ = Операция.Дебет.МестаХранения.Код;
|НомНомер = Операция.Дебет.Материалы.Код;
|Колво = Операция.Количество;
|Сум = Операция.Сумма;
|Группировка Сч без групп;
|Группировка КорСч без групп;
|Группировка НомНомер без групп;
|Группировка МХ без групп;
|Функция КолДО = ДО(Колво);
|Функция СумДО = ДО(Сум);
|Условие (Сч в ВыбСч);
|Условие (не(КорСч в ВыбСч));";

и кстати
Запрос работает! Выводит обороты за 3-и месяца по каждому НомНомеру и Складу. Проверял... завтра ещё раз проверю специально и сравню с БухЗапросом.
82 tassman
 
07.11.12
17:57
(80) Это для мониторинга. А вот бухгалтерам с их "операциями вручную" стоит действительно завязывать.
83 tassman
 
07.11.12
17:58
(78) Спс! За помощь.   Classic тоже +5
84 zak555
 
07.11.12
18:19
не забудь посыпать голову пеплом
85 tassman
 
07.11.12
19:21
(84) если только пеплом убитых врагов :)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс